Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
Pull drm fixes from Dave Airlie: "A smattering of fixes, mgag200: don't accept modes that aren't aligned properly as hw can't do it i915: two regression fixes radeon: one query to allow userspace fixes one oops fixer for older hw with new options enabled" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/radeon: don't probe MST on hw we don't support it on drm/radeon: Add RADEON_INFO_VA_UNMAP_WORKING query drm/mgag200: Reject non-character-cell-aligned mode widths Revert "drm/i915: Don't skip request retirement if the active list is empty" drm/i915: Always reset vma->ggtt_view.pages cache on unbinding
This commit is contained in:
commit
8f4ce072bf
|
@ -2656,6 +2656,9 @@ void i915_gem_reset(struct drm_device *dev)
|
|||
void
|
||||
i915_gem_retire_requests_ring(struct intel_engine_cs *ring)
|
||||
{
|
||||
if (list_empty(&ring->request_list))
|
||||
return;
|
||||
|
||||
WARN_ON(i915_verify_lists(ring->dev));
|
||||
|
||||
/* Retire requests first as we use it above for the early return.
|
||||
|
@ -3000,8 +3003,8 @@ int i915_vma_unbind(struct i915_vma *vma)
|
|||
} else if (vma->ggtt_view.pages) {
|
||||
sg_free_table(vma->ggtt_view.pages);
|
||||
kfree(vma->ggtt_view.pages);
|
||||
vma->ggtt_view.pages = NULL;
|
||||
}
|
||||
vma->ggtt_view.pages = NULL;
|
||||
}
|
||||
|
||||
drm_mm_remove_node(&vma->node);
|
||||
|
|
|
@ -1526,6 +1526,11 @@ static int mga_vga_mode_valid(struct drm_connector *connector,
|
|||
return MODE_BANDWIDTH;
|
||||
}
|
||||
|
||||
if ((mode->hdisplay % 8) != 0 || (mode->hsync_start % 8) != 0 ||
|
||||
(mode->hsync_end % 8) != 0 || (mode->htotal % 8) != 0) {
|
||||
return MODE_H_ILLEGAL;
|
||||
}
|
||||
|
||||
if (mode->crtc_hdisplay > 2048 || mode->crtc_hsync_start > 4096 ||
|
||||
mode->crtc_hsync_end > 4096 || mode->crtc_htotal > 4096 ||
|
||||
mode->crtc_vdisplay > 2048 || mode->crtc_vsync_start > 4096 ||
|
||||
|
|
|
@ -663,12 +663,17 @@ int
|
|||
radeon_dp_mst_probe(struct radeon_connector *radeon_connector)
|
||||
{
|
||||
struct radeon_connector_atom_dig *dig_connector = radeon_connector->con_priv;
|
||||
struct drm_device *dev = radeon_connector->base.dev;
|
||||
struct radeon_device *rdev = dev->dev_private;
|
||||
int ret;
|
||||
u8 msg[1];
|
||||
|
||||
if (!radeon_mst)
|
||||
return 0;
|
||||
|
||||
if (!ASIC_IS_DCE5(rdev))
|
||||
return 0;
|
||||
|
||||
if (dig_connector->dpcd[DP_DPCD_REV] < 0x12)
|
||||
return 0;
|
||||
|
||||
|
|
|
@ -576,6 +576,9 @@ static int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file
|
|||
if (radeon_get_allowed_info_register(rdev, *value, value))
|
||||
return -EINVAL;
|
||||
break;
|
||||
case RADEON_INFO_VA_UNMAP_WORKING:
|
||||
*value = true;
|
||||
break;
|
||||
default:
|
||||
DRM_DEBUG_KMS("Invalid request %d\n", info->request);
|
||||
return -EINVAL;
|
||||
|
|
|
@ -1038,6 +1038,7 @@ struct drm_radeon_cs {
|
|||
#define RADEON_INFO_CURRENT_GPU_SCLK 0x22
|
||||
#define RADEON_INFO_CURRENT_GPU_MCLK 0x23
|
||||
#define RADEON_INFO_READ_REG 0x24
|
||||
#define RADEON_INFO_VA_UNMAP_WORKING 0x25
|
||||
|
||||
struct drm_radeon_info {
|
||||
uint32_t request;
|
||||
|
|
Loading…
Reference in New Issue