[Bug 29985] New: KMS TV Issue + Possible fix

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Sep 2 15:54:07 PDT 2010


https://bugs.freedesktop.org/show_bug.cgi?id=29985

           Summary: KMS TV Issue + Possible fix
           Product: Mesa
           Version: git
          Platform: x86 (IA32)
        OS/Version: Linux (All)
            Status: NEW
          Severity: normal
          Priority: medium
         Component: Drivers/DRI/R600
        AssignedTo: dri-devel at lists.freedesktop.org
        ReportedBy: lists at andyfurniss.entadsl.com


Running an rv790 I haven't used s-vid TV for a while so am a month late
noticing it had regressed on d-r-t.

Booting old kernels and then using git reset I found the guilty commit to be -

commit 5b1714d386a2f0c0d270e3abe1ac39ad1b0ba010
Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Tue Aug 3 19:59:20 2010 -0400

    drm/radeon/kms: enable underscan option for digital connectors

As it won't revert from d-r-t head I took a closer look and thought this bit to
be suspicious -

@@ -1176,10 +1170,8 @@ int atombios_crtc_mode_set(struct drm_crtc *crtc,
        atombios_crtc_set_pll(crtc, adjusted_mode);
        atombios_enable_ss(crtc);

-       if (ASIC_IS_DCE4(rdev))
+       if (ASIC_IS_AVIVO(rdev))
                atombios_set_crtc_dtd_timing(crtc, adjusted_mode);
-       else if (ASIC_IS_AVIVO(rdev))
-               atombios_crtc_set_timing(crtc, adjusted_mode);
        else {
                atombios_crtc_set_timing(crtc, adjusted_mode);
                if (radeon_crtc->crtc_id == 0)


So I edited by hand to swap back the atombios_crtc_set_timing for AVIVO and the
other one for the rest -

diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c
b/drivers/gpu/drm/radeon/atombios_crtc.c
index 577239a..40ca121 100644
--- a/drivers/gpu/drm/radeon/atombios_crtc.c
+++ b/drivers/gpu/drm/radeon/atombios_crtc.c
@@ -1208,9 +1208,9 @@ int atombios_crtc_mode_set(struct drm_crtc *crtc,
        atombios_enable_ss(crtc);

        if (ASIC_IS_AVIVO(rdev))
-               atombios_set_crtc_dtd_timing(crtc, adjusted_mode);
-       else {
                atombios_crtc_set_timing(crtc, adjusted_mode);
+       else {
+               atombios_set_crtc_dtd_timing(crtc, adjusted_mode);
                if (radeon_crtc->crtc_id == 0)
                        atombios_set_crtc_dtd_timing(crtc, adjusted_mode);
                radeon_legacy_atom_fixup(crtc);


and now have working TV again. I also tested turning on underscan on my DVI
monitor and it still works.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the dri-devel mailing list