diff options
| author | 2020-12-15 12:46:02 +0200 | |
|---|---|---|
| committer | 2020-12-15 16:08:23 +0200 | |
| commit | 2a4703c25f75d44ecdf0b718bbb53d4ec3170422 (patch) | |
| tree | 26011cfa143f876412736d19fc1694f1871a05fb /drivers/gpu/drm/omapdrm/omap_crtc.c | |
| parent | drm/omap: dsi: do ULPS in host driver (diff) | |
| download | linux-dev-2a4703c25f75d44ecdf0b718bbb53d4ec3170422.tar.xz linux-dev-2a4703c25f75d44ecdf0b718bbb53d4ec3170422.zip | |
drm/omap: dsi: move panel refresh function to host
This moves the panel refresh/update function from the panel
driver into the DSI host driver to prepare for common drm_panel
support.
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201215104657.802264-30-tomi.valkeinen@ti.com
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_crtc.c')
| -rw-r--r-- | drivers/gpu/drm/omapdrm/omap_crtc.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c index a5030029f199..82c08af5797f 100644 --- a/drivers/gpu/drm/omapdrm/omap_crtc.c +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c @@ -362,10 +362,8 @@ static void omap_crtc_manual_display_update(struct work_struct *data) { struct omap_crtc *omap_crtc = container_of(data, struct omap_crtc, update_work.work); - struct drm_display_mode *mode = &omap_crtc->pipe->crtc->mode; - struct omap_dss_device *dssdev = omap_crtc->pipe->output->next; + struct omap_dss_device *dssdev = omap_crtc->pipe->output; struct drm_device *dev = omap_crtc->base.dev; - const struct omap_dss_driver *dssdrv; int ret; if (!dssdev) { @@ -373,13 +371,12 @@ static void omap_crtc_manual_display_update(struct work_struct *data) return; } - dssdrv = dssdev->driver; - if (!dssdrv || !dssdrv->update) { - dev_err_once(dev->dev, "missing or incorrect dssdrv!"); + if (dssdev->type != OMAP_DISPLAY_TYPE_DSI || !dssdev->ops->dsi.update) { + dev_err_once(dev->dev, "no DSI update callback found!"); return; } - ret = dssdrv->update(dssdev, 0, 0, mode->hdisplay, mode->vdisplay); + ret = dssdev->ops->dsi.update(dssdev); if (ret < 0) { spin_lock_irq(&dev->event_lock); omap_crtc->pending = false; |
