linux/drivers/gpu/drm/i915
Wang Xingchao b98b601672 drm/i915: HDMI - Clear Audio Enable bit for Hot Plug
Clear Audio Enable bit to trigger unsolicated event to notify Audio
Driver part the HDMI hot plug change. The patch fixed the bug when
remove HDMI cable the bit was not cleared correctly.

In intel_hdmi_dpms(), if intel_hdmi->has_audio been true, the "Audio enable bit" will
be set to trigger unsolicated event to notify Alsa driver the change.

intel_hdmi->has_audio will be reset to false from intel_hdmi_detect() after
remove the hdmi cable, here's debug log:

[  187.494153] [drm:output_poll_execute], [CONNECTOR:17:HDMI-A-1] status updated from 1 to 2
[  187.525349] [drm:intel_hdmi_detect], HDMI: has_audio = 0

so when comes back to intel_hdmi_dpms(), the "Audio enable bit" will not be cleared. And this
cause the eld infomation and pin presence doesnot update accordingly in alsa driver side.

This patch will also trigger unsolicated event to alsa driver to notify the hot plug event:

[  187.853159] ALSA sound/pci/hda/patch_hdmi.c:772 HDMI hot plug event: Codec=3 Pin=5 Presence_Detect=0 ELD_Valid=1
[  187.853268] ALSA sound/pci/hda/patch_hdmi.c:990 HDMI status: Codec=3 Pin=5 Presence_Detect=0 ELD_Valid=0

Signed-off-by: Wang Xingchao <xingchao.wang@intel.com>
Cc: stable@vger.kernel.org
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-09-17 10:13:02 +02:00
..
dvo_ch7xxx.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
dvo_ch7017.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
dvo_ivch.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
dvo_sil164.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
dvo_tfp410.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
dvo.h drm: Make the .mode_fixup() operations mode argument a const pointer 2012-07-19 21:52:38 -04:00
i915_debugfs.c drm/i915: Add comments to explain the BSD tail write workaround 2012-07-20 12:21:37 +02:00
i915_dma.c drm/i915: initialize dpio_lock spin lock 2012-09-08 19:04:04 +02:00
i915_drv.c drm/i915: add more Haswell PCI IDs 2012-08-07 13:17:33 +02:00
i915_drv.h drm/i915: Add comments to explain the BSD tail write workaround 2012-07-20 12:21:37 +02:00
i915_gem_context.c drm/i915: remove unused variable 2012-08-05 22:39:53 +02:00
i915_gem_debug.c drm/i915: stop using dev->agp->base 2012-06-12 22:18:06 +02:00
i915_gem_dmabuf.c i915: add dma-buf vmap support for exporting vmapped buffer 2012-05-31 14:13:57 +01:00
i915_gem_evict.c drm: Add colouring to the range allocator 2012-07-16 05:59:37 +10:00
i915_gem_execbuffer.c drm/i915: Don't forget to apply SNB PIPE_CONTROL GTT workaround. 2012-08-05 21:45:01 +02:00
i915_gem_gtt.c drm/i915: Use the correct size of the GTT for placing the per-process entries 2012-08-24 11:07:59 +02:00
i915_gem_stolen.c drm/i915: Split the stolen handling for GEM out of i915_dma.c 2012-05-03 11:18:11 +02:00
i915_gem_tiling.c drm/i915: Only the zap the VMA after updating the tiling parameters 2012-05-03 11:18:07 +02:00
i915_gem.c drm/i915: Reduce a pin-leak BUG into a WARN 2012-09-17 10:12:57 +02:00
i915_ioc32.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
i915_irq.c drm/i915: set the right gen3 flip_done mode also at resume 2012-09-10 21:30:03 +02:00
i915_reg.h drm/i915: fix hsw uncached pte 2012-08-17 09:21:35 +02:00
i915_suspend.c Linux 3.5-rc7 2012-07-20 00:53:28 -04:00
i915_sysfs.c drm/i915: make rc6 in sysfs functions conditional 2012-08-06 19:31:33 +02:00
i915_trace_points.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
i915_trace.h drm/i915: improve i915_wait_request_begin trace 2012-05-25 09:55:15 +02:00
intel_acpi.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
intel_bios.c drm/i915/bios: cleanup return type of intel_parse_bios() 2012-06-27 10:17:51 +01:00
intel_bios.h drm/i915/bios: cleanup return type of intel_parse_bios() 2012-06-27 10:17:51 +01:00
intel_crt.c drm/i915: fall back to bit-banging if GMBUS fails in CRT EDID reads 2012-08-17 09:21:36 +02:00
intel_ddi.c drm/i915: program FDI_RX TP and FDI delays 2012-07-05 15:09:03 +02:00
intel_display.c drm/i915: enable lvds pin pairs before dpll on gen2 2012-09-17 10:04:39 +02:00
intel_dp.c drm/i915/edp: get the panel delay before powering up 2012-09-03 09:43:25 +02:00
intel_drv.h drm/i915: extract connector update from intel_ddc_get_modes() for reuse 2012-08-17 09:21:35 +02:00
intel_dvo.c drm: Make the .mode_fixup() operations mode argument a const pointer 2012-07-19 21:52:38 -04:00
intel_fb.c drm/i915: Zero initialize mode_cmd 2012-07-05 13:27:58 +02:00
intel_hdmi.c drm/i915: HDMI - Clear Audio Enable bit for Hot Plug 2012-09-17 10:13:02 +02:00
intel_i2c.c drm/i915: ensure i2c adapter is all set before adding it 2012-08-13 19:04:24 +02:00
intel_lvds.c i915: Quirk no_lvds on Gigabyte GA-D525TUD ITX motherboard 2012-08-24 14:40:09 +02:00
intel_modes.c drm/i915: extract connector update from intel_ddc_get_modes() for reuse 2012-08-17 09:21:35 +02:00
intel_opregion.c drm/i915: [sparse] __iomem fixes for opregion 2012-05-03 11:18:00 +02:00
intel_overlay.c drm/i915: s/i915_wait_request/i915_wait_seqno/g 2012-05-25 14:18:42 +02:00
intel_panel.c drm/i915: do not expose a dysfunctional backlight interface to userspace 2012-09-03 20:42:10 +02:00
intel_pm.c drm/i915: set the right gen3 flip_done mode also at resume 2012-09-10 21:30:03 +02:00
intel_ringbuffer.c drm/i915: Apply post-sync write for pipe control invalidates 2012-08-14 09:47:45 +02:00
intel_ringbuffer.h drm/i915: disable flushing_list/gpu_write_list 2012-06-20 13:54:28 +02:00
intel_sdvo_regs.h drm/i915: properly handle interlaced bit for sdvo dtd conversion 2012-05-24 17:53:52 +02:00
intel_sdvo.c drm/i915: only enable sdvo hotplug irq if needed 2012-09-03 09:43:36 +02:00
intel_sprite.c drm/i915: fix color order for BGR formats on IVB 2012-08-23 11:44:53 +02:00
intel_tv.c drm: Make the .mode_fixup() operations mode argument a const pointer 2012-07-19 21:52:38 -04:00
Makefile drm/i915: preliminary context support 2012-06-14 17:36:16 +02:00