All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sam Ravnborg <sam@ravnborg.org>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: "Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Neil Armstrong" <narmstrong@baylibre.com>,
	"Maxime Ripard" <maxime.ripard@bootlin.com>,
	"Guido Günther" <agx@sigxcpu.org>,
	dri-devel@lists.freedesktop.org,
	"Philippe Cornu" <philippe.cornu@st.com>,
	"Paul Cercueil" <paul@crapouillou.net>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"Yannick Fertre" <yannick.fertre@st.com>,
	"Stefan Mavrodiev" <stefan@olimex.com>,
	"Tomi Valkeinen" <tomi.valkeinen@ti.com>,
	"Ludovic Desroches" <ludovic.desroches@microchip.com>,
	"Jagan Teki" <jagan@amarulasolutions.com>,
	"Robert Chiras" <robert.chiras@nxp.com>,
	"Jonas Karlman" <jonas@kwiboo.se>, "Jyri Sarha" <jsarha@ti.com>,
	"Sean Paul" <sean@poorly.run>,
	"Jernej Skrabec" <jernej.skrabec@siol.net>,
	"Purism Kernel Team" <kernel@puri.sm>,
	"Boris Brezillon" <bbrezillon@kernel.org>,
	"Nicolas Ferre" <nicolas.ferre@microchip.com>,
	"Vincent Abriou" <vincent.abriou@st>
Subject: Re: [PATCH v2 2/4] drm/panel: Initialise panel dev and funcs through drm_panel_init()
Date: Sat, 24 Aug 2019 10:50:05 +0200	[thread overview]
Message-ID: <20190824085005.GB30584@ravnborg.org> (raw)
In-Reply-To: <20190823193245.23876-3-laurent.pinchart@ideasonboard.com>

On Fri, Aug 23, 2019 at 10:32:43PM +0300, Laurent Pinchart wrote:
> Instead of requiring all drivers to set the dev and funcs fields of
> drm_panel manually after calling drm_panel_init(), pass the data as
> arguments to the function. This simplifies the panel drivers, and will
> help future refactoring when adding new arguments to drm_panel_init().
> 
> The panel drivers have been updated with the following Coccinelle
> semantic patch, with manual inspection to verify that no call to
> drm_panel_init() with a single argument still exists.
> 
> @@
> expression panel;
> expression device;
> identifier ops;
> @@
>  drm_panel_init(&panel
> +	, device, &ops
>  );
>  ...
> (
> -panel.dev = device;
> -panel.funcs = &ops;
> |
> -panel.funcs = &ops;
> -panel.dev = device;
> )
> 
> Suggested-by: Sam Ravnborg <sam@ravnborg.org>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Thanks, applied to drm-misc-next.
Nice use of Coccinelle.

	Sam


