diff options
Diffstat (limited to 'drivers')
21 files changed, 62 insertions, 66 deletions
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c b/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c index 49720117da15..0eacd2dc302d 100644 --- a/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c +++ b/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c | |||
| @@ -55,7 +55,7 @@ static int tvc_connect(struct omap_dss_device *dssdev) | |||
| 55 | 55 | ||
| 56 | r = omapdss_device_connect(src, dssdev); | 56 | r = omapdss_device_connect(src, dssdev); |
| 57 | if (r) { | 57 | if (r) { |
| 58 | omap_dss_put_device(src); | 58 | omapdss_device_put(src); |
| 59 | return r; | 59 | return r; |
| 60 | } | 60 | } |
| 61 | 61 | ||
| @@ -68,7 +68,7 @@ static void tvc_disconnect(struct omap_dss_device *dssdev) | |||
| 68 | 68 | ||
| 69 | omapdss_device_disconnect(src, dssdev); | 69 | omapdss_device_disconnect(src, dssdev); |
| 70 | 70 | ||
| 71 | omap_dss_put_device(src); | 71 | omapdss_device_put(src); |
| 72 | } | 72 | } |
| 73 | 73 | ||
| 74 | static int tvc_enable(struct omap_dss_device *dssdev) | 74 | static int tvc_enable(struct omap_dss_device *dssdev) |
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c index 7876e61bf63e..754f15bc0115 100644 --- a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c +++ b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c | |||
| @@ -69,7 +69,7 @@ static int dvic_connect(struct omap_dss_device *dssdev) | |||
| 69 | 69 | ||
| 70 | r = omapdss_device_connect(src, dssdev); | 70 | r = omapdss_device_connect(src, dssdev); |
| 71 | if (r) { | 71 | if (r) { |
| 72 | omap_dss_put_device(src); | 72 | omapdss_device_put(src); |
| 73 | return r; | 73 | return r; |
| 74 | } | 74 | } |
| 75 | 75 | ||
| @@ -82,7 +82,7 @@ static void dvic_disconnect(struct omap_dss_device *dssdev) | |||
| 82 | 82 | ||
| 83 | omapdss_device_disconnect(src, dssdev); | 83 | omapdss_device_disconnect(src, dssdev); |
| 84 | 84 | ||
| 85 | omap_dss_put_device(src); | 85 | omapdss_device_put(src); |
| 86 | } | 86 | } |
| 87 | 87 | ||
| 88 | static int dvic_enable(struct omap_dss_device *dssdev) | 88 | static int dvic_enable(struct omap_dss_device *dssdev) |
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c b/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c index 5e07a8479cfc..e05f2964f8e1 100644 --- a/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c +++ b/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c | |||
| @@ -65,7 +65,7 @@ static int hdmic_connect(struct omap_dss_device *dssdev) | |||
| 65 | 65 | ||
| 66 | r = omapdss_device_connect(src, dssdev); | 66 | r = omapdss_device_connect(src, dssdev); |
| 67 | if (r) { | 67 | if (r) { |
| 68 | omap_dss_put_device(src); | 68 | omapdss_device_put(src); |
| 69 | return r; | 69 | return r; |
| 70 | } | 70 | } |
| 71 | 71 | ||
| @@ -78,7 +78,7 @@ static void hdmic_disconnect(struct omap_dss_device *dssdev) | |||
| 78 | 78 | ||
| 79 | omapdss_device_disconnect(src, dssdev); | 79 | omapdss_device_disconnect(src, dssdev); |
| 80 | 80 | ||
| 81 | omap_dss_put_device(src); | 81 | omapdss_device_put(src); |
| 82 | } | 82 | } |
| 83 | 83 | ||
| 84 | static int hdmic_enable(struct omap_dss_device *dssdev) | 84 | static int hdmic_enable(struct omap_dss_device *dssdev) |
diff --git a/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c b/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c index 52ceaae14647..f665f2caea22 100644 --- a/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c +++ b/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c | |||
| @@ -45,7 +45,7 @@ static int opa362_connect(struct omap_dss_device *dssdev, | |||
| 45 | 45 | ||
| 46 | r = omapdss_device_connect(src, dssdev); | 46 | r = omapdss_device_connect(src, dssdev); |
| 47 | if (r) { | 47 | if (r) { |
| 48 | omap_dss_put_device(src); | 48 | omapdss_device_put(src); |
| 49 | return r; | 49 | return r; |
| 50 | } | 50 | } |
| 51 | 51 | ||
| @@ -60,7 +60,7 @@ static void opa362_disconnect(struct omap_dss_device *dssdev, | |||
| 60 | 60 | ||
| 61 | omapdss_device_disconnect(src, &ddata->dssdev); | 61 | omapdss_device_disconnect(src, &ddata->dssdev); |
| 62 | 62 | ||
| 63 | omap_dss_put_device(src); | 63 | omapdss_device_put(src); |
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | static int opa362_enable(struct omap_dss_device *dssdev) | 66 | static int opa362_enable(struct omap_dss_device *dssdev) |
diff --git a/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c b/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c index f4223cf7f03f..11c123ca7916 100644 --- a/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c +++ b/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c | |||
| @@ -41,7 +41,7 @@ static int tfp410_connect(struct omap_dss_device *dssdev, | |||
| 41 | 41 | ||
| 42 | r = omapdss_device_connect(src, dssdev); | 42 | r = omapdss_device_connect(src, dssdev); |
| 43 | if (r) { | 43 | if (r) { |
| 44 | omap_dss_put_device(src); | 44 | omapdss_device_put(src); |
| 45 | return r; | 45 | return r; |
| 46 | } | 46 | } |
| 47 | 47 | ||
| @@ -56,7 +56,7 @@ static void tfp410_disconnect(struct omap_dss_device *dssdev, | |||
| 56 | 56 | ||
| 57 | omapdss_device_disconnect(src, &ddata->dssdev); | 57 | omapdss_device_disconnect(src, &ddata->dssdev); |
| 58 | 58 | ||
| 59 | omap_dss_put_device(src); | 59 | omapdss_device_put(src); |
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | static int tfp410_enable(struct omap_dss_device *dssdev) | 62 | static int tfp410_enable(struct omap_dss_device *dssdev) |
diff --git a/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c b/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c index 90e07036fb48..eb2d5af34a35 100644 --- a/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c +++ b/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c | |||
| @@ -50,7 +50,7 @@ static int tpd_connect(struct omap_dss_device *dssdev, | |||
| 50 | 50 | ||
| 51 | r = omapdss_device_connect(src, dssdev); | 51 | r = omapdss_device_connect(src, dssdev); |
| 52 | if (r) { | 52 | if (r) { |
| 53 | omap_dss_put_device(src); | 53 | omapdss_device_put(src); |
| 54 | return r; | 54 | return r; |
| 55 | } | 55 | } |
| 56 | 56 | ||
| @@ -74,7 +74,7 @@ static void tpd_disconnect(struct omap_dss_device *dssdev, | |||
| 74 | 74 | ||
| 75 | omapdss_device_disconnect(src, &ddata->dssdev); | 75 | omapdss_device_disconnect(src, &ddata->dssdev); |
| 76 | 76 | ||
| 77 | omap_dss_put_device(src); | 77 | omapdss_device_put(src); |
| 78 | } | 78 | } |
| 79 | 79 | ||
| 80 | static int tpd_enable(struct omap_dss_device *dssdev) | 80 | static int tpd_enable(struct omap_dss_device *dssdev) |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c index 3e2bca737de0..64eab64e5f0d 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c | |||
| @@ -47,7 +47,7 @@ static int panel_dpi_connect(struct omap_dss_device *dssdev) | |||
| 47 | 47 | ||
| 48 | r = omapdss_device_connect(src, dssdev); | 48 | r = omapdss_device_connect(src, dssdev); |
| 49 | if (r) { | 49 | if (r) { |
| 50 | omap_dss_put_device(src); | 50 | omapdss_device_put(src); |
| 51 | return r; | 51 | return r; |
| 52 | } | 52 | } |
| 53 | 53 | ||
| @@ -60,7 +60,7 @@ static void panel_dpi_disconnect(struct omap_dss_device *dssdev) | |||
| 60 | 60 | ||
| 61 | omapdss_device_disconnect(src, dssdev); | 61 | omapdss_device_disconnect(src, dssdev); |
| 62 | 62 | ||
| 63 | omap_dss_put_device(src); | 63 | omapdss_device_put(src); |
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | static int panel_dpi_enable(struct omap_dss_device *dssdev) | 66 | static int panel_dpi_enable(struct omap_dss_device *dssdev) |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c index 0614db1c7366..bd9401c1c11e 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | |||
| @@ -794,7 +794,7 @@ err_vc_id: | |||
| 794 | err_req_vc: | 794 | err_req_vc: |
| 795 | omapdss_device_disconnect(src, dssdev); | 795 | omapdss_device_disconnect(src, dssdev); |
| 796 | err_connect: | 796 | err_connect: |
| 797 | omap_dss_put_device(src); | 797 | omapdss_device_put(src); |
| 798 | return r; | 798 | return r; |
| 799 | } | 799 | } |
| 800 | 800 | ||
| @@ -806,7 +806,7 @@ static void dsicm_disconnect(struct omap_dss_device *dssdev) | |||
| 806 | src->ops->dsi.release_vc(src, ddata->channel); | 806 | src->ops->dsi.release_vc(src, ddata->channel); |
| 807 | omapdss_device_disconnect(src, dssdev); | 807 | omapdss_device_disconnect(src, dssdev); |
| 808 | 808 | ||
| 809 | omap_dss_put_device(src); | 809 | omapdss_device_put(src); |
| 810 | } | 810 | } |
| 811 | 811 | ||
| 812 | static int dsicm_enable(struct omap_dss_device *dssdev) | 812 | static int dsicm_enable(struct omap_dss_device *dssdev) |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c index 0698b64e5bdc..9f9caeadf5dd 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c | |||
| @@ -129,7 +129,7 @@ static int lb035q02_connect(struct omap_dss_device *dssdev) | |||
| 129 | 129 | ||
| 130 | r = omapdss_device_connect(src, dssdev); | 130 | r = omapdss_device_connect(src, dssdev); |
| 131 | if (r) { | 131 | if (r) { |
| 132 | omap_dss_put_device(src); | 132 | omapdss_device_put(src); |
| 133 | return r; | 133 | return r; |
| 134 | } | 134 | } |
| 135 | 135 | ||
| @@ -144,7 +144,7 @@ static void lb035q02_disconnect(struct omap_dss_device *dssdev) | |||
| 144 | 144 | ||
| 145 | omapdss_device_disconnect(src, dssdev); | 145 | omapdss_device_disconnect(src, dssdev); |
| 146 | 146 | ||
| 147 | omap_dss_put_device(src); | 147 | omapdss_device_put(src); |
| 148 | } | 148 | } |
| 149 | 149 | ||
| 150 | static int lb035q02_enable(struct omap_dss_device *dssdev) | 150 | static int lb035q02_enable(struct omap_dss_device *dssdev) |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c index da34c35009dd..d07c955ea06f 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c | |||
| @@ -124,7 +124,7 @@ static int nec_8048_connect(struct omap_dss_device *dssdev) | |||
| 124 | 124 | ||
| 125 | r = omapdss_device_connect(src, dssdev); | 125 | r = omapdss_device_connect(src, dssdev); |
| 126 | if (r) { | 126 | if (r) { |
| 127 | omap_dss_put_device(src); | 127 | omapdss_device_put(src); |
| 128 | return r; | 128 | return r; |
| 129 | } | 129 | } |
| 130 | 130 | ||
| @@ -137,7 +137,7 @@ static void nec_8048_disconnect(struct omap_dss_device *dssdev) | |||
| 137 | 137 | ||
| 138 | omapdss_device_disconnect(src, dssdev); | 138 | omapdss_device_disconnect(src, dssdev); |
| 139 | 139 | ||
| 140 | omap_dss_put_device(src); | 140 | omapdss_device_put(src); |
| 141 | } | 141 | } |
| 142 | 142 | ||
| 143 | static int nec_8048_enable(struct omap_dss_device *dssdev) | 143 | static int nec_8048_enable(struct omap_dss_device *dssdev) |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c index d92ee6f1ae7f..d02f22a858e2 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c | |||
| @@ -70,7 +70,7 @@ static int sharp_ls_connect(struct omap_dss_device *dssdev) | |||
| 70 | 70 | ||
| 71 | r = omapdss_device_connect(src, dssdev); | 71 | r = omapdss_device_connect(src, dssdev); |
| 72 | if (r) { | 72 | if (r) { |
| 73 | omap_dss_put_device(src); | 73 | omapdss_device_put(src); |
| 74 | return r; | 74 | return r; |
| 75 | } | 75 | } |
| 76 | 76 | ||
| @@ -83,7 +83,7 @@ static void sharp_ls_disconnect(struct omap_dss_device *dssdev) | |||
| 83 | 83 | ||
| 84 | omapdss_device_disconnect(src, dssdev); | 84 | omapdss_device_disconnect(src, dssdev); |
| 85 | 85 | ||
| 86 | omap_dss_put_device(src); | 86 | omapdss_device_put(src); |
| 87 | } | 87 | } |
| 88 | 88 | ||
| 89 | static int sharp_ls_enable(struct omap_dss_device *dssdev) | 89 | static int sharp_ls_enable(struct omap_dss_device *dssdev) |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c index 4602f7cd1b53..a98c1181887a 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c | |||
| @@ -519,7 +519,7 @@ static int acx565akm_connect(struct omap_dss_device *dssdev) | |||
| 519 | 519 | ||
| 520 | r = omapdss_device_connect(src, dssdev); | 520 | r = omapdss_device_connect(src, dssdev); |
| 521 | if (r) { | 521 | if (r) { |
| 522 | omap_dss_put_device(src); | 522 | omapdss_device_put(src); |
| 523 | return r; | 523 | return r; |
| 524 | } | 524 | } |
| 525 | 525 | ||
| @@ -532,7 +532,7 @@ static void acx565akm_disconnect(struct omap_dss_device *dssdev) | |||
| 532 | 532 | ||
| 533 | omapdss_device_disconnect(src, dssdev); | 533 | omapdss_device_disconnect(src, dssdev); |
| 534 | 534 | ||
| 535 | omap_dss_put_device(src); | 535 | omapdss_device_put(src); |
| 536 | } | 536 | } |
| 537 | 537 | ||
| 538 | static int acx565akm_panel_power_on(struct omap_dss_device *dssdev) | 538 | static int acx565akm_panel_power_on(struct omap_dss_device *dssdev) |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c index b7c95b903d03..07c3f8143e4c 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c | |||
| @@ -178,7 +178,7 @@ static int td028ttec1_panel_connect(struct omap_dss_device *dssdev) | |||
| 178 | 178 | ||
| 179 | r = omapdss_device_connect(src, dssdev); | 179 | r = omapdss_device_connect(src, dssdev); |
| 180 | if (r) { | 180 | if (r) { |
| 181 | omap_dss_put_device(src); | 181 | omapdss_device_put(src); |
| 182 | return r; | 182 | return r; |
| 183 | } | 183 | } |
| 184 | 184 | ||
| @@ -191,7 +191,7 @@ static void td028ttec1_panel_disconnect(struct omap_dss_device *dssdev) | |||
| 191 | 191 | ||
| 192 | omapdss_device_disconnect(src, dssdev); | 192 | omapdss_device_disconnect(src, dssdev); |
| 193 | 193 | ||
| 194 | omap_dss_put_device(src); | 194 | omapdss_device_put(src); |
| 195 | } | 195 | } |
| 196 | 196 | ||
| 197 | static int td028ttec1_panel_enable(struct omap_dss_device *dssdev) | 197 | static int td028ttec1_panel_enable(struct omap_dss_device *dssdev) |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c index e6b2381b971c..c32ab872e9f9 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c | |||
| @@ -349,7 +349,7 @@ static int tpo_td043_connect(struct omap_dss_device *dssdev) | |||
| 349 | 349 | ||
| 350 | r = omapdss_device_connect(src, dssdev); | 350 | r = omapdss_device_connect(src, dssdev); |
| 351 | if (r) { | 351 | if (r) { |
| 352 | omap_dss_put_device(src); | 352 | omapdss_device_put(src); |
| 353 | return r; | 353 | return r; |
| 354 | } | 354 | } |
| 355 | 355 | ||
| @@ -362,7 +362,7 @@ static void tpo_td043_disconnect(struct omap_dss_device *dssdev) | |||
| 362 | 362 | ||
| 363 | omapdss_device_disconnect(src, dssdev); | 363 | omapdss_device_disconnect(src, dssdev); |
| 364 | 364 | ||
| 365 | omap_dss_put_device(src); | 365 | omapdss_device_put(src); |
| 366 | } | 366 | } |
| 367 | 367 | ||
| 368 | static int tpo_td043_enable(struct omap_dss_device *dssdev) | 368 | static int tpo_td043_enable(struct omap_dss_device *dssdev) |
diff --git a/drivers/gpu/drm/omapdrm/dss/base.c b/drivers/gpu/drm/omapdrm/dss/base.c index 9f01a4f28145..08846eea5a53 100644 --- a/drivers/gpu/drm/omapdrm/dss/base.c +++ b/drivers/gpu/drm/omapdrm/dss/base.c | |||
| @@ -91,6 +91,27 @@ static bool omapdss_device_is_registered(struct device_node *node) | |||
| 91 | return found; | 91 | return found; |
| 92 | } | 92 | } |
| 93 | 93 | ||
| 94 | struct omap_dss_device *omapdss_device_get(struct omap_dss_device *dssdev) | ||
| 95 | { | ||
| 96 | if (!try_module_get(dssdev->owner)) | ||
| 97 | return NULL; | ||
| 98 | |||
| 99 | if (get_device(dssdev->dev) == NULL) { | ||
| 100 | module_put(dssdev->owner); | ||
| 101 | return NULL; | ||
| 102 | } | ||
| 103 | |||
| 104 | return dssdev; | ||
| 105 | } | ||
| 106 | EXPORT_SYMBOL(omapdss_device_get); | ||
| 107 | |||
| 108 | void omapdss_device_put(struct omap_dss_device *dssdev) | ||
| 109 | { | ||
| 110 | put_device(dssdev->dev); | ||
| 111 | module_put(dssdev->owner); | ||
| 112 | } | ||
| 113 | EXPORT_SYMBOL(omapdss_device_put); | ||
| 114 | |||
| 94 | struct omap_dss_device *omapdss_find_device_by_port(struct device_node *src, | 115 | struct omap_dss_device *omapdss_find_device_by_port(struct device_node *src, |
| 95 | unsigned int port) | 116 | unsigned int port) |
| 96 | { | 117 | { |
| @@ -98,7 +119,7 @@ struct omap_dss_device *omapdss_find_device_by_port(struct device_node *src, | |||
| 98 | 119 | ||
| 99 | list_for_each_entry(dssdev, &omapdss_devices_list, list) { | 120 | list_for_each_entry(dssdev, &omapdss_devices_list, list) { |
| 100 | if (dssdev->dev->of_node == src && dssdev->port_num == port) | 121 | if (dssdev->dev->of_node == src && dssdev->port_num == port) |
| 101 | return omap_dss_get_device(dssdev); | 122 | return omapdss_device_get(dssdev); |
| 102 | } | 123 | } |
| 103 | 124 | ||
| 104 | return NULL; | 125 | return NULL; |
| @@ -147,9 +168,9 @@ struct omap_dss_device *omapdss_device_get_next(struct omap_dss_device *from, | |||
| 147 | 168 | ||
| 148 | done: | 169 | done: |
| 149 | if (from) | 170 | if (from) |
| 150 | omap_dss_put_device(from); | 171 | omapdss_device_put(from); |
| 151 | if (dssdev) | 172 | if (dssdev) |
| 152 | omap_dss_get_device(dssdev); | 173 | omapdss_device_get(dssdev); |
| 153 | 174 | ||
| 154 | mutex_unlock(&omapdss_devices_lock); | 175 | mutex_unlock(&omapdss_devices_lock); |
| 155 | return dssdev; | 176 | return dssdev; |
diff --git a/drivers/gpu/drm/omapdrm/dss/display.c b/drivers/gpu/drm/omapdrm/dss/display.c index 178d88841e0c..53cb46f6503d 100644 --- a/drivers/gpu/drm/omapdrm/dss/display.c +++ b/drivers/gpu/drm/omapdrm/dss/display.c | |||
| @@ -21,9 +21,6 @@ | |||
| 21 | #define DSS_SUBSYS_NAME "DISPLAY" | 21 | #define DSS_SUBSYS_NAME "DISPLAY" |
| 22 | 22 | ||
| 23 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
| 24 | #include <linux/module.h> | ||
| 25 | #include <linux/jiffies.h> | ||
| 26 | #include <linux/platform_device.h> | ||
| 27 | #include <linux/of.h> | 24 | #include <linux/of.h> |
| 28 | 25 | ||
| 29 | #include "omapdss.h" | 26 | #include "omapdss.h" |
| @@ -52,24 +49,3 @@ void omapdss_display_init(struct omap_dss_device *dssdev) | |||
| 52 | "display%u", id); | 49 | "display%u", id); |
| 53 | } | 50 | } |
| 54 | EXPORT_SYMBOL_GPL(omapdss_display_init); | 51 | EXPORT_SYMBOL_GPL(omapdss_display_init); |
| 55 | |||
| 56 | struct omap_dss_device *omap_dss_get_device(struct omap_dss_device *dssdev) | ||
| 57 | { | ||
| 58 | if (!try_module_get(dssdev->owner)) | ||
| 59 | return NULL; | ||
| 60 | |||
| 61 | if (get_device(dssdev->dev) == NULL) { | ||
| 62 | module_put(dssdev->owner); | ||
| 63 | return NULL; | ||
| 64 | } | ||
| 65 | |||
| 66 | return dssdev; | ||
| 67 | } | ||
| 68 | EXPORT_SYMBOL(omap_dss_get_device); | ||
| 69 | |||
| 70 | void omap_dss_put_device(struct omap_dss_device *dssdev) | ||
| 71 | { | ||
| 72 | put_device(dssdev->dev); | ||
| 73 | module_put(dssdev->owner); | ||
| 74 | } | ||
| 75 | EXPORT_SYMBOL(omap_dss_put_device); | ||
diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h b/drivers/gpu/drm/omapdrm/dss/omapdss.h index 5f71f6885991..96011e42da05 100644 --- a/drivers/gpu/drm/omapdrm/dss/omapdss.h +++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h | |||
| @@ -492,6 +492,8 @@ void omapdss_display_init(struct omap_dss_device *dssdev); | |||
| 492 | 492 | ||
| 493 | void omapdss_device_register(struct omap_dss_device *dssdev); | 493 | void omapdss_device_register(struct omap_dss_device *dssdev); |
| 494 | void omapdss_device_unregister(struct omap_dss_device *dssdev); | 494 | void omapdss_device_unregister(struct omap_dss_device *dssdev); |
| 495 | struct omap_dss_device *omapdss_device_get(struct omap_dss_device *dssdev); | ||
| 496 | void omapdss_device_put(struct omap_dss_device *dssdev); | ||
| 495 | struct omap_dss_device *omapdss_find_device_by_port(struct device_node *src, | 497 | struct omap_dss_device *omapdss_find_device_by_port(struct device_node *src, |
| 496 | unsigned int port); | 498 | unsigned int port); |
| 497 | struct omap_dss_device *omapdss_device_get_next(struct omap_dss_device *from, | 499 | struct omap_dss_device *omapdss_device_get_next(struct omap_dss_device *from, |
| @@ -501,9 +503,6 @@ int omapdss_device_connect(struct omap_dss_device *src, | |||
| 501 | void omapdss_device_disconnect(struct omap_dss_device *src, | 503 | void omapdss_device_disconnect(struct omap_dss_device *src, |
| 502 | struct omap_dss_device *dst); | 504 | struct omap_dss_device *dst); |
| 503 | 505 | ||
| 504 | struct omap_dss_device *omap_dss_get_device(struct omap_dss_device *dssdev); | ||
| 505 | void omap_dss_put_device(struct omap_dss_device *dssdev); | ||
| 506 | |||
| 507 | int omap_dss_get_num_overlay_managers(void); | 506 | int omap_dss_get_num_overlay_managers(void); |
| 508 | 507 | ||
| 509 | int omap_dss_get_num_overlays(void); | 508 | int omap_dss_get_num_overlays(void); |
diff --git a/drivers/gpu/drm/omapdrm/dss/output.c b/drivers/gpu/drm/omapdrm/dss/output.c index e62da96f83af..b5bf7a5e35d9 100644 --- a/drivers/gpu/drm/omapdrm/dss/output.c +++ b/drivers/gpu/drm/omapdrm/dss/output.c | |||
| @@ -93,7 +93,7 @@ struct omap_dss_device *omapdss_find_output_from_display(struct omap_dss_device | |||
| 93 | dssdev = dssdev->src; | 93 | dssdev = dssdev->src; |
| 94 | 94 | ||
| 95 | if (dssdev->id != 0) | 95 | if (dssdev->id != 0) |
| 96 | return omap_dss_get_device(dssdev); | 96 | return omapdss_device_get(dssdev); |
| 97 | 97 | ||
| 98 | return NULL; | 98 | return NULL; |
| 99 | } | 99 | } |
diff --git a/drivers/gpu/drm/omapdrm/omap_connector.c b/drivers/gpu/drm/omapdrm/omap_connector.c index 3b60086f2938..69ebb0fa1df5 100644 --- a/drivers/gpu/drm/omapdrm/omap_connector.c +++ b/drivers/gpu/drm/omapdrm/omap_connector.c | |||
| @@ -98,7 +98,7 @@ static void omap_connector_destroy(struct drm_connector *connector) | |||
| 98 | drm_connector_cleanup(connector); | 98 | drm_connector_cleanup(connector); |
| 99 | kfree(omap_connector); | 99 | kfree(omap_connector); |
| 100 | 100 | ||
| 101 | omap_dss_put_device(dssdev); | 101 | omapdss_device_put(dssdev); |
| 102 | } | 102 | } |
| 103 | 103 | ||
| 104 | #define MAX_EDID 512 | 104 | #define MAX_EDID 512 |
| @@ -254,7 +254,7 @@ struct drm_connector *omap_connector_init(struct drm_device *dev, | |||
| 254 | 254 | ||
| 255 | DBG("%s", dssdev->name); | 255 | DBG("%s", dssdev->name); |
| 256 | 256 | ||
| 257 | omap_dss_get_device(dssdev); | 257 | omapdss_device_get(dssdev); |
| 258 | 258 | ||
| 259 | omap_connector = kzalloc(sizeof(*omap_connector), GFP_KERNEL); | 259 | omap_connector = kzalloc(sizeof(*omap_connector), GFP_KERNEL); |
| 260 | if (!omap_connector) | 260 | if (!omap_connector) |
diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c index 6c4d40b824e4..e18ca6cdc0d6 100644 --- a/drivers/gpu/drm/omapdrm/omap_crtc.c +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c | |||
| @@ -704,7 +704,7 @@ struct drm_crtc *omap_crtc_init(struct drm_device *dev, | |||
| 704 | 704 | ||
| 705 | out = omapdss_find_output_from_display(dssdev); | 705 | out = omapdss_find_output_from_display(dssdev); |
| 706 | channel = out->dispc_channel; | 706 | channel = out->dispc_channel; |
| 707 | omap_dss_put_device(out); | 707 | omapdss_device_put(out); |
| 708 | 708 | ||
| 709 | DBG("%s", channel_names[channel]); | 709 | DBG("%s", channel_names[channel]); |
| 710 | 710 | ||
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c index 4f402eb8088d..a3b7dbf1b92b 100644 --- a/drivers/gpu/drm/omapdrm/omap_drv.c +++ b/drivers/gpu/drm/omapdrm/omap_drv.c | |||
| @@ -161,7 +161,7 @@ static void omap_disconnect_dssdevs(struct drm_device *ddev) | |||
| 161 | 161 | ||
| 162 | omapdss_device_disconnect(dssdev, NULL); | 162 | omapdss_device_disconnect(dssdev, NULL); |
| 163 | priv->dssdevs[i] = NULL; | 163 | priv->dssdevs[i] = NULL; |
| 164 | omap_dss_put_device(dssdev); | 164 | omapdss_device_put(dssdev); |
| 165 | } | 165 | } |
| 166 | 166 | ||
| 167 | priv->num_dssdevs = 0; | 167 | priv->num_dssdevs = 0; |
| @@ -191,17 +191,17 @@ static int omap_connect_dssdevs(struct drm_device *ddev) | |||
| 191 | for_each_dss_display(dssdev) { | 191 | for_each_dss_display(dssdev) { |
| 192 | r = omapdss_device_connect(dssdev, NULL); | 192 | r = omapdss_device_connect(dssdev, NULL); |
| 193 | if (r == -EPROBE_DEFER) { | 193 | if (r == -EPROBE_DEFER) { |
| 194 | omap_dss_put_device(dssdev); | 194 | omapdss_device_put(dssdev); |
| 195 | goto cleanup; | 195 | goto cleanup; |
| 196 | } else if (r) { | 196 | } else if (r) { |
| 197 | dev_warn(dssdev->dev, "could not connect display: %s\n", | 197 | dev_warn(dssdev->dev, "could not connect display: %s\n", |
| 198 | dssdev->name); | 198 | dssdev->name); |
| 199 | } else { | 199 | } else { |
| 200 | omap_dss_get_device(dssdev); | 200 | omapdss_device_get(dssdev); |
| 201 | priv->dssdevs[priv->num_dssdevs++] = dssdev; | 201 | priv->dssdevs[priv->num_dssdevs++] = dssdev; |
| 202 | if (priv->num_dssdevs == ARRAY_SIZE(priv->dssdevs)) { | 202 | if (priv->num_dssdevs == ARRAY_SIZE(priv->dssdevs)) { |
| 203 | /* To balance the 'for_each_dss_display' loop */ | 203 | /* To balance the 'for_each_dss_display' loop */ |
| 204 | omap_dss_put_device(dssdev); | 204 | omapdss_device_put(dssdev); |
| 205 | break; | 205 | break; |
| 206 | } | 206 | } |
| 207 | } | 207 | } |
