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:
"Two i915 regressions and one dual-gpu laptop radeon fix"

* 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
drm/radeon: report disconnected for LVDS/eDP with PX if ddc fails
drm/i915: Cancel vdd off work before suspend
drm/i915: Ignore SURFLIVE and flip counter when the GPU gets reset

+23 -1
+4
drivers/gpu/drm/i915/intel_display.c
··· 9408 9408 struct drm_device *dev = crtc->base.dev; 9409 9409 struct drm_i915_private *dev_priv = dev->dev_private; 9410 9410 9411 + if (i915_reset_in_progress(&dev_priv->gpu_error) || 9412 + crtc->reset_counter != atomic_read(&dev_priv->gpu_error.reset_counter)) 9413 + return true; 9414 + 9411 9415 /* 9412 9416 * The relevant registers doen't exist on pre-ctg. 9413 9417 * As the flip done interrupt doesn't trigger for mmio
+1
drivers/gpu/drm/i915/intel_dp.c
··· 4450 4450 * vdd might still be enabled do to the delayed vdd off. 4451 4451 * Make sure vdd is actually turned off here. 4452 4452 */ 4453 + cancel_delayed_work_sync(&intel_dp->panel_vdd_work); 4453 4454 pps_lock(intel_dp); 4454 4455 edp_panel_vdd_off_sync(intel_dp); 4455 4456 pps_unlock(intel_dp);
+18 -1
drivers/gpu/drm/radeon/radeon_connectors.c
··· 322 322 } 323 323 324 324 if (!radeon_connector->edid) { 325 + /* don't fetch the edid from the vbios if ddc fails and runpm is 326 + * enabled so we report disconnected. 327 + */ 328 + if ((rdev->flags & RADEON_IS_PX) && (radeon_runtime_pm != 0)) 329 + return; 330 + 325 331 if (rdev->is_atom_bios) { 326 332 /* some laptops provide a hardcoded edid in rom for LCDs */ 327 333 if (((connector->connector_type == DRM_MODE_CONNECTOR_LVDS) || ··· 832 826 static enum drm_connector_status 833 827 radeon_lvds_detect(struct drm_connector *connector, bool force) 834 828 { 829 + struct drm_device *dev = connector->dev; 830 + struct radeon_device *rdev = dev->dev_private; 835 831 struct radeon_connector *radeon_connector = to_radeon_connector(connector); 836 832 struct drm_encoder *encoder = radeon_best_single_encoder(connector); 837 833 enum drm_connector_status ret = connector_status_disconnected; ··· 850 842 /* check if panel is valid */ 851 843 if (native_mode->hdisplay >= 320 && native_mode->vdisplay >= 240) 852 844 ret = connector_status_connected; 853 - 845 + /* don't fetch the edid from the vbios if ddc fails and runpm is 846 + * enabled so we report disconnected. 847 + */ 848 + if ((rdev->flags & RADEON_IS_PX) && (radeon_runtime_pm != 0)) 849 + ret = connector_status_disconnected; 854 850 } 855 851 856 852 /* check for edid as well */ ··· 1601 1589 /* check if panel is valid */ 1602 1590 if (native_mode->hdisplay >= 320 && native_mode->vdisplay >= 240) 1603 1591 ret = connector_status_connected; 1592 + /* don't fetch the edid from the vbios if ddc fails and runpm is 1593 + * enabled so we report disconnected. 1594 + */ 1595 + if ((rdev->flags & RADEON_IS_PX) && (radeon_runtime_pm != 0)) 1596 + ret = connector_status_disconnected; 1604 1597 } 1605 1598 /* eDP is always DP */ 1606 1599 radeon_dig_connector->dp_sink_type = CONNECTOR_OBJECT_ID_DISPLAYPORT;