diff options
Diffstat (limited to 'Documentation/arm/OMAP/DSS')
-rw-r--r-- | Documentation/arm/OMAP/DSS | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Documentation/arm/OMAP/DSS b/Documentation/arm/OMAP/DSS index d0aea9192204..a564ceea9e98 100644 --- a/Documentation/arm/OMAP/DSS +++ b/Documentation/arm/OMAP/DSS | |||
@@ -47,6 +47,51 @@ flexible way to enable non-common multi-display configuration. In addition to | |||
47 | modelling the hardware overlays, omapdss supports virtual overlays and overlay | 47 | modelling the hardware overlays, omapdss supports virtual overlays and overlay |
48 | managers. These can be used when updating a display with CPU or system DMA. | 48 | managers. These can be used when updating a display with CPU or system DMA. |
49 | 49 | ||
50 | omapdss driver support for audio | ||
51 | -------------------------------- | ||
52 | There exist several display technologies and standards that support audio as | ||
53 | well. Hence, it is relevant to update the DSS device driver to provide an audio | ||
54 | interface that may be used by an audio driver or any other driver interested in | ||
55 | the functionality. | ||
56 | |||
57 | The audio_enable function is intended to prepare the relevant | ||
58 | IP for playback (e.g., enabling an audio FIFO, taking in/out of reset | ||
59 | some IP, enabling companion chips, etc). It is intended to be called before | ||
60 | audio_start. The audio_disable function performs the reverse operation and is | ||
61 | intended to be called after audio_stop. | ||
62 | |||
63 | While a given DSS device driver may support audio, it is possible that for | ||
64 | certain configurations audio is not supported (e.g., an HDMI display using a | ||
65 | VESA video timing). The audio_supported function is intended to query whether | ||
66 | the current configuration of the display supports audio. | ||
67 | |||
68 | The audio_config function is intended to configure all the relevant audio | ||
69 | parameters of the display. In order to make the function independent of any | ||
70 | specific DSS device driver, a struct omap_dss_audio is defined. Its purpose | ||
71 | is to contain all the required parameters for audio configuration. At the | ||
72 | moment, such structure contains pointers to IEC-60958 channel status word | ||
73 | and CEA-861 audio infoframe structures. This should be enough to support | ||
74 | HDMI and DisplayPort, as both are based on CEA-861 and IEC-60958. | ||
75 | |||
76 | The audio_enable/disable, audio_config and audio_supported functions could be | ||
77 | implemented as functions that may sleep. Hence, they should not be called | ||
78 | while holding a spinlock or a readlock. | ||
79 | |||
80 | The audio_start/audio_stop function is intended to effectively start/stop audio | ||
81 | playback after the configuration has taken place. These functions are designed | ||
82 | to be used in an atomic context. Hence, audio_start should return quickly and be | ||
83 | called only after all the needed resources for audio playback (audio FIFOs, | ||
84 | DMA channels, companion chips, etc) have been enabled to begin data transfers. | ||
85 | audio_stop is designed to only stop the audio transfers. The resources used | ||
86 | for playback are released using audio_disable. | ||
87 | |||
88 | The enum omap_dss_audio_state may be used to help the implementations of | ||
89 | the interface to keep track of the audio state. The initial state is _DISABLED; | ||
90 | then, the state transitions to _CONFIGURED, and then, when it is ready to | ||
91 | play audio, to _ENABLED. The state _PLAYING is used when the audio is being | ||
92 | rendered. | ||
93 | |||
94 | |||
50 | Panel and controller drivers | 95 | Panel and controller drivers |
51 | ---------------------------- | 96 | ---------------------------- |
52 | 97 | ||