2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-11-20 16:46:23 +08:00
linux-next/include/video
Ricardo Neri 9c0b842036 OMAPDSS: Provide an interface for audio support
There exist several display technologies and standards that support audio as
well. Hence, it is relevant to update the DSS device driver to provide an audio
interface that may be used by an audio driver or any other driver interested in
the functionality.

The audio_enable function is intended to prepare the relevant
IP for playback (e.g., enabling an audio FIFO, taking in/out of reset
some IP, enabling companion chips, etc). It is intended to be called before
audio_start. The audio_disable function performs the reverse operation and is
intended to be called after audio_stop.

While a given DSS device driver may support audio, it is possible that for
certain configurations audio is not supported (e.g., an HDMI display using a
VESA video timing). The audio_supported function is intended to query whether
the current configuration of the display supports audio.

The audio_config function is intended to configure all the relevant audio
parameters of the display. In order to make the function independent of any
specific DSS device driver, a struct omap_dss_audio is defined. Its purpose
is to contain all the required parameters for audio configuration. At the
moment, such structure contains pointers to IEC-60958 channel status word and
CEA-861 audio infoframe structures. This should be enough to support HDMI and
DisplayPort, as both are based on CEA-861 and IEC-60958. The omap_dss_audio
structure may be extended in the future if required.

The audio_enable/disable, audio_config and audio_supported functions could be
implemented as functions that may sleep. Hence, they should not be called
while holding a spinlock or a readlock.

The audio_start/audio_stop function is intended to effectively start/stop audio
playback after the configuration has taken place. These functions are designed
to be used in an atomic context. Hence, audio_start should return quickly and be
called only after all the needed resources for audio playback (audio FIFOs,
DMA channels, companion chips, etc) have been enabled to begin data transfers.
audio_stop is designed to only stop the audio transfers. The resources used
for playback are released using audio_disable.

A new enum omap_dss_audio_state is introduced to help the implementations of
the interface to keep track of the audio state. The initial state is _DISABLED;
then, the state transitions to _CONFIGURED, and then, when it is ready to
play audio, to _ENABLED. The state _PLAYING is used when the audio is being
rendered.

Signed-off-by: Ricardo Neri <ricardo.neri@ti.com>
2012-05-11 15:13:50 +03:00
..
atmel_lcdc.h atmel_lcdfb: implement inverted contrast pwm 2011-03-22 16:23:44 +09:00
aty128.h atyfb: fix header file trailing whitespace 2009-04-01 08:59:26 -07:00
broadsheetfb.h broadsheetfb: support storing waveform 2010-03-12 15:52:34 -08:00
cirrus.h cirrusfb: Laguna chipset 8bpp fix 2009-04-01 08:59:27 -07:00
cvisionppc.h
da8xx-fb.h fbdev: da8xx: punt duplicated FBIO_WAITFORVSYNC define 2010-11-16 10:14:22 +09:00
edid.h UAPI: Fix nested __KERNEL__ guards in video/edid.h 2011-12-13 09:26:45 +00:00
epson1355.h
exynos_dp.h video: support DP controller driver 2012-02-13 03:02:30 +00:00
exynos_mipi_dsim.h video: support MIPI-DSI controller driver 2012-02-13 03:02:03 +00:00
gbe.h
hecubafb.h fbdev: platforming hecubafb and n411 2008-04-28 08:58:41 -07:00
iga.h
ili9320.h fb: add support for the ILI9320 video display controller 2008-07-24 10:47:40 -07:00
Kbuild include: replace unifdef-y with header-y 2010-08-14 22:26:51 +02:00
kyro.h Fix common misspellings 2011-03-31 11:26:23 -03:00
mach64.h atyfb: fix CONFIG_ namespace violations 2009-02-05 12:56:48 -08:00
maxinefb.h
mbxfb.h mbxfb: Improvements and new features 2007-10-16 09:43:14 -07:00
metronomefb.h [ARM] 5209/1: metronomefb: changes to use platform framebuffer 2008-08-26 17:01:12 +01:00
mipi_display.h fbdev: add a MIPI DSI header 2010-05-24 08:47:38 +09:00
neomagic.h Fix common misspellings 2011-03-31 11:26:23 -03:00
newport.h Merge branch 'master' into for-next 2011-04-26 10:22:59 +02:00
omap-panel-generic-dpi.h OMAP: DSS2: Move panel-generic-dpi.h to include/video/ 2011-05-11 14:08:51 +03:00
omap-panel-n8x0.h OMAPDSS: Add N800 panel driver 2011-09-30 16:17:30 +03:00
omap-panel-nokia-dsi.h OMAPDSS: DSI: implement generic DSI pin config 2012-05-09 10:53:05 +03:00
omap-panel-picodlp.h OMAP: DSS2: Add picodlp panel driver 2011-09-14 18:08:23 +03:00
omap-panel-tfp410.h OMAPDSS: TFP410: rename dvi files to tfp410 2012-05-09 10:51:05 +03:00
omapdss.h OMAPDSS: Provide an interface for audio support 2012-05-11 15:13:50 +03:00
permedia2.h pm2fb: hardware cursor support for the Permedia2 2007-10-16 09:43:18 -07:00
platform_lcd.h lcd: add platform_lcd driver 2008-07-24 10:47:40 -07:00
pm3fb.h pm3fb: header file cleanup 2007-10-16 09:43:18 -07:00
pmag-ba-fb.h
pmagb-b-fb.h
pxa168fb.h pxa168fb: remove useless vsync/hsync invert flag 2009-12-01 09:02:32 +08:00
radeon.h atyfb: fix header file trailing whitespace 2009-04-01 08:59:26 -07:00
s1d13xxxfb.h s1d13xxxfb: drop unused code 2010-12-21 01:05:43 +09:00
sa1100fb.h FB: sa1100: remove global sa1100fb_.*_power function pointers 2012-02-21 11:56:19 +00:00
sgivw.h sgivwfb: Make use of ARRAY_SIZE. 2009-12-04 15:39:52 +01:00
sh_mipi_dsi.h fbdev: sh_mipi_dsi: add extra phyctrl for sh_mipi_dsi_info 2012-03-21 07:24:01 +00:00
sh_mobile_hdmi.h fbdev: sh_mobile_hdmi: Remove sh_mobile_hdmi_info lcd_chan field 2012-03-12 22:40:48 +01:00
sh_mobile_lcdc.h fbdev: sh_mobile_lcdc: Don't store copy of platform data 2012-03-12 22:41:12 +01:00
sh_mobile_meram.h fbdev: sh_mobile_meram: Remove unneeded sanity checks 2012-03-12 22:41:14 +01:00
sisfb.h Fix common misspellings 2011-03-31 11:26:23 -03:00
sstfb.h Fix common misspellings 2011-03-31 11:26:23 -03:00
tdfx.h tdfxfb: move I2C functionality into the tdfxfb 2009-04-07 08:31:08 -07:00
tgafb.h tgafb: actually allocate memory for the pseudo_palette 2007-07-17 10:23:12 -07:00
trident.h tridentfb: add imageblit acceleration for Blade3D family 2008-07-24 10:47:36 -07:00
udlfb.h udlfb: fix hcd_buffer_free panic on unplug/replug 2012-03-01 17:46:27 -08:00
uvesafb.h headers_check fix: video/uvesafb.h 2009-01-31 00:14:52 +05:30
vga.h include/video/vga.h: update web address. 2010-08-16 15:15:18 +02:00
w100fb.h [PATCH] SharpSL: Abstract c7x0 specifics from Corgi Touchscreen driver 2005-09-13 08:22:31 -07:00