From 870e19d59f8a2e13750861d8f8f49e93188634ec Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Thu, 13 Sep 2018 00:17:01 +0300 Subject: drm/omap: Expose DRM modes instead of timings in display devices omap_dss_device operations expose fixed video timings through a .get_timings() operation that return a single timing for the device. To prepare for the move to drm_bridge, modify the API to instead add DRM modes directly to the connector. As this puts more burden on display devices, we also create a helper function for panels to add a single DRM mode from the panel video timings. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen --- drivers/gpu/drm/omapdrm/displays/panel-dpi.c | 8 +++--- drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 10 ++++--- .../omapdrm/displays/panel-lgphilips-lb035q02.c | 8 +++--- .../drm/omapdrm/displays/panel-nec-nl8048hl11.c | 8 +++--- .../drm/omapdrm/displays/panel-sharp-ls037v7dw01.c | 8 +++--- .../drm/omapdrm/displays/panel-sony-acx565akm.c | 8 +++--- .../drm/omapdrm/displays/panel-tpo-td028ttec1.c | 8 +++--- .../drm/omapdrm/displays/panel-tpo-td043mtea1.c | 8 +++--- drivers/gpu/drm/omapdrm/dss/display.c | 22 +++++++++++++++ drivers/gpu/drm/omapdrm/dss/omapdss.h | 8 ++++-- drivers/gpu/drm/omapdrm/dss/venc.c | 12 +++++--- drivers/gpu/drm/omapdrm/omap_connector.c | 33 +++++++--------------- 12 files changed, 80 insertions(+), 61 deletions(-) diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c index eee44d9ea0c3..d6a584292e91 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c @@ -68,12 +68,12 @@ static void panel_dpi_disable(struct omap_dss_device *dssdev) regulator_disable(ddata->vcc_supply); } -static void panel_dpi_get_timings(struct omap_dss_device *dssdev, - struct videomode *vm) +static int panel_dpi_get_modes(struct omap_dss_device *dssdev, + struct drm_connector *connector) { struct panel_drv_data *ddata = to_panel_data(dssdev); - *vm = ddata->vm; + return omapdss_display_get_modes(connector, &ddata->vm); } static const struct omap_dss_device_ops panel_dpi_ops = { @@ -83,7 +83,7 @@ static const struct omap_dss_device_ops panel_dpi_ops = { .enable = panel_dpi_enable, .disable = panel_dpi_disable, - .get_timings = panel_dpi_get_timings, + .get_modes = panel_dpi_get_modes, }; static int panel_dpi_probe_of(struct platform_device *pdev) diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c index ffbf20e6ebe9..9cd9ab487a24 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c @@ -24,6 +24,8 @@ #include #include +#include + #include