History

Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux

3 radeon fixes, I have some exynos fixes to push later but I'll queue them separately once I've looked them over a bit. * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/radeon/kms: fix MSI re-arm on rv370+ drm/radeon/kms/atom: bios scratch reg handling updates drm/radeon/kms: drop lock in return path of radeon_fence_count_emitted.

Linus Torvalds committed 14 years ago

Commit 58e44ba2 parents a18d3af b7f5b7d4 files · +22 −7Browse files

Unified · Split

4 files
  1. drivers/gpu/drm/radeon/r100.c +1 −3
  2. drivers/gpu/drm/radeon/radeon_atombios.c +17 −0
  3. drivers/gpu/drm/radeon/radeon_fence.c +3 −1
  4. drivers/gpu/drm/radeon/rs600.c +1 −3
drivers/gpu/drm/radeon/r100.c+1−3
@@ -789,9 +789,7 @@ int r100_irq_process(struct radeon_device *rdev) · 788 unmodified lines
789 WREG32(RADEON_AIC_CNTL, msi_rearm | RS400_MSI_REARM);789 WREG32(RADEON_AIC_CNTL, msi_rearm | RS400_MSI_REARM);
790 break;790 break;
791 default:791 default:
792 msi_rearm = RREG32(RADEON_MSI_REARM_EN) & ~RV370_MSI_REARM_EN;792 WREG32(RADEON_MSI_REARM_EN, RV370_MSI_REARM_EN);
793 WREG32(RADEON_MSI_REARM_EN, msi_rearm);
794 WREG32(RADEON_MSI_REARM_EN, msi_rearm | RV370_MSI_REARM_EN);
795 break;793 break;
796 }794 }
797 }795 }
drivers/gpu/drm/radeon/radeon_atombios.c+17−0
@@ -2931,6 +2931,20 @@ radeon_atombios_connected_scratch_regs(struct drm_connector *connector, · 2930 unmodified lines
2931 bios_6_scratch &= ~ATOM_S6_ACC_REQ_DFP5;2931 bios_6_scratch &= ~ATOM_S6_ACC_REQ_DFP5;
2932 }2932 }
2933 }2933 }
2934 if ((radeon_encoder->devices & ATOM_DEVICE_DFP6_SUPPORT) &&
2935 (radeon_connector->devices & ATOM_DEVICE_DFP6_SUPPORT)) {
2936 if (connected) {
2937 DRM_DEBUG_KMS("DFP6 connected\n");
2938 bios_0_scratch |= ATOM_S0_DFP6;
2939 bios_3_scratch |= ATOM_S3_DFP6_ACTIVE;
2940 bios_6_scratch |= ATOM_S6_ACC_REQ_DFP6;
2941 } else {
2942 DRM_DEBUG_KMS("DFP6 disconnected\n");
2943 bios_0_scratch &= ~ATOM_S0_DFP6;
2944 bios_3_scratch &= ~ATOM_S3_DFP6_ACTIVE;
2945 bios_6_scratch &= ~ATOM_S6_ACC_REQ_DFP6;
2946 }
2947 }
2934 2948
2935 if (rdev->family >= CHIP_R600) {2949 if (rdev->family >= CHIP_R600) {
2936 WREG32(R600_BIOS_0_SCRATCH, bios_0_scratch);2950 WREG32(R600_BIOS_0_SCRATCH, bios_0_scratch);
@@ -2951,6 +2965,9 @@ radeon_atombios_encoder_crtc_scratch_regs(struct drm_encoder *encoder, int crtc) · 14 unmodified lines
2951 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);2965 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);
2952 uint32_t bios_3_scratch;2966 uint32_t bios_3_scratch;
2953 2967
2968 if (ASIC_IS_DCE4(rdev))
2969 return;
2970
2954 if (rdev->family >= CHIP_R600)2971 if (rdev->family >= CHIP_R600)
2955 bios_3_scratch = RREG32(R600_BIOS_3_SCRATCH);2972 bios_3_scratch = RREG32(R600_BIOS_3_SCRATCH);
2956 else2973 else
drivers/gpu/drm/radeon/radeon_fence.c+3−1
@@ -364,8 +364,10 @@ int radeon_fence_count_emitted(struct radeon_device *rdev, int ring) · 363 unmodified lines
364 int not_processed = 0;364 int not_processed = 0;
365 365
366 read_lock_irqsave(&rdev->fence_lock, irq_flags);366 read_lock_irqsave(&rdev->fence_lock, irq_flags);
367 if (!rdev->fence_drv[ring].initialized)367 if (!rdev->fence_drv[ring].initialized) {
368 read_unlock_irqrestore(&rdev->fence_lock, irq_flags);
368 return 0;369 return 0;
370 }
369 371
370 if (!list_empty(&rdev->fence_drv[ring].emitted)) {372 if (!list_empty(&rdev->fence_drv[ring].emitted)) {
371 struct list_head *ptr;373 struct list_head *ptr;
drivers/gpu/drm/radeon/rs600.c+1−3
@@ -684,9 +684,7 @@ int rs600_irq_process(struct radeon_device *rdev) · 683 unmodified lines
684 WREG32(RADEON_BUS_CNTL, msi_rearm | RS600_MSI_REARM);684 WREG32(RADEON_BUS_CNTL, msi_rearm | RS600_MSI_REARM);
685 break;685 break;
686 default:686 default:
687 msi_rearm = RREG32(RADEON_MSI_REARM_EN) & ~RV370_MSI_REARM_EN;687 WREG32(RADEON_MSI_REARM_EN, RV370_MSI_REARM_EN);
688 WREG32(RADEON_MSI_REARM_EN, msi_rearm);
689 WREG32(RADEON_MSI_REARM_EN, msi_rearm | RV370_MSI_REARM_EN);
690 break;688 break;
691 }689 }
692 }690 }