diff options
author | Sebastian Reichel <sebastian.reichel@collabora.com> | 2020-12-15 12:45:47 +0200 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2020-12-15 16:08:21 +0200 |
commit | a5f2dcdebd83f27d8c3e7771b8fc1be0058bd3df (patch) | |
tree | a7fcb3c8e99492f3020dac6a2a9bfa1738a99b57 /drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | |
parent | d4cf1537286820e4cf381cab33a22f8f5dc4c8e1 (diff) | |
download | linux-a5f2dcdebd83f27d8c3e7771b8fc1be0058bd3df.tar.bz2 |
drm/omap: dsi: request VC via mipi_dsi_attach
Drop custom request_vc/release_vc callbacks by using the
generic mipi_dsi_attach/mipi_dsi_detach functions.
To use mipi_dsi_attach() we need to fill in the mipi_dsi_device fields,
and some of these fields overlap with the fields in omap_dss_dsi_config.
In later patches the latter will get dropped.
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201215104657.802264-15-tomi.valkeinen@ti.com
Diffstat (limited to 'drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c')
-rw-r--r-- | drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c index 0a8efa447581..0a2f6c1234a9 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c @@ -693,14 +693,6 @@ static int dsicm_connect(struct omap_dss_device *src, struct omap_dss_device *dst) { struct panel_drv_data *ddata = to_panel_data(dst); - struct device *dev = &ddata->dsi->dev; - int r; - - r = src->ops->dsi.request_vc(src, ddata->channel); - if (r) { - dev_err(dev, "failed to get virtual channel\n"); - return r; - } ddata->src = src; return 0; @@ -711,7 +703,6 @@ static void dsicm_disconnect(struct omap_dss_device *src, { struct panel_drv_data *ddata = to_panel_data(dst); - src->ops->dsi.release_vc(src, ddata->channel); ddata->src = NULL; } @@ -1276,8 +1267,21 @@ static int dsicm_probe(struct mipi_dsi_device *dsi) goto err_bl; } + dsi->lanes = 2; + dsi->format = MIPI_DSI_FMT_RGB888; + dsi->mode_flags = MIPI_DSI_CLOCK_NON_CONTINUOUS | + MIPI_DSI_MODE_EOT_PACKET; + dsi->hs_rate = 300000000; + dsi->lp_rate = 10000000; + + r = mipi_dsi_attach(dsi); + if (r < 0) + goto err_dsi_attach; + return 0; +err_dsi_attach: + sysfs_remove_group(&dsi->dev.kobj, &dsicm_attr_group); err_bl: destroy_workqueue(ddata->workqueue); err_reg: @@ -1294,6 +1298,8 @@ static int __exit dsicm_remove(struct mipi_dsi_device *dsi) dev_dbg(&dsi->dev, "remove\n"); + mipi_dsi_detach(dsi); + omapdss_device_unregister(dssdev); if (omapdss_device_is_enabled(dssdev)) |