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

GhePeU ghepeu at virgilio.it
Tue Apr 27 14:30:07 PDT 2010


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.

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.

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


-------------- next part --------------
Screen 0: minimum 320 x 200, current 1440 x 900, maximum 1440 x 1440
VGA-0 disconnected (normal left inverted right x axis y axis)
DVI-0 connected 1440x900+0+0 (normal left inverted right x axis y axis) 410mm x 257mm
   1440x900       59.9*+   75.0     59.9  
   1280x1024      75.0     60.0  
   1280x960       60.0  
   1152x864       75.0  
   1024x768       75.0     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        75.0     72.8     66.7     59.9  
   720x400        70.1  
S-video disconnected (normal left inverted right x axis y axis)
Screen 0: minimum 320 x 200, current 1440 x 900, maximum 1440 x 1440
VGA-0 disconnected (normal left inverted right x axis y axis)
	Identifier: 0x52
	Timestamp:  36419
	Subpixel:   no subpixels
	Clones:     DVI-0
	CRTCs:      0 1
	Transform:  1.000000 0.000000 0.000000
	            0.000000 1.000000 0.000000
	            0.000000 0.000000 1.000000
	           filter: 
	load_detection: 1 (0x00000001)	range:  (0,1)
DVI-0 connected 1440x900+0+0 (0x55) normal (normal left inverted right x axis y axis) 410mm x 257mm
	Identifier: 0x53
	Timestamp:  36419
	Subpixel:   horizontal rgb
	Clones:     VGA-0
	CRTC:       0
	CRTCs:      0 1
	Transform:  1.000000 0.000000 0.000000
	            0.000000 1.000000 0.000000
	            0.000000 0.000000 1.000000
	           filter: 
	EDID:
		00ffffffffffff004c2de10339315754
		0212010380291a872ade95a3544c9926
		0f5054bfef809500950f81808140714f
		0101010101019a29a0d0518422305098
		36009a011100001c000000fd00384b1e
		510e000a202020202020000000fc0053
		796e634d61737465720a2020000000ff
		004831414b3530303030300a20200028
	dvi_monitor_type: auto
	scaler: off
	tmds_pll: bios
	load_detection: 0 (0x00000000)	range:  (0,1)
  1440x900 (0x55)  106.5MHz -HSync +VSync *current +preferred
        h: width  1440 start 1520 end 1672 total 1904 skew    0 clock   55.9KHz
        v: height  900 start  903 end  909 total  934           clock   59.9Hz
  1280x1024 (0x56)  135.0MHz +HSync +VSync
        h: width  1280 start 1296 end 1440 total 1688 skew    0 clock   80.0KHz
        v: height 1024 start 1025 end 1028 total 1066           clock   75.0Hz
  1280x1024 (0x57)  108.0MHz +HSync +VSync
        h: width  1280 start 1328 end 1440 total 1688 skew    0 clock   64.0KHz
        v: height 1024 start 1025 end 1028 total 1066           clock   60.0Hz
  1440x900 (0x58)  136.8MHz -HSync +VSync
        h: width  1440 start 1536 end 1688 total 1936 skew    0 clock   70.6KHz
        v: height  900 start  903 end  909 total  942           clock   75.0Hz
  1440x900 (0x59)   88.8MHz +HSync -VSync
        h: width  1440 start 1488 end 1520 total 1600 skew    0 clock   55.5KHz
        v: height  900 start  903 end  909 total  926           clock   59.9Hz
  1280x960 (0x5a)  108.0MHz +HSync +VSync
        h: width  1280 start 1376 end 1488 total 1800 skew    0 clock   60.0KHz
        v: height  960 start  961 end  964 total 1000           clock   60.0Hz
  1152x864 (0x5b)  108.0MHz +HSync +VSync
        h: width  1152 start 1216 end 1344 total 1600 skew    0 clock   67.5KHz
        v: height  864 start  865 end  868 total  900           clock   75.0Hz
  1024x768 (0x5c)   78.8MHz +HSync +VSync
        h: width  1024 start 1040 end 1136 total 1312 skew    0 clock   60.0KHz
        v: height  768 start  769 end  772 total  800           clock   75.0Hz
  1024x768 (0x5d)   75.0MHz -HSync -VSync
        h: width  1024 start 1048 end 1184 total 1328 skew    0 clock   56.5KHz
        v: height  768 start  771 end  777 total  806           clock   70.1Hz
  1024x768 (0x5e)   65.0MHz -HSync -VSync
        h: width  1024 start 1048 end 1184 total 1344 skew    0 clock   48.4KHz
        v: height  768 start  771 end  777 total  806           clock   60.0Hz
  832x624 (0x5f)   57.3MHz -HSync -VSync
        h: width   832 start  864 end  928 total 1152 skew    0 clock   49.7KHz
        v: height  624 start  625 end  628 total  667           clock   74.6Hz
  800x600 (0x60)   50.0MHz +HSync +VSync
        h: width   800 start  856 end  976 total 1040 skew    0 clock   48.1KHz
        v: height  600 start  637 end  643 total  666           clock   72.2Hz
  800x600 (0x61)   49.5MHz +HSync +VSync
        h: width   800 start  816 end  896 total 1056 skew    0 clock   46.9KHz
        v: height  600 start  601 end  604 total  625           clock   75.0Hz
  800x600 (0x62)   40.0MHz +HSync +VSync
        h: width   800 start  840 end  968 total 1056 skew    0 clock   37.9KHz
        v: height  600 start  601 end  605 total  628           clock   60.3Hz
  800x600 (0x63)   36.0MHz +HSync +VSync
        h: width   800 start  824 end  896 total 1024 skew    0 clock   35.2KHz
        v: height  600 start  601 end  603 total  625           clock   56.2Hz
  640x480 (0x64)   31.5MHz -HSync -VSync
        h: width   640 start  656 end  720 total  840 skew    0 clock   37.5KHz
        v: height  480 start  481 end  484 total  500           clock   75.0Hz
  640x480 (0x65)   31.5MHz -HSync -VSync
        h: width   640 start  664 end  704 total  832 skew    0 clock   37.9KHz
        v: height  480 start  489 end  492 total  520           clock   72.8Hz
  640x480 (0x66)   30.2MHz -HSync -VSync
        h: width   640 start  704 end  768 total  864 skew    0 clock   35.0KHz
        v: height  480 start  483 end  486 total  525           clock   66.7Hz
  640x480 (0x67)   25.2MHz -HSync -VSync
        h: width   640 start  656 end  752 total  800 skew    0 clock   31.5KHz
        v: height  480 start  490 end  492 total  525           clock   59.9Hz
  720x400 (0x68)   28.3MHz -HSync +VSync
        h: width   720 start  738 end  846 total  900 skew    0 clock   31.5KHz
        v: height  400 start  412 end  414 total  449           clock   70.1Hz
