#undef TRACE_SYSTEM #define TRACE_SYSTEM dma_fence #if !defined(_TRACE_FENCE_H) || defined(TRACE_HEADER_MULTI_READ) #define _TRACE_DMA_FENCE_H #include struct dma_fence; TRACE_EVENT(dma_fence_annotate_wait_on, /* fence: the fence waiting on f1, f1: the fence to be waited on. */ TP_PROTO(struct dma_fence *fence, struct dma_fence *f1), TP_ARGS(fence, f1), TP_STRUCT__entry( __string(driver, fence->ops->get_driver_name(fence)) __string(timeline, fence->ops->get_timeline_name(fence)) __field(unsigned int, context) __field(unsigned int, seqno) __string(waiting_driver, f1->ops->get_driver_name(f1)) __string(waiting_timeline, f1->ops->get_timeline_name(f1)) __field(unsigned int, waiting_context) __field(unsigned int, waiting_seqno) ), TP_fast_assign( __assign_str(driver, fence->ops->get_driver_name(fence)) __assign_str(timeline, fence->ops->get_timeline_name(fence)) __entry->context = fence->context; __entry->seqno = fence->seqno; __assign_str(waiting_driver, f1->ops->get_driver_name(f1)) __assign_str(waiting_timeline, f1->ops->get_timeline_name(f1)) __entry->waiting_context = f1->context; __entry->waiting_seqno = f1->seqno; ), TP_printk("driver=%s timeline=%s context=%u seqno=%u " \ "waits on driver=%s timeline=%s context=%u seqno=%u", __get_str(driver), __get_str(timeline), __entry->context, __entry->seqno, __get_str(waiting_driver), __get_str(waiting_timeline), __entry->waiting_context, __entry->waiting_seqno) ); DECLARE_EVENT_CLASS(dma_fence, TP_PROTO(struct dma_fence *fence), TP_ARGS(fence), TP_STRUCT__entry( __string(driver, fence->ops->get_driver_name(fence)) __string(timeline, fence->ops->get_timeline_name(fence)) __field(unsigned int, context) __field(unsigned int, seqno) ), TP_fast_assign( __assign_str(driver, fence->ops->get_driver_name(fence)) __assign_str(timeline, fence->ops->get_timeline_name(fence)) __entry->context = fence->context; __entry->seqno = fence->seqno; ), TP_printk("driver=%s timeline=%s context=%u seqno=%u", __get_str(driver), __get_str(timeline), __entry->context, __entry->seqno) ); DEFINE_EVENT(dma_fence, dma_fence_emit, TP_PROTO(struct dma_fence *fence), TP_ARGS(fence) ); DEFINE_EVENT(dma_fence, dma_fence_init, TP_PROTO(struct dma_fence *fence), TP_ARGS(fence) ); DEFINE_EVENT(dma_fence, dma_fence_destroy, TP_PROTO(struct dma_fence *fence), TP_ARGS(fence) ); DEFINE_EVENT(dma_fence, dma_fence_enable_signal, TP_PROTO(struct dma_fence *fence), TP_ARGS(fence) ); DEFINE_EVENT(dma_fence, dma_fence_signaled, TP_PROTO(struct dma_fence *fence), TP_ARGS(fence) ); DEFINE_EVENT(dma_fence, dma_fence_wait_start, TP_PROTO(struct dma_fence *fence), TP_ARGS(fence) ); DEFINE_EVENT(dma_fence, dma_fence_wait_end, TP_PROTO(struct dma_fence *fence), TP_ARGS(fence) ); #endif /* _TRACE_DMA_FENCE_H */ /* This part must be outside protection */ #include &id=ef9656b6936fb7f66e7e25d284c955f4893ac421'>tools
diff options
context:
space:
mode:
authorNikita Yushchenko <nikita.yoush@cogentembedded.com>2016-09-23 14:52:52 +0300
committerMark Brown <broonie@kernel.org>2016-09-26 09:42:27 -0700
commitef9656b6936fb7f66e7e25d284c955f4893ac421 (patch)
treedaadc3a815e6b5ca88b7373445ff25e1ab3349a1 /tools
parent8180bd56bdd1dcade8d1b2a0b6f70b2397bec372 (diff)
ASoC: tlv320aic31xx: add explicit support for tlv320dac31xx
tlv320dac31xx is a subset of tlv320aic31xx: - it does not have MIC inputs and ADC, thus capture is not supported, - it has analog inputs AIN1/AIN2 that can be mixed into output. Although tlv320dac31xx does work with tlv320aic31xx driver, this setup does register non-existent widgets and non-existent capture stream. Thus userspace lists non-existent objects in user interfaces, an can access these, causing operations with device registers that are declared as "reserved" in tlv320dac31xx datasheet. This patch fixes this situation by separating controls/widgets/routes into common, aic31xx-specific, and dac31xx-specific parts. Only parts that match actual hardware (as declared in "compatible" device tree property) are registered. Changes from v1: - update device tree binding documentation, - rebased on top of "ASoC: codec duplicated callback function goes to component on tlv320aic31xx" commit. Signed-off-by: Nikita Yushchenko <nikita.yoush@cogentembedded.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'tools')