From 837feb147c531219c7315857a6f17e145af8f750 Mon Sep 17 00:00:00 2001
From: Alex Deucher alexdeucher@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@gmail.com Cc: stable stable@kernel.org --- drivers/gpu/drm/radeon/radeon_connectors.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index 5c5776d..c489346 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c @@ -162,12 +162,14 @@ radeon_connector_analog_encoder_conflict_solve(struct drm_connector *connector, { struct drm_device *dev = connector->dev; struct drm_connector *conflict; + struct radeon_connector *radeon_conflict; int i;
list_for_each_entry(conflict, &dev->mode_config.connector_list, head) { if (conflict == connector) continue;
+ radeon_conflict = to_radeon_connector(conflict); for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) { if (conflict->encoder_ids[i] == 0) break; @@ -177,6 +179,9 @@ radeon_connector_analog_encoder_conflict_solve(struct drm_connector *connector, if (conflict->status != connector_status_connected) continue;
+ if (radeon_conflict->use_digital) + continue; + if (priority == true) { DRM_INFO("1: conflicting encoders switching off %s\n", drm_get_connector_name(conflict)); DRM_INFO("in favor of %s\n", drm_get_connector_name(connector));
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@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@gmail.com Cc: stable stable@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
On Tue, Apr 27, 2010 at 5:30 PM, GhePeU ghepeu@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@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@gmail.com Cc: stable stable@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@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
Il giorno mar, 27/04/2010 alle 18.11 -0400, Alex Deucher ha scritto:
On Tue, Apr 27, 2010 at 5:30 PM, GhePeU ghepeu@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@gmail.com Date: Thu, 15 Apr 2010 13:31:12 -0400 Subject: [PATCH] drm/radeon/kms: fix tv dac conflict resolver
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.
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
With UMS however I don't have this problem, is the logic different?
Shouldn't the driver behavior with KMS be the same, in this case? At least there wouldn't be (apparent) regressions like the one I'm experiencing.
Giacomo
On Tue, Apr 27, 2010 at 6:24 PM, GhePeU ghepeu@virgilio.it wrote:
Il giorno mar, 27/04/2010 alle 18.11 -0400, Alex Deucher ha scritto:
On Tue, Apr 27, 2010 at 5:30 PM, GhePeU ghepeu@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@gmail.com Date: Thu, 15 Apr 2010 13:31:12 -0400 Subject: [PATCH] drm/radeon/kms: fix tv dac conflict resolver
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.
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
With UMS however I don't have this problem, is the logic different?
Shouldn't the driver behavior with KMS be the same, in this case? At least there wouldn't be (apparent) regressions like the one I'm experiencing.
UMS does not enable load detection on TV by default while KMS does, the difference being KMS provides both the console and X so you want to make sure you put something up on whatever monitors or tvs happen to be attached. I'm not sure what the best answer is here.
Alex
Il giorno mar, 27/04/2010 alle 18.57 -0400, Alex Deucher ha scritto:
On Tue, Apr 27, 2010 at 6:24 PM, GhePeU ghepeu@virgilio.it wrote:
Il giorno mar, 27/04/2010 alle 18.11 -0400, Alex Deucher ha scritto:
On Tue, Apr 27, 2010 at 5:30 PM, GhePeU ghepeu@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@gmail.com Date: Thu, 15 Apr 2010 13:31:12 -0400 Subject: [PATCH] drm/radeon/kms: fix tv dac conflict resolver
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.
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
With UMS however I don't have this problem, is the logic different?
Shouldn't the driver behavior with KMS be the same, in this case? At least there wouldn't be (apparent) regressions like the one I'm experiencing.
UMS does not enable load detection on TV by default while KMS does, the difference being KMS provides both the console and X so you want to make sure you put something up on whatever monitors or tvs happen to be attached. I'm not sure what the best answer is here.
Alex
Would it be possible to add a module option to disable tv load detection? As things are now I must always change back the resolution to 1440x900 and disable the TV.
By the way I just tested "radeon.tv=0" and both 2.6.33 and 2.6.34 rc5 fail with a "BUG: unable to handle kernel NULL pointer dereference". Syslog output attached.
Giacomo
On Sat, May 1, 2010 at 10:42 PM, GhePeU ghepeu@virgilio.it wrote:
Il giorno mar, 27/04/2010 alle 18.57 -0400, Alex Deucher ha scritto:
On Tue, Apr 27, 2010 at 6:24 PM, GhePeU ghepeu@virgilio.it wrote:
Il giorno mar, 27/04/2010 alle 18.11 -0400, Alex Deucher ha scritto:
On Tue, Apr 27, 2010 at 5:30 PM, GhePeU ghepeu@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@gmail.com Date: Thu, 15 Apr 2010 13:31:12 -0400 Subject: [PATCH] drm/radeon/kms: fix tv dac conflict resolver
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.
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
With UMS however I don't have this problem, is the logic different?
Shouldn't the driver behavior with KMS be the same, in this case? At least there wouldn't be (apparent) regressions like the one I'm experiencing.
UMS does not enable load detection on TV by default while KMS does, the difference being KMS provides both the console and X so you want to make sure you put something up on whatever monitors or tvs happen to be attached. I'm not sure what the best answer is here.
Alex
Would it be possible to add a module option to disable tv load detection? As things are now I must always change back the resolution to 1440x900 and disable the TV.
try booting with video=TV-1:d
Dave.
Il giorno dom, 02/05/2010 alle 19.11 +1000, Dave Airlie ha scritto:
On Sat, May 1, 2010 at 10:42 PM, GhePeU ghepeu@virgilio.it wrote:
Il giorno mar, 27/04/2010 alle 18.57 -0400, Alex Deucher ha scritto:
On Tue, Apr 27, 2010 at 6:24 PM, GhePeU ghepeu@virgilio.it wrote:
Il giorno mar, 27/04/2010 alle 18.11 -0400, Alex Deucher ha scritto:
On Tue, Apr 27, 2010 at 5:30 PM, GhePeU ghepeu@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@gmail.com > Date: Thu, 15 Apr 2010 13:31:12 -0400 > Subject: [PATCH] drm/radeon/kms: fix tv dac conflict resolver
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.
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
With UMS however I don't have this problem, is the logic different?
Shouldn't the driver behavior with KMS be the same, in this case? At least there wouldn't be (apparent) regressions like the one I'm experiencing.
UMS does not enable load detection on TV by default while KMS does, the difference being KMS provides both the console and X so you want to make sure you put something up on whatever monitors or tvs happen to be attached. I'm not sure what the best answer is here.
Alex
Would it be possible to add a module option to disable tv load detection? As things are now I must always change back the resolution to 1440x900 and disable the TV.
try booting with video=TV-1:d
Dave.
Didn't work, both console and X started at 800x600.
Giacomo
On Sun, May 2, 2010 at 7:42 PM, GhePeU ghepeu@virgilio.it wrote:
Il giorno dom, 02/05/2010 alle 19.11 +1000, Dave Airlie ha scritto:
On Sat, May 1, 2010 at 10:42 PM, GhePeU ghepeu@virgilio.it wrote:
Il giorno mar, 27/04/2010 alle 18.57 -0400, Alex Deucher ha scritto:
On Tue, Apr 27, 2010 at 6:24 PM, GhePeU ghepeu@virgilio.it wrote:
Il giorno mar, 27/04/2010 alle 18.11 -0400, Alex Deucher ha scritto:
On Tue, Apr 27, 2010 at 5:30 PM, GhePeU ghepeu@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@gmail.com >> Date: Thu, 15 Apr 2010 13:31:12 -0400 >> Subject: [PATCH] drm/radeon/kms: fix tv dac conflict resolver > > 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. > > 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
With UMS however I don't have this problem, is the logic different?
Shouldn't the driver behavior with KMS be the same, in this case? At least there wouldn't be (apparent) regressions like the one I'm experiencing.
UMS does not enable load detection on TV by default while KMS does, the difference being KMS provides both the console and X so you want to make sure you put something up on whatever monitors or tvs happen to be attached. I'm not sure what the best answer is here.
Alex
Would it be possible to add a module option to disable tv load detection? As things are now I must always change back the resolution to 1440x900 and disable the TV.
try booting with video=TV-1:d
oh try video=DIN-1:d
or S-video-1:d, have a look in /sys/class/drm when booted for the correct one.
Dave.
Il giorno dom, 02/05/2010 alle 20.46 +1000, Dave Airlie ha scritto:
On Sun, May 2, 2010 at 7:42 PM, GhePeU ghepeu@virgilio.it wrote:
Il giorno dom, 02/05/2010 alle 19.11 +1000, Dave Airlie ha scritto:
On Sat, May 1, 2010 at 10:42 PM, GhePeU ghepeu@virgilio.it wrote:
Il giorno mar, 27/04/2010 alle 18.57 -0400, Alex Deucher ha scritto:
On Tue, Apr 27, 2010 at 6:24 PM, GhePeU ghepeu@virgilio.it wrote:
Il giorno mar, 27/04/2010 alle 18.11 -0400, Alex Deucher ha scritto: > On Tue, Apr 27, 2010 at 5:30 PM, GhePeU ghepeu@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@gmail.com > >> Date: Thu, 15 Apr 2010 13:31:12 -0400 > >> Subject: [PATCH] drm/radeon/kms: fix tv dac conflict resolver > > > > 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. > > > > 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 >
With UMS however I don't have this problem, is the logic different?
Shouldn't the driver behavior with KMS be the same, in this case? At least there wouldn't be (apparent) regressions like the one I'm experiencing.
UMS does not enable load detection on TV by default while KMS does, the difference being KMS provides both the console and X so you want to make sure you put something up on whatever monitors or tvs happen to be attached. I'm not sure what the best answer is here.
Alex
Would it be possible to add a module option to disable tv load detection? As things are now I must always change back the resolution to 1440x900 and disable the TV.
try booting with video=TV-1:d
oh try video=DIN-1:d
or S-video-1:d, have a look in /sys/class/drm when booted for the correct one.
Dave.
/sys/class/drm lists "card0-SVIDEO-1", dmesg has "S-video" and the encoder is "TV1". I booted with "video=SVIDEO-1:d", "video=S-video:d", "video=TV1:d" and finally "video=S-video-1:d" but none of them worked.
I'll look to the source code when I'll have the time.
Giacomo
Il giorno dom, 02/05/2010 alle 13.59 +0200, GhePeU ha scritto:
Il giorno dom, 02/05/2010 alle 20.46 +1000, Dave Airlie ha scritto:
On Sun, May 2, 2010 at 7:42 PM, GhePeU ghepeu@virgilio.it wrote:
Il giorno dom, 02/05/2010 alle 19.11 +1000, Dave Airlie ha scritto:
On Sat, May 1, 2010 at 10:42 PM, GhePeU ghepeu@virgilio.it wrote:
Would it be possible to add a module option to disable tv load detection? As things are now I must always change back the resolution to 1440x900 and disable the TV.
try booting with video=TV-1:d
oh try video=DIN-1:d
or S-video-1:d, have a look in /sys/class/drm when booted for the correct one.
Dave.
/sys/class/drm lists "card0-SVIDEO-1", dmesg has "S-video" and the encoder is "TV1". I booted with "video=SVIDEO-1:d", "video=S-video:d", "video=TV1:d" and finally "video=S-video-1:d" but none of them worked.
I'll look to the source code when I'll have the time.
Giacomo
Looking to radeon_connector.c I found that TV load detection had already been disabled for some other chipsets because it wasn't always reliable. I just added my card's family to the check (patch attached) and now my problem's gone.
Disabling TV detection for the entire family is probably overkill, just blacklisting my card (a Radeon Sapphire X550 Silent, 1002:5b63) would've been enough, is there another place where this quirk could be added?
Giacomo
dri-devel@lists.freedesktop.org