[PATCH] drm/radeon/kms: fix tv dac conflict resolver

Alex Deucher alexdeucher at gmail.com
Tue Apr 27 15:11:20 PDT 2010


On Tue, Apr 27, 2010 at 5:30 PM, GhePeU <ghepeu at virgilio.it> wrote:
> Il giorno gio, 15/04/2010 alle 13.41 -0400, Alex Deucher ha scritto:
>> >From 837feb147c531219c7315857a6f17e145af8f750 Mon Sep 17 00:00:00 2001
>> From: Alex Deucher <alexdeucher at gmail.com>
>> Date: Thu, 15 Apr 2010 13:31:12 -0400
>> Subject: [PATCH] drm/radeon/kms: fix tv dac conflict resolver
>>
>> On systems with the tv dac shared between DVI and TV,
>> we can only use the dac for one of the connectors.
>> However, when using a digital monitor on the DVI port,
>> you can use the dac for the TV connector just fine.
>> Check the use_digital status when resolving the conflict.
>>
>> Fixes fdo bug 27649, possibly others.
>>
>> Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
>> Cc: stable <stable at kernel.org>
>
> [resending because I suspect something went wrong the first time, sorry if
> it's a duplicate]
>
> Hi,
>
> a few days ago I upgraded to the last 2.6.34 rc kernel and found that with
> KMS both the console and X were using a 800x600 resolution instead of my LCD
> display's native resolution of 1440x900 who was selected by default with
> 2.6.33 and previous kernels.
>
> 1440x900 also disappeared from the available resolution listed by GNOME
> display utility, and I could enable it again only with the xrandr
> command line tool.

That's apparently a bug in the gnome display utility.  xrandr shows
all the appropriate modes.

>
> I tracked the problem to this patch, which causes the same issues also
> when manually applied to 2.6.33: apparently the kms radeon driver
> wrongly detects a TV connected to my card (I don't have one, only a LCD
> display connected to the DVI port) and forces the TV default resolution
> for all the outputs.

You issue is not related to the patch.  What the patch does is allow
you to use the digital part of DVI plus TV at the same time.  The
analog part of the DVI port and the TV share the same DAC so they
can't be used at the same time.  Prior to the patch, both the TV and
DVI were detected as attached, but the TV was always disabled since it
was wrongly seen as conflicting with the DVI.

Your issue is actually a matter of load detection for TV not always
being reliable.  I don't know what a proper fix would be.  We could
disable load detection for TV to avoid false positives, but that would
prevent automatic detection of TV which does work in most cases.

Alex

>
> Attached to the email the xrandr output I get with 2.6.33 and 2.6.34 and
> pasted after the actual text are the relevant portions of the dmesg output
> of 2.6.34. I'm using a Radeon RV370 card. Please tell me if you need
> other information.
>
> Best regards,
>
> Giacomo
>
>
> dmesg:
>
> [drm] Initialized drm 1.1.0 20060810
> [drm] radeon kernel modesetting enabled.
> [drm] initializing kernel modesetting (RV380 0x1002:0x5B63).
> [drm] register mmio base: 0xFD7F0000
> [drm] register mmio size: 65536
> [drm] GPU reset succeed (RBBM_STATUS=0x00000140)
> [drm] 1 Power State(s)
> [drm] State 0 Default (default)
> [drm]   16 PCIE Lanes
> [drm]   1 Clock Mode(s)
> [drm]           0 engine/memory: 400000/250000
> [drm] radeon: power management initialized
> [drm] Generation 2 PCI interface, using max accessible memory
> [drm] radeon: using MSI.
> [drm] radeon: irq initialized.
> [drm] Detected VRAM RAM=256M, BAR=256M
> [drm] RAM width 128bits DDR
> [TTM] Zone  kernel: Available graphics memory: 1030236 kiB.
> [drm] radeon: 256M of VRAM memory ready
> [drm] radeon: 512M of GTT memory ready.
> [drm] GART: num cpu pages 131072, num gpu pages 131072
> [drm] radeon: 1 quad pipes, 1 Z pipes initialized.
> [drm] PCIE GART of 512M enabled (table at 0xD0040000).
> [drm] radeon: cp idle (0x10000C03)
> [drm] Loading R300 Microcode
> platform radeon_cp.0: firmware: requesting radeon/R300_cp.bin
> [drm] radeon: ring at 0x00000000B0000000
> [drm] ring test succeeded in 1 usecs
> [drm] radeon: ib pool ready.
> [drm] ib test succeeded in 0 usecs
> [drm] Default TV standard: NTSC
> [drm] 27.000000000 MHz TV ref clk
> [drm] DFP table revision: 4
> [drm] Default TV standard: NTSC
> [drm] 27.000000000 MHz TV ref clk
> [drm] Radeon Display Connectors
> [drm] Connector 0:
> [drm]   VGA
> [drm]   DDC: 0x60 0x60 0x60 0x60 0x60 0x60 0x60 0x60
> [drm]   Encoders:
> [drm]     CRT1: INTERNAL_DAC1
> [drm] Connector 1:
> [drm]   DVI-I
> [drm]   HPD1
> [drm]   DDC: 0x64 0x64 0x64 0x64 0x64 0x64 0x64 0x64
> [drm]   Encoders:
> [drm]     CRT2: INTERNAL_DAC2
> [drm]     DFP1: INTERNAL_TMDS1
> [drm] Connector 2:
> [drm]   S-video
> [drm]   Encoders:
> [drm]     TV1: INTERNAL_DAC2
> [drm] fb mappable at 0xD00C0000
> [drm] vram apper at 0xD0000000
> [drm] size 5184000
> [drm] fb depth is 24
> [drm]    pitch is 5760
> [drm] crtc 1 is connected to a TV
> Console: switching to colour frame buffer device 100x37
> fb0: radeondrmfb frame buffer device
> registered panic notifier
> [drm] Initialized radeon 2.3.0 20080528 for 0000:05:00.0 on minor 0
>
>
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
>


More information about the dri-devel mailing list