Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9d624526 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge branch 'drm-fixes-3.9' of git://people.freedesktop.org/~agd5f/linux into drm-next

Alex writes:
  Radeon fixes pull.  Not much to it.
  - fix some splatter if the interrupt handler isn't registered
  - Add a quirk for an old R200 board to fix washed out colors on the DAC
  - Don't try and soft reset the MC when we reset the GPU.  It usually doesn't
    need it and doesn't always work reliably.
  - A CS checker fix from Marek

* 'drm-fixes-3.9' of git://people.freedesktop.org/~agd5f/linux:
  drm/radeon: don't check mipmap alignment if MIP_ADDRESS is FMASK
  drm/radeon: skip MC reset as it's probably not hung
  drm/radeon: add primary dac adj quirk for R200 board
  drm/radeon: don't set hpd, afmt interrupts when interrupts are disabled
parents 2cc79544 774c389f
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -2438,6 +2438,12 @@ static u32 evergreen_gpu_check_soft_reset(struct radeon_device *rdev)
	if (tmp & L2_BUSY)
	if (tmp & L2_BUSY)
		reset_mask |= RADEON_RESET_VMC;
		reset_mask |= RADEON_RESET_VMC;


	/* Skip MC reset as it's mostly likely not hung, just busy */
	if (reset_mask & RADEON_RESET_MC) {
		DRM_DEBUG("MC busy: 0x%08X, clearing.\n", reset_mask);
		reset_mask &= ~RADEON_RESET_MC;
	}

	return reset_mask;
	return reset_mask;
}
}


+1 −1
Original line number Original line Diff line number Diff line
@@ -834,7 +834,7 @@ static int evergreen_cs_track_validate_texture(struct radeon_cs_parser *p,
			 __func__, __LINE__, toffset, surf.base_align);
			 __func__, __LINE__, toffset, surf.base_align);
		return -EINVAL;
		return -EINVAL;
	}
	}
	if (moffset & (surf.base_align - 1)) {
	if (surf.nsamples <= 1 && moffset & (surf.base_align - 1)) {
		dev_warn(p->dev, "%s:%d mipmap bo base %ld not aligned with %ld\n",
		dev_warn(p->dev, "%s:%d mipmap bo base %ld not aligned with %ld\n",
			 __func__, __LINE__, moffset, surf.base_align);
			 __func__, __LINE__, moffset, surf.base_align);
		return -EINVAL;
		return -EINVAL;
+6 −0
Original line number Original line Diff line number Diff line
@@ -1381,6 +1381,12 @@ static u32 cayman_gpu_check_soft_reset(struct radeon_device *rdev)
	if (tmp & L2_BUSY)
	if (tmp & L2_BUSY)
		reset_mask |= RADEON_RESET_VMC;
		reset_mask |= RADEON_RESET_VMC;


	/* Skip MC reset as it's mostly likely not hung, just busy */
	if (reset_mask & RADEON_RESET_MC) {
		DRM_DEBUG("MC busy: 0x%08X, clearing.\n", reset_mask);
		reset_mask &= ~RADEON_RESET_MC;
	}

	return reset_mask;
	return reset_mask;
}
}


+6 −0
Original line number Original line Diff line number Diff line
@@ -1394,6 +1394,12 @@ static u32 r600_gpu_check_soft_reset(struct radeon_device *rdev)
	if (r600_is_display_hung(rdev))
	if (r600_is_display_hung(rdev))
		reset_mask |= RADEON_RESET_DISPLAY;
		reset_mask |= RADEON_RESET_DISPLAY;


	/* Skip MC reset as it's mostly likely not hung, just busy */
	if (reset_mask & RADEON_RESET_MC) {
		DRM_DEBUG("MC busy: 0x%08X, clearing.\n", reset_mask);
		reset_mask &= ~RADEON_RESET_MC;
	}

	return reset_mask;
	return reset_mask;
}
}


+9 −0
Original line number Original line Diff line number Diff line
@@ -970,6 +970,15 @@ struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct
			found = 1;
			found = 1;
	}
	}


	/* quirks */
	/* Radeon 9100 (R200) */
	if ((dev->pdev->device == 0x514D) &&
	    (dev->pdev->subsystem_vendor == 0x174B) &&
	    (dev->pdev->subsystem_device == 0x7149)) {
		/* vbios value is bad, use the default */
		found = 0;
	}

	if (!found) /* fallback to defaults */
	if (!found) /* fallback to defaults */
		radeon_legacy_get_primary_dac_info_from_table(rdev, p_dac);
		radeon_legacy_get_primary_dac_info_from_table(rdev, p_dac);


Loading