linux/drivers/video/fbdev/omap2/dss
Jyri Sarha 8a9d4626db OMAPDSS: hdmi: Reconfigure and restart audio when display is enabled
Reconfigure and restart audio when display is enabled, if audio
playback was active before. This is needed in a situation when an
audio+video stream application opens the audio stream before the
video. When video stream is opened the display mode may change and
that aborts audio playback, because the display is momentarily
turned off.

The audio configuration is stored when it is successfully applied and
a boolean is set when the audio playback is started and unset when
stopped. This data is used to reconfigure the audio when display is
re-enabled. The audio playback is aborted if the reconfiguration fails.

A new spin lock is introduced in order to protect state variables
related to audio playback status. This is needed for the transition
from display enabled state (when audio start/stop commands can be
written to HW) to display disabled state (when audio start/stop
commands update only the hdmi.audio_playing variable) to always
serialize correctly with the start/stop audio commands. The already
existing mutex can not be used, because the audio start and stop
commands are executed in atomic context.

For example: when display is turned back on we take the spinlock and
we can be sure that the audio start/stop status will not change while
we update the HW according to hdmi.audio_playing state and set
hdmi.display_enabled to true. After releasing the lock
hdmi.display_enabled is true and all audio_start and audio_stop
commands write their stuff directly to HW.

Signed-off-by: Jyri Sarha <jsarha@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2015-09-24 13:46:09 +03:00
..
apply.c OMAPDSS: apply: wait pending updates on manager disable 2014-10-22 11:07:08 +03:00
core.c OMAPDSS: simplify submodule reg/unreg code 2015-06-17 13:44:57 +03:00
dispc_coefs.c
dispc-compat.c arm, fbdev, omap2, LLVMLinux: Remove nested function from omap2 dss 2014-09-30 13:11:44 +03:00
dispc-compat.h
dispc.c Merge omapdss scaling fixes 2015-06-22 14:56:01 +03:00
dispc.h OMAPDSS: DISPC: fix mflag offset 2014-10-22 11:33:10 +03:00
display-sysfs.c fbdev: omap2: remove potential format string leak 2015-06-12 12:37:45 +03:00
display.c OMAPDSS: DISPC: change sync_pclk_edge default value 2015-02-26 12:15:12 +02:00
dpi.c OMAPDSS: componentize omapdss 2015-06-17 13:44:53 +03:00
dsi.c OMAPDSS: componentize omapdss 2015-06-17 13:44:53 +03:00
dss_features.c OMAPDSS: fix AM43xx minimum pixel clock divider 2015-02-25 15:03:28 +02:00
dss_features.h OMAPDSS: features: remove unused DSI PLL features 2014-11-12 13:40:27 +02:00
dss-of.c OMAPDSS: Fix omap_dss_find_output_by_port_node() port refcount decrement 2015-08-10 12:22:40 +03:00
dss.c OMAPDSS: fix probing if rfbi device is enabled 2015-07-02 15:20:10 +03:00
dss.h OMAPDSS: remove uses of __init/__exit 2015-06-17 13:44:47 +03:00
hdmi4_core.c ASoC: omap-hdmi-audio: Force channel allocation only for OMAP4 2015-06-03 14:34:02 +03:00
hdmi4_core.h OMAPDSS: hdmi4_core: Remove unused hdmi4_audio_get_dma_port() 2014-11-26 10:41:07 +02:00
hdmi4.c OMAPDSS: hdmi: Reconfigure and restart audio when display is enabled 2015-09-24 13:46:09 +03:00
hdmi5_core.c OMAPDSS: HDMI5: Fix AUDICONF3 bitfield offsets 2015-06-03 14:33:54 +03:00
hdmi5_core.h OMAPDSS: hdmi: Remove most of OMAP[45]_DSS_HDMI_AUDIO ifdefs 2014-11-26 10:41:07 +02:00
hdmi5.c OMAPDSS: hdmi: Reconfigure and restart audio when display is enabled 2015-09-24 13:46:09 +03:00
hdmi_common.c OMAPDSS: hdmi: Remove most of OMAP[45]_DSS_HDMI_AUDIO ifdefs 2014-11-26 10:41:07 +02:00
hdmi_phy.c OMAPDSS: HDMI: Add DRA7xx support 2015-02-04 12:32:06 +02:00
hdmi_pll.c OMAPDSS: HDMI: Add DRA7xx support 2015-02-04 12:32:06 +02:00
hdmi_wp.c OMAPDSS: HDMI: wait for framedone when stopping video 2015-06-17 15:53:40 +03:00
hdmi.h OMAPDSS: hdmi: Reconfigure and restart audio when display is enabled 2015-09-24 13:46:09 +03:00
Kconfig OMAPDSS: Kconfig: Remove HDMI audio booleans from Kconfig 2014-12-01 11:09:37 +02:00
Makefile OMAPDSS: Add Video PLLs for DRA7xx 2015-02-04 12:32:05 +02:00
manager-sysfs.c arm, fbdev, omap2, LLVMLinux: Remove nested function from omap2 dss 2014-09-30 13:11:44 +03:00
manager.c
omapdss-boot-init.c of: Decrement refcount of previous endpoint in of_graph_get_next_endpoint 2015-02-23 11:42:23 +01:00
output.c OMAPDSS: DT: Get source endpoint by matching reg-id 2014-11-12 13:40:06 +02:00
overlay-sysfs.c
overlay.c
pll.c OMAPDSS: PLL: add dss_pll_wait_reset_done() 2015-02-04 12:32:03 +02:00
rfbi.c OMAPDSS: componentize omapdss 2015-06-17 13:44:53 +03:00
sdi.c OMAPDSS: componentize omapdss 2015-06-17 13:44:53 +03:00
venc.c OMAPDSS: componentize omapdss 2015-06-17 13:44:53 +03:00
video-pll.c OMAPDSS: Add Video PLLs for DRA7xx 2015-02-04 12:32:05 +02:00