Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

+18 -1
+4 -1
drivers/gpu/drm/i915/i915_gem.c
··· 2656 2656 void 2657 2657 i915_gem_retire_requests_ring(struct intel_engine_cs *ring) 2658 2658 { 2659 + if (list_empty(&ring->request_list)) 2660 + return; 2661 + 2659 2662 WARN_ON(i915_verify_lists(ring->dev)); 2660 2663 2661 2664 /* Retire requests first as we use it above for the early return. ··· 3003 3000 } else if (vma->ggtt_view.pages) { 3004 3001 sg_free_table(vma->ggtt_view.pages); 3005 3002 kfree(vma->ggtt_view.pages); 3006 - vma->ggtt_view.pages = NULL; 3007 3003 } 3004 + vma->ggtt_view.pages = NULL; 3008 3005 } 3009 3006 3010 3007 drm_mm_remove_node(&vma->node);
+5
drivers/gpu/drm/mgag200/mgag200_mode.c
··· 1526 1526 return MODE_BANDWIDTH; 1527 1527 } 1528 1528 1529 + if ((mode->hdisplay % 8) != 0 || (mode->hsync_start % 8) != 0 || 1530 + (mode->hsync_end % 8) != 0 || (mode->htotal % 8) != 0) { 1531 + return MODE_H_ILLEGAL; 1532 + } 1533 + 1529 1534 if (mode->crtc_hdisplay > 2048 || mode->crtc_hsync_start > 4096 || 1530 1535 mode->crtc_hsync_end > 4096 || mode->crtc_htotal > 4096 || 1531 1536 mode->crtc_vdisplay > 2048 || mode->crtc_vsync_start > 4096 ||
+5
drivers/gpu/drm/radeon/radeon_dp_mst.c
··· 663 663 radeon_dp_mst_probe(struct radeon_connector *radeon_connector) 664 664 { 665 665 struct radeon_connector_atom_dig *dig_connector = radeon_connector->con_priv; 666 + struct drm_device *dev = radeon_connector->base.dev; 667 + struct radeon_device *rdev = dev->dev_private; 666 668 int ret; 667 669 u8 msg[1]; 668 670 669 671 if (!radeon_mst) 672 + return 0; 673 + 674 + if (!ASIC_IS_DCE5(rdev)) 670 675 return 0; 671 676 672 677 if (dig_connector->dpcd[DP_DPCD_REV] < 0x12)
+3
drivers/gpu/drm/radeon/radeon_kms.c
··· 576 576 if (radeon_get_allowed_info_register(rdev, *value, value)) 577 577 return -EINVAL; 578 578 break; 579 + case RADEON_INFO_VA_UNMAP_WORKING: 580 + *value = true; 581 + break; 579 582 default: 580 583 DRM_DEBUG_KMS("Invalid request %d\n", info->request); 581 584 return -EINVAL;
+1
include/uapi/drm/radeon_drm.h
··· 1038 1038 #define RADEON_INFO_CURRENT_GPU_SCLK 0x22 1039 1039 #define RADEON_INFO_CURRENT_GPU_MCLK 0x23 1040 1040 #define RADEON_INFO_READ_REG 0x24 1041 + #define RADEON_INFO_VA_UNMAP_WORKING 0x25 1041 1042 1042 1043 struct drm_radeon_info { 1043 1044 uint32_t request;