diff options
author | Jonathan Gray <jsg@cvs.openbsd.org> | 2020-08-12 04:58:50 +0000 |
---|---|---|
committer | Jonathan Gray <jsg@cvs.openbsd.org> | 2020-08-12 04:58:50 +0000 |
commit | 4c58285dda3f96098f8749bb7a1ae60428fb3572 (patch) | |
tree | 8fccce49db75dd20d2061fb71a6968c55fef8c29 /sys | |
parent | 5ce16db384b557d6495314b37ea1f15896ddc113 (diff) |
skip trying to read disabled bios on RV610
Reading the disabled bios on two Dell machines with RV610
passes initial checks but later fails atombios specific checks.
This occurs when running amd64 but not i386.
Returning early when reading the disabled bios will result in calling
radeon_read_platform_bios() and using the bios at 0xc0000 which works
for both systems this was reported for
semarie@ on Dell OptiPlex 755
RV610 0x1002:0x94C3 0x1028:0x0402 0x00
Andy Bradford on Dell DXP051
RV610 0x1002:0x94C1 0x1028:0x0D02 0x00
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/pci/drm/radeon/radeon_bios.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/dev/pci/drm/radeon/radeon_bios.c b/sys/dev/pci/drm/radeon/radeon_bios.c index 2e796527f4d..f0282c83240 100644 --- a/sys/dev/pci/drm/radeon/radeon_bios.c +++ b/sys/dev/pci/drm/radeon/radeon_bios.c @@ -523,6 +523,16 @@ static bool r600_read_disabled_bios(struct radeon_device *rdev) uint32_t ctxsw_vid_lower_gpio_cntl; uint32_t lower_gpio_enable; bool r; + + /* + * Some machines with RV610 running amd64 pass initial checks but later + * fail atombios specific checks. Return early here so the bios will be + * read from 0xc0000 in radeon_read_platform_bios() instead. + * RV610 0x1002:0x94C3 0x1028:0x0402 0x00 + * RV610 0x1002:0x94C1 0x1028:0x0D02 0x00 + */ + if (rdev->family == CHIP_RV610) + return false; viph_control = RREG32(RADEON_VIPH_CONTROL); bus_cntl = RREG32(R600_BUS_CNTL); |