]>
Commit | Line | Data |
---|---|---|
f57f51d4 GKH |
1 | From b7f5b7dec3d539a84734f2bcb7e53fbb1532a40b Mon Sep 17 00:00:00 2001 |
2 | From: Alex Deucher <alexander.deucher@amd.com> | |
3 | Date: Mon, 13 Feb 2012 16:36:34 -0500 | |
4 | Subject: drm/radeon/kms: fix MSI re-arm on rv370+ | |
5 | ||
6 | From: Alex Deucher <alexander.deucher@amd.com> | |
7 | ||
8 | commit b7f5b7dec3d539a84734f2bcb7e53fbb1532a40b upstream. | |
9 | ||
10 | MSI_REARM_EN register is a write only trigger register. | |
11 | There is no need RMW when re-arming. | |
12 | ||
13 | May fix: | |
14 | https://bugs.freedesktop.org/show_bug.cgi?id=41668 | |
15 | ||
16 | Signed-off-by: Alex Deucher <alexander.deucher@amd.com> | |
17 | Signed-off-by: Dave Airlie <airlied@redhat.com> | |
18 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
19 | ||
20 | --- | |
21 | drivers/gpu/drm/radeon/r100.c | 4 +--- | |
22 | drivers/gpu/drm/radeon/rs600.c | 4 +--- | |
23 | 2 files changed, 2 insertions(+), 6 deletions(-) | |
24 | ||
25 | --- a/drivers/gpu/drm/radeon/r100.c | |
26 | +++ b/drivers/gpu/drm/radeon/r100.c | |
27 | @@ -681,9 +681,7 @@ int r100_irq_process(struct radeon_devic | |
28 | WREG32(RADEON_AIC_CNTL, msi_rearm | RS400_MSI_REARM); | |
29 | break; | |
30 | default: | |
31 | - msi_rearm = RREG32(RADEON_MSI_REARM_EN) & ~RV370_MSI_REARM_EN; | |
32 | - WREG32(RADEON_MSI_REARM_EN, msi_rearm); | |
33 | - WREG32(RADEON_MSI_REARM_EN, msi_rearm | RV370_MSI_REARM_EN); | |
34 | + WREG32(RADEON_MSI_REARM_EN, RV370_MSI_REARM_EN); | |
35 | break; | |
36 | } | |
37 | } | |
38 | --- a/drivers/gpu/drm/radeon/rs600.c | |
39 | +++ b/drivers/gpu/drm/radeon/rs600.c | |
40 | @@ -698,9 +698,7 @@ int rs600_irq_process(struct radeon_devi | |
41 | WREG32(RADEON_BUS_CNTL, msi_rearm | RS600_MSI_REARM); | |
42 | break; | |
43 | default: | |
44 | - msi_rearm = RREG32(RADEON_MSI_REARM_EN) & ~RV370_MSI_REARM_EN; | |
45 | - WREG32(RADEON_MSI_REARM_EN, msi_rearm); | |
46 | - WREG32(RADEON_MSI_REARM_EN, msi_rearm | RV370_MSI_REARM_EN); | |
47 | + WREG32(RADEON_MSI_REARM_EN, RV370_MSI_REARM_EN); | |
48 | break; | |
49 | } | |
50 | } |