S-video disconnected (normal left inverted right x axis y axis)
	Identifier: 0x54
	Timestamp:  36419
	Subpixel:   no subpixels
	Clones:    
	CRTCs:      0 1
	Transform:  1.000000 0.000000 0.000000
	            0.000000 1.000000 0.000000
	            0.000000 0.000000 1.000000
	           filter: 
	tv_standard: pal
	tv_vertical_position: 0 (0x00000000)	range:  (-5,5)
	tv_horizontal_position: 0 (0x00000000)	range:  (-5,5)
	tv_horizontal_size: 0 (0x00000000)	range:  (-5,5)
	load_detection: 0 (0x00000000)	range:  (0,1)
-------------- next part --------------
Screen 0: minimum 320 x 200, current 800 x 600, maximum 4096 x 4096
VGA-0 disconnected (normal left inverted right x axis y axis)
DVI-0 connected 800x600+0+0 (normal left inverted right x axis y axis) 410mm x 257mm
   1440x900       59.9 +   75.0  
   1280x1024      75.0     60.0  
   1280x960       60.0  
   1152x864       75.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2* 
   640x480        72.8     75.0     66.7     60.0  
   720x400        70.1  
S-video connected 800x600+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   800x600        59.9*+
   640x480        59.9  
Screen 0: minimum 320 x 200, current 800 x 600, maximum 4096 x 4096
VGA-0 disconnected (normal left inverted right x axis y axis)
	Identifier: 0x51
	Timestamp:  13020
	Subpixel:   no subpixels
	Clones:     DVI-0
	CRTCs:      0 1
	Transform:  1.000000 0.000000 0.000000
	            0.000000 1.000000 0.000000
	            0.000000 0.000000 1.000000
	           filter: 
	load detection: 1 (0x00000001)	range:  (0,1)
