From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Sam Ravnborg <sam@ravnborg.org>
Cc: "Hariprasad Kelam" <hariprasad.kelam@gmail.com>,
"Heiko Stübner" <heiko@sntech.de>,
"Neil Armstrong" <narmstrong@baylibre.com>,
"David Airlie" <airlied@linux.ie>,
"Linus Walleij" <linus.walleij@linaro.org>,
dri-devel@lists.freedesktop.org,
"Andrzej Hajda" <a.hajda@samsung.com>,
"Thierry Reding" <thierry.reding@gmail.com>,
"Benjamin Gaignard" <benjamin.gaignard@linaro.org>,
"Fabio Estevam" <festevam@gmail.com>,
"Marek Vasut" <marex@denx.de>, "Stefan Agner" <stefan@agner.ch>,
linux-samsung-soc@vger.kernel.org,
"Joonyoung Shim" <jy0922.shim@samsung.com>,
"Vincent Abriou" <vincent.abriou@st.com>,
"Allison Randal" <allison@lohutok.net>,
"Krzysztof Kozlowski" <krzk@kernel.org>,
"Jonathan Hunter" <jonathanh@nvidia.com>,
"Vasily Khoruzhick" <anarsoul@gmail.com>,
linux-rockchip@lists.infradead.org,
"Chen-Yu Tsai" <wens@csie.org>,
"Tomi Valkeinen" <tomi.valkeinen@ti.com>,
"Matthias Brugger" <matthias.bgg@gmail.com>,
"NXP Linux Team" <linux-imx@nxp.com>,
"CK Hu" <ck.hu@mediatek.com>,
"Philipp Zabel" <p.zabel@pengutronix.de>,
"Jagan Teki" <jagan@amarulasolutions.com>,
"Rob Clark" <robdclark@chromium.org>,
"Jitao Shi" <jitao.shi@mediatek.com>,
"Pengutronix Kernel Team" <kernel@pengutronix.de>,
"Jonas Karlman" <jonas@kwiboo.se>,
"Sascha Hauer" <s.hauer@pengutronix.de>,
"Alison Wang" <alison.wang@nxp.com>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Brian Masney" <masneyb@onstation.org>,
"Maxime Ripard" <mripard@kernel.org>,
"Inki Dae" <inki.dae@samsung.com>,
"Alexios Zavras" <alexios.zavras@intel.com>,
linux-mediatek@lists.infradead.org,
"Abhinav Kumar" <abhinavk@codeaurora.org>,
linux-tegra@vger.kernel.org,
"Thomas Gleixner" <tglx@linutronix.de>,
"Sean Paul" <sean@poorly.run>,
linux-arm-kernel@lists.infradead.org,
"Jernej Skrabec" <jernej.skrabec@siol.net>,
"Purism Kernel Team" <kernel@puri.sm>,
"Kieran Bingham" <kieran.bingham+renesas@ideasonboard.com>,
"Seung-Woo Kim" <sw0312.kim@samsung.com>,
"Sandy Huang" <hjc@rock-chips.com>,
linux-renesas-soc@vger.kernel.org,
"Shayenne Moura" <shayenneluzmoura@gmail.com>,
"Kyungmin Park" <kyungmin.park@samsung.com>,
"Boris Brezillon" <boris.brezillon@collabora.com>,
"Torsten Duwe" <duwe@lst.de>, "Kukjin Kim" <kgene@kernel.org>,
"Daniel Vetter" <daniel@ffwll.ch>,
"Sean Paul" <seanpaul@chromium.org>,
"Icenowy Zheng" <icenowy@aosc.io>,
"Shawn Guo" <shawnguo@kernel.org>
Subject: Re: [PATCH v1 06/26] drm/panel: decouple connector from drm_panel
Date: Tue, 3 Dec 2019 08:54:08 +0200 [thread overview]
Message-ID: <20191203065408.GF4730@pendragon.ideasonboard.com> (raw)
In-Reply-To: <20191202193230.21310-7-sam@ravnborg.org>
Hi Sam,
Thank you for the patch.
On Mon, Dec 02, 2019 at 08:32:10PM +0100, Sam Ravnborg wrote:
> To facilitate that connector creation will be moved
> to display drivers, decouple the drm_connector from drm_panel.
"To facilitate moving connector creation to display drivers, ..."
> Add a connector argument to drm_panel_get_modes()
>
> All users of drm_panel_get_modes() already had the connector
> available, so updating users was trivial.
>
> With this patch drm_panel no longer keep a copy of the drm_connector.
s/keep a copy of/keeps a reference to/
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> Cc: Andrzej Hajda <a.hajda@samsung.com>
> Cc: Neil Armstrong <narmstrong@baylibre.com>
> Cc: Jonas Karlman <jonas@kwiboo.se>
> Cc: Jernej Skrabec <jernej.skrabec@siol.net>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Maxime Ripard <mripard@kernel.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Stefan Agner <stefan@agner.ch>
> Cc: Alison Wang <alison.wang@nxp.com>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: Shawn Guo <shawnguo@kernel.org>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: NXP Linux Team <linux-imx@nxp.com>
> Cc: CK Hu <ck.hu@mediatek.com>
> Cc: Matthias Brugger <matthias.bgg@gmail.com>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
> Cc: Sandy Huang <hjc@rock-chips.com>
> Cc: "Heiko Stübner" <heiko@sntech.de>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Vincent Abriou <vincent.abriou@st.com>
> Cc: Chen-Yu Tsai <wens@csie.org>
> Cc: Jonathan Hunter <jonathanh@nvidia.com>
> Cc: Torsten Duwe <duwe@lst.de>
> Cc: Vasily Khoruzhick <anarsoul@gmail.com>
> Cc: Icenowy Zheng <icenowy@aosc.io>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Boris Brezillon <boris.brezillon@collabora.com>
> Cc: Hariprasad Kelam <hariprasad.kelam@gmail.com>
> Cc: Alexios Zavras <alexios.zavras@intel.com>
> Cc: Brian Masney <masneyb@onstation.org>
> Cc: Rob Clark <robdclark@chromium.org>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Allison Randal <allison@lohutok.net>
> Cc: Shayenne Moura <shayenneluzmoura@gmail.com>
> Cc: Abhinav Kumar <abhinavk@codeaurora.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-samsung-soc@vger.kernel.org
> Cc: linux-mediatek@lists.infradead.org
> Cc: linux-renesas-soc@vger.kernel.org
> Cc: linux-rockchip@lists.infradead.org
> Cc: linux-tegra@vger.kernel.org
> ---
> drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 2 +-
> drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 2 +-
> drivers/gpu/drm/bridge/panel.c | 2 +-
> drivers/gpu/drm/bridge/parade-ps8622.c | 2 +-
> drivers/gpu/drm/bridge/tc358764.c | 2 +-
> drivers/gpu/drm/bridge/tc358767.c | 2 +-
> drivers/gpu/drm/bridge/ti-sn65dsi86.c | 2 +-
> drivers/gpu/drm/drm_panel.c | 10 +++++-----
> drivers/gpu/drm/exynos/exynos_drm_dpi.c | 2 +-
> drivers/gpu/drm/exynos/exynos_drm_dsi.c | 2 +-
> drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c | 2 +-
> drivers/gpu/drm/imx/imx-ldb.c | 2 +-
> drivers/gpu/drm/imx/parallel-display.c | 2 +-
> drivers/gpu/drm/mediatek/mtk_dsi.c | 2 +-
> drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c | 2 +-
> drivers/gpu/drm/msm/dsi/dsi_manager.c | 2 +-
> drivers/gpu/drm/mxsfb/mxsfb_out.c | 2 +-
> drivers/gpu/drm/omapdrm/omap_connector.c | 3 ++-
> drivers/gpu/drm/rcar-du/rcar_lvds.c | 2 +-
> drivers/gpu/drm/rockchip/rockchip_lvds.c | 2 +-
> drivers/gpu/drm/sti/sti_dvo.c | 2 +-
> drivers/gpu/drm/sun4i/sun4i_lvds.c | 2 +-
> drivers/gpu/drm/sun4i/sun4i_rgb.c | 2 +-
> drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 2 +-
> drivers/gpu/drm/tegra/output.c | 2 +-
> include/drm/drm_panel.h | 9 +--------
> 26 files changed, 31 insertions(+), 37 deletions(-)
Another big set of manual changes :-)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
> index b4f3a923a52a..9917ce0d86a0 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
> @@ -493,7 +493,7 @@ static int anx6345_get_modes(struct drm_connector *connector)
> mutex_unlock(&anx6345->lock);
>
> if (!num_modes && anx6345->panel)
> - num_modes += drm_panel_get_modes(anx6345->panel);
> + num_modes += drm_panel_get_modes(anx6345->panel, connector);
>
> return num_modes;
> }
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> index bb411fe52ae8..6effe532f820 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> @@ -1111,7 +1111,7 @@ static int analogix_dp_get_modes(struct drm_connector *connector)
> int ret, num_modes = 0;
>
> if (dp->plat_data->panel) {
> - num_modes += drm_panel_get_modes(dp->plat_data->panel);
> + num_modes += drm_panel_get_modes(dp->plat_data->panel, connector);
> } else {
> ret = analogix_dp_prepare_panel(dp, true, false);
> if (ret) {
> diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c
> index c5e27b81588a..65cbd4a283fb 100644
> --- a/drivers/gpu/drm/bridge/panel.c
> +++ b/drivers/gpu/drm/bridge/panel.c
> @@ -37,7 +37,7 @@ static int panel_bridge_connector_get_modes(struct drm_connector *connector)
> struct panel_bridge *panel_bridge =
> drm_connector_to_panel_bridge(connector);
>
> - return drm_panel_get_modes(panel_bridge->panel);
> + return drm_panel_get_modes(panel_bridge->panel, connector);
> }
>
> static const struct drm_connector_helper_funcs
> diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c
> index b7a72dfdcac3..10c47c008b40 100644
> --- a/drivers/gpu/drm/bridge/parade-ps8622.c
> +++ b/drivers/gpu/drm/bridge/parade-ps8622.c
> @@ -461,7 +461,7 @@ static int ps8622_get_modes(struct drm_connector *connector)
>
> ps8622 = connector_to_ps8622(connector);
>
> - return drm_panel_get_modes(ps8622->panel);
> + return drm_panel_get_modes(ps8622->panel, connector);
> }
>
> static const struct drm_connector_helper_funcs ps8622_connector_helper_funcs = {
> diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c
> index db298f550a5a..96207fcfde19 100644
> --- a/drivers/gpu/drm/bridge/tc358764.c
> +++ b/drivers/gpu/drm/bridge/tc358764.c
> @@ -282,7 +282,7 @@ static int tc358764_get_modes(struct drm_connector *connector)
> {
> struct tc358764 *ctx = connector_to_tc358764(connector);
>
> - return drm_panel_get_modes(ctx->panel);
> + return drm_panel_get_modes(ctx->panel, connector);
> }
>
> static const
> diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
> index 8029478ffebb..3709e5ace724 100644
> --- a/drivers/gpu/drm/bridge/tc358767.c
> +++ b/drivers/gpu/drm/bridge/tc358767.c
> @@ -1346,7 +1346,7 @@ static int tc_connector_get_modes(struct drm_connector *connector)
> return 0;
> }
>
> - count = drm_panel_get_modes(tc->panel);
> + count = drm_panel_get_modes(tc->panel, connector);
> if (count > 0)
> return count;
>
> diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> index 43abf01ebd4c..9a2dd986afa5 100644
> --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> @@ -206,7 +206,7 @@ static int ti_sn_bridge_connector_get_modes(struct drm_connector *connector)
> {
> struct ti_sn_bridge *pdata = connector_to_ti_sn_bridge(connector);
>
> - return drm_panel_get_modes(pdata->panel);
> + return drm_panel_get_modes(pdata->panel, connector);
> }
>
> static enum drm_mode_status
> diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
> index 9927e28d93e6..fd428b6d25b0 100644
> --- a/drivers/gpu/drm/drm_panel.c
> +++ b/drivers/gpu/drm/drm_panel.c
> @@ -113,10 +113,9 @@ EXPORT_SYMBOL(drm_panel_remove);
> */
> int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector)
> {
> - if (panel->connector)
> + if (panel->drm)
> return -EBUSY;
>
> - panel->connector = connector;
> panel->drm = connector->dev;
>
> return 0;
> @@ -135,7 +134,6 @@ EXPORT_SYMBOL(drm_panel_attach);
> */
> void drm_panel_detach(struct drm_panel *panel)
> {
> - panel->connector = NULL;
> panel->drm = NULL;
> }
> EXPORT_SYMBOL(drm_panel_detach);
> @@ -239,6 +237,7 @@ EXPORT_SYMBOL(drm_panel_disable);
> /**
> * drm_panel_get_modes - probe the available display modes of a panel
> * @panel: DRM panel
> + * @connector: DRM connector
> *
> * The modes probed from the panel are automatically added to the connector
> * that the panel is attached to.
"... to the given connector."
> @@ -246,13 +245,14 @@ EXPORT_SYMBOL(drm_panel_disable);
> * Return: The number of modes available from the panel on success or a
> * negative error code on failure.
> */
> -int drm_panel_get_modes(struct drm_panel *panel)
> +int drm_panel_get_modes(struct drm_panel *panel,
> + struct drm_connector *connector)
> {
> if (!panel)
> return -EINVAL;
>
> if (panel->funcs && panel->funcs->get_modes)
> - return panel->funcs->get_modes(panel, panel->connector);
> + return panel->funcs->get_modes(panel, connector);
I really like how you've split 05/26 and 06/26 in two patches.
With the small issues above addressed,
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>
> return 0;
> }
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> index 5479ff71cbc6..43fa0f26c052 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> @@ -85,7 +85,7 @@ static int exynos_dpi_get_modes(struct drm_connector *connector)
> }
>
> if (ctx->panel)
> - return drm_panel_get_modes(ctx->panel);
> + return drm_panel_get_modes(ctx->panel, connector);
>
> return 0;
> }
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> index ceb370864cc4..d14d3f25d344 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> @@ -1461,7 +1461,7 @@ static int exynos_dsi_get_modes(struct drm_connector *connector)
> struct exynos_dsi *dsi = connector_to_dsi(connector);
>
> if (dsi->panel)
> - return drm_panel_get_modes(dsi->panel);
> + return drm_panel_get_modes(dsi->panel, connector);
>
> return 0;
> }
> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> index 82c972e9c024..9598ee3cc4d2 100644
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> @@ -68,7 +68,7 @@ static int fsl_dcu_drm_connector_get_modes(struct drm_connector *connector)
> struct fsl_dcu_drm_connector *fsl_connector;
>
> fsl_connector = to_fsl_dcu_connector(connector);
> - return drm_panel_get_modes(fsl_connector->panel);
> + return drm_panel_get_modes(fsl_connector->panel, connector);
> }
>
> static int fsl_dcu_drm_connector_mode_valid(struct drm_connector *connector,
> diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
> index 208069faf183..8cb2665b2c74 100644
> --- a/drivers/gpu/drm/imx/imx-ldb.c
> +++ b/drivers/gpu/drm/imx/imx-ldb.c
> @@ -127,7 +127,7 @@ static int imx_ldb_connector_get_modes(struct drm_connector *connector)
> struct imx_ldb_channel *imx_ldb_ch = con_to_imx_ldb_ch(connector);
> int num_modes;
>
> - num_modes = drm_panel_get_modes(imx_ldb_ch->panel);
> + num_modes = drm_panel_get_modes(imx_ldb_ch->panel, connector);
> if (num_modes > 0)
> return num_modes;
>
> diff --git a/drivers/gpu/drm/imx/parallel-display.c b/drivers/gpu/drm/imx/parallel-display.c
> index 35518e5de356..3dca424059f7 100644
> --- a/drivers/gpu/drm/imx/parallel-display.c
> +++ b/drivers/gpu/drm/imx/parallel-display.c
> @@ -50,7 +50,7 @@ static int imx_pd_connector_get_modes(struct drm_connector *connector)
> struct device_node *np = imxpd->dev->of_node;
> int num_modes;
>
> - num_modes = drm_panel_get_modes(imxpd->panel);
> + num_modes = drm_panel_get_modes(imxpd->panel, connector);
> if (num_modes > 0)
> return num_modes;
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c
> index e9931bbbe846..3b5e016d16c4 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dsi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c
> @@ -821,7 +821,7 @@ static int mtk_dsi_connector_get_modes(struct drm_connector *connector)
> {
> struct mtk_dsi *dsi = connector_to_dsi(connector);
>
> - return drm_panel_get_modes(dsi->panel);
> + return drm_panel_get_modes(dsi->panel, connector);
> }
>
> static const struct drm_encoder_helper_funcs mtk_dsi_encoder_helper_funcs = {
> diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
> index 31abd2352f3e..c7df71e2fafc 100644
> --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
> +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
> @@ -53,7 +53,7 @@ static int mdp4_lvds_connector_get_modes(struct drm_connector *connector)
> if (panel) {
> drm_panel_attach(panel, connector);
>
> - ret = drm_panel_get_modes(panel);
> + ret = drm_panel_get_modes(panel, connector);
>
> drm_panel_detach(panel);
> }
> diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
> index 271aa7bbca92..0fc29f1be8cc 100644
> --- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
> +++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
> @@ -329,7 +329,7 @@ static int dsi_mgr_connector_get_modes(struct drm_connector *connector)
> * attached to the drm_panel.
> */
> drm_panel_attach(panel, connector);
> - num = drm_panel_get_modes(panel);
> + num = drm_panel_get_modes(panel, connector);
> if (!num)
> return 0;
>
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> index 4eb94744c526..9eca1605d11d 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> @@ -31,7 +31,7 @@ static int mxsfb_panel_get_modes(struct drm_connector *connector)
> drm_connector_to_mxsfb_drm_private(connector);
>
> if (mxsfb->panel)
> - return drm_panel_get_modes(mxsfb->panel);
> + return drm_panel_get_modes(mxsfb->panel, connector);
>
> return 0;
> }
> diff --git a/drivers/gpu/drm/omapdrm/omap_connector.c b/drivers/gpu/drm/omapdrm/omap_connector.c
> index 5b8799c69f68..94cded387174 100644
> --- a/drivers/gpu/drm/omapdrm/omap_connector.c
> +++ b/drivers/gpu/drm/omapdrm/omap_connector.c
> @@ -229,7 +229,8 @@ static int omap_connector_get_modes(struct drm_connector *connector)
> * operation to the panel API.
> */
> if (omap_connector->output->panel)
> - return drm_panel_get_modes(omap_connector->output->panel);
> + return drm_panel_get_modes(omap_connector->output->panel,
> + connector);
>
> /*
> * We can't retrieve modes, which can happen for instance for a DVI or
> diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c
> index 8c6c172bbf2e..2cf44b91853c 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_lvds.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c
> @@ -91,7 +91,7 @@ static int rcar_lvds_connector_get_modes(struct drm_connector *connector)
> {
> struct rcar_lvds *lvds = connector_to_rcar_lvds(connector);
>
> - return drm_panel_get_modes(lvds->panel);
> + return drm_panel_get_modes(lvds->panel, connector);
> }
>
> static int rcar_lvds_connector_atomic_check(struct drm_connector *connector,
> diff --git a/drivers/gpu/drm/rockchip/rockchip_lvds.c b/drivers/gpu/drm/rockchip/rockchip_lvds.c
> index 8a4c9af0ba73..325811d2e26e 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_lvds.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_lvds.c
> @@ -201,7 +201,7 @@ static int rockchip_lvds_connector_get_modes(struct drm_connector *connector)
> struct rockchip_lvds *lvds = connector_to_lvds(connector);
> struct drm_panel *panel = lvds->panel;
>
> - return drm_panel_get_modes(panel);
> + return drm_panel_get_modes(panel, connector);
> }
>
> static const
> diff --git a/drivers/gpu/drm/sti/sti_dvo.c b/drivers/gpu/drm/sti/sti_dvo.c
> index 68289b0b063a..df2ee86cd4c1 100644
> --- a/drivers/gpu/drm/sti/sti_dvo.c
> +++ b/drivers/gpu/drm/sti/sti_dvo.c
> @@ -339,7 +339,7 @@ static int sti_dvo_connector_get_modes(struct drm_connector *connector)
> struct sti_dvo *dvo = dvo_connector->dvo;
>
> if (dvo->panel)
> - return drm_panel_get_modes(dvo->panel);
> + return drm_panel_get_modes(dvo->panel, connector);
>
> return 0;
> }
> diff --git a/drivers/gpu/drm/sun4i/sun4i_lvds.c b/drivers/gpu/drm/sun4i/sun4i_lvds.c
> index 25ab2ef6d545..65b7a8739666 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_lvds.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_lvds.c
> @@ -43,7 +43,7 @@ static int sun4i_lvds_get_modes(struct drm_connector *connector)
> struct sun4i_lvds *lvds =
> drm_connector_to_sun4i_lvds(connector);
>
> - return drm_panel_get_modes(lvds->panel);
> + return drm_panel_get_modes(lvds->panel, connector);
> }
>
> static struct drm_connector_helper_funcs sun4i_lvds_con_helper_funcs = {
> diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c b/drivers/gpu/drm/sun4i/sun4i_rgb.c
> index e74b9eddca01..b27f16af50f5 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
> @@ -47,7 +47,7 @@ static int sun4i_rgb_get_modes(struct drm_connector *connector)
> struct sun4i_rgb *rgb =
> drm_connector_to_sun4i_rgb(connector);
>
> - return drm_panel_get_modes(rgb->panel);
> + return drm_panel_get_modes(rgb->panel, connector);
> }
>
> /*
> diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> index c958ca9bae63..4e8f634cc2db 100644
> --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> @@ -795,7 +795,7 @@ static int sun6i_dsi_get_modes(struct drm_connector *connector)
> {
> struct sun6i_dsi *dsi = connector_to_sun6i_dsi(connector);
>
> - return drm_panel_get_modes(dsi->panel);
> + return drm_panel_get_modes(dsi->panel, connector);
> }
>
> static struct drm_connector_helper_funcs sun6i_dsi_connector_helper_funcs = {
> diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c
> index 5bdbf9ffcda1..4948373d8c75 100644
> --- a/drivers/gpu/drm/tegra/output.c
> +++ b/drivers/gpu/drm/tegra/output.c
> @@ -23,7 +23,7 @@ int tegra_output_connector_get_modes(struct drm_connector *connector)
> * ignore any other means of obtaining a mode.
> */
> if (output->panel) {
> - err = drm_panel_get_modes(output->panel);
> + err = drm_panel_get_modes(output->panel, connector);
> if (err > 0)
> return err;
> }
> diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
> index a5f7199807f2..4fd61cb9eb93 100644
> --- a/include/drm/drm_panel.h
> +++ b/include/drm/drm_panel.h
> @@ -124,13 +124,6 @@ struct drm_panel {
> */
> struct drm_device *drm;
>
> - /**
> - * @connector:
> - *
> - * DRM connector that the panel is attached to.
> - */
> - struct drm_connector *connector;
> -
> /**
> * @dev:
> *
> @@ -187,7 +180,7 @@ int drm_panel_unprepare(struct drm_panel *panel);
> int drm_panel_enable(struct drm_panel *panel);
> int drm_panel_disable(struct drm_panel *panel);
>
> -int drm_panel_get_modes(struct drm_panel *panel);
> +int drm_panel_get_modes(struct drm_panel *panel, struct drm_connector *connector);
>
> #if defined(CONFIG_OF) && defined(CONFIG_DRM_PANEL)
> struct drm_panel *of_drm_find_panel(const struct device_node *np);
--
Regards,
Laurent Pinchart
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
next prev parent reply other threads:[~2019-12-03 6:54 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-02 19:32 [PATCH v1 0/26] drm/panel infrastructure + backlight update Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 01/26] drm/drm_panel: no error when no callback Sam Ravnborg
2019-12-03 6:24 ` Laurent Pinchart
2019-12-02 19:32 ` [PATCH v1 02/26] drm/panel: add backlight support Sam Ravnborg
2019-12-03 6:32 ` Laurent Pinchart
2019-12-02 19:32 ` [PATCH v1 03/26] drm/panel: simple: use drm_panel " Sam Ravnborg
2019-12-03 6:39 ` Laurent Pinchart
2019-12-02 19:32 ` [PATCH v1 04/26] drm: get drm_bridge_panel connector via helper Sam Ravnborg
2019-12-03 6:44 ` Laurent Pinchart
2019-12-03 13:22 ` Linus Walleij
2019-12-02 19:32 ` [PATCH v1 05/26] drm/panel: add drm_connector argument to get_modes() Sam Ravnborg
2019-12-03 6:50 ` Laurent Pinchart
2019-12-03 13:25 ` Linus Walleij
2019-12-04 12:08 ` Guido Günther
2019-12-04 13:11 ` Laurent Pinchart
2019-12-02 19:32 ` [PATCH v1 06/26] drm/panel: decouple connector from drm_panel Sam Ravnborg
2019-12-03 6:54 ` Laurent Pinchart [this message]
2019-12-03 13:26 ` Linus Walleij
2019-12-02 19:32 ` [PATCH v1 07/26] drm/panel: remove get_timings Sam Ravnborg
2019-12-03 7:02 ` Laurent Pinchart
2019-12-03 7:46 ` Maxime Ripard
2019-12-03 8:18 ` Laurent Pinchart
2019-12-03 8:39 ` Sam Ravnborg
2019-12-04 8:05 ` Maxime Ripard
2019-12-03 15:20 ` Linus Walleij
2019-12-04 8:16 ` Maxime Ripard
2019-12-04 8:23 ` Laurent Pinchart
2019-12-10 21:33 ` Linus Walleij
2019-12-02 19:32 ` [PATCH v1 08/26] drm/panel: drop drm_device from drm_panel Sam Ravnborg
2019-12-03 7:15 ` Laurent Pinchart
2019-12-03 13:27 ` Linus Walleij
2019-12-02 19:32 ` [PATCH v1 09/26] drm/panel: feiyang-fy07024di26a30d: use drm_panel backlight support Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 10/26] drm/panel: ilitek-ili9881c: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 11/26] drm/panel: innolux-p079zca: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 12/26] drm/panel: kingdisplay-kd097d04: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 13/26] drm/panel: lvds: " Sam Ravnborg
2019-12-03 7:16 ` Laurent Pinchart
2019-12-02 19:32 ` [PATCH v1 14/26] drm/panel: olimex-lcd-olinuxino: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 15/26] drm/panel: osd-osd101t2587-53ts: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 16/26] drm/panel: panasonic-vvx10f034n00: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 17/26] drm/panel: raydium-rm68200: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 18/26] drm/panel: rocktech-jh057n00900: " Sam Ravnborg
2019-12-04 12:04 ` Guido Günther
2019-12-02 19:32 ` [PATCH v1 19/26] drm/panel: ronbo-rb070d30: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 20/26] drm/panel: seiko-43wvf1g: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 21/26] drm/panel: sharp-lq101r1sx01: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 22/26] drm/panel: sharp-ls043t1le01: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 23/26] drm/panel: sitronix-st7701: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 24/26] drm/panel: sitronix-st7789v: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 25/26] drm/panel: tpo-td028ttec1: " Sam Ravnborg
2019-12-03 7:16 ` Laurent Pinchart
2019-12-02 19:32 ` [PATCH v1 26/26] drm/panel: tpo-tpg110: " Sam Ravnborg
2019-12-03 13:20 ` Linus Walleij
2019-12-02 19:59 ` [PATCH v1 0/26] drm/panel infrastructure + backlight update Jeffrey Hugo
2019-12-02 20:48 ` Sam Ravnborg
2019-12-02 20:51 ` Jeffrey Hugo
2019-12-03 7:24 ` Laurent Pinchart
2019-12-03 8:33 ` Sam Ravnborg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191203065408.GF4730@pendragon.ideasonboard.com \
--to=laurent.pinchart@ideasonboard.com \
--cc=a.hajda@samsung.com \
--cc=abhinavk@codeaurora.org \
--cc=airlied@linux.ie \
--cc=alexios.zavras@intel.com \
--cc=alison.wang@nxp.com \
--cc=allison@lohutok.net \
--cc=anarsoul@gmail.com \
--cc=benjamin.gaignard@linaro.org \
--cc=boris.brezillon@collabora.com \
--cc=ck.hu@mediatek.com \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=duwe@lst.de \
--cc=festevam@gmail.com \
--cc=hariprasad.kelam@gmail.com \
--cc=heiko@sntech.de \
--cc=hjc@rock-chips.com \
--cc=icenowy@aosc.io \
--cc=inki.dae@samsung.com \
--cc=jagan@amarulasolutions.com \
--cc=jernej.skrabec@siol.net \
--cc=jitao.shi@mediatek.com \
--cc=jonas@kwiboo.se \
--cc=jonathanh@nvidia.com \
--cc=jy0922.shim@samsung.com \
--cc=kernel@pengutronix.de \
--cc=kernel@puri.sm \
--cc=kgene@kernel.org \
--cc=kieran.bingham+renesas@ideasonboard.com \
--cc=krzk@kernel.org \
--cc=kyungmin.park@samsung.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=marex@denx.de \
--cc=masneyb@onstation.org \
--cc=matthias.bgg@gmail.com \
--cc=mripard@kernel.org \
--cc=narmstrong@baylibre.com \
--cc=p.zabel@pengutronix.de \
--cc=robdclark@chromium.org \
--cc=s.hauer@pengutronix.de \
--cc=sam@ravnborg.org \
--cc=sean@poorly.run \
--cc=seanpaul@chromium.org \
--cc=shawnguo@kernel.org \
--cc=shayenneluzmoura@gmail.com \
--cc=stefan@agner.ch \
--cc=sw0312.kim@samsung.com \
--cc=tglx@linutronix.de \
--cc=thierry.reding@gmail.com \
--cc=tomi.valkeinen@ti.com \
--cc=vincent.abriou@st.com \
--cc=wens@csie.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).