History

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

Linus Torvalds committed 11 years ago

Commit df20ce52 parents 2f19cad 21124e53 files · +23 −1Browse files

Unified · Split

3 files
  1. drivers/gpu/drm/i915/intel_display.c +4 −0
  2. drivers/gpu/drm/i915/intel_dp.c +1 −0
  3. drivers/gpu/drm/radeon/radeon_connectors.c +18 −1
drivers/gpu/drm/i915/intel_display.c+4−0
@@ -9408,6 +9408,10 @@ static bool page_flip_finished(struct intel_crtc *crtc) · 9407 unmodified lines
94089408 struct drm_device *dev = crtc->base.dev;
94099409 struct drm_i915_private *dev_priv = dev->dev_private;
94109410
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+
94119415 /*
94129416 * The relevant registers doen't exist on pre-ctg.
94139417 * As the flip done interrupt doesn't trigger for mmio
drivers/gpu/drm/i915/intel_dp.c+1−0
@@ -4450,6 +4450,7 @@ static void intel_dp_encoder_suspend(struct intel_encoder *intel_encoder) · 4449 unmodified lines
44504450 * vdd might still be enabled do to the delayed vdd off.
44514451 * Make sure vdd is actually turned off here.
44524452 */
4453+ cancel_delayed_work_sync(&intel_dp->panel_vdd_work);
44534454 pps_lock(intel_dp);
44544455 edp_panel_vdd_off_sync(intel_dp);
44554456 pps_unlock(intel_dp);
drivers/gpu/drm/radeon/radeon_connectors.c+18−1
@@ -322,6 +322,12 @@ static void radeon_connector_get_edid(struct drm_connector *connector) · 321 unmodified lines
322322 }
323323
324324 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+
325331 if (rdev->is_atom_bios) {
326332 /* some laptops provide a hardcoded edid in rom for LCDs */
327333 if (((connector->connector_type == DRM_MODE_CONNECTOR_LVDS) ||
@@ -826,6 +832,8 @@ static int radeon_lvds_mode_valid(struct drm_connector *connector, · 498 unmodified lines
826832 static enum drm_connector_status
827833 radeon_lvds_detect(struct drm_connector *connector, bool force)
828834 {
835+ struct drm_device *dev = connector->dev;
836+ struct radeon_device *rdev = dev->dev_private;
829837 struct radeon_connector *radeon_connector = to_radeon_connector(connector);
830838 struct drm_encoder *encoder = radeon_best_single_encoder(connector);
831839 enum drm_connector_status ret = connector_status_disconnected;
@@ -842,7 +850,11 @@ radeon_lvds_detect(struct drm_connector *connector, bool force) · 10 unmodified lines
842850 /* check if panel is valid */
843851 if (native_mode->hdisplay >= 320 && native_mode->vdisplay >= 240)
844852 ret = connector_status_connected;
845−
853+ /* don't fetch the edid from the vbios if ddc fails and runpm is
854+ * enabled so we report disconnected.
855+ */
856+ if ((rdev->flags & RADEON_IS_PX) && (radeon_runtime_pm != 0))
857+ ret = connector_status_disconnected;
846858 }
847859
848860 /* check for edid as well */
@@ -1589,6 +1601,11 @@ radeon_dp_detect(struct drm_connector *connector, bool force) · 740 unmodified lines
15891601 /* check if panel is valid */
15901602 if (native_mode->hdisplay >= 320 && native_mode->vdisplay >= 240)
15911603 ret = connector_status_connected;
1604+ /* don't fetch the edid from the vbios if ddc fails and runpm is
1605+ * enabled so we report disconnected.
1606+ */
1607+ if ((rdev->flags & RADEON_IS_PX) && (radeon_runtime_pm != 0))
1608+ ret = connector_status_disconnected;
15921609 }
15931610 /* eDP is always DP */
15941611 radeon_dig_connector->dp_sink_type = CONNECTOR_OBJECT_ID_DISPLAYPORT;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t