Another card with wrong primary dac adj
Subsystems (2)
PATCH 1/1 Another card with wrong primary dac adj
Hello,
got another card with "too bright" problem:
Sapphire Radeon VE 7000 DDR (VGA+S-Video)
lspci -vnn:
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices [AMD] nee ATI RV100 QY [Radeon 7000/VE] [1002:5159] (prog-if 00 [VGA controller])
Subsystem: PC Partner Limited Sapphire Radeon VE 7000 DDR [174b:7c28]
The patch below fixes the problem for this card.
But I don't like the blacklist, couldn't some heuristic be used instead? The interesting thing is that the manufacturer is the same as the other card needing the same quirk. I wonder how many different types are broken this way.
The "wrong" ps2_pdac_adj value that comes from BIOS on this card is 0x300.
====================
drm/radeon: Add primary dac adj quirk for Sapphire Radeon VE 7000 DDR
Values from BIOS are wrong, causing too bright colors. Use default values instead.
--- drivers/gpu/drm/radeon/radeon_combios.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
drivers/gpu/drm/radeon/radeon_combios.c +6 -2
@@ -971,10 +971,14 @@ struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct }/* quirks */ +/* Radeon 7000 (RV100) */ +if (((dev->pdev->device ==0x5159 ) && + (dev->pdev->subsystem_vendor ==0x174B ) && + (dev->pdev->subsystem_device ==0x7c28 )) ||/* Radeon 9100 (R200) */ -if ((dev->pdev->device ==0x514D ) && + ((dev->pdev->device ==0x514D ) && (dev->pdev->subsystem_vendor ==0x174B ) && - (dev->pdev->subsystem_device ==0x7149 )) { + (dev->pdev->subsystem_device ==0x7149 ))) {/* vbios value is bad, use the default */ found =0 ; }
Signature · 1 line
Ondrej Zary
Alex Deucher
AppliedQuoted 9 lines · Ondrej Zary
Hello,
got another card with "too bright" problem:
Sapphire Radeon VE 7000 DDR (VGA+S-Video)lspci -vnn:
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices [AMD] nee ATI RV100 QY [Radeon 7000/VE] [1002:5159] (prog-if 00 [VGA controller])
Subsystem: PC Partner Limited Sapphire Radeon VE 7000 DDR [174b:7c28]The patch below fixes the problem for this card.
Applied.
Quoted 1 line
But I don't like the blacklist, couldn't some heuristic be used instead?
How about the attached patch?
Quoted 2 lines
The interesting thing is that the manufacturer is the same as the other card needing the same quirk. I wonder how many different types are broken this way.
So far we only have two quirks, so it doesn't seem that widespread.
Alex
Quoted 36 lines
The "wrong"
ps2_pdac_adjvalue that comes from BIOS on this card is0x300.====================
drm/radeon: Add primary dac adj quirk for Sapphire Radeon VE 7000 DDRValues from BIOS are wrong, causing too bright colors. Use default values instead.
Signed-off-by Ondrej Zary <[email protected]>--- drivers/gpu/drm/radeon/radeon_combios.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)drivers/gpu/drm/radeon/radeon_combios.c +6
-3@@ -971,10 +971,14 @@ struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct }/* quirks */ +/* Radeon 7000 (RV100) */ +if (((dev->pdev->device ==0x5159 ) && + (dev->pdev->subsystem_vendor ==0x174B ) && + (dev->pdev->subsystem_device ==0x7c28 )) ||/* Radeon 9100 (R200) */ -if ((dev->pdev->device ==0x514D ) && + ((dev->pdev->device ==0x514D ) && (dev->pdev->subsystem_vendor ==0x174B ) && - (dev->pdev->subsystem_device ==0x7149 )) { + (dev->pdev->subsystem_device ==0x7149 ))) {/* vbios value is bad, use the default */ found =0 ; } --
Quoted 5 lines
Ondrej Zary
_______________________________________________
dri-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dri-devel
From 6ca68e557791c540200c67c09dfc6ad4a277017c Mon Sep 17 00:00:00 2001
From: Alex Deucher <[email protected]>
Date: Fri, 19 Jul 2013 17:44:43 -0400
Subject: [PATCH] drm/radeon: improve dac adjust heuristics for legacy pdac
Hopefully avoid more quirks in the future due to bogus vbios dac data.
--- drivers/gpu/drm/radeon/radeon_combios.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-)
drivers/gpu/drm/radeon/radeon_combios.c +4 -2
@@ -965,8 +965,10 @@ struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct dac =RBIOS8 (dac_info +0x3 ) &0xf ; p_dac->ps2_pdac_adj = (bg <<8 ) | (dac); } -/* if the values are all zeros, use the table */ -if (p_dac->ps2_pdac_adj) +/* if the values are zeros, use the table */ +if ((dac ==0 ) || (bg ==0 )) + found =0 ; +else found =1 ; }
Signature · 1 line
1.7.7.5
_______________________________________________
dri-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dri-devel
Quoted 1 line · On Friday 19 July 2013 23:50:50 Alex Deucher wrote:
On Fri, Jul 19, 2013 at 3:08 PM, Ondrej Zary <[email protected]>
Quoted 10 lines · wrote:
Quoted 10 lines
Hello,
got another card with "too bright" problem:
Sapphire Radeon VE 7000 DDR (VGA+S-Video)lspci -vnn:
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices [AMD] nee ATI RV100 QY [Radeon 7000/VE] [1002:5159] (prog-if 00 [VGA controller]) Subsystem: PC Partner Limited Sapphire Radeon VE 7000 DDR [174b:7c28]
Quoted 7 lines
Quoted 1 line
The patch below fixes the problem for this card.
Applied.
Quoted 1 line
But I don't like the blacklist, couldn't some heuristic be used instead?
How about the attached patch?
Thanks, it fixes my card without the quirk. So if it does not break anything, it can be used instead of my patch.
Quoted 49 lines
Quoted 3 lines
The interesting thing is that the manufacturer is the same as the other card needing the same quirk. I wonder how many different types are broken this way.
So far we only have two quirks, so it doesn't seem that widespread.
Alex
Quoted 41 lines
The "wrong"
ps2_pdac_adjvalue that comes from BIOS on this card is0x300.====================
drm/radeon: Add primary dac adj quirk for Sapphire Radeon VE 7000 DDRValues from BIOS are wrong, causing too bright colors. Use default values instead.
Signed-off-by Ondrej Zary <[email protected]>--- drivers/gpu/drm/radeon/radeon_combios.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)(quoted diff) +0
-0
b/drivers/gpu/drm/radeon/radeon_combios.cindex 78edadc..8528b81 100644drivers/gpu/drm/radeon/radeon_combios.c +6
-3@@ -971,10 +971,14 @@ struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct } /* quirks */ + /* Radeon 7000 (RV100) */ + if (((dev->pdev->device == 0x5159) && + (dev->pdev->subsystem_vendor ==0x174B ) && + (dev->pdev->subsystem_device ==0x7c28 )) ||/* Radeon 9100 (R200) */ - if ((dev->pdev->device == 0x514D) && + ((dev->pdev->device ==0x514D ) && (dev->pdev->subsystem_vendor ==0x174B ) && - (dev->pdev->subsystem_device == 0x7149)) { + (dev->pdev->subsystem_device == 0x7149))) { /* vbios value is bad, use the default */ found = 0; } --Ondrej Zary
_______________________________________________
dri-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dri-devel
Signature · 1 line
Ondrej Zary