diff options
author | Adam Jackson <ajax@redhat.com> | 2011-06-16 16:36:23 -0400 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2011-10-20 17:11:15 -0400 |
commit | 46eb303682f72717d1a75cdd2309733bfed43396 (patch) | |
tree | 8c8d386fac6cb2660411698b2883f223ad8383b0 /drivers/gpu/drm | |
parent | 9a1f57808afd65b1d066d5e1907526a1e45215df (diff) |
drm/i915: Remove "i2c_speed" nonsense from child device table
I have no evidence for this byte being used this way, and lots of
counterexamples. Restore the struct to its empirical definition and
patch up gmbus setup to match.
Signed-off-by: Adam Jackson <ajax@redhat.com>
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_bios.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_bios.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_sdvo.c | 12 |
4 files changed, 8 insertions, 14 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 0e777fdf9c61..c02cdace744c 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
@@ -139,7 +139,6 @@ struct sdvo_device_mapping { | |||
139 | u8 slave_addr; | 139 | u8 slave_addr; |
140 | u8 dvo_wiring; | 140 | u8 dvo_wiring; |
141 | u8 i2c_pin; | 141 | u8 i2c_pin; |
142 | u8 i2c_speed; | ||
143 | u8 ddc_pin; | 142 | u8 ddc_pin; |
144 | }; | 143 | }; |
145 | 144 | ||
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c index dbda66f622ee..63880e2e5cfd 100644 --- a/drivers/gpu/drm/i915/intel_bios.c +++ b/drivers/gpu/drm/i915/intel_bios.c | |||
@@ -403,15 +403,13 @@ parse_sdvo_device_mapping(struct drm_i915_private *dev_priv, | |||
403 | p_mapping->dvo_wiring = p_child->dvo_wiring; | 403 | p_mapping->dvo_wiring = p_child->dvo_wiring; |
404 | p_mapping->ddc_pin = p_child->ddc_pin; | 404 | p_mapping->ddc_pin = p_child->ddc_pin; |
405 | p_mapping->i2c_pin = p_child->i2c_pin; | 405 | p_mapping->i2c_pin = p_child->i2c_pin; |
406 | p_mapping->i2c_speed = p_child->i2c_speed; | ||
407 | p_mapping->initialized = 1; | 406 | p_mapping->initialized = 1; |
408 | DRM_DEBUG_KMS("SDVO device: dvo=%x, addr=%x, wiring=%d, ddc_pin=%d, i2c_pin=%d, i2c_speed=%d\n", | 407 | DRM_DEBUG_KMS("SDVO device: dvo=%x, addr=%x, wiring=%d, ddc_pin=%d, i2c_pin=%d\n", |
409 | p_mapping->dvo_port, | 408 | p_mapping->dvo_port, |
410 | p_mapping->slave_addr, | 409 | p_mapping->slave_addr, |
411 | p_mapping->dvo_wiring, | 410 | p_mapping->dvo_wiring, |
412 | p_mapping->ddc_pin, | 411 | p_mapping->ddc_pin, |
413 | p_mapping->i2c_pin, | 412 | p_mapping->i2c_pin); |
414 | p_mapping->i2c_speed); | ||
415 | } else { | 413 | } else { |
416 | DRM_DEBUG_KMS("Maybe one SDVO port is shared by " | 414 | DRM_DEBUG_KMS("Maybe one SDVO port is shared by " |
417 | "two SDVO device.\n"); | 415 | "two SDVO device.\n"); |
diff --git a/drivers/gpu/drm/i915/intel_bios.h b/drivers/gpu/drm/i915/intel_bios.h index a8cad2b88e04..8af3735e27c6 100644 --- a/drivers/gpu/drm/i915/intel_bios.h +++ b/drivers/gpu/drm/i915/intel_bios.h | |||
@@ -202,8 +202,7 @@ struct bdb_general_features { | |||
202 | struct child_device_config { | 202 | struct child_device_config { |
203 | u16 handle; | 203 | u16 handle; |
204 | u16 device_type; | 204 | u16 device_type; |
205 | u8 i2c_speed; | 205 | u8 device_id[10]; /* ascii string */ |
206 | u8 rsvd[9]; | ||
207 | u16 addin_offset; | 206 | u16 addin_offset; |
208 | u8 dvo_port; /* See Device_PORT_* above */ | 207 | u8 dvo_port; /* See Device_PORT_* above */ |
209 | u8 i2c_pin; | 208 | u8 i2c_pin; |
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c index 731200243219..ed15c00aecdf 100644 --- a/drivers/gpu/drm/i915/intel_sdvo.c +++ b/drivers/gpu/drm/i915/intel_sdvo.c | |||
@@ -1896,7 +1896,7 @@ intel_sdvo_select_i2c_bus(struct drm_i915_private *dev_priv, | |||
1896 | struct intel_sdvo *sdvo, u32 reg) | 1896 | struct intel_sdvo *sdvo, u32 reg) |
1897 | { | 1897 | { |
1898 | struct sdvo_device_mapping *mapping; | 1898 | struct sdvo_device_mapping *mapping; |
1899 | u8 pin, speed; | 1899 | u8 pin; |
1900 | 1900 | ||
1901 | if (IS_SDVOB(reg)) | 1901 | if (IS_SDVOB(reg)) |
1902 | mapping = &dev_priv->sdvo_mappings[0]; | 1902 | mapping = &dev_priv->sdvo_mappings[0]; |
@@ -1904,18 +1904,16 @@ intel_sdvo_select_i2c_bus(struct drm_i915_private *dev_priv, | |||
1904 | mapping = &dev_priv->sdvo_mappings[1]; | 1904 | mapping = &dev_priv->sdvo_mappings[1]; |
1905 | 1905 | ||
1906 | pin = GMBUS_PORT_DPB; | 1906 | pin = GMBUS_PORT_DPB; |
1907 | speed = GMBUS_RATE_1MHZ >> 8; | 1907 | if (mapping->initialized) |
1908 | if (mapping->initialized) { | ||
1909 | pin = mapping->i2c_pin; | 1908 | pin = mapping->i2c_pin; |
1910 | speed = mapping->i2c_speed; | ||
1911 | } | ||
1912 | 1909 | ||
1913 | if (pin < GMBUS_NUM_PORTS) { | 1910 | if (pin < GMBUS_NUM_PORTS) { |
1914 | sdvo->i2c = &dev_priv->gmbus[pin].adapter; | 1911 | sdvo->i2c = &dev_priv->gmbus[pin].adapter; |
1915 | intel_gmbus_set_speed(sdvo->i2c, speed); | 1912 | intel_gmbus_set_speed(sdvo->i2c, GMBUS_RATE_1MHZ >> 8); |
1916 | intel_gmbus_force_bit(sdvo->i2c, true); | 1913 | intel_gmbus_force_bit(sdvo->i2c, true); |
1917 | } else | 1914 | } else { |
1918 | sdvo->i2c = &dev_priv->gmbus[GMBUS_PORT_DPB].adapter; | 1915 | sdvo->i2c = &dev_priv->gmbus[GMBUS_PORT_DPB].adapter; |
1916 | } | ||
1919 | } | 1917 | } |
1920 | 1918 | ||
1921 | static bool | 1919 | static bool |