DVI-0 connected 800x600+0+0 (0x61) normal (normal left inverted right x axis y axis) 410mm x 257mm
	Identifier: 0x52
	Timestamp:  13020
	Subpixel:   horizontal rgb
	Clones:     VGA-0
	CRTC:       0
	CRTCs:      0 1
	Transform:  1.000000 0.000000 0.000000
	            0.000000 1.000000 0.000000
	            0.000000 0.000000 1.000000
	           filter: 
	EDID:
		00ffffffffffff004c2de10339315754
		0212010380291a872ade95a3544c9926
		0f5054bfef809500950f81808140714f
		0101010101019a29a0d0518422305098
		36009a011100001c000000fd00384b1e
		510e000a202020202020000000fc0053
		796e634d61737465720a2020000000ff
		004831414b3530303030300a20200028
	load detection: 1 (0x00000001)	range:  (0,1)
  1440x900 (0x54)  106.5MHz -HSync +VSync +preferred
        h: width  1440 start 1520 end 1672 total 1904 skew    0 clock   55.9KHz
        v: height  900 start  903 end  909 total  934           clock   59.9Hz
  1280x1024 (0x55)  135.0MHz +HSync +VSync
        h: width  1280 start 1296 end 1440 total 1688 skew    0 clock   80.0KHz
        v: height 1024 start 1025 end 1028 total 1066           clock   75.0Hz
  1280x1024 (0x56)  108.0MHz +HSync +VSync
        h: width  1280 start 1328 end 1440 total 1688 skew    0 clock   64.0KHz
        v: height 1024 start 1025 end 1028 total 1066           clock   60.0Hz
  1440x900 (0x57)  136.8MHz -HSync +VSync
        h: width  1440 start 1536 end 1688 total 1936 skew    0 clock   70.6KHz
        v: height  900 start  903 end  909 total  942           clock   75.0Hz
  1280x960 (0x58)  108.0MHz +HSync +VSync
        h: width  1280 start 1376 end 1488 total 1800 skew    0 clock   60.0KHz
        v: height  960 start  961 end  964 total 1000           clock   60.0Hz
  1152x864 (0x59)  108.0MHz +HSync +VSync
        h: width  1152 start 1216 end 1344 total 1600 skew    0 clock   67.5KHz
        v: height  864 start  865 end  868 total  900           clock   75.0Hz
  1024x768 (0x5a)   78.8MHz +HSync +VSync
        h: width  1024 start 1040 end 1136 total 1312 skew    0 clock   60.1KHz
        v: height  768 start  769 end  772 total  800           clock   75.1Hz
  1024x768 (0x5b)   75.0MHz -HSync -VSync
        h: width  1024 start 1048 end 1184 total 1328 skew    0 clock   56.5KHz
        v: height  768 start  771 end  777 total  806           clock   70.1Hz
  1024x768 (0x5c)   65.0MHz -HSync -VSync
        h: width  1024 start 1048 end 1184 total 1344 skew    0 clock   48.4KHz
        v: height  768 start  771 end  777 total  806           clock   60.0Hz
  832x624 (0x5d)   57.3MHz -HSync -VSync
        h: width   832 start  864 end  928 total 1152 skew    0 clock   49.7KHz
        v: height  624 start  625 end  628 total  667           clock   74.6Hz
  800x600 (0x5e)   50.0MHz +HSync +VSync
        h: width   800 start  856 end  976 total 1040 skew    0 clock   48.1KHz
        v: height  600 start  637 end  643 total  666           clock   72.2Hz
  800x600 (0x5f)   49.5MHz +HSync +VSync
        h: width   800 start  816 end  896 total 1056 skew    0 clock   46.9KHz
        v: height  600 start  601 end  604 total  625           clock   75.0Hz
  800x600 (0x60)   40.0MHz +HSync +VSync
        h: width   800 start  840 end  968 total 1056 skew    0 clock   37.9KHz
        v: height  600 start  601 end  605 total  628           clock   60.3Hz
  800x600 (0x61)   36.0MHz +HSync +VSync *current
        h: width   800 start  824 end  896 total 1024 skew    0 clock   35.2KHz
        v: height  600 start  601 end  603 total  625           clock   56.2Hz
  640x480 (0x62)   31.5MHz -HSync -VSync
        h: width   640 start  664 end  704 total  832 skew    0 clock   37.9KHz
        v: height  480 start  489 end  491 total  520           clock   72.8Hz
  640x480 (0x63)   31.5MHz -HSync -VSync
        h: width   640 start  656 end  720 total  840 skew    0 clock   37.5KHz
        v: height  480 start  481 end  484 total  500           clock   75.0Hz
  640x480 (0x64)   30.2MHz -HSync -VSync
        h: width   640 start  704 end  768 total  864 skew    0 clock   35.0KHz
        v: height  480 start  483 end  486 total  525           clock   66.7Hz
  640x480 (0x65)   25.2MHz -HSync -VSync
        h: width   640 start  656 end  752 total  800 skew    0 clock   31.5KHz
        v: height  480 start  490 end  492 total  525           clock   60.0Hz
  720x400 (0x66)   28.3MHz -HSync +VSync
        h: width   720 start  738 end  846 total  900 skew    0 clock   31.5KHz
        v: height  400 start  412 end  414 total  449           clock   70.1Hz
S-video connected 800x600+0+0 (0x67) normal (normal left inverted right x axis y axis) 0mm x 0mm
	Identifier: 0x53
	Timestamp:  13020
	Subpixel:   no subpixels
	Clones:    
	CRTC:       1
	CRTCs:      0 1
	Transform:  1.000000 0.000000 0.000000
	            0.000000 1.000000 0.000000
	            0.000000 0.000000 1.000000
	           filter: 
	tv standard:	ntsc
		supported: ntsc         pal          pal-m        pal-60      
		           ntsc-j       scart-pal    pal-cn       secam       
	load detection: 1 (0x00000001)	range:  (0,1)
  800x600 (0x67)   38.2MHz -HSync +VSync *current +preferred
        h: width   800 start  832 end  912 total 1024 skew    0 clock   37.4KHz
        v: height  600 start  603 end  607 total  624           clock   59.9Hz
  640x480 (0x68)   25.2MHz -HSync -VSync
        h: width   640 start  656 end  752 total  800 skew    0 clock   31.5KHz
        v: height  480 start  490 end  492 total  525           clock   59.9Hz


More information about the dri-devel mailing list