Commit e9ca4e9e authored by Patrik Jakobsson's avatar Patrik Jakobsson
Browse files

drm/gma500: Read EDID from the correct i2c adapter



Someone made the mistake to try reading EDID from the backlight i2c
adapter. This has been wrong for a very long time but since we read out
the modes correctly on init and don't hotplug lvds it has been working
anyway. Correct this by using connector->ddc instead of
encoder->i2c_bus. Both PSB and CDV are affected but this bug.

Signed-off-by: default avatarPatrik Jakobsson <patrik.r.jakobsson@gmail.com>
Acked-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20220601092311.22648-9-patrik.r.jakobsson@gmail.com
parent a57ebfc0
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -298,11 +298,10 @@ static int cdv_intel_lvds_get_modes(struct drm_connector *connector)
{
	struct drm_device *dev = connector->dev;
	struct drm_psb_private *dev_priv = to_drm_psb_private(dev);
	struct gma_encoder *gma_encoder = gma_attached_encoder(connector);
	struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev;
	int ret;

	ret = psb_intel_ddc_get_modes(connector, &gma_encoder->i2c_bus->base);
	ret = psb_intel_ddc_get_modes(connector, connector->ddc);

	if (ret)
		return ret;
+1 −3
Original line number Diff line number Diff line
@@ -491,12 +491,10 @@ static int psb_intel_lvds_get_modes(struct drm_connector *connector)
	struct drm_device *dev = connector->dev;
	struct drm_psb_private *dev_priv = to_drm_psb_private(dev);
	struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev;
	struct gma_encoder *gma_encoder = gma_attached_encoder(connector);
	struct psb_intel_lvds_priv *lvds_priv = gma_encoder->dev_priv;
	int ret = 0;

	if (!IS_MRST(dev))
		ret = psb_intel_ddc_get_modes(connector, &lvds_priv->i2c_bus->base);
		ret = psb_intel_ddc_get_modes(connector, connector->ddc);

	if (ret)
		return ret;