diff options
| -rw-r--r-- | drivers/gpu/drm/nouveau/dispnv50/disp.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c index 5691dfa1db6f..041e7daf8a33 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c | |||
| @@ -900,9 +900,22 @@ static enum drm_connector_status | |||
| 900 | nv50_mstc_detect(struct drm_connector *connector, bool force) | 900 | nv50_mstc_detect(struct drm_connector *connector, bool force) |
| 901 | { | 901 | { |
| 902 | struct nv50_mstc *mstc = nv50_mstc(connector); | 902 | struct nv50_mstc *mstc = nv50_mstc(connector); |
| 903 | enum drm_connector_status conn_status; | ||
| 904 | int ret; | ||
| 905 | |||
| 903 | if (!mstc->port) | 906 | if (!mstc->port) |
| 904 | return connector_status_disconnected; | 907 | return connector_status_disconnected; |
| 905 | return drm_dp_mst_detect_port(connector, mstc->port->mgr, mstc->port); | 908 | |
| 909 | ret = pm_runtime_get_sync(connector->dev->dev); | ||
| 910 | if (ret < 0 && ret != -EACCES) | ||
| 911 | return connector_status_disconnected; | ||
| 912 | |||
| 913 | conn_status = drm_dp_mst_detect_port(connector, mstc->port->mgr, | ||
| 914 | mstc->port); | ||
| 915 | |||
| 916 | pm_runtime_mark_last_busy(connector->dev->dev); | ||
| 917 | pm_runtime_put_autosuspend(connector->dev->dev); | ||
| 918 | return conn_status; | ||
| 906 | } | 919 | } |
| 907 | 920 | ||
| 908 | static void | 921 | static void |
