drm/radeon/kms: set DMA mask properly on newer PCI asics
If a card wasn't PCIE, we always set the DMA mask to 32 bits. This is only applies to the old rage128/r1xx gart block on early radeon asics (~r1xx-r4xx). Newer PCI and IGP cards can handle 40 bits just fine. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: Chen Jie <chenj@lemote.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
c245cb9e15
commit
005a83f141
|
@ -750,14 +750,15 @@ int radeon_device_init(struct radeon_device *rdev,
|
|||
|
||||
/* set DMA mask + need_dma32 flags.
|
||||
* PCIE - can handle 40-bits.
|
||||
* IGP - can handle 40-bits (in theory)
|
||||
* IGP - can handle 40-bits
|
||||
* AGP - generally dma32 is safest
|
||||
* PCI - only dma32
|
||||
* PCI - dma32 for legacy pci gart, 40 bits on newer asics
|
||||
*/
|
||||
rdev->need_dma32 = false;
|
||||
if (rdev->flags & RADEON_IS_AGP)
|
||||
rdev->need_dma32 = true;
|
||||
if (rdev->flags & RADEON_IS_PCI)
|
||||
if ((rdev->flags & RADEON_IS_PCI) &&
|
||||
(rdev->family < CHIP_RS400))
|
||||
rdev->need_dma32 = true;
|
||||
|
||||
dma_bits = rdev->need_dma32 ? 32 : 40;
|
||||
|
|
Loading…
Reference in New Issue