]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/gma500: Read EDID from the correct i2c adapter
authorPatrik Jakobsson <patrik.r.jakobsson@gmail.com>
Wed, 1 Jun 2022 09:23:11 +0000 (11:23 +0200)
committerPatrik Jakobsson <patrik.r.jakobsson@gmail.com>
Thu, 2 Jun 2022 08:06:51 +0000 (10:06 +0200)
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: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20220601092311.22648-9-patrik.r.jakobsson@gmail.com
drivers/gpu/drm/gma500/cdv_intel_lvds.c
drivers/gpu/drm/gma500/psb_intel_lvds.c

index 846ce15460300654a5045151b62a06615a278b8d..be6efcaaa3b3f2b3e2173bac715b58dafad6916b 100644 (file)
@@ -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;
index 1121bb155c5ea2981322e7a726ff0f5546450be9..7ee6c8ce103b86b0137dce14f6d87c569971e42a 100644 (file)
@@ -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;