linux_old1/drivers/gpu/drm/i915
Wu Fengguang e0dac65ed4 drm/i915: pass ELD to HDMI/DP audio driver
Add ELD support for Intel Eaglelake, IbexPeak/Ironlake,
SandyBridge/CougarPoint and IvyBridge/PantherPoint chips.

ELD (EDID-Like Data) describes to the HDMI/DP audio driver the audio
capabilities of the plugged monitor. It's built and passed to audio
driver in 2 steps:

(1) at get_modes time, parse EDID and save ELD to drm_connector.eld[]

(2) at mode_set time, write drm_connector.eld[] to the Transcoder's hw
    ELD buffer and set the ELD_valid bit to inform HDMI/DP audio driver

This patch is tested OK on G45/HDMI, IbexPeak/HDMI and IvyBridge/HDMI+DP.
Test scheme: plug in the HDMI/DP monitor, and run

        cat /proc/asound/card0/eld*

to check if the monitor name, HDMI/DP type, etc. show up correctly.

Minor imperfection: the GEN5_AUD_CNTL_ST/DIP_Port_Select field always
reads 0 (reserved). Without knowing the port number, I worked it around
by setting the ELD_valid bit for ALL the three ports. It's tested to not
be a problem, because the audio driver will find invalid ELD data and
hence rightfully abort, even when it sees the ELD_valid indicator.

Thanks to Zhenyu and Pierre-Louis for a lot of valuable help and testing.

CC: Zhao Yakui <yakui.zhao@intel.com>
CC: Wang Zhenyu <zhenyu.z.wang@intel.com>
CC: Jeremy Bush <contractfrombelow@gmail.com>
CC: Christopher White <c.white@pulseforce.com>
CC: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
CC: Paul Menzel <paulepanter@users.sourceforge.net>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2011-09-21 14:52:41 -07:00
..
Makefile drm/i915: Split i915_gem_execbuffer into its own file. 2010-11-25 21:19:25 +00:00
dvo.h drm/i915: Subclass intel_encoder. 2010-08-09 11:24:28 -07: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
i915_debugfs.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
i915_dma.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
i915_drv.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
i915_drv.h drm/i915: pass ELD to HDMI/DP audio driver 2011-09-21 14:52:41 -07:00
i915_gem.c Merge branch 'drm-intel-next' of git://people.freedesktop.org/~keithp/linux into drm-next 2011-09-20 09:36:22 +01:00
i915_gem_debug.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
i915_gem_evict.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
i915_gem_execbuffer.c Revert "drm/i915: Kill GTT mappings when moving from GTT domain" 2011-06-21 11:11:02 -07:00
i915_gem_gtt.c drm/i915: Add an interface to dynamically change the cache level 2011-06-09 21:51:16 -07:00
i915_gem_tiling.c drm/i915: Fix unfenced alignment on pre-G33 hardware 2011-07-18 14:02:06 -07:00
i915_ioc32.c drm: convert drm_ioctl to unlocked_ioctl 2009-12-18 11:22:31 +10:00
i915_irq.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
i915_mem.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
i915_reg.h drm/i915: pass ELD to HDMI/DP audio driver 2011-09-21 14:52:41 -07:00
i915_suspend.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
i915_trace.h Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
i915_trace_points.c drm/i915: Add tracepoints 2009-09-23 01:05:21 +01:00
intel_acpi.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
intel_bios.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
intel_bios.h Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
intel_crt.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
intel_display.c drm/i915: pass ELD to HDMI/DP audio driver 2011-09-21 14:52:41 -07:00
intel_dp.c drm/i915: pass ELD to HDMI/DP audio driver 2011-09-21 14:52:41 -07:00
intel_drv.h drm/i915: pass ELD to HDMI/DP audio driver 2011-09-21 14:52:41 -07:00
intel_dvo.c drm/i915: cleanup per-pipe reg usage 2011-02-07 21:17:15 +00:00
intel_fb.c drm/i915: restore only the mode of this driver on lastclose (v2) 2011-04-27 17:51:59 +10:00
intel_hdmi.c drm/i915: pass ELD to HDMI/DP audio driver 2011-09-21 14:52:41 -07:00
intel_i2c.c Revert "drm/i915: Enable GMBUS for post-gen2 chipsets" 2011-06-17 09:22:01 +10:00
intel_lvds.c Not all systems expose a firmware or platform mechanism for changing the backlight intensity on i915, so add native driver support. 2011-08-15 12:10:25 -07:00
intel_modes.c drm/i915: pass ELD to HDMI/DP audio driver 2011-09-21 14:52:41 -07:00
intel_opregion.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
intel_overlay.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
intel_panel.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
intel_ringbuffer.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
intel_ringbuffer.h Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
intel_sdvo.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
intel_sdvo_regs.h Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
intel_tv.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00