> ---
>  drivers/gpu/drm/drm_panel.c                           | 11 ++++++++---
>  drivers/gpu/drm/panel/panel-arm-versatile.c           |  4 +---
>  drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c |  4 +---
>  drivers/gpu/drm/panel/panel-ilitek-ili9322.c          |  4 +---
>  drivers/gpu/drm/panel/panel-ilitek-ili9881c.c         |  4 +---
>  drivers/gpu/drm/panel/panel-innolux-p079zca.c         |  4 +---
>  drivers/gpu/drm/panel/panel-jdi-lt070me05000.c        |  4 +---
>  drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c    |  5 ++---
>  drivers/gpu/drm/panel/panel-lg-lb035q02.c             |  4 +---
>  drivers/gpu/drm/panel/panel-lg-lg4573.c               |  4 +---
>  drivers/gpu/drm/panel/panel-lvds.c                    |  4 +---
>  drivers/gpu/drm/panel/panel-nec-nl8048hl11.c          |  4 +---
>  drivers/gpu/drm/panel/panel-novatek-nt39016.c         |  4 +---
>  drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c    |  4 +---
>  drivers/gpu/drm/panel/panel-orisetech-otm8009a.c      |  4 +---
>  drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c    |  5 ++---
>  drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c  |  5 ++---
>  drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c |  4 +---
>  drivers/gpu/drm/panel/panel-raydium-rm67191.c         |  4 +---
>  drivers/gpu/drm/panel/panel-raydium-rm68200.c         |  4 +---
>  drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c    |  4 +---
>  drivers/gpu/drm/panel/panel-ronbo-rb070d30.c          |  4 +---
>  drivers/gpu/drm/panel/panel-samsung-ld9040.c          |  4 +---
>  drivers/gpu/drm/panel/panel-samsung-s6d16d0.c         |  4 +---
>  drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c         |  4 +---
>  drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c      |  4 +---
>  drivers/gpu/drm/panel/panel-samsung-s6e63m0.c         |  4 +---
>  drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c         |  4 +---
>  drivers/gpu/drm/panel/panel-seiko-43wvf1g.c           |  4 +---
>  drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c       |  4 +---
>  drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c       |  4 +---
>  drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c       |  5 ++---
>  drivers/gpu/drm/panel/panel-simple.c                  |  4 +---
>  drivers/gpu/drm/panel/panel-sitronix-st7701.c         |  4 +---
>  drivers/gpu/drm/panel/panel-sitronix-st7789v.c        |  4 +---
>  drivers/gpu/drm/panel/panel-sony-acx565akm.c          |  4 +---
>  drivers/gpu/drm/panel/panel-tpo-td028ttec1.c          |  4 +---
>  drivers/gpu/drm/panel/panel-tpo-td043mtea1.c          |  4 +---
>  drivers/gpu/drm/panel/panel-tpo-tpg110.c              |  4 +---
>  drivers/gpu/drm/panel/panel-truly-nt35597.c           |  4 +---
>  include/drm/drm_panel.h                               |  3 ++-
>  41 files changed, 53 insertions(+), 121 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
> index 6b0bf42039cf..ba2fad4c9648 100644
> --- a/drivers/gpu/drm/drm_panel.c
> +++ b/drivers/gpu/drm/drm_panel.c
> @@ -44,13 +44,18 @@ static LIST_HEAD(panel_list);
>  /**
>   * drm_panel_init - initialize a panel
>   * @panel: DRM panel
> + * @dev: parent device of the panel
> + * @funcs: panel operations
>   *
> - * Sets up internal fields of the panel so that it can subsequently be added
> - * to the registry.
> + * Initialize the panel structure for subsequent registration with
> + * drm_panel_add().
>   */
> -void drm_panel_init(struct drm_panel *panel)
> +void drm_panel_init(struct drm_panel *panel, struct device *dev,
> +		    const struct drm_panel_funcs *funcs)
>  {
>  	INIT_LIST_HEAD(&panel->list);
> +	panel->dev = dev;
> +	panel->funcs = funcs;
>  }
>  EXPORT_SYMBOL(drm_panel_init);
>  
> diff --git a/drivers/gpu/drm/panel/panel-arm-versatile.c b/drivers/gpu/drm/panel/panel-arm-versatile.c
> index 5f72c922a04b..a4333ed0f20c 100644
> --- a/drivers/gpu/drm/panel/panel-arm-versatile.c
> +++ b/drivers/gpu/drm/panel/panel-arm-versatile.c
> @@ -350,9 +350,7 @@ static int versatile_panel_probe(struct platform_device *pdev)
>  			dev_info(dev, "panel mounted on IB2 daughterboard\n");
>  	}
>  
> -	drm_panel_init(&vpanel->panel);
> -	vpanel->panel.dev = dev;
> -	vpanel->panel.funcs = &versatile_panel_drm_funcs;
> +	drm_panel_init(&vpanel->panel, dev, &versatile_panel_drm_funcs);
>  
>  	return drm_panel_add(&vpanel->panel);
>  }
> diff --git a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
> index dabf59e0f56f..7d5d7455bc01 100644
> --- a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
> +++ b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
> @@ -204,9 +204,7 @@ static int feiyang_dsi_probe(struct mipi_dsi_device *dsi)
>  	mipi_dsi_set_drvdata(dsi, ctx);
>  	ctx->dsi = dsi;
>  
> -	drm_panel_init(&ctx->panel);
> -	ctx->panel.dev = &dsi->dev;
> -	ctx->panel.funcs = &feiyang_funcs;
> +	drm_panel_init(&ctx->panel, &dsi->dev, &feiyang_funcs);
>  
>  	ctx->dvdd = devm_regulator_get(&dsi->dev, "dvdd");
>  	if (IS_ERR(ctx->dvdd)) {
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> index 3c58f63adbf7..ad2405baa0ac 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> @@ -895,9 +895,7 @@ static int ili9322_probe(struct spi_device *spi)
>  		ili->input = ili->conf->input;
>  	}
>  
> -	drm_panel_init(&ili->panel);
> -	ili->panel.dev = dev;
> -	ili->panel.funcs = &ili9322_drm_funcs;
> +	drm_panel_init(&ili->panel, dev, &ili9322_drm_funcs);
>  
>  	return drm_panel_add(&ili->panel);
>  }
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
> index 3ad4a46c4e94..1d714f961c00 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
> @@ -433,9 +433,7 @@ static int ili9881c_dsi_probe(struct mipi_dsi_device *dsi)
>  	mipi_dsi_set_drvdata(dsi, ctx);
>  	ctx->dsi = dsi;
>  
> -	drm_panel_init(&ctx->panel);
> -	ctx->panel.dev = &dsi->dev;
> -	ctx->panel.funcs = &ili9881c_funcs;
> +	drm_panel_init(&ctx->panel, &dsi->dev, &ili9881c_funcs);
>  
>  	ctx->power = devm_regulator_get(&dsi->dev, "power");
>  	if (IS_ERR(ctx->power)) {
> diff --git a/drivers/gpu/drm/panel/panel-innolux-p079zca.c b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
> index d92d1c98878c..2054afc31f20 100644
> --- a/drivers/gpu/drm/panel/panel-innolux-p079zca.c
> +++ b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
> @@ -487,9 +487,7 @@ static int innolux_panel_add(struct mipi_dsi_device *dsi,
>  	if (IS_ERR(innolux->backlight))
>  		return PTR_ERR(innolux->backlight);
>  
> -	drm_panel_init(&innolux->base);
> -	innolux->base.funcs = &innolux_panel_funcs;
> -	innolux->base.dev = dev;
> +	drm_panel_init(&innolux->base, dev, &innolux_panel_funcs);
>  
>  	err = drm_panel_add(&innolux->base);
>  	if (err < 0)
> diff --git a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
> index ff3e89e61e3f..7bfdbfbc868e 100644
> --- a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
> +++ b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
> @@ -437,9 +437,7 @@ static int jdi_panel_add(struct jdi_panel *jdi)
>  		return ret;
>  	}
>  
> -	drm_panel_init(&jdi->base);
> -	jdi->base.funcs = &jdi_panel_funcs;
> -	jdi->base.dev = &jdi->dsi->dev;
> +	drm_panel_init(&jdi->base, &jdi->dsi->dev, &jdi_panel_funcs);
>  
>  	ret = drm_panel_add(&jdi->base);
>  
> diff --git a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
> index 3ac04eb8d0fe..a47885a1a8aa 100644
> --- a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
> +++ b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
> @@ -391,9 +391,8 @@ static int kingdisplay_panel_add(struct kingdisplay_panel *kingdisplay)
>  	if (IS_ERR(kingdisplay->backlight))
>  		return PTR_ERR(kingdisplay->backlight);
>  
> -	drm_panel_init(&kingdisplay->base);
> -	kingdisplay->base.funcs = &kingdisplay_panel_funcs;
> -	kingdisplay->base.dev = &kingdisplay->link->dev;
> +	drm_panel_init(&kingdisplay->base, &kingdisplay->link->dev,
> +		       &kingdisplay_panel_funcs);
>  
>  	return drm_panel_add(&kingdisplay->base);
>  }
> diff --git a/drivers/gpu/drm/panel/panel-lg-lb035q02.c b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> index fc82a525b071..28c3205df482 100644
> --- a/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> +++ b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> @@ -196,9 +196,7 @@ static int lb035q02_probe(struct spi_device *spi)
>  	if (ret < 0)
>  		return ret;
>  
> -	drm_panel_init(&lcd->panel);
> -	lcd->panel.dev = &lcd->spi->dev;
> -	lcd->panel.funcs = &lb035q02_funcs;
> +	drm_panel_init(&lcd->panel, &lcd->spi->dev, &lb035q02_funcs);
>  
>  	return drm_panel_add(&lcd->panel);
>  }
> diff --git a/drivers/gpu/drm/panel/panel-lg-lg4573.c b/drivers/gpu/drm/panel/panel-lg-lg4573.c
> index 41bf02d122a1..608f2de91662 100644
> --- a/drivers/gpu/drm/panel/panel-lg-lg4573.c
> +++ b/drivers/gpu/drm/panel/panel-lg-lg4573.c
> @@ -259,9 +259,7 @@ static int lg4573_probe(struct spi_device *spi)
>  		return ret;
>  	}
>  
> -	drm_panel_init(&ctx->panel);
> -	ctx->panel.dev = &spi->dev;
> -	ctx->panel.funcs = &lg4573_drm_funcs;
> +	drm_panel_init(&ctx->panel, &spi->dev, &lg4573_drm_funcs);
>  
>  	return drm_panel_add(&ctx->panel);
>  }
> diff --git a/drivers/gpu/drm/panel/panel-lvds.c b/drivers/gpu/drm/panel/panel-lvds.c
> index ad47cc95459e..3dc1ac2a6b03 100644
> --- a/drivers/gpu/drm/panel/panel-lvds.c
> +++ b/drivers/gpu/drm/panel/panel-lvds.c
> @@ -260,9 +260,7 @@ static int panel_lvds_probe(struct platform_device *pdev)
>  	 */
>  
>  	/* Register the panel. */
> -	drm_panel_init(&lvds->panel);
> -	lvds->panel.dev = lvds->dev;
> -	lvds->panel.funcs = &panel_lvds_funcs;
> +	drm_panel_init(&lvds->panel, lvds->dev, &panel_lvds_funcs);
>  
>  	ret = drm_panel_add(&lvds->panel);
>  	if (ret < 0)
> diff --git a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> index 299b217c83e1..b67636fdbc21 100644
> --- a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> +++ b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> @@ -205,9 +205,7 @@ static int nl8048_probe(struct spi_device *spi)
>  	if (ret < 0)
>  		return ret;
>  
> -	drm_panel_init(&lcd->panel);
> -	lcd->panel.dev = &lcd->spi->dev;
> -	lcd->panel.funcs = &nl8048_funcs;
> +	drm_panel_init(&lcd->panel, &lcd->spi->dev, &nl8048_funcs);
>  
>  	return drm_panel_add(&lcd->panel);
>  }
> diff --git a/drivers/gpu/drm/panel/panel-novatek-nt39016.c b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> index 2ad1063b068d..64cfe111aaad 100644
> --- a/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> +++ b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> @@ -292,9 +292,7 @@ static int nt39016_probe(struct spi_device *spi)
>  		return err;
>  	}
>  
> -	drm_panel_init(&panel->drm_panel);
> -	panel->drm_panel.dev = dev;
> -	panel->drm_panel.funcs = &nt39016_funcs;
> +	drm_panel_init(&panel->drm_panel, dev, &nt39016_funcs);
>  
>  	err = drm_panel_add(&panel->drm_panel);
>  	if (err < 0) {
> diff --git a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
> index 2bae1db3ff34..f2d6a4ec0046 100644
> --- a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
> +++ b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
> @@ -288,9 +288,7 @@ static int lcd_olinuxino_probe(struct i2c_client *client,
>  	if (IS_ERR(lcd->backlight))
>  		return PTR_ERR(lcd->backlight);
>  
> -	drm_panel_init(&lcd->panel);
> -	lcd->panel.dev = dev;
> -	lcd->panel.funcs = &lcd_olinuxino_funcs;
> +	drm_panel_init(&lcd->panel, dev, &lcd_olinuxino_funcs);
>  
>  	return drm_panel_add(&lcd->panel);
>  }
> diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> index c7b48df8869a..8b60d5e4d775 100644
> --- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> +++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
> @@ -455,9 +455,7 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi)
>  	dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
>  			  MIPI_DSI_MODE_LPM;
>  
> -	drm_panel_init(&ctx->panel);
> -	ctx->panel.dev = dev;
> -	ctx->panel.funcs = &otm8009a_drm_funcs;
> +	drm_panel_init(&ctx->panel, dev, &otm8009a_drm_funcs);
>  
>  	ctx->bl_dev = devm_backlight_device_register(dev, dev_name(dev),
>  						     dsi->host->dev, ctx,
> diff --git a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
> index e0e20ecff916..38f114b03b89 100644
> --- a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
> +++ b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
> @@ -166,9 +166,8 @@ static int osd101t2587_panel_add(struct osd101t2587_panel *osd101t2587)
>  	if (IS_ERR(osd101t2587->backlight))
>  		return PTR_ERR(osd101t2587->backlight);
>  
> -	drm_panel_init(&osd101t2587->base);
> -	osd101t2587->base.funcs = &osd101t2587_panel_funcs;
> -	osd101t2587->base.dev = &osd101t2587->dsi->dev;
> +	drm_panel_init(&osd101t2587->base, &osd101t2587->dsi->dev,
> +		       &osd101t2587_panel_funcs);
>  
>  	return drm_panel_add(&osd101t2587->base);
>  }
> diff --git a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
> index 3dff0b3f73c2..6035bf458074 100644
> --- a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
> +++ b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
> @@ -223,9 +223,8 @@ static int wuxga_nt_panel_add(struct wuxga_nt_panel *wuxga_nt)
>  			return -EPROBE_DEFER;
>  	}
>  
> -	drm_panel_init(&wuxga_nt->base);
> -	wuxga_nt->base.funcs = &wuxga_nt_panel_funcs;
> -	wuxga_nt->base.dev = &wuxga_nt->dsi->dev;
> +	drm_panel_init(&wuxga_nt->base, &wuxga_nt->dsi->dev,
> +		       &wuxga_nt_panel_funcs);
>  
>  	ret = drm_panel_add(&wuxga_nt->base);
>  	if (ret < 0)
> diff --git a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
> index 2aa89eaecf6f..23a801427e42 100644
> --- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
> +++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
> @@ -426,9 +426,7 @@ static int rpi_touchscreen_probe(struct i2c_client *i2c,
>  		return PTR_ERR(ts->dsi);
>  	}
>  
> -	drm_panel_init(&ts->base);
> -	ts->base.dev = dev;
> -	ts->base.funcs = &rpi_touchscreen_funcs;
> +	drm_panel_init(&ts->base, dev, &rpi_touchscreen_funcs);
>  
>  	/* This appears last, as it's what will unblock the DSI host
>  	 * driver's component bind function.
> diff --git a/drivers/gpu/drm/panel/panel-raydium-rm67191.c b/drivers/gpu/drm/panel/panel-raydium-rm67191.c
> index 6a5d37006103..f82a1f69f13b 100644
> --- a/drivers/gpu/drm/panel/panel-raydium-rm67191.c
> +++ b/drivers/gpu/drm/panel/panel-raydium-rm67191.c
> @@ -606,9 +606,7 @@ static int rad_panel_probe(struct mipi_dsi_device *dsi)
>  	if (ret)
>  		return ret;
>  
> -	drm_panel_init(&panel->panel);
> -	panel->panel.funcs = &rad_panel_funcs;
> -	panel->panel.dev = dev;
> +	drm_panel_init(&panel->panel, dev, &rad_panel_funcs);
>  	dev_set_drvdata(dev, panel);
>  
>  	ret = drm_panel_add(&panel->panel);
> diff --git a/drivers/gpu/drm/panel/panel-raydium-rm68200.c b/drivers/gpu/drm/panel/panel-raydium-rm68200.c
> index ba889625ad43..f004b78fb8bc 100644
> --- a/drivers/gpu/drm/panel/panel-raydium-rm68200.c
> +++ b/drivers/gpu/drm/panel/panel-raydium-rm68200.c
> @@ -404,9 +404,7 @@ static int rm68200_probe(struct mipi_dsi_device *dsi)
>  	dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
>  			  MIPI_DSI_MODE_LPM;
>  
> -	drm_panel_init(&ctx->panel);
> -	ctx->panel.dev = dev;
> -	ctx->panel.funcs = &rm68200_drm_funcs;
> +	drm_panel_init(&ctx->panel, dev, &rm68200_drm_funcs);
>  
>  	drm_panel_add(&ctx->panel);
>  
> diff --git a/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c b/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
> index b9109922397f..d7f56374f2f1 100644
> --- a/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
> +++ b/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
> @@ -343,9 +343,7 @@ static int jh057n_probe(struct mipi_dsi_device *dsi)
>  		return ret;
>  	}
>  
> -	drm_panel_init(&ctx->panel);
> -	ctx->panel.dev = dev;
> -	ctx->panel.funcs = &jh057n_drm_funcs;
> +	drm_panel_init(&ctx->panel, dev, &jh057n_drm_funcs);
>  
>  	drm_panel_add(&ctx->panel);
>  
> diff --git a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
> index 3c15764f0c03..8708fbbe7637 100644
> --- a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
> +++ b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
> @@ -173,9 +173,7 @@ static int rb070d30_panel_dsi_probe(struct mipi_dsi_device *dsi)
>  	mipi_dsi_set_drvdata(dsi, ctx);
>  	ctx->dsi = dsi;
>  
> -	drm_panel_init(&ctx->panel);
> -	ctx->panel.dev = &dsi->dev;
> -	ctx->panel.funcs = &rb070d30_panel_funcs;
> +	drm_panel_init(&ctx->panel, &dsi->dev, &rb070d30_panel_funcs);
>  
>  	ctx->gpios.reset = devm_gpiod_get(&dsi->dev, "reset", GPIOD_OUT_LOW);
>  	if (IS_ERR(ctx->gpios.reset)) {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-ld9040.c b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> index 3be902dcedc0..71a292dbec47 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> @@ -351,9 +351,7 @@ static int ld9040_probe(struct spi_device *spi)
>  		return ret;
>  	}
>  
> -	drm_panel_init(&ctx->panel);
> -	ctx->panel.dev = dev;
> -	ctx->panel.funcs = &ld9040_drm_funcs;
> +	drm_panel_init(&ctx->panel, dev, &ld9040_drm_funcs);
>  
>  	return drm_panel_add(&ctx->panel);
>  }
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c b/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
> index f75bef24e050..4d25c96e842c 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
> @@ -215,9 +215,7 @@ static int s6d16d0_probe(struct mipi_dsi_device *dsi)
>  		return ret;
>  	}
>  
> -	drm_panel_init(&s6->panel);
> -	s6->panel.dev = dev;
> -	s6->panel.funcs = &s6d16d0_drm_funcs;
> +	drm_panel_init(&s6->panel, dev, &s6d16d0_drm_funcs);
>  
>  	ret = drm_panel_add(&s6->panel);
>  	if (ret < 0)
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
> index b923de23ed65..42a3aaab49eb 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
> @@ -732,9 +732,7 @@ static int s6e3ha2_probe(struct mipi_dsi_device *dsi)
>  	ctx->bl_dev->props.brightness = S6E3HA2_DEFAULT_BRIGHTNESS;
>  	ctx->bl_dev->props.power = FB_BLANK_POWERDOWN;
>  
> -	drm_panel_init(&ctx->panel);
> -	ctx->panel.dev = dev;
> -	ctx->panel.funcs = &s6e3ha2_drm_funcs;
> +	drm_panel_init(&ctx->panel, dev, &s6e3ha2_drm_funcs);
>  
>  	ret = drm_panel_add(&ctx->panel);
>  	if (ret < 0)
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
> index cd90fa700c49..b4d879bf4d03 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
> @@ -466,9 +466,7 @@ static int s6e63j0x03_probe(struct mipi_dsi_device *dsi)
>  		return PTR_ERR(ctx->reset_gpio);
>  	}
>  
> -	drm_panel_init(&ctx->panel);
> -	ctx->panel.dev = dev;
> -	ctx->panel.funcs = &s6e63j0x03_funcs;
> +	drm_panel_init(&ctx->panel, dev, &s6e63j0x03_funcs);
>  
>  	ctx->bl_dev = backlight_device_register("s6e63j0x03", dev, ctx,
>  						&s6e63j0x03_bl_ops, NULL);
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
> index 142d395ea512..61259c2833ab 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
> @@ -473,9 +473,7 @@ static int s6e63m0_probe(struct spi_device *spi)
>  		return ret;
>  	}
>  
> -	drm_panel_init(&ctx->panel);
> -	ctx->panel.dev = dev;
> -	ctx->panel.funcs = &s6e63m0_drm_funcs;
> +	drm_panel_init(&ctx->panel, dev, &s6e63m0_drm_funcs);
>  
>  	ret = s6e63m0_backlight_register(ctx);
>  	if (ret < 0)
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
> index 81858267723a..35dbffabd526 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
> @@ -1017,9 +1017,7 @@ static int s6e8aa0_probe(struct mipi_dsi_device *dsi)
>  
>  	ctx->brightness = GAMMA_LEVEL_NUM - 1;
>  
> -	drm_panel_init(&ctx->panel);
> -	ctx->panel.dev = dev;
> -	ctx->panel.funcs = &s6e8aa0_drm_funcs;
> +	drm_panel_init(&ctx->panel, dev, &s6e8aa0_drm_funcs);
>  
>  	ret = drm_panel_add(&ctx->panel);
>  	if (ret < 0)
> diff --git a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
> index 18b22b1294fb..0833d0c03adc 100644
> --- a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
> +++ b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
> @@ -274,9 +274,7 @@ static int seiko_panel_probe(struct device *dev,
>  			return -EPROBE_DEFER;
>  	}
>  
> -	drm_panel_init(&panel->base);
> -	panel->base.dev = dev;
> -	panel->base.funcs = &seiko_panel_funcs;
> +	drm_panel_init(&panel->base, dev, &seiko_panel_funcs);
>  
>  	err = drm_panel_add(&panel->base);
>  	if (err < 0)
> diff --git a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
> index e910b4ad1310..87a58cb4d945 100644
> --- a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
> +++ b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
> @@ -329,9 +329,7 @@ static int sharp_panel_add(struct sharp_panel *sharp)
>  	if (IS_ERR(sharp->backlight))
>  		return PTR_ERR(sharp->backlight);
>  
> -	drm_panel_init(&sharp->base);
> -	sharp->base.funcs = &sharp_panel_funcs;
> -	sharp->base.dev = &sharp->link1->dev;
> +	drm_panel_init(&sharp->base, &sharp->link1->dev, &sharp_panel_funcs);
>  
>  	return drm_panel_add(&sharp->base);
>  }
> diff --git a/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
> index 46cd9a250129..96e3deb0e305 100644
> --- a/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
> +++ b/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
> @@ -185,9 +185,7 @@ static int ls037v7dw01_probe(struct platform_device *pdev)
>  		return PTR_ERR(lcd->ud_gpio);
>  	}
>  
> -	drm_panel_init(&lcd->panel);
> -	lcd->panel.dev = &pdev->dev;
> -	lcd->panel.funcs = &ls037v7dw01_funcs;
> +	drm_panel_init(&lcd->panel, &pdev->dev, &ls037v7dw01_funcs);
>  
>  	return drm_panel_add(&lcd->panel);
>  }
> diff --git a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
> index c39abde9f9f1..ffa844ee82ad 100644
> --- a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
> +++ b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
> @@ -264,9 +264,8 @@ static int sharp_nt_panel_add(struct sharp_nt_panel *sharp_nt)
>  	if (IS_ERR(sharp_nt->backlight))
>  		return PTR_ERR(sharp_nt->backlight);
>  
> -	drm_panel_init(&sharp_nt->base);
> -	sharp_nt->base.funcs = &sharp_nt_panel_funcs;
> -	sharp_nt->base.dev = &sharp_nt->dsi->dev;
> +	drm_panel_init(&sharp_nt->base, &sharp_nt->dsi->dev,
> +		       &sharp_nt_panel_funcs);
>  
>  	return drm_panel_add(&sharp_nt->base);
>  }
> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> index 28fa6ba7b767..b36c130d5cf0 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -464,9 +464,7 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc)
>  	if (!of_get_display_timing(dev->of_node, "panel-timing", &dt))
>  		panel_simple_parse_panel_timing_node(dev, panel, &dt);
>  
> -	drm_panel_init(&panel->base);
> -	panel->base.dev = dev;
> -	panel->base.funcs = &panel_simple_funcs;
> +	drm_panel_init(&panel->base, dev, &panel_simple_funcs);
>  
>  	err = drm_panel_add(&panel->base);
>  	if (err < 0)
> diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7701.c b/drivers/gpu/drm/panel/panel-sitronix-st7701.c
> index 09c5d9a6f9fa..3f7bcd24aa81 100644
> --- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c
> +++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c
> @@ -369,7 +369,7 @@ static int st7701_dsi_probe(struct mipi_dsi_device *dsi)
>  	if (IS_ERR(st7701->backlight))
>  		return PTR_ERR(st7701->backlight);
>  
> -	drm_panel_init(&st7701->panel);
> +	drm_panel_init(&st7701->panel, &dsi->dev, &st7701_funcs);
>  
>  	/**
>  	 * Once sleep out has been issued, ST7701 IC required to wait 120ms
> @@ -381,8 +381,6 @@ static int st7701_dsi_probe(struct mipi_dsi_device *dsi)
>  	 * ts8550b and there is no valid documentation for that.
>  	 */
>  	st7701->sleep_delay = 120 + desc->panel_sleep_delay;
> -	st7701->panel.funcs = &st7701_funcs;
> -	st7701->panel.dev = &dsi->dev;
>  
>  	ret = drm_panel_add(&st7701->panel);
>  	if (ret < 0)
> diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> index 3b2612ae931e..2eeaeee0dd7f 100644
> --- a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> +++ b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> @@ -381,9 +381,7 @@ static int st7789v_probe(struct spi_device *spi)
>  	spi_set_drvdata(spi, ctx);
>  	ctx->spi = spi;
>  
> -	drm_panel_init(&ctx->panel);
> -	ctx->panel.dev = &spi->dev;
> -	ctx->panel.funcs = &st7789v_drm_funcs;
> +	drm_panel_init(&ctx->panel, &spi->dev, &st7789v_drm_funcs);
>  
>  	ctx->power = devm_regulator_get(&spi->dev, "power");
>  	if (IS_ERR(ctx->power))
> diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> index 305259b58767..5a2772b04b75 100644
> --- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> +++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> @@ -648,9 +648,7 @@ static int acx565akm_probe(struct spi_device *spi)
>  			return ret;
>  	}
>  
> -	drm_panel_init(&lcd->panel);
> -	lcd->panel.dev = &lcd->spi->dev;
> -	lcd->panel.funcs = &acx565akm_funcs;
> +	drm_panel_init(&lcd->panel, &lcd->spi->dev, &acx565akm_funcs);
>  
>  	ret = drm_panel_add(&lcd->panel);
>  	if (ret < 0) {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> index d7b2e34626ef..8b1148d74e7b 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> @@ -347,9 +347,7 @@ static int td028ttec1_probe(struct spi_device *spi)
>  		return ret;
>  	}
>  
> -	drm_panel_init(&lcd->panel);
> -	lcd->panel.dev = &lcd->spi->dev;
> -	lcd->panel.funcs = &td028ttec1_funcs;
> +	drm_panel_init(&lcd->panel, &lcd->spi->dev, &td028ttec1_funcs);
>  
>  	return drm_panel_add(&lcd->panel);
>  }
> diff --git a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> index 84370562910f..bbf0c2e1c90f 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> @@ -458,9 +458,7 @@ static int td043mtea1_probe(struct spi_device *spi)
>  		return ret;
>  	}
>  
> -	drm_panel_init(&lcd->panel);
> -	lcd->panel.dev = &lcd->spi->dev;
> -	lcd->panel.funcs = &td043mtea1_funcs;
> +	drm_panel_init(&lcd->panel, &lcd->spi->dev, &td043mtea1_funcs);
>  
>  	ret = drm_panel_add(&lcd->panel);
>  	if (ret < 0) {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-tpg110.c b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> index 71591e5f5938..25524c26b241 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> @@ -457,9 +457,7 @@ static int tpg110_probe(struct spi_device *spi)
>  	if (ret)
>  		return ret;
>  
> -	drm_panel_init(&tpg->panel);
> -	tpg->panel.dev = dev;
> -	tpg->panel.funcs = &tpg110_drm_funcs;
> +	drm_panel_init(&tpg->panel, dev, &tpg110_drm_funcs);
>  	spi_set_drvdata(spi, tpg);
>  
>  	return drm_panel_add(&tpg->panel);
> diff --git a/drivers/gpu/drm/panel/panel-truly-nt35597.c b/drivers/gpu/drm/panel/panel-truly-nt35597.c
> index 77e1311b7c69..c3714be78837 100644
> --- a/drivers/gpu/drm/panel/panel-truly-nt35597.c
> +++ b/drivers/gpu/drm/panel/panel-truly-nt35597.c
> @@ -518,9 +518,7 @@ static int truly_nt35597_panel_add(struct truly_nt35597 *ctx)
>  	/* dual port */
>  	gpiod_set_value(ctx->mode_gpio, 0);
>  
> -	drm_panel_init(&ctx->panel);
> -	ctx->panel.dev = dev;
> -	ctx->panel.funcs = &truly_nt35597_drm_funcs;
> +	drm_panel_init(&ctx->panel, dev, &truly_nt35597_drm_funcs);
>  	drm_panel_add(&ctx->panel);
>  
>  	return 0;
> diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
> index 624bd15ecfab..4b9c656dc15e 100644
> --- a/include/drm/drm_panel.h
> +++ b/include/drm/drm_panel.h
> @@ -147,7 +147,8 @@ struct drm_panel {
>  	struct list_head list;
>  };
>  
> -void drm_panel_init(struct drm_panel *panel);
> +void drm_panel_init(struct drm_panel *panel, struct device *dev,
> +		    const struct drm_panel_funcs *funcs);
>  
>  int drm_panel_add(struct drm_panel *panel);
>  void drm_panel_remove(struct drm_panel *panel);
> -- 
> Regards,
> 
> Laurent Pinchart
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2019-08-24  8:50 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-23 19:32 [PATCH v2 0/4] drm/panel: Extend panels to report their types Laurent Pinchart
2019-08-23 19:32 ` [PATCH v2 1/4] drm/panel: Add missing drm_panel_init() in panel drivers Laurent Pinchart
2019-08-24  8:48   ` Sam Ravnborg
2019-08-23 19:32 ` [PATCH v2 2/4] drm/panel: Initialise panel dev and funcs through drm_panel_init() Laurent Pinchart
2019-08-24  8:50   ` Sam Ravnborg [this message]
2019-08-23 19:32 ` [PATCH v2 3/4] drm/panel: Add and fill drm_panel type field Laurent Pinchart
2019-08-24  9:54   ` DRM_MODE_CONNECTOR_PANEL? [Was: drm/panel: Add and fill drm_panel type field] Sam Ravnborg
2019-08-24 14:02     ` Laurent Pinchart
2019-09-04 13:13       ` Laurent Pinchart
2019-09-27 12:37     ` Linus Walleij
2019-09-27 12:44       ` Daniel Stone
2019-09-27 14:28         ` Tomi Valkeinen
2019-10-08  8:42           ` Daniel Vetter
2019-08-26  7:46   ` [PATCH v2 3/4] drm/panel: Add and fill drm_panel type field Boris Brezillon
2019-08-23 19:32 ` [PATCH v2 4/4] drm/bridge: panel: Infer connector type from panel by default Laurent Pinchart
2019-08-26  7:47   ` Boris Brezillon

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=20190824085005.GB30584@ravnborg.org \
    --to=sam@ravnborg.org \
    --cc=agx@sigxcpu.org \
    --cc=alexandre.belloni@bootlin.com \
    --cc=bbrezillon@kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jagan@amarulasolutions.com \
    --cc=jernej.skrabec@siol.net \
    --cc=jonas@kwiboo.se \
    --cc=jsarha@ti.com \
    --cc=kernel@puri.sm \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=ludovic.desroches@microchip.com \
    --cc=maxime.ripard@bootlin.com \
    --cc=narmstrong@baylibre.com \
    --cc=nicolas.ferre@microchip.com \
    --cc=paul@crapouillou.net \
    --cc=philippe.cornu@st.com \
    --cc=robert.chiras@nxp.com \
    --cc=sean@poorly.run \
    --cc=stefan@olimex.com \
    --cc=thierry.reding@gmail.com \
    --cc=tomi.valkeinen@ti.com \
    --cc=vincent.abriou@st \
    --cc=yannick.fertre@st.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.