The first 9 patches replaces direct use of the drm_panel function pointers with their drm_panel_* counterparts. The function pointers are only supposed to be used by the drm_panel infrastructure and direct use are discouraged. ili9322 is updated to handle bus_flags in get_modes like everyone else. This is in preparation for a later patch series where controller becomes an arugument to get_modes() and not like today where drm_panel is attached to a controller. The remaining patches move functionality to the drm_panel core that today are repeated in many drivers. As preparation for this the inline functions are moved to drm_panel.c and kernel-doc is made inline. panel-simple is updated to benefit from the additional infrastructure and is an example for the simplifications that can be done. The patchset has been tested on my embedded target, and build tested. Feedback welcome! The "fix opencoded" patches are all independent and can be applied out of order. They were kept here to keep panel related patches in one series. Sam Cc: Alexios Zavras <alexios.zavras@xxxxxxxxx> Cc: Alison Wang <alison.wang@xxxxxxx> Cc: Allison Randal <allison@xxxxxxxxxxx> Cc: Andrzej Hajda <a.hajda@xxxxxxxxxxx> Cc: Benjamin Gaignard <benjamin.gaignard@xxxxxxxxxx> Cc: Daniel Vetter <daniel@xxxxxxxx> Cc: David Airlie <airlied@xxxxxxxx> Cc: Enrico Weigelt <info@xxxxxxxxx> Cc: Fabio Estevam <festevam@xxxxxxxxx> Cc: Gwan-gyeong Mun <gwan-gyeong.mun@xxxxxxxxx> Cc: Inki Dae <inki.dae@xxxxxxxxxxx> Cc: Jernej Skrabec <jernej.skrabec@xxxxxxxx> Cc: Jonas Karlman <jonas@xxxxxxxxx> Cc: Jonathan Hunter <jonathanh@xxxxxxxxxx> Cc: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx> Cc: Krzysztof Kozlowski <krzk@xxxxxxxxxx> Cc: Kukjin Kim <kgene@xxxxxxxxxx> Cc: Kyungmin Park <kyungmin.park@xxxxxxxxxxx> Cc: Laurent Pinchart <Laurent.pinchart@xxxxxxxxxxxxxxxx> Cc: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx> Cc: Linus Walleij <linus.walleij@xxxxxxxxxx> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx Cc: linux-samsung-soc@xxxxxxxxxxxxxxx Cc: linux-tegra@xxxxxxxxxxxxxxx Cc: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx> Cc: Marek Vasut <marex@xxxxxxx> Cc: Maxime Ripard <maxime.ripard@xxxxxxxxxxx> Cc: Neil Armstrong <narmstrong@xxxxxxxxxxxx> Cc: NXP Linux Team <linux-imx@xxxxxxx> Cc: Pengutronix Kernel Team <kernel@xxxxxxxxxxxxxx> Cc: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> Cc: Sam Ravnborg <sam@xxxxxxxxxxxx> Cc: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> Cc: Sean Paul <sean@xxxxxxxxxx> Cc: Seung-Woo Kim <sw0312.kim@xxxxxxxxxxx> Cc: Shawn Guo <shawnguo@xxxxxxxxxx> Cc: Stefan Agner <stefan@xxxxxxxx> Cc: Thierry Reding <thierry.reding@xxxxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Cc: Vincent Abriou <vincent.abriou@xxxxxx> Sam Ravnborg (16): drm/bridge: tc358767: fix opencoded use of drm_panel_* drm/exynos: fix opencoded use of drm_panel_* drm/exynos: fix opencoded use of drm_panel_* drm/imx: fix opencoded use of drm_panel_* drm/fsl-dcu: fix opencoded use of drm_panel_* drm/msm: fix opencoded use of drm_panel_* drm/mxsfb: fix opencoded use of drm_panel_* drm/sti: fix opencoded use of drm_panel_* drm/tegra: fix opencoded use of drm_panel_* drm/panel: ili9322: move bus_flags to get_modes() drm/panel: move drm_panel functions to .c file drm/panel: use inline comments in drm_panel.h drm/panel: drop return code from drm_panel_detach() drm/panel: call prepare/enable only once drm/panel: add backlight support drm/panel: simple: use drm_panel infrastructure drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 3 +- drivers/gpu/drm/bridge/tc358767.c | 10 +- drivers/gpu/drm/drm_panel.c | 185 ++++++++++++++++- drivers/gpu/drm/exynos/exynos_drm_dpi.c | 4 +- drivers/gpu/drm/exynos/exynos_drm_dsi.c | 2 +- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c | 10 +- drivers/gpu/drm/imx/imx-ldb.c | 11 +- drivers/gpu/drm/imx/parallel-display.c | 11 +- .../gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c | 2 +- drivers/gpu/drm/mxsfb/mxsfb_out.c | 2 +- drivers/gpu/drm/panel/panel-ilitek-ili9322.c | 34 ++- drivers/gpu/drm/panel/panel-simple.c | 73 +------ drivers/gpu/drm/sti/sti_dvo.c | 8 +- drivers/gpu/drm/tegra/output.c | 2 +- include/drm/drm_panel.h | 227 +++++++++++---------- 15 files changed, 349 insertions(+), 235 deletions(-)