diff options
Diffstat (limited to 'drivers/gpu')
17 files changed, 55 insertions, 31 deletions
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c b/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c index a94868d9398b..41ba3c5dbe7d 100644 --- a/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c +++ b/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c | |||
| @@ -59,7 +59,7 @@ static int tvc_connect(struct omap_dss_device *dssdev) | |||
| 59 | return PTR_ERR(in); | 59 | return PTR_ERR(in); |
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | r = in->ops->connect(in, dssdev); | 62 | r = omapdss_device_connect(in, dssdev); |
| 63 | if (r) { | 63 | if (r) { |
| 64 | omap_dss_put_device(in); | 64 | omap_dss_put_device(in); |
| 65 | return r; | 65 | return r; |
| @@ -79,7 +79,7 @@ static void tvc_disconnect(struct omap_dss_device *dssdev) | |||
| 79 | if (!omapdss_device_is_connected(dssdev)) | 79 | if (!omapdss_device_is_connected(dssdev)) |
| 80 | return; | 80 | return; |
| 81 | 81 | ||
| 82 | in->ops->disconnect(in, dssdev); | 82 | omapdss_device_disconnect(in, dssdev); |
| 83 | 83 | ||
| 84 | omap_dss_put_device(in); | 84 | omap_dss_put_device(in); |
| 85 | ddata->in = NULL; | 85 | ddata->in = NULL; |
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c index 021e3b651c89..f193bbda550c 100644 --- a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c +++ b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c | |||
| @@ -72,7 +72,7 @@ static int dvic_connect(struct omap_dss_device *dssdev) | |||
| 72 | return PTR_ERR(in); | 72 | return PTR_ERR(in); |
| 73 | } | 73 | } |
| 74 | 74 | ||
| 75 | r = in->ops->connect(in, dssdev); | 75 | r = omapdss_device_connect(in, dssdev); |
| 76 | if (r) { | 76 | if (r) { |
| 77 | omap_dss_put_device(in); | 77 | omap_dss_put_device(in); |
| 78 | return r; | 78 | return r; |
| @@ -90,7 +90,7 @@ static void dvic_disconnect(struct omap_dss_device *dssdev) | |||
| 90 | if (!omapdss_device_is_connected(dssdev)) | 90 | if (!omapdss_device_is_connected(dssdev)) |
| 91 | return; | 91 | return; |
| 92 | 92 | ||
| 93 | in->ops->disconnect(in, dssdev); | 93 | omapdss_device_disconnect(in, dssdev); |
| 94 | 94 | ||
| 95 | omap_dss_put_device(in); | 95 | omap_dss_put_device(in); |
| 96 | ddata->in = NULL; | 96 | ddata->in = NULL; |
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c b/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c index b528bd51ada3..014554afbb0d 100644 --- a/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c +++ b/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c | |||
| @@ -69,7 +69,7 @@ static int hdmic_connect(struct omap_dss_device *dssdev) | |||
| 69 | return PTR_ERR(in); | 69 | return PTR_ERR(in); |
| 70 | } | 70 | } |
| 71 | 71 | ||
| 72 | r = in->ops->connect(in, dssdev); | 72 | r = omapdss_device_connect(in, dssdev); |
| 73 | if (r) { | 73 | if (r) { |
| 74 | omap_dss_put_device(in); | 74 | omap_dss_put_device(in); |
| 75 | return r; | 75 | return r; |
| @@ -89,7 +89,7 @@ static void hdmic_disconnect(struct omap_dss_device *dssdev) | |||
| 89 | if (!omapdss_device_is_connected(dssdev)) | 89 | if (!omapdss_device_is_connected(dssdev)) |
| 90 | return; | 90 | return; |
| 91 | 91 | ||
| 92 | in->ops->disconnect(in, dssdev); | 92 | omapdss_device_disconnect(in, dssdev); |
| 93 | 93 | ||
| 94 | omap_dss_put_device(in); | 94 | omap_dss_put_device(in); |
| 95 | ddata->in = NULL; | 95 | ddata->in = NULL; |
diff --git a/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c b/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c index 37982ffe0ad4..752b565987c1 100644 --- a/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c +++ b/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c | |||
| @@ -50,7 +50,7 @@ static int opa362_connect(struct omap_dss_device *dssdev, | |||
| 50 | return PTR_ERR(in); | 50 | return PTR_ERR(in); |
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | r = in->ops->connect(in, dssdev); | 53 | r = omapdss_device_connect(in, dssdev); |
| 54 | if (r) { | 54 | if (r) { |
| 55 | omap_dss_put_device(in); | 55 | omap_dss_put_device(in); |
| 56 | return r; | 56 | return r; |
| @@ -82,7 +82,7 @@ static void opa362_disconnect(struct omap_dss_device *dssdev, | |||
| 82 | dst->src = NULL; | 82 | dst->src = NULL; |
| 83 | dssdev->dst = NULL; | 83 | dssdev->dst = NULL; |
| 84 | 84 | ||
| 85 | in->ops->disconnect(in, &ddata->dssdev); | 85 | omapdss_device_disconnect(in, &ddata->dssdev); |
| 86 | 86 | ||
| 87 | omap_dss_put_device(in); | 87 | omap_dss_put_device(in); |
| 88 | ddata->in = NULL; | 88 | ddata->in = NULL; |
diff --git a/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c b/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c index 1fbc5559e54f..a8660e5e5ffc 100644 --- a/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c +++ b/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c | |||
| @@ -44,7 +44,7 @@ static int tfp410_connect(struct omap_dss_device *dssdev, | |||
| 44 | return PTR_ERR(in); | 44 | return PTR_ERR(in); |
| 45 | } | 45 | } |
| 46 | 46 | ||
| 47 | r = in->ops->connect(in, dssdev); | 47 | r = omapdss_device_connect(in, dssdev); |
| 48 | if (r) { | 48 | if (r) { |
| 49 | omap_dss_put_device(in); | 49 | omap_dss_put_device(in); |
| 50 | return r; | 50 | return r; |
| @@ -74,7 +74,7 @@ static void tfp410_disconnect(struct omap_dss_device *dssdev, | |||
| 74 | dst->src = NULL; | 74 | dst->src = NULL; |
| 75 | dssdev->dst = NULL; | 75 | dssdev->dst = NULL; |
| 76 | 76 | ||
| 77 | in->ops->disconnect(in, &ddata->dssdev); | 77 | omapdss_device_disconnect(in, &ddata->dssdev); |
| 78 | 78 | ||
| 79 | omap_dss_put_device(in); | 79 | omap_dss_put_device(in); |
| 80 | ddata->in = NULL; | 80 | ddata->in = NULL; |
diff --git a/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c b/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c index 21a4a2fd42bf..640f15b88467 100644 --- a/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c +++ b/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c | |||
| @@ -49,7 +49,7 @@ static int tpd_connect(struct omap_dss_device *dssdev, | |||
| 49 | return PTR_ERR(in); | 49 | return PTR_ERR(in); |
| 50 | } | 50 | } |
| 51 | 51 | ||
| 52 | r = in->ops->connect(in, dssdev); | 52 | r = omapdss_device_connect(in, dssdev); |
| 53 | if (r) { | 53 | if (r) { |
| 54 | omap_dss_put_device(in); | 54 | omap_dss_put_device(in); |
| 55 | return r; | 55 | return r; |
| @@ -85,7 +85,7 @@ static void tpd_disconnect(struct omap_dss_device *dssdev, | |||
| 85 | dst->src = NULL; | 85 | dst->src = NULL; |
| 86 | dssdev->dst = NULL; | 86 | dssdev->dst = NULL; |
| 87 | 87 | ||
| 88 | in->ops->disconnect(in, &ddata->dssdev); | 88 | omapdss_device_disconnect(in, &ddata->dssdev); |
| 89 | 89 | ||
| 90 | omap_dss_put_device(in); | 90 | omap_dss_put_device(in); |
| 91 | ddata->in = NULL; | 91 | ddata->in = NULL; |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c index 15042351ace3..987519501336 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c | |||
| @@ -50,7 +50,7 @@ static int panel_dpi_connect(struct omap_dss_device *dssdev) | |||
| 50 | return PTR_ERR(in); | 50 | return PTR_ERR(in); |
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | r = in->ops->connect(in, dssdev); | 53 | r = omapdss_device_connect(in, dssdev); |
| 54 | if (r) { | 54 | if (r) { |
| 55 | omap_dss_put_device(in); | 55 | omap_dss_put_device(in); |
| 56 | return r; | 56 | return r; |
| @@ -68,7 +68,7 @@ static void panel_dpi_disconnect(struct omap_dss_device *dssdev) | |||
| 68 | if (!omapdss_device_is_connected(dssdev)) | 68 | if (!omapdss_device_is_connected(dssdev)) |
| 69 | return; | 69 | return; |
| 70 | 70 | ||
| 71 | in->ops->disconnect(in, dssdev); | 71 | omapdss_device_disconnect(in, dssdev); |
| 72 | 72 | ||
| 73 | omap_dss_put_device(in); | 73 | omap_dss_put_device(in); |
| 74 | ddata->in = NULL; | 74 | ddata->in = NULL; |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c index 4296f4ca39fe..b7cd2ef17fbb 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | |||
| @@ -772,7 +772,7 @@ static int dsicm_connect(struct omap_dss_device *dssdev) | |||
| 772 | return PTR_ERR(in); | 772 | return PTR_ERR(in); |
| 773 | } | 773 | } |
| 774 | 774 | ||
| 775 | r = in->ops->connect(in, dssdev); | 775 | r = omapdss_device_connect(in, dssdev); |
| 776 | if (r) { | 776 | if (r) { |
| 777 | dev_err(dev, "Failed to connect to video source\n"); | 777 | dev_err(dev, "Failed to connect to video source\n"); |
| 778 | goto err_connect; | 778 | goto err_connect; |
| @@ -796,7 +796,7 @@ static int dsicm_connect(struct omap_dss_device *dssdev) | |||
| 796 | err_vc_id: | 796 | err_vc_id: |
| 797 | in->ops->dsi.release_vc(in, ddata->channel); | 797 | in->ops->dsi.release_vc(in, ddata->channel); |
| 798 | err_req_vc: | 798 | err_req_vc: |
| 799 | in->ops->disconnect(in, dssdev); | 799 | omapdss_device_disconnect(in, dssdev); |
| 800 | err_connect: | 800 | err_connect: |
| 801 | omap_dss_put_device(in); | 801 | omap_dss_put_device(in); |
| 802 | return r; | 802 | return r; |
| @@ -811,7 +811,7 @@ static void dsicm_disconnect(struct omap_dss_device *dssdev) | |||
| 811 | return; | 811 | return; |
| 812 | 812 | ||
| 813 | in->ops->dsi.release_vc(in, ddata->channel); | 813 | in->ops->dsi.release_vc(in, ddata->channel); |
| 814 | in->ops->disconnect(in, dssdev); | 814 | omapdss_device_disconnect(in, dssdev); |
| 815 | 815 | ||
| 816 | omap_dss_put_device(in); | 816 | omap_dss_put_device(in); |
| 817 | ddata->in = NULL; | 817 | ddata->in = NULL; |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c index 8e293708261c..e4a3b5828bf9 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c | |||
| @@ -131,7 +131,7 @@ static int lb035q02_connect(struct omap_dss_device *dssdev) | |||
| 131 | return PTR_ERR(in); | 131 | return PTR_ERR(in); |
| 132 | } | 132 | } |
| 133 | 133 | ||
| 134 | r = in->ops->connect(in, dssdev); | 134 | r = omapdss_device_connect(in, dssdev); |
| 135 | if (r) { | 135 | if (r) { |
| 136 | omap_dss_put_device(in); | 136 | omap_dss_put_device(in); |
| 137 | return r; | 137 | return r; |
| @@ -151,7 +151,7 @@ static void lb035q02_disconnect(struct omap_dss_device *dssdev) | |||
| 151 | if (!omapdss_device_is_connected(dssdev)) | 151 | if (!omapdss_device_is_connected(dssdev)) |
| 152 | return; | 152 | return; |
| 153 | 153 | ||
| 154 | in->ops->disconnect(in, dssdev); | 154 | omapdss_device_disconnect(in, dssdev); |
| 155 | 155 | ||
| 156 | omap_dss_put_device(in); | 156 | omap_dss_put_device(in); |
| 157 | ddata->in = NULL; | 157 | ddata->in = NULL; |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c index 7296c794326c..e89dd32a2a60 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c | |||
| @@ -127,7 +127,7 @@ static int nec_8048_connect(struct omap_dss_device *dssdev) | |||
| 127 | return PTR_ERR(in); | 127 | return PTR_ERR(in); |
| 128 | } | 128 | } |
| 129 | 129 | ||
| 130 | r = in->ops->connect(in, dssdev); | 130 | r = omapdss_device_connect(in, dssdev); |
| 131 | if (r) { | 131 | if (r) { |
| 132 | omap_dss_put_device(in); | 132 | omap_dss_put_device(in); |
| 133 | return r; | 133 | return r; |
| @@ -145,7 +145,7 @@ static void nec_8048_disconnect(struct omap_dss_device *dssdev) | |||
| 145 | if (!omapdss_device_is_connected(dssdev)) | 145 | if (!omapdss_device_is_connected(dssdev)) |
| 146 | return; | 146 | return; |
| 147 | 147 | ||
| 148 | in->ops->disconnect(in, dssdev); | 148 | omapdss_device_disconnect(in, dssdev); |
| 149 | 149 | ||
| 150 | omap_dss_put_device(in); | 150 | omap_dss_put_device(in); |
| 151 | ddata->in = NULL; | 151 | ddata->in = NULL; |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c index 00291b9ecfde..d0451cfab7f8 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c | |||
| @@ -73,7 +73,7 @@ static int sharp_ls_connect(struct omap_dss_device *dssdev) | |||
| 73 | return PTR_ERR(in); | 73 | return PTR_ERR(in); |
| 74 | } | 74 | } |
| 75 | 75 | ||
| 76 | r = in->ops->connect(in, dssdev); | 76 | r = omapdss_device_connect(in, dssdev); |
| 77 | if (r) { | 77 | if (r) { |
| 78 | omap_dss_put_device(in); | 78 | omap_dss_put_device(in); |
| 79 | return r; | 79 | return r; |
| @@ -91,7 +91,7 @@ static void sharp_ls_disconnect(struct omap_dss_device *dssdev) | |||
| 91 | if (!omapdss_device_is_connected(dssdev)) | 91 | if (!omapdss_device_is_connected(dssdev)) |
| 92 | return; | 92 | return; |
| 93 | 93 | ||
| 94 | in->ops->disconnect(in, dssdev); | 94 | omapdss_device_disconnect(in, dssdev); |
| 95 | 95 | ||
| 96 | omap_dss_put_device(in); | 96 | omap_dss_put_device(in); |
| 97 | ddata->in = NULL; | 97 | ddata->in = NULL; |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c index 694ac42b7247..9033e9d25b7f 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c | |||
| @@ -522,7 +522,7 @@ static int acx565akm_connect(struct omap_dss_device *dssdev) | |||
| 522 | return PTR_ERR(in); | 522 | return PTR_ERR(in); |
| 523 | } | 523 | } |
| 524 | 524 | ||
| 525 | r = in->ops->connect(in, dssdev); | 525 | r = omapdss_device_connect(in, dssdev); |
| 526 | if (r) { | 526 | if (r) { |
| 527 | omap_dss_put_device(in); | 527 | omap_dss_put_device(in); |
| 528 | return r; | 528 | return r; |
| @@ -540,7 +540,7 @@ static void acx565akm_disconnect(struct omap_dss_device *dssdev) | |||
| 540 | if (!omapdss_device_is_connected(dssdev)) | 540 | if (!omapdss_device_is_connected(dssdev)) |
| 541 | return; | 541 | return; |
| 542 | 542 | ||
| 543 | in->ops->disconnect(in, dssdev); | 543 | omapdss_device_disconnect(in, dssdev); |
| 544 | 544 | ||
| 545 | omap_dss_put_device(in); | 545 | omap_dss_put_device(in); |
| 546 | ddata->in = NULL; | 546 | ddata->in = NULL; |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c index 3cd1e4ccd43a..8865459b6c90 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c | |||
| @@ -181,7 +181,7 @@ static int td028ttec1_panel_connect(struct omap_dss_device *dssdev) | |||
| 181 | return PTR_ERR(in); | 181 | return PTR_ERR(in); |
| 182 | } | 182 | } |
| 183 | 183 | ||
| 184 | r = in->ops->connect(in, dssdev); | 184 | r = omapdss_device_connect(in, dssdev); |
| 185 | if (r) { | 185 | if (r) { |
| 186 | omap_dss_put_device(in); | 186 | omap_dss_put_device(in); |
| 187 | return r; | 187 | return r; |
| @@ -199,7 +199,7 @@ static void td028ttec1_panel_disconnect(struct omap_dss_device *dssdev) | |||
| 199 | if (!omapdss_device_is_connected(dssdev)) | 199 | if (!omapdss_device_is_connected(dssdev)) |
| 200 | return; | 200 | return; |
| 201 | 201 | ||
| 202 | in->ops->disconnect(in, dssdev); | 202 | omapdss_device_disconnect(in, dssdev); |
| 203 | 203 | ||
| 204 | omap_dss_put_device(in); | 204 | omap_dss_put_device(in); |
| 205 | ddata->in = NULL; | 205 | ddata->in = NULL; |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c index de1140314a7a..1daba7a60a9c 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c | |||
| @@ -352,7 +352,7 @@ static int tpo_td043_connect(struct omap_dss_device *dssdev) | |||
| 352 | return PTR_ERR(in); | 352 | return PTR_ERR(in); |
| 353 | } | 353 | } |
| 354 | 354 | ||
| 355 | r = in->ops->connect(in, dssdev); | 355 | r = omapdss_device_connect(in, dssdev); |
| 356 | if (r) { | 356 | if (r) { |
| 357 | omap_dss_put_device(in); | 357 | omap_dss_put_device(in); |
| 358 | return r; | 358 | return r; |
| @@ -370,7 +370,7 @@ static void tpo_td043_disconnect(struct omap_dss_device *dssdev) | |||
| 370 | if (!omapdss_device_is_connected(dssdev)) | 370 | if (!omapdss_device_is_connected(dssdev)) |
| 371 | return; | 371 | return; |
| 372 | 372 | ||
| 373 | in->ops->disconnect(in, dssdev); | 373 | omapdss_device_disconnect(in, dssdev); |
| 374 | 374 | ||
| 375 | omap_dss_put_device(in); | 375 | omap_dss_put_device(in); |
| 376 | ddata->in = NULL; | 376 | ddata->in = NULL; |
diff --git a/drivers/gpu/drm/omapdrm/dss/base.c b/drivers/gpu/drm/omapdrm/dss/base.c index df6cb1ac43c8..576fd3d13259 100644 --- a/drivers/gpu/drm/omapdrm/dss/base.c +++ b/drivers/gpu/drm/omapdrm/dss/base.c | |||
| @@ -102,6 +102,26 @@ struct omap_dss_device *omapdss_find_device_by_port(struct device_node *src, | |||
| 102 | return NULL; | 102 | return NULL; |
| 103 | } | 103 | } |
| 104 | 104 | ||
| 105 | int omapdss_device_connect(struct omap_dss_device *src, | ||
| 106 | struct omap_dss_device *dst) | ||
| 107 | { | ||
| 108 | if (src->driver) | ||
| 109 | return src->driver->connect(src); | ||
| 110 | else | ||
| 111 | return src->ops->connect(src, dst); | ||
| 112 | } | ||
| 113 | EXPORT_SYMBOL_GPL(omapdss_device_connect); | ||
| 114 | |||
| 115 | void omapdss_device_disconnect(struct omap_dss_device *src, | ||
| 116 | struct omap_dss_device *dst) | ||
| 117 | { | ||
| 118 | if (src->driver) | ||
| 119 | src->driver->disconnect(src); | ||
| 120 | else | ||
| 121 | src->ops->disconnect(src, dst); | ||
| 122 | } | ||
| 123 | EXPORT_SYMBOL_GPL(omapdss_device_disconnect); | ||
| 124 | |||
| 105 | /* ----------------------------------------------------------------------------- | 125 | /* ----------------------------------------------------------------------------- |
| 106 | * Components Handling | 126 | * Components Handling |
| 107 | */ | 127 | */ |
diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h b/drivers/gpu/drm/omapdrm/dss/omapdss.h index fb6c9d522013..58bd6948bcde 100644 --- a/drivers/gpu/drm/omapdrm/dss/omapdss.h +++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h | |||
| @@ -498,6 +498,10 @@ void omapdss_device_register(struct omap_dss_device *dssdev); | |||
| 498 | void omapdss_device_unregister(struct omap_dss_device *dssdev); | 498 | void omapdss_device_unregister(struct omap_dss_device *dssdev); |
| 499 | struct omap_dss_device *omapdss_find_device_by_port(struct device_node *src, | 499 | struct omap_dss_device *omapdss_find_device_by_port(struct device_node *src, |
| 500 | unsigned int port); | 500 | unsigned int port); |
| 501 | int omapdss_device_connect(struct omap_dss_device *src, | ||
| 502 | struct omap_dss_device *dst); | ||
| 503 | void omapdss_device_disconnect(struct omap_dss_device *src, | ||
| 504 | struct omap_dss_device *dst); | ||
| 501 | 505 | ||
| 502 | struct omap_dss_device *omap_dss_get_device(struct omap_dss_device *dssdev); | 506 | struct omap_dss_device *omap_dss_get_device(struct omap_dss_device *dssdev); |
| 503 | void omap_dss_put_device(struct omap_dss_device *dssdev); | 507 | void omap_dss_put_device(struct omap_dss_device *dssdev); |
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c index e411d46bd803..6bc4b01c8e9c 100644 --- a/drivers/gpu/drm/omapdrm/omap_drv.c +++ b/drivers/gpu/drm/omapdrm/omap_drv.c | |||
| @@ -159,7 +159,7 @@ static void omap_disconnect_dssdevs(struct drm_device *ddev) | |||
| 159 | for (i = 0; i < priv->num_dssdevs; i++) { | 159 | for (i = 0; i < priv->num_dssdevs; i++) { |
| 160 | struct omap_dss_device *dssdev = priv->dssdevs[i]; | 160 | struct omap_dss_device *dssdev = priv->dssdevs[i]; |
| 161 | 161 | ||
| 162 | dssdev->driver->disconnect(dssdev); | 162 | omapdss_device_disconnect(dssdev, NULL); |
| 163 | priv->dssdevs[i] = NULL; | 163 | priv->dssdevs[i] = NULL; |
| 164 | omap_dss_put_device(dssdev); | 164 | omap_dss_put_device(dssdev); |
| 165 | } | 165 | } |
| @@ -189,7 +189,7 @@ static int omap_connect_dssdevs(struct drm_device *ddev) | |||
| 189 | return -EPROBE_DEFER; | 189 | return -EPROBE_DEFER; |
| 190 | 190 | ||
| 191 | for_each_dss_dev(dssdev) { | 191 | for_each_dss_dev(dssdev) { |
| 192 | r = dssdev->driver->connect(dssdev); | 192 | r = omapdss_device_connect(dssdev, NULL); |
| 193 | if (r == -EPROBE_DEFER) { | 193 | if (r == -EPROBE_DEFER) { |
| 194 | omap_dss_put_device(dssdev); | 194 | omap_dss_put_device(dssdev); |
| 195 | goto cleanup; | 195 | goto cleanup; |
