View | Details | Raw Unified | Return to bug 1029634
Collapse All | Expand All

(-)a/drivers/gpu/drm/i915/i915_drv.c (-1 / +4 lines)
Lines 1559-1564 static int i915_suspend_switcheroo(struct drm_device *dev, pm_message_t state) Link Here
1559
static int i915_drm_resume(struct drm_device *dev)
1559
static int i915_drm_resume(struct drm_device *dev)
1560
{
1560
{
1561
	struct drm_i915_private *dev_priv = to_i915(dev);
1561
	struct drm_i915_private *dev_priv = to_i915(dev);
1562
	int mst_pending;
1562
	int ret;
1563
	int ret;
1563
1564
1564
	disable_rpm_wakeref_asserts(dev_priv);
1565
	disable_rpm_wakeref_asserts(dev_priv);
Lines 1608-1617 static int i915_drm_resume(struct drm_device *dev) Link Here
1608
		dev_priv->display.hpd_irq_setup(dev_priv);
1609
		dev_priv->display.hpd_irq_setup(dev_priv);
1609
	spin_unlock_irq(&dev_priv->irq_lock);
1610
	spin_unlock_irq(&dev_priv->irq_lock);
1610
1611
1611
	intel_dp_mst_resume(dev);
1612
	mst_pending = intel_dp_mst_resume(dev);
1612
1613
1613
	intel_display_resume(dev);
1614
	intel_display_resume(dev);
1614
1615
1616
	intel_dp_mst_resume_post(dev, mst_pending);
1617
1615
	drm_kms_helper_poll_enable(dev);
1618
	drm_kms_helper_poll_enable(dev);
1616
1619
1617
	/*
1620
	/*
(-)a/drivers/gpu/drm/i915/intel_dp.c (-1 / +19 lines)
Lines 6027-6035 void intel_dp_mst_suspend(struct drm_device *dev) Link Here
6027
	}
6027
	}
6028
}
6028
}
6029
6029
6030
void intel_dp_mst_resume(struct drm_device *dev)
6030
int intel_dp_mst_resume(struct drm_device *dev)
6031
{
6031
{
6032
	struct drm_i915_private *dev_priv = to_i915(dev);
6032
	struct drm_i915_private *dev_priv = to_i915(dev);
6033
	int pending = 0;
6033
	int i;
6034
	int i;
6034
6035
6035
	for (i = 0; i < I915_MAX_PORTS; i++) {
6036
	for (i = 0; i < I915_MAX_PORTS; i++) {
Lines 6041-6046 void intel_dp_mst_resume(struct drm_device *dev) Link Here
6041
6042
6042
		ret = drm_dp_mst_topology_mgr_resume(&intel_dig_port->dp.mst_mgr);
6043
		ret = drm_dp_mst_topology_mgr_resume(&intel_dig_port->dp.mst_mgr);
6043
		if (ret)
6044
		if (ret)
6045
			pending |= 1 << i;
6046
	}
6047
6048
	return pending;
6049
}
6050
6051
void intel_dp_mst_resume_post(struct drm_device *dev, int pending)
6052
{
6053
	struct drm_i915_private *dev_priv = to_i915(dev);
6054
	int i;
6055
6056
	for (i = 0; i < I915_MAX_PORTS; i++) {
6057
		struct intel_digital_port *intel_dig_port =
6058
			dev_priv->hotplug.irq_port[i];
6059
		if (!intel_dig_port || !intel_dig_port->dp.can_mst)
6060
			continue;
6061
		if (pending & (1 << i))
6044
			intel_dp_check_mst_status(&intel_dig_port->dp);
6062
			intel_dp_check_mst_status(&intel_dig_port->dp);
6045
	}
6063
	}
6046
}
6064
}
(-)a/drivers/gpu/drm/i915/intel_drv.h (-1 / +2 lines)
Lines 1447-1453 void intel_edp_panel_on(struct intel_dp *intel_dp); Link Here
1447
void intel_edp_panel_off(struct intel_dp *intel_dp);
1447
void intel_edp_panel_off(struct intel_dp *intel_dp);
1448
void intel_dp_add_properties(struct intel_dp *intel_dp, struct drm_connector *connector);
1448
void intel_dp_add_properties(struct intel_dp *intel_dp, struct drm_connector *connector);
1449
void intel_dp_mst_suspend(struct drm_device *dev);
1449
void intel_dp_mst_suspend(struct drm_device *dev);
1450
void intel_dp_mst_resume(struct drm_device *dev);
1450
int intel_dp_mst_resume(struct drm_device *dev);
1451
void intel_dp_mst_resume_post(struct drm_device *dev, int pending);
1451
int intel_dp_max_link_rate(struct intel_dp *intel_dp);
1452
int intel_dp_max_link_rate(struct intel_dp *intel_dp);
1452
int intel_dp_rate_select(struct intel_dp *intel_dp, int rate);
1453
int intel_dp_rate_select(struct intel_dp *intel_dp, int rate);
1453
void intel_dp_hot_plug(struct intel_encoder *intel_encoder);
1454
void intel_dp_hot_plug(struct intel_encoder *intel_encoder);

Return to bug 1029634