diff options
21 files changed, 106 insertions, 137 deletions
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c b/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c index d59b4f2e22dc..563fc7e618b3 100644 --- a/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c +++ b/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c | |||
| @@ -119,7 +119,7 @@ static int tvc_check_timings(struct omap_dss_device *dssdev, | |||
| 119 | return src->ops->check_timings(src, vm); | 119 | return src->ops->check_timings(src, vm); |
| 120 | } | 120 | } |
| 121 | 121 | ||
| 122 | static const struct omap_dss_driver tvc_driver = { | 122 | static const struct omap_dss_device_ops tvc_ops = { |
| 123 | .connect = tvc_connect, | 123 | .connect = tvc_connect, |
| 124 | .disconnect = tvc_disconnect, | 124 | .disconnect = tvc_disconnect, |
| 125 | 125 | ||
| @@ -146,7 +146,7 @@ static int tvc_probe(struct platform_device *pdev) | |||
| 146 | ddata->vm = tvc_pal_vm; | 146 | ddata->vm = tvc_pal_vm; |
| 147 | 147 | ||
| 148 | dssdev = &ddata->dssdev; | 148 | dssdev = &ddata->dssdev; |
| 149 | dssdev->driver = &tvc_driver; | 149 | dssdev->ops = &tvc_ops; |
| 150 | dssdev->dev = &pdev->dev; | 150 | dssdev->dev = &pdev->dev; |
| 151 | dssdev->type = OMAP_DISPLAY_TYPE_VENC; | 151 | dssdev->type = OMAP_DISPLAY_TYPE_VENC; |
| 152 | dssdev->owner = THIS_MODULE; | 152 | dssdev->owner = THIS_MODULE; |
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c index 39e7d0be887f..a639a86cd47b 100644 --- a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c +++ b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c | |||
| @@ -265,7 +265,7 @@ static void dvic_disable_hpd(struct omap_dss_device *dssdev) | |||
| 265 | mutex_unlock(&ddata->hpd_lock); | 265 | mutex_unlock(&ddata->hpd_lock); |
| 266 | } | 266 | } |
| 267 | 267 | ||
| 268 | static const struct omap_dss_driver dvic_driver = { | 268 | static const struct omap_dss_device_ops dvic_ops = { |
| 269 | .connect = dvic_connect, | 269 | .connect = dvic_connect, |
| 270 | .disconnect = dvic_disconnect, | 270 | .disconnect = dvic_disconnect, |
| 271 | 271 | ||
| @@ -367,7 +367,7 @@ static int dvic_probe(struct platform_device *pdev) | |||
| 367 | ddata->vm = dvic_default_vm; | 367 | ddata->vm = dvic_default_vm; |
| 368 | 368 | ||
| 369 | dssdev = &ddata->dssdev; | 369 | dssdev = &ddata->dssdev; |
| 370 | dssdev->driver = &dvic_driver; | 370 | dssdev->ops = &dvic_ops; |
| 371 | dssdev->dev = &pdev->dev; | 371 | dssdev->dev = &pdev->dev; |
| 372 | dssdev->type = OMAP_DISPLAY_TYPE_DVI; | 372 | dssdev->type = OMAP_DISPLAY_TYPE_DVI; |
| 373 | dssdev->owner = THIS_MODULE; | 373 | dssdev->owner = THIS_MODULE; |
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c b/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c index d39480b8cf6b..54bfd7156360 100644 --- a/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c +++ b/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c | |||
| @@ -132,7 +132,7 @@ static int hdmic_read_edid(struct omap_dss_device *dssdev, | |||
| 132 | { | 132 | { |
| 133 | struct omap_dss_device *src = dssdev->src; | 133 | struct omap_dss_device *src = dssdev->src; |
| 134 | 134 | ||
| 135 | return src->ops->hdmi.read_edid(src, edid, len); | 135 | return src->ops->read_edid(src, edid, len); |
| 136 | } | 136 | } |
| 137 | 137 | ||
| 138 | static bool hdmic_detect(struct omap_dss_device *dssdev) | 138 | static bool hdmic_detect(struct omap_dss_device *dssdev) |
| @@ -144,7 +144,7 @@ static bool hdmic_detect(struct omap_dss_device *dssdev) | |||
| 144 | if (ddata->hpd_gpio) | 144 | if (ddata->hpd_gpio) |
| 145 | connected = gpiod_get_value_cansleep(ddata->hpd_gpio); | 145 | connected = gpiod_get_value_cansleep(ddata->hpd_gpio); |
| 146 | else | 146 | else |
| 147 | connected = src->ops->hdmi.detect(src); | 147 | connected = src->ops->detect(src); |
| 148 | if (!connected && src->ops->hdmi.lost_hotplug) | 148 | if (!connected && src->ops->hdmi.lost_hotplug) |
| 149 | src->ops->hdmi.lost_hotplug(src); | 149 | src->ops->hdmi.lost_hotplug(src); |
| 150 | return connected; | 150 | return connected; |
| @@ -164,8 +164,8 @@ static int hdmic_register_hpd_cb(struct omap_dss_device *dssdev, | |||
| 164 | ddata->hpd_cb_data = cb_data; | 164 | ddata->hpd_cb_data = cb_data; |
| 165 | mutex_unlock(&ddata->hpd_lock); | 165 | mutex_unlock(&ddata->hpd_lock); |
| 166 | return 0; | 166 | return 0; |
| 167 | } else if (src->ops->hdmi.register_hpd_cb) { | 167 | } else if (src->ops->register_hpd_cb) { |
| 168 | return src->ops->hdmi.register_hpd_cb(src, cb, cb_data); | 168 | return src->ops->register_hpd_cb(src, cb, cb_data); |
| 169 | } | 169 | } |
| 170 | 170 | ||
| 171 | return -ENOTSUPP; | 171 | return -ENOTSUPP; |
| @@ -181,8 +181,8 @@ static void hdmic_unregister_hpd_cb(struct omap_dss_device *dssdev) | |||
| 181 | ddata->hpd_cb = NULL; | 181 | ddata->hpd_cb = NULL; |
| 182 | ddata->hpd_cb_data = NULL; | 182 | ddata->hpd_cb_data = NULL; |
| 183 | mutex_unlock(&ddata->hpd_lock); | 183 | mutex_unlock(&ddata->hpd_lock); |
| 184 | } else if (src->ops->hdmi.unregister_hpd_cb) { | 184 | } else if (src->ops->unregister_hpd_cb) { |
| 185 | src->ops->hdmi.unregister_hpd_cb(src); | 185 | src->ops->unregister_hpd_cb(src); |
| 186 | } | 186 | } |
| 187 | } | 187 | } |
| 188 | 188 | ||
| @@ -195,8 +195,8 @@ static void hdmic_enable_hpd(struct omap_dss_device *dssdev) | |||
| 195 | mutex_lock(&ddata->hpd_lock); | 195 | mutex_lock(&ddata->hpd_lock); |
| 196 | ddata->hpd_enabled = true; | 196 | ddata->hpd_enabled = true; |
| 197 | mutex_unlock(&ddata->hpd_lock); | 197 | mutex_unlock(&ddata->hpd_lock); |
| 198 | } else if (src->ops->hdmi.enable_hpd) { | 198 | } else if (src->ops->enable_hpd) { |
| 199 | src->ops->hdmi.enable_hpd(src); | 199 | src->ops->enable_hpd(src); |
| 200 | } | 200 | } |
| 201 | } | 201 | } |
| 202 | 202 | ||
| @@ -209,8 +209,8 @@ static void hdmic_disable_hpd(struct omap_dss_device *dssdev) | |||
| 209 | mutex_lock(&ddata->hpd_lock); | 209 | mutex_lock(&ddata->hpd_lock); |
| 210 | ddata->hpd_enabled = false; | 210 | ddata->hpd_enabled = false; |
| 211 | mutex_unlock(&ddata->hpd_lock); | 211 | mutex_unlock(&ddata->hpd_lock); |
| 212 | } else if (src->ops->hdmi.disable_hpd) { | 212 | } else if (src->ops->disable_hpd) { |
| 213 | src->ops->hdmi.disable_hpd(src); | 213 | src->ops->disable_hpd(src); |
| 214 | } | 214 | } |
| 215 | } | 215 | } |
| 216 | 216 | ||
| @@ -229,7 +229,7 @@ static int hdmic_set_infoframe(struct omap_dss_device *dssdev, | |||
| 229 | return src->ops->hdmi.set_infoframe(src, avi); | 229 | return src->ops->hdmi.set_infoframe(src, avi); |
| 230 | } | 230 | } |
| 231 | 231 | ||
| 232 | static const struct omap_dss_driver hdmic_driver = { | 232 | static const struct omap_dss_device_ops hdmic_ops = { |
| 233 | .connect = hdmic_connect, | 233 | .connect = hdmic_connect, |
| 234 | .disconnect = hdmic_disconnect, | 234 | .disconnect = hdmic_disconnect, |
| 235 | 235 | ||
| @@ -246,8 +246,11 @@ static const struct omap_dss_driver hdmic_driver = { | |||
| 246 | .unregister_hpd_cb = hdmic_unregister_hpd_cb, | 246 | .unregister_hpd_cb = hdmic_unregister_hpd_cb, |
| 247 | .enable_hpd = hdmic_enable_hpd, | 247 | .enable_hpd = hdmic_enable_hpd, |
| 248 | .disable_hpd = hdmic_disable_hpd, | 248 | .disable_hpd = hdmic_disable_hpd, |
| 249 | .set_hdmi_mode = hdmic_set_hdmi_mode, | 249 | |
| 250 | .set_hdmi_infoframe = hdmic_set_infoframe, | 250 | .hdmi = { |
| 251 | .set_hdmi_mode = hdmic_set_hdmi_mode, | ||
| 252 | .set_infoframe = hdmic_set_infoframe, | ||
| 253 | }, | ||
| 251 | }; | 254 | }; |
| 252 | 255 | ||
| 253 | static irqreturn_t hdmic_hpd_isr(int irq, void *data) | 256 | static irqreturn_t hdmic_hpd_isr(int irq, void *data) |
| @@ -309,7 +312,7 @@ static int hdmic_probe(struct platform_device *pdev) | |||
| 309 | ddata->vm = hdmic_default_vm; | 312 | ddata->vm = hdmic_default_vm; |
| 310 | 313 | ||
| 311 | dssdev = &ddata->dssdev; | 314 | dssdev = &ddata->dssdev; |
| 312 | dssdev->driver = &hdmic_driver; | 315 | dssdev->ops = &hdmic_ops; |
| 313 | dssdev->dev = &pdev->dev; | 316 | dssdev->dev = &pdev->dev; |
| 314 | dssdev->type = OMAP_DISPLAY_TYPE_HDMI; | 317 | dssdev->type = OMAP_DISPLAY_TYPE_HDMI; |
| 315 | dssdev->owner = THIS_MODULE; | 318 | dssdev->owner = THIS_MODULE; |
diff --git a/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c b/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c index c99e55487d38..0cc7bd656473 100644 --- a/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c +++ b/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c | |||
| @@ -125,7 +125,7 @@ static int tpd_read_edid(struct omap_dss_device *dssdev, | |||
| 125 | if (!gpiod_get_value_cansleep(ddata->hpd_gpio)) | 125 | if (!gpiod_get_value_cansleep(ddata->hpd_gpio)) |
| 126 | return -ENODEV; | 126 | return -ENODEV; |
| 127 | 127 | ||
| 128 | return src->ops->hdmi.read_edid(src, edid, len); | 128 | return src->ops->read_edid(src, edid, len); |
| 129 | } | 129 | } |
| 130 | 130 | ||
| 131 | static bool tpd_detect(struct omap_dss_device *dssdev) | 131 | static bool tpd_detect(struct omap_dss_device *dssdev) |
| @@ -205,14 +205,14 @@ static const struct omap_dss_device_ops tpd_ops = { | |||
| 205 | .disable = tpd_disable, | 205 | .disable = tpd_disable, |
| 206 | .check_timings = tpd_check_timings, | 206 | .check_timings = tpd_check_timings, |
| 207 | .set_timings = tpd_set_timings, | 207 | .set_timings = tpd_set_timings, |
| 208 | .read_edid = tpd_read_edid, | ||
| 209 | .detect = tpd_detect, | ||
| 210 | .register_hpd_cb = tpd_register_hpd_cb, | ||
| 211 | .unregister_hpd_cb = tpd_unregister_hpd_cb, | ||
| 212 | .enable_hpd = tpd_enable_hpd, | ||
| 213 | .disable_hpd = tpd_disable_hpd, | ||
| 208 | 214 | ||
| 209 | .hdmi = { | 215 | .hdmi = { |
| 210 | .read_edid = tpd_read_edid, | ||
| 211 | .detect = tpd_detect, | ||
| 212 | .register_hpd_cb = tpd_register_hpd_cb, | ||
| 213 | .unregister_hpd_cb = tpd_unregister_hpd_cb, | ||
| 214 | .enable_hpd = tpd_enable_hpd, | ||
| 215 | .disable_hpd = tpd_disable_hpd, | ||
| 216 | .set_infoframe = tpd_set_infoframe, | 216 | .set_infoframe = tpd_set_infoframe, |
| 217 | .set_hdmi_mode = tpd_set_hdmi_mode, | 217 | .set_hdmi_mode = tpd_set_hdmi_mode, |
| 218 | }, | 218 | }, |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c index 91f99c95c4c4..c03877af9cdb 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c | |||
| @@ -122,7 +122,7 @@ static int panel_dpi_check_timings(struct omap_dss_device *dssdev, | |||
| 122 | return src->ops->check_timings(src, vm); | 122 | return src->ops->check_timings(src, vm); |
| 123 | } | 123 | } |
| 124 | 124 | ||
| 125 | static const struct omap_dss_driver panel_dpi_ops = { | 125 | static const struct omap_dss_device_ops panel_dpi_ops = { |
| 126 | .connect = panel_dpi_connect, | 126 | .connect = panel_dpi_connect, |
| 127 | .disconnect = panel_dpi_disconnect, | 127 | .disconnect = panel_dpi_disconnect, |
| 128 | 128 | ||
| @@ -196,7 +196,7 @@ static int panel_dpi_probe(struct platform_device *pdev) | |||
| 196 | 196 | ||
| 197 | dssdev = &ddata->dssdev; | 197 | dssdev = &ddata->dssdev; |
| 198 | dssdev->dev = &pdev->dev; | 198 | dssdev->dev = &pdev->dev; |
| 199 | dssdev->driver = &panel_dpi_ops; | 199 | dssdev->ops = &panel_dpi_ops; |
| 200 | dssdev->type = OMAP_DISPLAY_TYPE_DPI; | 200 | dssdev->type = OMAP_DISPLAY_TYPE_DPI; |
| 201 | dssdev->owner = THIS_MODULE; | 201 | dssdev->owner = THIS_MODULE; |
| 202 | dssdev->of_ports = BIT(0); | 202 | dssdev->of_ports = BIT(0); |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c index e30f0ab315f5..29692a5217c5 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | |||
| @@ -1179,18 +1179,21 @@ static void dsicm_get_size(struct omap_dss_device *dssdev, | |||
| 1179 | *height = ddata->height_mm; | 1179 | *height = ddata->height_mm; |
| 1180 | } | 1180 | } |
| 1181 | 1181 | ||
| 1182 | static const struct omap_dss_driver dsicm_ops = { | 1182 | static const struct omap_dss_device_ops dsicm_ops = { |
| 1183 | .connect = dsicm_connect, | 1183 | .connect = dsicm_connect, |
| 1184 | .disconnect = dsicm_disconnect, | 1184 | .disconnect = dsicm_disconnect, |
| 1185 | 1185 | ||
| 1186 | .enable = dsicm_enable, | 1186 | .enable = dsicm_enable, |
| 1187 | .disable = dsicm_disable, | 1187 | .disable = dsicm_disable, |
| 1188 | 1188 | ||
| 1189 | .get_timings = dsicm_get_timings, | ||
| 1190 | .check_timings = dsicm_check_timings, | ||
| 1191 | }; | ||
| 1192 | |||
| 1193 | static const struct omap_dss_driver dsicm_dss_driver = { | ||
| 1189 | .update = dsicm_update, | 1194 | .update = dsicm_update, |
| 1190 | .sync = dsicm_sync, | 1195 | .sync = dsicm_sync, |
| 1191 | 1196 | ||
| 1192 | .get_timings = dsicm_get_timings, | ||
| 1193 | .check_timings = dsicm_check_timings, | ||
| 1194 | .get_size = dsicm_get_size, | 1197 | .get_size = dsicm_get_size, |
| 1195 | 1198 | ||
| 1196 | .enable_te = dsicm_enable_te, | 1199 | .enable_te = dsicm_enable_te, |
| @@ -1299,7 +1302,8 @@ static int dsicm_probe(struct platform_device *pdev) | |||
| 1299 | 1302 | ||
| 1300 | dssdev = &ddata->dssdev; | 1303 | dssdev = &ddata->dssdev; |
| 1301 | dssdev->dev = dev; | 1304 | dssdev->dev = dev; |
| 1302 | dssdev->driver = &dsicm_ops; | 1305 | dssdev->ops = &dsicm_ops; |
| 1306 | dssdev->driver = &dsicm_dss_driver; | ||
| 1303 | dssdev->type = OMAP_DISPLAY_TYPE_DSI; | 1307 | dssdev->type = OMAP_DISPLAY_TYPE_DSI; |
| 1304 | dssdev->owner = THIS_MODULE; | 1308 | dssdev->owner = THIS_MODULE; |
| 1305 | dssdev->of_ports = BIT(0); | 1309 | dssdev->of_ports = BIT(0); |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c index 66763a12fc3d..62576e4f89e3 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c | |||
| @@ -199,7 +199,7 @@ static int lb035q02_check_timings(struct omap_dss_device *dssdev, | |||
| 199 | return src->ops->check_timings(src, vm); | 199 | return src->ops->check_timings(src, vm); |
| 200 | } | 200 | } |
| 201 | 201 | ||
| 202 | static const struct omap_dss_driver lb035q02_ops = { | 202 | static const struct omap_dss_device_ops lb035q02_ops = { |
| 203 | .connect = lb035q02_connect, | 203 | .connect = lb035q02_connect, |
| 204 | .disconnect = lb035q02_disconnect, | 204 | .disconnect = lb035q02_disconnect, |
| 205 | 205 | ||
| @@ -249,7 +249,7 @@ static int lb035q02_panel_spi_probe(struct spi_device *spi) | |||
| 249 | 249 | ||
| 250 | dssdev = &ddata->dssdev; | 250 | dssdev = &ddata->dssdev; |
| 251 | dssdev->dev = &spi->dev; | 251 | dssdev->dev = &spi->dev; |
| 252 | dssdev->driver = &lb035q02_ops; | 252 | dssdev->ops = &lb035q02_ops; |
| 253 | dssdev->type = OMAP_DISPLAY_TYPE_DPI; | 253 | dssdev->type = OMAP_DISPLAY_TYPE_DPI; |
| 254 | dssdev->owner = THIS_MODULE; | 254 | dssdev->owner = THIS_MODULE; |
| 255 | dssdev->of_ports = BIT(0); | 255 | dssdev->of_ports = BIT(0); |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c index 767ffd2fa0f4..9f34cf02a114 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c | |||
| @@ -187,7 +187,7 @@ static int nec_8048_check_timings(struct omap_dss_device *dssdev, | |||
| 187 | return src->ops->check_timings(src, vm); | 187 | return src->ops->check_timings(src, vm); |
| 188 | } | 188 | } |
| 189 | 189 | ||
| 190 | static const struct omap_dss_driver nec_8048_ops = { | 190 | static const struct omap_dss_device_ops nec_8048_ops = { |
| 191 | .connect = nec_8048_connect, | 191 | .connect = nec_8048_connect, |
| 192 | .disconnect = nec_8048_disconnect, | 192 | .disconnect = nec_8048_disconnect, |
| 193 | 193 | ||
| @@ -239,7 +239,7 @@ static int nec_8048_probe(struct spi_device *spi) | |||
| 239 | 239 | ||
| 240 | dssdev = &ddata->dssdev; | 240 | dssdev = &ddata->dssdev; |
| 241 | dssdev->dev = &spi->dev; | 241 | dssdev->dev = &spi->dev; |
| 242 | dssdev->driver = &nec_8048_ops; | 242 | dssdev->ops = &nec_8048_ops; |
| 243 | dssdev->type = OMAP_DISPLAY_TYPE_DPI; | 243 | dssdev->type = OMAP_DISPLAY_TYPE_DPI; |
| 244 | dssdev->owner = THIS_MODULE; | 244 | dssdev->owner = THIS_MODULE; |
| 245 | dssdev->of_ports = BIT(0); | 245 | dssdev->of_ports = BIT(0); |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c index 7fbdf3ec0113..9ee6b8376916 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c | |||
| @@ -161,7 +161,7 @@ static int sharp_ls_check_timings(struct omap_dss_device *dssdev, | |||
| 161 | return src->ops->check_timings(src, vm); | 161 | return src->ops->check_timings(src, vm); |
| 162 | } | 162 | } |
| 163 | 163 | ||
| 164 | static const struct omap_dss_driver sharp_ls_ops = { | 164 | static const struct omap_dss_device_ops sharp_ls_ops = { |
| 165 | .connect = sharp_ls_connect, | 165 | .connect = sharp_ls_connect, |
| 166 | .disconnect = sharp_ls_disconnect, | 166 | .disconnect = sharp_ls_disconnect, |
| 167 | 167 | ||
| @@ -247,7 +247,7 @@ static int sharp_ls_probe(struct platform_device *pdev) | |||
| 247 | 247 | ||
| 248 | dssdev = &ddata->dssdev; | 248 | dssdev = &ddata->dssdev; |
| 249 | dssdev->dev = &pdev->dev; | 249 | dssdev->dev = &pdev->dev; |
| 250 | dssdev->driver = &sharp_ls_ops; | 250 | dssdev->ops = &sharp_ls_ops; |
| 251 | dssdev->type = OMAP_DISPLAY_TYPE_DPI; | 251 | dssdev->type = OMAP_DISPLAY_TYPE_DPI; |
| 252 | dssdev->owner = THIS_MODULE; | 252 | dssdev->owner = THIS_MODULE; |
| 253 | dssdev->of_ports = BIT(0); | 253 | dssdev->of_ports = BIT(0); |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c index 3eca39821d79..d0a8d2810c33 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c | |||
| @@ -660,7 +660,7 @@ static int acx565akm_check_timings(struct omap_dss_device *dssdev, | |||
| 660 | return src->ops->check_timings(src, vm); | 660 | return src->ops->check_timings(src, vm); |
| 661 | } | 661 | } |
| 662 | 662 | ||
| 663 | static const struct omap_dss_driver acx565akm_ops = { | 663 | static const struct omap_dss_device_ops acx565akm_ops = { |
| 664 | .connect = acx565akm_connect, | 664 | .connect = acx565akm_connect, |
| 665 | .disconnect = acx565akm_disconnect, | 665 | .disconnect = acx565akm_disconnect, |
| 666 | 666 | ||
| @@ -762,7 +762,7 @@ static int acx565akm_probe(struct spi_device *spi) | |||
| 762 | 762 | ||
| 763 | dssdev = &ddata->dssdev; | 763 | dssdev = &ddata->dssdev; |
| 764 | dssdev->dev = &spi->dev; | 764 | dssdev->dev = &spi->dev; |
| 765 | dssdev->driver = &acx565akm_ops; | 765 | dssdev->ops = &acx565akm_ops; |
| 766 | dssdev->type = OMAP_DISPLAY_TYPE_SDI; | 766 | dssdev->type = OMAP_DISPLAY_TYPE_SDI; |
| 767 | dssdev->owner = THIS_MODULE; | 767 | dssdev->owner = THIS_MODULE; |
| 768 | dssdev->of_ports = BIT(0); | 768 | dssdev->of_ports = BIT(0); |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c index ecb903a93cf4..1b0e42daa296 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c | |||
| @@ -330,7 +330,7 @@ static int td028ttec1_panel_check_timings(struct omap_dss_device *dssdev, | |||
| 330 | return src->ops->check_timings(src, vm); | 330 | return src->ops->check_timings(src, vm); |
| 331 | } | 331 | } |
| 332 | 332 | ||
| 333 | static const struct omap_dss_driver td028ttec1_ops = { | 333 | static const struct omap_dss_device_ops td028ttec1_ops = { |
| 334 | .connect = td028ttec1_panel_connect, | 334 | .connect = td028ttec1_panel_connect, |
| 335 | .disconnect = td028ttec1_panel_disconnect, | 335 | .disconnect = td028ttec1_panel_disconnect, |
| 336 | 336 | ||
| @@ -371,7 +371,7 @@ static int td028ttec1_panel_probe(struct spi_device *spi) | |||
| 371 | 371 | ||
| 372 | dssdev = &ddata->dssdev; | 372 | dssdev = &ddata->dssdev; |
| 373 | dssdev->dev = &spi->dev; | 373 | dssdev->dev = &spi->dev; |
| 374 | dssdev->driver = &td028ttec1_ops; | 374 | dssdev->ops = &td028ttec1_ops; |
| 375 | dssdev->type = OMAP_DISPLAY_TYPE_DPI; | 375 | dssdev->type = OMAP_DISPLAY_TYPE_DPI; |
| 376 | dssdev->owner = THIS_MODULE; | 376 | dssdev->owner = THIS_MODULE; |
| 377 | dssdev->of_ports = BIT(0); | 377 | dssdev->of_ports = BIT(0); |
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c index 1521812ab15b..b211a7809a26 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c | |||
| @@ -404,7 +404,7 @@ static int tpo_td043_check_timings(struct omap_dss_device *dssdev, | |||
| 404 | return src->ops->check_timings(src, vm); | 404 | return src->ops->check_timings(src, vm); |
| 405 | } | 405 | } |
| 406 | 406 | ||
| 407 | static const struct omap_dss_driver tpo_td043_ops = { | 407 | static const struct omap_dss_device_ops tpo_td043_ops = { |
| 408 | .connect = tpo_td043_connect, | 408 | .connect = tpo_td043_connect, |
| 409 | .disconnect = tpo_td043_disconnect, | 409 | .disconnect = tpo_td043_disconnect, |
| 410 | 410 | ||
| @@ -469,7 +469,7 @@ static int tpo_td043_probe(struct spi_device *spi) | |||
| 469 | 469 | ||
| 470 | dssdev = &ddata->dssdev; | 470 | dssdev = &ddata->dssdev; |
| 471 | dssdev->dev = &spi->dev; | 471 | dssdev->dev = &spi->dev; |
| 472 | dssdev->driver = &tpo_td043_ops; | 472 | dssdev->ops = &tpo_td043_ops; |
| 473 | dssdev->type = OMAP_DISPLAY_TYPE_DPI; | 473 | dssdev->type = OMAP_DISPLAY_TYPE_DPI; |
| 474 | dssdev->owner = THIS_MODULE; | 474 | dssdev->owner = THIS_MODULE; |
| 475 | dssdev->of_ports = BIT(0); | 475 | dssdev->of_ports = BIT(0); |
diff --git a/drivers/gpu/drm/omapdrm/dss/base.c b/drivers/gpu/drm/omapdrm/dss/base.c index 614331b7d702..472f56e3de70 100644 --- a/drivers/gpu/drm/omapdrm/dss/base.c +++ b/drivers/gpu/drm/omapdrm/dss/base.c | |||
| @@ -198,11 +198,7 @@ int omapdss_device_connect(struct dss_device *dss, | |||
| 198 | 198 | ||
| 199 | dst->dss = dss; | 199 | dst->dss = dss; |
| 200 | 200 | ||
| 201 | if (dst->driver) | 201 | ret = dst->ops->connect(src, dst); |
| 202 | ret = dst->driver->connect(src, dst); | ||
| 203 | else | ||
| 204 | ret = dst->ops->connect(src, dst); | ||
| 205 | |||
| 206 | if (ret < 0) { | 202 | if (ret < 0) { |
| 207 | dst->dss = NULL; | 203 | dst->dss = NULL; |
| 208 | return ret; | 204 | return ret; |
| @@ -238,11 +234,7 @@ void omapdss_device_disconnect(struct omap_dss_device *src, | |||
| 238 | 234 | ||
| 239 | WARN_ON(dst->state != OMAP_DSS_DISPLAY_DISABLED); | 235 | WARN_ON(dst->state != OMAP_DSS_DISPLAY_DISABLED); |
| 240 | 236 | ||
| 241 | if (dst->driver) | 237 | dst->ops->disconnect(src, dst); |
| 242 | dst->driver->disconnect(src, dst); | ||
| 243 | else | ||
| 244 | dst->ops->disconnect(src, dst); | ||
| 245 | |||
| 246 | dst->dss = NULL; | 238 | dst->dss = NULL; |
| 247 | } | 239 | } |
| 248 | EXPORT_SYMBOL_GPL(omapdss_device_disconnect); | 240 | EXPORT_SYMBOL_GPL(omapdss_device_disconnect); |
diff --git a/drivers/gpu/drm/omapdrm/dss/dss.c b/drivers/gpu/drm/omapdrm/dss/dss.c index 14ffe23b5ecf..19fc4dfc429e 100644 --- a/drivers/gpu/drm/omapdrm/dss/dss.c +++ b/drivers/gpu/drm/omapdrm/dss/dss.c | |||
| @@ -1553,7 +1553,7 @@ static void dss_shutdown(struct platform_device *pdev) | |||
| 1553 | 1553 | ||
| 1554 | for_each_dss_display(dssdev) { | 1554 | for_each_dss_display(dssdev) { |
| 1555 | if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE) | 1555 | if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE) |
| 1556 | dssdev->driver->disable(dssdev); | 1556 | dssdev->ops->disable(dssdev); |
| 1557 | } | 1557 | } |
| 1558 | } | 1558 | } |
| 1559 | 1559 | ||
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4.c b/drivers/gpu/drm/omapdrm/dss/hdmi4.c index c4fcdc9ed62d..bebce93fed3e 100644 --- a/drivers/gpu/drm/omapdrm/dss/hdmi4.c +++ b/drivers/gpu/drm/omapdrm/dss/hdmi4.c | |||
| @@ -511,8 +511,9 @@ static const struct omap_dss_device_ops hdmi_ops = { | |||
| 511 | .check_timings = hdmi_display_check_timing, | 511 | .check_timings = hdmi_display_check_timing, |
| 512 | .set_timings = hdmi_display_set_timing, | 512 | .set_timings = hdmi_display_set_timing, |
| 513 | 513 | ||
| 514 | .read_edid = hdmi_read_edid, | ||
| 515 | |||
| 514 | .hdmi = { | 516 | .hdmi = { |
| 515 | .read_edid = hdmi_read_edid, | ||
| 516 | .lost_hotplug = hdmi_lost_hotplug, | 517 | .lost_hotplug = hdmi_lost_hotplug, |
| 517 | .set_infoframe = hdmi_set_infoframe, | 518 | .set_infoframe = hdmi_set_infoframe, |
| 518 | .set_hdmi_mode = hdmi_set_hdmi_mode, | 519 | .set_hdmi_mode = hdmi_set_hdmi_mode, |
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi5.c b/drivers/gpu/drm/omapdrm/dss/hdmi5.c index 889c31745492..7c07e0208107 100644 --- a/drivers/gpu/drm/omapdrm/dss/hdmi5.c +++ b/drivers/gpu/drm/omapdrm/dss/hdmi5.c | |||
| @@ -505,8 +505,9 @@ static const struct omap_dss_device_ops hdmi_ops = { | |||
| 505 | .check_timings = hdmi_display_check_timing, | 505 | .check_timings = hdmi_display_check_timing, |
| 506 | .set_timings = hdmi_display_set_timing, | 506 | .set_timings = hdmi_display_set_timing, |
| 507 | 507 | ||
| 508 | .read_edid = hdmi_read_edid, | ||
| 509 | |||
| 508 | .hdmi = { | 510 | .hdmi = { |
| 509 | .read_edid = hdmi_read_edid, | ||
| 510 | .set_infoframe = hdmi_set_infoframe, | 511 | .set_infoframe = hdmi_set_infoframe, |
| 511 | .set_hdmi_mode = hdmi_set_hdmi_mode, | 512 | .set_hdmi_mode = hdmi_set_hdmi_mode, |
| 512 | }, | 513 | }, |
diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h b/drivers/gpu/drm/omapdrm/dss/omapdss.h index 6d22b38f2ce5..60e4269e6c88 100644 --- a/drivers/gpu/drm/omapdrm/dss/omapdss.h +++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h | |||
| @@ -297,18 +297,7 @@ struct omap_dss_writeback_info { | |||
| 297 | }; | 297 | }; |
| 298 | 298 | ||
| 299 | struct omapdss_hdmi_ops { | 299 | struct omapdss_hdmi_ops { |
| 300 | int (*read_edid)(struct omap_dss_device *dssdev, u8 *buf, int len); | ||
| 301 | void (*lost_hotplug)(struct omap_dss_device *dssdev); | 300 | void (*lost_hotplug)(struct omap_dss_device *dssdev); |
| 302 | bool (*detect)(struct omap_dss_device *dssdev); | ||
| 303 | |||
| 304 | int (*register_hpd_cb)(struct omap_dss_device *dssdev, | ||
| 305 | void (*cb)(void *cb_data, | ||
| 306 | enum drm_connector_status status), | ||
| 307 | void *cb_data); | ||
| 308 | void (*unregister_hpd_cb)(struct omap_dss_device *dssdev); | ||
| 309 | void (*enable_hpd)(struct omap_dss_device *dssdev); | ||
| 310 | void (*disable_hpd)(struct omap_dss_device *dssdev); | ||
| 311 | |||
| 312 | int (*set_hdmi_mode)(struct omap_dss_device *dssdev, bool hdmi_mode); | 301 | int (*set_hdmi_mode)(struct omap_dss_device *dssdev, bool hdmi_mode); |
| 313 | int (*set_infoframe)(struct omap_dss_device *dssdev, | 302 | int (*set_infoframe)(struct omap_dss_device *dssdev, |
| 314 | const struct hdmi_avi_infoframe *avi); | 303 | const struct hdmi_avi_infoframe *avi); |
| @@ -376,9 +365,23 @@ struct omap_dss_device_ops { | |||
| 376 | 365 | ||
| 377 | int (*check_timings)(struct omap_dss_device *dssdev, | 366 | int (*check_timings)(struct omap_dss_device *dssdev, |
| 378 | struct videomode *vm); | 367 | struct videomode *vm); |
| 368 | void (*get_timings)(struct omap_dss_device *dssdev, | ||
| 369 | struct videomode *vm); | ||
| 379 | void (*set_timings)(struct omap_dss_device *dssdev, | 370 | void (*set_timings)(struct omap_dss_device *dssdev, |
| 380 | struct videomode *vm); | 371 | struct videomode *vm); |
| 381 | 372 | ||
| 373 | bool (*detect)(struct omap_dss_device *dssdev); | ||
| 374 | |||
| 375 | int (*register_hpd_cb)(struct omap_dss_device *dssdev, | ||
| 376 | void (*cb)(void *cb_data, | ||
| 377 | enum drm_connector_status status), | ||
| 378 | void *cb_data); | ||
| 379 | void (*unregister_hpd_cb)(struct omap_dss_device *dssdev); | ||
| 380 | void (*enable_hpd)(struct omap_dss_device *dssdev); | ||
| 381 | void (*disable_hpd)(struct omap_dss_device *dssdev); | ||
| 382 | |||
| 383 | int (*read_edid)(struct omap_dss_device *dssdev, u8 *buf, int len); | ||
| 384 | |||
| 382 | union { | 385 | union { |
| 383 | const struct omapdss_hdmi_ops hdmi; | 386 | const struct omapdss_hdmi_ops hdmi; |
| 384 | const struct omapdss_dsi_ops dsi; | 387 | const struct omapdss_dsi_ops dsi; |
| @@ -440,14 +443,6 @@ struct omap_dss_device { | |||
| 440 | }; | 443 | }; |
| 441 | 444 | ||
| 442 | struct omap_dss_driver { | 445 | struct omap_dss_driver { |
| 443 | int (*connect)(struct omap_dss_device *src, | ||
| 444 | struct omap_dss_device *dst); | ||
| 445 | void (*disconnect)(struct omap_dss_device *src, | ||
| 446 | struct omap_dss_device *dst); | ||
| 447 | |||
| 448 | int (*enable)(struct omap_dss_device *display); | ||
| 449 | void (*disable)(struct omap_dss_device *display); | ||
| 450 | |||
| 451 | int (*update)(struct omap_dss_device *dssdev, | 446 | int (*update)(struct omap_dss_device *dssdev, |
| 452 | u16 x, u16 y, u16 w, u16 h); | 447 | u16 x, u16 y, u16 w, u16 h); |
| 453 | int (*sync)(struct omap_dss_device *dssdev); | 448 | int (*sync)(struct omap_dss_device *dssdev); |
| @@ -459,29 +454,8 @@ struct omap_dss_driver { | |||
| 459 | void *buf, size_t size, | 454 | void *buf, size_t size, |
| 460 | u16 x, u16 y, u16 w, u16 h); | 455 | u16 x, u16 y, u16 w, u16 h); |
| 461 | 456 | ||
| 462 | int (*check_timings)(struct omap_dss_device *dssdev, | ||
| 463 | struct videomode *vm); | ||
| 464 | void (*set_timings)(struct omap_dss_device *dssdev, | ||
| 465 | struct videomode *vm); | ||
| 466 | void (*get_timings)(struct omap_dss_device *dssdev, | ||
| 467 | struct videomode *vm); | ||
| 468 | void (*get_size)(struct omap_dss_device *dssdev, | 457 | void (*get_size)(struct omap_dss_device *dssdev, |
| 469 | unsigned int *width, unsigned int *height); | 458 | unsigned int *width, unsigned int *height); |
| 470 | |||
| 471 | int (*read_edid)(struct omap_dss_device *dssdev, u8 *buf, int len); | ||
| 472 | bool (*detect)(struct omap_dss_device *dssdev); | ||
| 473 | |||
| 474 | int (*register_hpd_cb)(struct omap_dss_device *dssdev, | ||
| 475 | void (*cb)(void *cb_data, | ||
| 476 | enum drm_connector_status status), | ||
| 477 | void *cb_data); | ||
| 478 | void (*unregister_hpd_cb)(struct omap_dss_device *dssdev); | ||
| 479 | void (*enable_hpd)(struct omap_dss_device *dssdev); | ||
| 480 | void (*disable_hpd)(struct omap_dss_device *dssdev); | ||
| 481 | |||
| 482 | int (*set_hdmi_mode)(struct omap_dss_device *dssdev, bool hdmi_mode); | ||
| 483 | int (*set_hdmi_infoframe)(struct omap_dss_device *dssdev, | ||
| 484 | const struct hdmi_avi_infoframe *avi); | ||
| 485 | }; | 459 | }; |
| 486 | 460 | ||
| 487 | struct dss_device *omapdss_get_dss(void); | 461 | struct dss_device *omapdss_get_dss(void); |
diff --git a/drivers/gpu/drm/omapdrm/omap_connector.c b/drivers/gpu/drm/omapdrm/omap_connector.c index 69ebb0fa1df5..f9cc04c7c0fa 100644 --- a/drivers/gpu/drm/omapdrm/omap_connector.c +++ b/drivers/gpu/drm/omapdrm/omap_connector.c | |||
| @@ -62,11 +62,10 @@ static enum drm_connector_status omap_connector_detect( | |||
| 62 | { | 62 | { |
| 63 | struct omap_connector *omap_connector = to_omap_connector(connector); | 63 | struct omap_connector *omap_connector = to_omap_connector(connector); |
| 64 | struct omap_dss_device *dssdev = omap_connector->dssdev; | 64 | struct omap_dss_device *dssdev = omap_connector->dssdev; |
| 65 | const struct omap_dss_driver *dssdrv = dssdev->driver; | ||
| 66 | enum drm_connector_status ret; | 65 | enum drm_connector_status ret; |
| 67 | 66 | ||
| 68 | if (dssdrv->detect) { | 67 | if (dssdev->ops->detect) { |
| 69 | if (dssdrv->detect(dssdev)) | 68 | if (dssdev->ops->detect(dssdev)) |
| 70 | ret = connector_status_connected; | 69 | ret = connector_status_connected; |
| 71 | else | 70 | else |
| 72 | ret = connector_status_disconnected; | 71 | ret = connector_status_disconnected; |
| @@ -91,8 +90,8 @@ static void omap_connector_destroy(struct drm_connector *connector) | |||
| 91 | 90 | ||
| 92 | DBG("%s", omap_connector->dssdev->name); | 91 | DBG("%s", omap_connector->dssdev->name); |
| 93 | if (connector->polled == DRM_CONNECTOR_POLL_HPD && | 92 | if (connector->polled == DRM_CONNECTOR_POLL_HPD && |
| 94 | dssdev->driver->unregister_hpd_cb) { | 93 | dssdev->ops->unregister_hpd_cb) { |
| 95 | dssdev->driver->unregister_hpd_cb(dssdev); | 94 | dssdev->ops->unregister_hpd_cb(dssdev); |
| 96 | } | 95 | } |
| 97 | drm_connector_unregister(connector); | 96 | drm_connector_unregister(connector); |
| 98 | drm_connector_cleanup(connector); | 97 | drm_connector_cleanup(connector); |
| @@ -107,7 +106,6 @@ static int omap_connector_get_modes(struct drm_connector *connector) | |||
| 107 | { | 106 | { |
| 108 | struct omap_connector *omap_connector = to_omap_connector(connector); | 107 | struct omap_connector *omap_connector = to_omap_connector(connector); |
| 109 | struct omap_dss_device *dssdev = omap_connector->dssdev; | 108 | struct omap_dss_device *dssdev = omap_connector->dssdev; |
| 110 | const struct omap_dss_driver *dssdrv = dssdev->driver; | ||
| 111 | struct drm_device *dev = connector->dev; | 109 | struct drm_device *dev = connector->dev; |
| 112 | int n = 0; | 110 | int n = 0; |
| 113 | 111 | ||
| @@ -118,13 +116,13 @@ static int omap_connector_get_modes(struct drm_connector *connector) | |||
| 118 | * LCD panels) we just return a single mode corresponding to the | 116 | * LCD panels) we just return a single mode corresponding to the |
| 119 | * currently configured timings: | 117 | * currently configured timings: |
| 120 | */ | 118 | */ |
| 121 | if (dssdrv->read_edid) { | 119 | if (dssdev->ops->read_edid) { |
| 122 | void *edid = kzalloc(MAX_EDID, GFP_KERNEL); | 120 | void *edid = kzalloc(MAX_EDID, GFP_KERNEL); |
| 123 | 121 | ||
| 124 | if (!edid) | 122 | if (!edid) |
| 125 | return 0; | 123 | return 0; |
| 126 | 124 | ||
| 127 | if ((dssdrv->read_edid(dssdev, edid, MAX_EDID) > 0) && | 125 | if ((dssdev->ops->read_edid(dssdev, edid, MAX_EDID) > 0) && |
| 128 | drm_edid_is_valid(edid)) { | 126 | drm_edid_is_valid(edid)) { |
| 129 | drm_connector_update_edid_property( | 127 | drm_connector_update_edid_property( |
| 130 | connector, edid); | 128 | connector, edid); |
| @@ -145,7 +143,7 @@ static int omap_connector_get_modes(struct drm_connector *connector) | |||
| 145 | if (!mode) | 143 | if (!mode) |
| 146 | return 0; | 144 | return 0; |
| 147 | 145 | ||
| 148 | dssdrv->get_timings(dssdev, &vm); | 146 | dssdev->ops->get_timings(dssdev, &vm); |
| 149 | 147 | ||
| 150 | drm_display_mode_from_videomode(&vm, mode); | 148 | drm_display_mode_from_videomode(&vm, mode); |
| 151 | 149 | ||
| @@ -153,8 +151,8 @@ static int omap_connector_get_modes(struct drm_connector *connector) | |||
| 153 | drm_mode_set_name(mode); | 151 | drm_mode_set_name(mode); |
| 154 | drm_mode_probed_add(connector, mode); | 152 | drm_mode_probed_add(connector, mode); |
| 155 | 153 | ||
| 156 | if (dssdrv->get_size) { | 154 | if (dssdev->driver && dssdev->driver->get_size) { |
| 157 | dssdrv->get_size(dssdev, | 155 | dssdev->driver->get_size(dssdev, |
| 158 | &connector->display_info.width_mm, | 156 | &connector->display_info.width_mm, |
| 159 | &connector->display_info.height_mm); | 157 | &connector->display_info.height_mm); |
| 160 | } | 158 | } |
| @@ -170,7 +168,6 @@ static int omap_connector_mode_valid(struct drm_connector *connector, | |||
| 170 | { | 168 | { |
| 171 | struct omap_connector *omap_connector = to_omap_connector(connector); | 169 | struct omap_connector *omap_connector = to_omap_connector(connector); |
| 172 | struct omap_dss_device *dssdev = omap_connector->dssdev; | 170 | struct omap_dss_device *dssdev = omap_connector->dssdev; |
| 173 | const struct omap_dss_driver *dssdrv = dssdev->driver; | ||
| 174 | struct videomode vm = {0}; | 171 | struct videomode vm = {0}; |
| 175 | struct drm_device *dev = connector->dev; | 172 | struct drm_device *dev = connector->dev; |
| 176 | struct drm_display_mode *new_mode; | 173 | struct drm_display_mode *new_mode; |
| @@ -184,12 +181,12 @@ static int omap_connector_mode_valid(struct drm_connector *connector, | |||
| 184 | * a fixed resolution panel, check if the timings match with the | 181 | * a fixed resolution panel, check if the timings match with the |
| 185 | * panel's timings | 182 | * panel's timings |
| 186 | */ | 183 | */ |
| 187 | if (dssdrv->check_timings) { | 184 | if (dssdev->ops->check_timings) { |
| 188 | r = dssdrv->check_timings(dssdev, &vm); | 185 | r = dssdev->ops->check_timings(dssdev, &vm); |
| 189 | } else { | 186 | } else { |
| 190 | struct videomode t = {0}; | 187 | struct videomode t = {0}; |
| 191 | 188 | ||
| 192 | dssdrv->get_timings(dssdev, &t); | 189 | dssdev->ops->get_timings(dssdev, &t); |
| 193 | 190 | ||
| 194 | /* | 191 | /* |
| 195 | * Ignore the flags, as we don't get them from | 192 | * Ignore the flags, as we don't get them from |
| @@ -268,10 +265,10 @@ struct drm_connector *omap_connector_init(struct drm_device *dev, | |||
| 268 | connector_type); | 265 | connector_type); |
| 269 | drm_connector_helper_add(connector, &omap_connector_helper_funcs); | 266 | drm_connector_helper_add(connector, &omap_connector_helper_funcs); |
| 270 | 267 | ||
| 271 | if (dssdev->driver->register_hpd_cb) { | 268 | if (dssdev->ops->register_hpd_cb) { |
| 272 | int ret = dssdev->driver->register_hpd_cb(dssdev, | 269 | int ret = dssdev->ops->register_hpd_cb(dssdev, |
| 273 | omap_connector_hpd_cb, | 270 | omap_connector_hpd_cb, |
| 274 | omap_connector); | 271 | omap_connector); |
| 275 | if (!ret) | 272 | if (!ret) |
| 276 | hpd_supported = true; | 273 | hpd_supported = true; |
| 277 | else if (ret != -ENOTSUPP) | 274 | else if (ret != -ENOTSUPP) |
| @@ -281,7 +278,7 @@ struct drm_connector *omap_connector_init(struct drm_device *dev, | |||
| 281 | 278 | ||
| 282 | if (hpd_supported) | 279 | if (hpd_supported) |
| 283 | connector->polled = DRM_CONNECTOR_POLL_HPD; | 280 | connector->polled = DRM_CONNECTOR_POLL_HPD; |
| 284 | else if (dssdev->driver->detect) | 281 | else if (dssdev->ops->detect) |
| 285 | connector->polled = DRM_CONNECTOR_POLL_CONNECT | | 282 | connector->polled = DRM_CONNECTOR_POLL_CONNECT | |
| 286 | DRM_CONNECTOR_POLL_DISCONNECT; | 283 | DRM_CONNECTOR_POLL_DISCONNECT; |
| 287 | else | 284 | else |
diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c index 80498dcde6d7..197d05312306 100644 --- a/drivers/gpu/drm/omapdrm/omap_crtc.c +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c | |||
| @@ -458,7 +458,7 @@ static void omap_crtc_mode_set_nofb(struct drm_crtc *crtc) | |||
| 458 | if (dssdev) { | 458 | if (dssdev) { |
| 459 | struct videomode vm = {0}; | 459 | struct videomode vm = {0}; |
| 460 | 460 | ||
| 461 | dssdev->driver->get_timings(dssdev, &vm); | 461 | dssdev->ops->get_timings(dssdev, &vm); |
| 462 | 462 | ||
| 463 | omap_crtc->vm.flags |= vm.flags & flags_mask; | 463 | omap_crtc->vm.flags |= vm.flags & flags_mask; |
| 464 | } | 464 | } |
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c index d0f6929857bb..843222118fa7 100644 --- a/drivers/gpu/drm/omapdrm/omap_drv.c +++ b/drivers/gpu/drm/omapdrm/omap_drv.c | |||
| @@ -378,8 +378,8 @@ static void omap_modeset_enable_external_hpd(struct drm_device *ddev) | |||
| 378 | for (i = 0; i < priv->num_pipes; i++) { | 378 | for (i = 0; i < priv->num_pipes; i++) { |
| 379 | struct omap_dss_device *display = priv->pipes[i].display; | 379 | struct omap_dss_device *display = priv->pipes[i].display; |
| 380 | 380 | ||
| 381 | if (display->driver->enable_hpd) | 381 | if (display->ops->enable_hpd) |
| 382 | display->driver->enable_hpd(display); | 382 | display->ops->enable_hpd(display); |
| 383 | } | 383 | } |
| 384 | } | 384 | } |
| 385 | 385 | ||
| @@ -394,8 +394,8 @@ static void omap_modeset_disable_external_hpd(struct drm_device *ddev) | |||
| 394 | for (i = 0; i < priv->num_pipes; i++) { | 394 | for (i = 0; i < priv->num_pipes; i++) { |
| 395 | struct omap_dss_device *display = priv->pipes[i].display; | 395 | struct omap_dss_device *display = priv->pipes[i].display; |
| 396 | 396 | ||
| 397 | if (display->driver->disable_hpd) | 397 | if (display->ops->disable_hpd) |
| 398 | display->driver->disable_hpd(display); | 398 | display->ops->disable_hpd(display); |
| 399 | } | 399 | } |
| 400 | } | 400 | } |
| 401 | 401 | ||
| @@ -724,7 +724,7 @@ static int omap_drm_suspend_all_displays(struct drm_device *ddev) | |||
| 724 | struct omap_dss_device *display = priv->pipes[i].display; | 724 | struct omap_dss_device *display = priv->pipes[i].display; |
| 725 | 725 | ||
| 726 | if (display->state == OMAP_DSS_DISPLAY_ACTIVE) { | 726 | if (display->state == OMAP_DSS_DISPLAY_ACTIVE) { |
| 727 | display->driver->disable(display); | 727 | display->ops->disable(display); |
| 728 | display->activate_after_resume = true; | 728 | display->activate_after_resume = true; |
| 729 | } else { | 729 | } else { |
| 730 | display->activate_after_resume = false; | 730 | display->activate_after_resume = false; |
| @@ -743,7 +743,7 @@ static int omap_drm_resume_all_displays(struct drm_device *ddev) | |||
| 743 | struct omap_dss_device *display = priv->pipes[i].display; | 743 | struct omap_dss_device *display = priv->pipes[i].display; |
| 744 | 744 | ||
| 745 | if (display->activate_after_resume) { | 745 | if (display->activate_after_resume) { |
| 746 | display->driver->enable(display); | 746 | display->ops->enable(display); |
| 747 | display->activate_after_resume = false; | 747 | display->activate_after_resume = false; |
| 748 | } | 748 | } |
| 749 | } | 749 | } |
diff --git a/drivers/gpu/drm/omapdrm/omap_encoder.c b/drivers/gpu/drm/omapdrm/omap_encoder.c index ec0f451e3b36..7bbf3700e393 100644 --- a/drivers/gpu/drm/omapdrm/omap_encoder.c +++ b/drivers/gpu/drm/omapdrm/omap_encoder.c | |||
| @@ -77,16 +77,16 @@ static void omap_encoder_mode_set(struct drm_encoder *encoder, | |||
| 77 | } | 77 | } |
| 78 | } | 78 | } |
| 79 | 79 | ||
| 80 | if (dssdev->driver->set_hdmi_mode) | 80 | if (dssdev->ops->hdmi.set_hdmi_mode) |
| 81 | dssdev->driver->set_hdmi_mode(dssdev, hdmi_mode); | 81 | dssdev->ops->hdmi.set_hdmi_mode(dssdev, hdmi_mode); |
| 82 | 82 | ||
| 83 | if (hdmi_mode && dssdev->driver->set_hdmi_infoframe) { | 83 | if (hdmi_mode && dssdev->ops->hdmi.set_infoframe) { |
| 84 | struct hdmi_avi_infoframe avi; | 84 | struct hdmi_avi_infoframe avi; |
| 85 | 85 | ||
| 86 | r = drm_hdmi_avi_infoframe_from_display_mode(&avi, adjusted_mode, | 86 | r = drm_hdmi_avi_infoframe_from_display_mode(&avi, adjusted_mode, |
| 87 | false); | 87 | false); |
| 88 | if (r == 0) | 88 | if (r == 0) |
| 89 | dssdev->driver->set_hdmi_infoframe(dssdev, &avi); | 89 | dssdev->ops->hdmi.set_infoframe(dssdev, &avi); |
| 90 | } | 90 | } |
| 91 | } | 91 | } |
| 92 | 92 | ||
| @@ -94,9 +94,8 @@ static void omap_encoder_disable(struct drm_encoder *encoder) | |||
| 94 | { | 94 | { |
| 95 | struct omap_encoder *omap_encoder = to_omap_encoder(encoder); | 95 | struct omap_encoder *omap_encoder = to_omap_encoder(encoder); |
| 96 | struct omap_dss_device *dssdev = omap_encoder->dssdev; | 96 | struct omap_dss_device *dssdev = omap_encoder->dssdev; |
| 97 | const struct omap_dss_driver *dssdrv = dssdev->driver; | ||
| 98 | 97 | ||
| 99 | dssdrv->disable(dssdev); | 98 | dssdev->ops->disable(dssdev); |
| 100 | } | 99 | } |
| 101 | 100 | ||
| 102 | static int omap_encoder_update(struct drm_encoder *encoder, | 101 | static int omap_encoder_update(struct drm_encoder *encoder, |
| @@ -106,15 +105,14 @@ static int omap_encoder_update(struct drm_encoder *encoder, | |||
| 106 | struct drm_device *dev = encoder->dev; | 105 | struct drm_device *dev = encoder->dev; |
| 107 | struct omap_encoder *omap_encoder = to_omap_encoder(encoder); | 106 | struct omap_encoder *omap_encoder = to_omap_encoder(encoder); |
| 108 | struct omap_dss_device *dssdev = omap_encoder->dssdev; | 107 | struct omap_dss_device *dssdev = omap_encoder->dssdev; |
| 109 | const struct omap_dss_driver *dssdrv = dssdev->driver; | ||
| 110 | int ret; | 108 | int ret; |
| 111 | 109 | ||
| 112 | if (dssdrv->check_timings) { | 110 | if (dssdev->ops->check_timings) { |
| 113 | ret = dssdrv->check_timings(dssdev, vm); | 111 | ret = dssdev->ops->check_timings(dssdev, vm); |
| 114 | } else { | 112 | } else { |
| 115 | struct videomode t = {0}; | 113 | struct videomode t = {0}; |
| 116 | 114 | ||
| 117 | dssdrv->get_timings(dssdev, &t); | 115 | dssdev->ops->get_timings(dssdev, &t); |
| 118 | 116 | ||
| 119 | if (memcmp(vm, &t, sizeof(*vm))) | 117 | if (memcmp(vm, &t, sizeof(*vm))) |
| 120 | ret = -EINVAL; | 118 | ret = -EINVAL; |
| @@ -127,8 +125,8 @@ static int omap_encoder_update(struct drm_encoder *encoder, | |||
| 127 | return ret; | 125 | return ret; |
| 128 | } | 126 | } |
| 129 | 127 | ||
| 130 | if (dssdrv->set_timings) | 128 | if (dssdev->ops->set_timings) |
| 131 | dssdrv->set_timings(dssdev, vm); | 129 | dssdev->ops->set_timings(dssdev, vm); |
| 132 | 130 | ||
| 133 | return 0; | 131 | return 0; |
| 134 | } | 132 | } |
| @@ -137,13 +135,12 @@ static void omap_encoder_enable(struct drm_encoder *encoder) | |||
| 137 | { | 135 | { |
| 138 | struct omap_encoder *omap_encoder = to_omap_encoder(encoder); | 136 | struct omap_encoder *omap_encoder = to_omap_encoder(encoder); |
| 139 | struct omap_dss_device *dssdev = omap_encoder->dssdev; | 137 | struct omap_dss_device *dssdev = omap_encoder->dssdev; |
| 140 | const struct omap_dss_driver *dssdrv = dssdev->driver; | ||
| 141 | int r; | 138 | int r; |
| 142 | 139 | ||
| 143 | omap_encoder_update(encoder, omap_crtc_channel(encoder->crtc), | 140 | omap_encoder_update(encoder, omap_crtc_channel(encoder->crtc), |
| 144 | omap_crtc_timings(encoder->crtc)); | 141 | omap_crtc_timings(encoder->crtc)); |
| 145 | 142 | ||
| 146 | r = dssdrv->enable(dssdev); | 143 | r = dssdev->ops->enable(dssdev); |
| 147 | if (r) | 144 | if (r) |
| 148 | dev_err(encoder->dev->dev, | 145 | dev_err(encoder->dev->dev, |
| 149 | "Failed to enable display '%s': %d\n", | 146 | "Failed to enable display '%s': %d\n", |
