Message ID | 1304244990-3998-1-git-send-email-airlied@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, May 2, 2011 at 4:26 AM, Alex Deucher <alexdeucher@gmail.com> wrote: > On Sun, May 1, 2011 at 6:16 AM, Dave Airlie <airlied@gmail.com> wrote: >> From: Dave Airlie <airlied@redhat.com> >> >> Since fafcf94e2b5732d1e13b440291c53115d2b172e9 introduced an edid size, it seems to have broken this path. >> >> This manifest as oops on T500 Lenovo laptops with dual graphics primarily. >> >> Should fix: https://bugzilla.kernel.org/show_bug.cgi?id=33812 >> >> Signed-off-by: Dave Airlie <airlied@redhat.com> >> cc: stable@kernel.org > > Reviewed-by: Alex Deucher <alexdeucher@gmail.com> > > Although, I think there may be a problem with the mux switching since > we shouldn't hit the hardcoded EDID unless DDC fails. I've avoided having to do a MUX switch for DDC so far since I've no idea how to enumerate what the MUX is attached to properly. The good thing is the table has worked fine up until now. Dave.
On Sun, May 1, 2011 at 5:03 PM, Dave Airlie <airlied@gmail.com> wrote: > On Mon, May 2, 2011 at 4:26 AM, Alex Deucher <alexdeucher@gmail.com> wrote: >> On Sun, May 1, 2011 at 6:16 AM, Dave Airlie <airlied@gmail.com> wrote: >>> From: Dave Airlie <airlied@redhat.com> >>> >>> Since fafcf94e2b5732d1e13b440291c53115d2b172e9 introduced an edid size, it seems to have broken this path. >>> >>> This manifest as oops on T500 Lenovo laptops with dual graphics primarily. >>> >>> Should fix: https://bugzilla.kernel.org/show_bug.cgi?id=33812 >>> >>> Signed-off-by: Dave Airlie <airlied@redhat.com> >>> cc: stable@kernel.org >> >> Reviewed-by: Alex Deucher <alexdeucher@gmail.com> >> >> Although, I think there may be a problem with the mux switching since >> we shouldn't hit the hardcoded EDID unless DDC fails. > > I've avoided having to do a MUX switch for DDC so far since I've no > idea how to enumerate what the MUX is attached to properly. Ah ok. That would explain the bugs where VGA/DVI ddc doesn't work you switch gfx. Alex > > The good thing is the table has worked fine up until now. > > Dave. >
diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c index f5d12fb..f116516 100644 --- a/drivers/gpu/drm/radeon/radeon_atombios.c +++ b/drivers/gpu/drm/radeon/radeon_atombios.c @@ -1599,9 +1599,10 @@ struct radeon_encoder_atom_dig *radeon_atombios_get_lvds_info(struct memcpy((u8 *)edid, (u8 *)&fake_edid_record->ucFakeEDIDString[0], fake_edid_record->ucFakeEDIDLength); - if (drm_edid_is_valid(edid)) + if (drm_edid_is_valid(edid)) { rdev->mode_info.bios_hardcoded_edid = edid; - else + rdev->mode_info.bios_hardcoded_edid_size = edid_size; + } else kfree(edid); } }