Skip to content

Commit f4e7403

Browse files
valpackettjohalun
authored andcommitted
Enable Message Signaled Interrupts (MSI) (#163)
This fixes ridiculous interrupt rate on aarch64, was enabled in the legacy in-tree drm port, and is a good idea in general.
1 parent 2ada4e8 commit f4e7403

File tree

3 files changed

+10
-8
lines changed

3 files changed

+10
-8
lines changed

drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@
4242
#endif
4343

4444
#define AMDGPU_WAIT_IDLE_TIMEOUT 200
45-
#define pci_enable_msi linux_pci_enable_msi
46-
#define pci_disable_msi linux_pci_disable_msi
4745

4846
/*
4947
* Handle hotplug events outside the interrupt handler proper.
@@ -231,7 +229,7 @@ int amdgpu_irq_init(struct amdgpu_device *adev)
231229
adev->irq.msi_enabled = false;
232230

233231
if (amdgpu_msi_ok(adev)) {
234-
#ifdef __linux__
232+
#if defined(__linux__) || defined(pci_enable_msi)
235233
int ret = pci_enable_msi(adev->pdev);
236234
if (!ret) {
237235
adev->irq.msi_enabled = true;
@@ -285,7 +283,7 @@ void amdgpu_irq_fini(struct amdgpu_device *adev)
285283
if (adev->irq.installed) {
286284
drm_irq_uninstall(adev->ddev);
287285
adev->irq.installed = false;
288-
#ifdef __linux__
286+
#if defined(__linux__) || defined(pci_disable_msi)
289287
if (adev->irq.msi_enabled)
290288
pci_disable_msi(adev->pdev);
291289
#endif

drivers/gpu/drm/i915/i915_drv.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1241,7 +1241,7 @@ static int i915_driver_init_hw(struct drm_i915_private *dev_priv)
12411241

12421242
i915_gem_load_init_fences(dev_priv);
12431243

1244-
#ifdef __linux__
1244+
#if defined(__linux__) || defined(pci_enable_msi)
12451245
/* On the 945G/GM, the chipset reports the MSI capability on the
12461246
* integrated graphics even though the support isn't actually there
12471247
* according to the published specs. It doesn't appear to function
@@ -1279,11 +1279,15 @@ static int i915_driver_init_hw(struct drm_i915_private *dev_priv)
12791279
*/
12801280
static void i915_driver_cleanup_hw(struct drm_i915_private *dev_priv)
12811281
{
1282-
#ifdef __linux__
1282+
#if defined(__linux__) || defined(pci_disable_msi)
12831283
struct pci_dev *pdev = dev_priv->drm.pdev;
1284+
#endif
12841285

1286+
#ifdef CONFIG_I915_PERF
12851287
i915_perf_fini(dev_priv);
1288+
#endif
12861289

1290+
#if defined(__linux__) || defined(pci_disable_msi)
12871291
if (pdev->msi_enabled)
12881292
pci_disable_msi(pdev);
12891293
#endif

drivers/gpu/drm/radeon/radeon_irq_kms.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ int radeon_irq_kms_init(struct radeon_device *rdev)
298298
rdev->msi_enabled = 0;
299299

300300
if (radeon_msi_ok(rdev)) {
301-
#ifdef __linux__
301+
#if defined(__linux__) || defined(pci_enable_msi)
302302
int ret = pci_enable_msi(rdev->pdev);
303303
if (!ret) {
304304
rdev->msi_enabled = 1;
@@ -335,7 +335,7 @@ void radeon_irq_kms_fini(struct radeon_device *rdev)
335335
if (rdev->irq.installed) {
336336
drm_irq_uninstall(rdev->ddev);
337337
rdev->irq.installed = false;
338-
#ifdef __linux__
338+
#if defined(__linux__) || defined(pci_disable_msi)
339339
if (rdev->msi_enabled)
340340
pci_disable_msi(rdev->pdev);
341341
#endif

0 commit comments

Comments
 (0)