gma500: skip getting modes via DDC on Moorestown
authorOctavian Purdila <octavian.purdila@intel.com>
Fri, 15 Jul 2011 16:34:15 +0000 (17:34 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 15 Jul 2011 17:05:07 +0000 (19:05 +0200)
Moorestown does not have a DDC bus, skip getting modes via DDC. This
fixes the following bug:

BUG: unable to handle kernel NULL pointer dereference at 00000010
IP: [<c1172ff7>] i2c_transfer+0x17/0xb0
*pde = 00000000
Oops: 0000 [#1]

Call Trace:
 [<c1153ae9>] drm_do_probe_ddc_edid+0x59/0x90
 [<c1153cb4>] drm_get_edid+0x24/0x250
 [<c11805d2>] psb_intel_ddc_get_modes+0x22/0x60
 [<c117fe11>] psb_intel_lvds_get_modes+0x21/0x80

Signed-off-by: Octavian Purdila <octavian.purdila@intel.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/gma500/psb_intel_lvds.c

index da6f5c8..53803b2 100644 (file)
@@ -521,7 +521,8 @@ static int psb_intel_lvds_get_modes(struct drm_connector *connector)
                                        psb_intel_output->mode_dev;
        int ret = 0;
 
-       ret = psb_intel_ddc_get_modes(psb_intel_output);
+       if (!IS_MRST(dev))
+               ret = psb_intel_ddc_get_modes(psb_intel_output);
 
        if (ret)
                return ret;