|
@@ -185,6 +185,16 @@ static bool radeon_msi_ok(struct radeon_device *rdev)
|
|
|
if (rdev->flags & RADEON_IS_AGP)
|
|
|
return false;
|
|
|
|
|
|
+ /*
|
|
|
+ * Older chips have a HW limitation, they can only generate 40 bits
|
|
|
+ * of address for "64-bit" MSIs which breaks on some platforms, notably
|
|
|
+ * IBM POWER servers, so we limit them
|
|
|
+ */
|
|
|
+ if (rdev->family < CHIP_BONAIRE) {
|
|
|
+ dev_info(rdev->dev, "radeon: MSI limited to 32-bit\n");
|
|
|
+ rdev->pdev->no_64bit_msi = 1;
|
|
|
+ }
|
|
|
+
|
|
|
/* force MSI on */
|
|
|
if (radeon_msi == 1)
|
|
|
return true;
|