Re: [PATCH v1 05/26] drm/panel: add drm_connector argument to get_modes()

2019-12-04 Thread Laurent Pinchart
Hi Guido,

On Wed, Dec 04, 2019 at 01:08:04PM +0100, Guido Günther wrote:
> On Mon, Dec 02, 2019 at 08:32:09PM +0100, Sam Ravnborg wrote:
> > Today the bridge creates the drm_connector, but that is planned
> > to be moved to the display drivers.
> 
> Do you have a reference for that move at hand?

https://patchwork.kernel.org/cover/10805353/

Not something that will be enforced right away, but I think it will
simplify display controller drivers, so I'll advocate switching to that
model.

> > To facilitate this, update drm_panel_funcs.get_modes() to
> > take drm_connector as an argument.
> > All panel drivers implementing get_modes() are updated.
> > 
> > Signed-off-by: Sam Ravnborg 
> > Cc: Thierry Reding 
> > Cc: Laurent Pinchart 
> > Cc: Sam Ravnborg 
> > Cc: Maarten Lankhorst 
> > Cc: Maxime Ripard 
> > Cc: David Airlie 
> > Cc: Daniel Vetter 
> > Cc: Linus Walleij 
> > Cc: Jagan Teki 
> > Cc: Stefan Mavrodiev 
> > Cc: Robert Chiras 
> > Cc: "Guido Günther" 
> > Cc: Purism Kernel Team 
> > ---
> >  drivers/gpu/drm/drm_panel.c   |  2 +-
> >  drivers/gpu/drm/panel/panel-arm-versatile.c   |  4 +--
> >  .../drm/panel/panel-feiyang-fy07024di26a30d.c |  4 +--
> >  drivers/gpu/drm/panel/panel-ilitek-ili9322.c  |  5 ++--
> >  drivers/gpu/drm/panel/panel-ilitek-ili9881c.c |  8 +++---
> >  drivers/gpu/drm/panel/panel-innolux-p079zca.c | 13 +
> >  .../gpu/drm/panel/panel-jdi-lt070me05000.c|  9 ---
> >  .../drm/panel/panel-kingdisplay-kd097d04.c| 11 
> >  drivers/gpu/drm/panel/panel-lg-lb035q02.c |  4 +--
> >  drivers/gpu/drm/panel/panel-lg-lg4573.c   |  8 +++---
> >  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 +--
> >  .../drm/panel/panel-olimex-lcd-olinuxino.c|  4 +--
> >  .../gpu/drm/panel/panel-orisetech-otm8009a.c  |  9 ---
> >  .../drm/panel/panel-osd-osd101t2587-53ts.c|  9 ---
> >  .../drm/panel/panel-panasonic-vvx10f034n00.c  |  9 ---
> >  .../drm/panel/panel-raspberrypi-touchscreen.c |  4 +--
> >  drivers/gpu/drm/panel/panel-raydium-rm67191.c |  6 ++---
> >  drivers/gpu/drm/panel/panel-raydium-rm68200.c |  9 ---
> >  .../drm/panel/panel-rocktech-jh057n00900.c|  9 ---
> >  drivers/gpu/drm/panel/panel-ronbo-rb070d30.c  | 10 +++
> >  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 +--
> >  .../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   |  9 ---
> >  .../gpu/drm/panel/panel-sharp-lq101r1sx01.c   |  9 ---
> >  .../gpu/drm/panel/panel-sharp-ls037v7dw01.c   |  4 +--
> >  .../gpu/drm/panel/panel-sharp-ls043t1le01.c   |  9 ---
> >  drivers/gpu/drm/panel/panel-simple.c  | 27 ++-
> >  drivers/gpu/drm/panel/panel-sitronix-st7701.c |  9 ---
> >  .../gpu/drm/panel/panel-sitronix-st7789v.c|  8 +++---
> >  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, 141 insertions(+), 130 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
> > index 35609c90e467..9927e28d93e6 100644
> > --- a/drivers/gpu/drm/drm_panel.c
> > +++ b/drivers/gpu/drm/drm_panel.c
> > @@ -252,7 +252,7 @@ int drm_panel_get_modes(struct drm_panel *panel)
> > return -EINVAL;
> >  
> > if (panel->funcs && panel->funcs->get_modes)
> > -   return panel->funcs->get_modes(panel);
> > +   return panel->funcs->get_modes(panel, panel->connector);
> >  
> > return 0;
> >  }
> > diff --git a/drivers/gpu/drm/panel/panel-arm-versatile.c 
> > b/drivers/gpu/drm/panel/panel-arm-versatile.c
> > index a0574dc03e16..41aa91f60979 100644
> > --- a/drivers/gpu/drm/panel/panel-arm-versatile.c
> > +++ b/drivers/gpu/drm/panel/panel-arm-versatile.c
> > @@ -260,9 +260,9 @@ static int versatile_panel_enable(struct drm_panel 
> > *panel)
> > return 0;
> >  }
> >  
> > -static int versatile_panel_get_modes(struct drm_panel *panel)
> > +static int versatile_panel_get_modes(struct drm_panel *panel,
> > +struct drm_connector *connector)
> >  {
> > -   struct drm_connector *connector = panel->connector;
> > struct versatile_panel *vpanel = to_versatile_panel(panel);
> > struct drm_display_mode *mode;
> >  
> > diff --git a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c 
> > b/drivers/gpu/drm/pa

Re: [PATCH v1 05/26] drm/panel: add drm_connector argument to get_modes()

2019-12-04 Thread Guido Günther
Hi Sam,
On Mon, Dec 02, 2019 at 08:32:09PM +0100, Sam Ravnborg wrote:
> Today the bridge creates the drm_connector, but that is planned
> to be moved to the display drivers.

Do you have a reference for that move at hand?
Cheers,
 -- Guido

> To facilitate this, update drm_panel_funcs.get_modes() to
> take drm_connector as an argument.
> All panel drivers implementing get_modes() are updated.
> 
> Signed-off-by: Sam Ravnborg 
> Cc: Thierry Reding 
> Cc: Laurent Pinchart 
> Cc: Sam Ravnborg 
> Cc: Maarten Lankhorst 
> Cc: Maxime Ripard 
> Cc: David Airlie 
> Cc: Daniel Vetter 
> Cc: Linus Walleij 
> Cc: Jagan Teki 
> Cc: Stefan Mavrodiev 
> Cc: Robert Chiras 
> Cc: "Guido Günther" 
> Cc: Purism Kernel Team 
> ---
>  drivers/gpu/drm/drm_panel.c   |  2 +-
>  drivers/gpu/drm/panel/panel-arm-versatile.c   |  4 +--
>  .../drm/panel/panel-feiyang-fy07024di26a30d.c |  4 +--
>  drivers/gpu/drm/panel/panel-ilitek-ili9322.c  |  5 ++--
>  drivers/gpu/drm/panel/panel-ilitek-ili9881c.c |  8 +++---
>  drivers/gpu/drm/panel/panel-innolux-p079zca.c | 13 +
>  .../gpu/drm/panel/panel-jdi-lt070me05000.c|  9 ---
>  .../drm/panel/panel-kingdisplay-kd097d04.c| 11 
>  drivers/gpu/drm/panel/panel-lg-lb035q02.c |  4 +--
>  drivers/gpu/drm/panel/panel-lg-lg4573.c   |  8 +++---
>  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 +--
>  .../drm/panel/panel-olimex-lcd-olinuxino.c|  4 +--
>  .../gpu/drm/panel/panel-orisetech-otm8009a.c  |  9 ---
>  .../drm/panel/panel-osd-osd101t2587-53ts.c|  9 ---
>  .../drm/panel/panel-panasonic-vvx10f034n00.c  |  9 ---
>  .../drm/panel/panel-raspberrypi-touchscreen.c |  4 +--
>  drivers/gpu/drm/panel/panel-raydium-rm67191.c |  6 ++---
>  drivers/gpu/drm/panel/panel-raydium-rm68200.c |  9 ---
>  .../drm/panel/panel-rocktech-jh057n00900.c|  9 ---
>  drivers/gpu/drm/panel/panel-ronbo-rb070d30.c  | 10 +++
>  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 +--
>  .../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   |  9 ---
>  .../gpu/drm/panel/panel-sharp-lq101r1sx01.c   |  9 ---
>  .../gpu/drm/panel/panel-sharp-ls037v7dw01.c   |  4 +--
>  .../gpu/drm/panel/panel-sharp-ls043t1le01.c   |  9 ---
>  drivers/gpu/drm/panel/panel-simple.c  | 27 ++-
>  drivers/gpu/drm/panel/panel-sitronix-st7701.c |  9 ---
>  .../gpu/drm/panel/panel-sitronix-st7789v.c|  8 +++---
>  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, 141 insertions(+), 130 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
> index 35609c90e467..9927e28d93e6 100644
> --- a/drivers/gpu/drm/drm_panel.c
> +++ b/drivers/gpu/drm/drm_panel.c
> @@ -252,7 +252,7 @@ int drm_panel_get_modes(struct drm_panel *panel)
>   return -EINVAL;
>  
>   if (panel->funcs && panel->funcs->get_modes)
> - return panel->funcs->get_modes(panel);
> + return panel->funcs->get_modes(panel, panel->connector);
>  
>   return 0;
>  }
> diff --git a/drivers/gpu/drm/panel/panel-arm-versatile.c 
> b/drivers/gpu/drm/panel/panel-arm-versatile.c
> index a0574dc03e16..41aa91f60979 100644
> --- a/drivers/gpu/drm/panel/panel-arm-versatile.c
> +++ b/drivers/gpu/drm/panel/panel-arm-versatile.c
> @@ -260,9 +260,9 @@ static int versatile_panel_enable(struct drm_panel *panel)
>   return 0;
>  }
>  
> -static int versatile_panel_get_modes(struct drm_panel *panel)
> +static int versatile_panel_get_modes(struct drm_panel *panel,
> +  struct drm_connector *connector)
>  {
> - struct drm_connector *connector = panel->connector;
>   struct versatile_panel *vpanel = to_versatile_panel(panel);
>   struct drm_display_mode *mode;
>  
> diff --git a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c 
> b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
> index 98f184b81187..37d6b7390954 100644
> --- a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
> +++ b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
> @@ -162,9 +162,9 @@ static const struct drm_display_mode feiyang_default_mode 
> = {
>   .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
>  };
>  
> -static int feiyang_get_modes(struct drm_panel *panel)
> +st

Re: [PATCH v1 05/26] drm/panel: add drm_connector argument to get_modes()

2019-12-03 Thread Linus Walleij
On Mon, Dec 2, 2019 at 8:33 PM Sam Ravnborg  wrote:

> Today the bridge creates the drm_connector, but that is planned
> to be moved to the display drivers.
> To facilitate this, update drm_panel_funcs.get_modes() to
> take drm_connector as an argument.
> All panel drivers implementing get_modes() are updated.
>
> Signed-off-by: Sam Ravnborg 
> Cc: Thierry Reding 
> Cc: Laurent Pinchart 
> Cc: Sam Ravnborg 
> Cc: Maarten Lankhorst 
> Cc: Maxime Ripard 
> Cc: David Airlie 
> Cc: Daniel Vetter 
> Cc: Linus Walleij 
> Cc: Jagan Teki 
> Cc: Stefan Mavrodiev 
> Cc: Robert Chiras 
> Cc: "Guido Günther" 
> Cc: Purism Kernel Team 

This looks reasonable to me.

Reviewed-by: Linus Walleij 

Yours,
Linus Walleij
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Re: [PATCH v1 05/26] drm/panel: add drm_connector argument to get_modes()

2019-12-02 Thread Laurent Pinchart
Hi Sam,

Thank you for the patch.

On Mon, Dec 02, 2019 at 08:32:09PM +0100, Sam Ravnborg wrote:
> Today the bridge creates the drm_connector, but that is planned
> to be moved to the display drivers.
> To facilitate this, update drm_panel_funcs.get_modes() to
> take drm_connector as an argument.
> All panel drivers implementing get_modes() are updated.
> 
> Signed-off-by: Sam Ravnborg 
> Cc: Thierry Reding 
> Cc: Laurent Pinchart 
> Cc: Sam Ravnborg 
> Cc: Maarten Lankhorst 
> Cc: Maxime Ripard 
> Cc: David Airlie 
> Cc: Daniel Vetter 
> Cc: Linus Walleij 
> Cc: Jagan Teki 
> Cc: Stefan Mavrodiev 
> Cc: Robert Chiras 
> Cc: "Guido Günther" 
> Cc: Purism Kernel Team 
> ---
>  drivers/gpu/drm/drm_panel.c   |  2 +-
>  drivers/gpu/drm/panel/panel-arm-versatile.c   |  4 +--
>  .../drm/panel/panel-feiyang-fy07024di26a30d.c |  4 +--
>  drivers/gpu/drm/panel/panel-ilitek-ili9322.c  |  5 ++--
>  drivers/gpu/drm/panel/panel-ilitek-ili9881c.c |  8 +++---
>  drivers/gpu/drm/panel/panel-innolux-p079zca.c | 13 +
>  .../gpu/drm/panel/panel-jdi-lt070me05000.c|  9 ---
>  .../drm/panel/panel-kingdisplay-kd097d04.c| 11 
>  drivers/gpu/drm/panel/panel-lg-lb035q02.c |  4 +--
>  drivers/gpu/drm/panel/panel-lg-lg4573.c   |  8 +++---
>  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 +--
>  .../drm/panel/panel-olimex-lcd-olinuxino.c|  4 +--
>  .../gpu/drm/panel/panel-orisetech-otm8009a.c  |  9 ---
>  .../drm/panel/panel-osd-osd101t2587-53ts.c|  9 ---
>  .../drm/panel/panel-panasonic-vvx10f034n00.c  |  9 ---
>  .../drm/panel/panel-raspberrypi-touchscreen.c |  4 +--
>  drivers/gpu/drm/panel/panel-raydium-rm67191.c |  6 ++---
>  drivers/gpu/drm/panel/panel-raydium-rm68200.c |  9 ---
>  .../drm/panel/panel-rocktech-jh057n00900.c|  9 ---
>  drivers/gpu/drm/panel/panel-ronbo-rb070d30.c  | 10 +++
>  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 +--
>  .../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   |  9 ---
>  .../gpu/drm/panel/panel-sharp-lq101r1sx01.c   |  9 ---
>  .../gpu/drm/panel/panel-sharp-ls037v7dw01.c   |  4 +--
>  .../gpu/drm/panel/panel-sharp-ls043t1le01.c   |  9 ---
>  drivers/gpu/drm/panel/panel-simple.c  | 27 ++-
>  drivers/gpu/drm/panel/panel-sitronix-st7701.c |  9 ---
>  .../gpu/drm/panel/panel-sitronix-st7789v.c|  8 +++---
>  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, 141 insertions(+), 130 deletions(-)

Wow that's lots of manual changes.

> diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
> index 35609c90e467..9927e28d93e6 100644
> --- a/drivers/gpu/drm/drm_panel.c
> +++ b/drivers/gpu/drm/drm_panel.c
> @@ -252,7 +252,7 @@ int drm_panel_get_modes(struct drm_panel *panel)
>   return -EINVAL;
>  
>   if (panel->funcs && panel->funcs->get_modes)
> - return panel->funcs->get_modes(panel);
> + return panel->funcs->get_modes(panel, panel->connector);
>  
>   return 0;
>  }
> diff --git a/drivers/gpu/drm/panel/panel-arm-versatile.c 
> b/drivers/gpu/drm/panel/panel-arm-versatile.c
> index a0574dc03e16..41aa91f60979 100644
> --- a/drivers/gpu/drm/panel/panel-arm-versatile.c
> +++ b/drivers/gpu/drm/panel/panel-arm-versatile.c
> @@ -260,9 +260,9 @@ static int versatile_panel_enable(struct drm_panel *panel)
>   return 0;
>  }
>  
> -static int versatile_panel_get_modes(struct drm_panel *panel)
> +static int versatile_panel_get_modes(struct drm_panel *panel,
> +  struct drm_connector *connector)
>  {
> - struct drm_connector *connector = panel->connector;
>   struct versatile_panel *vpanel = to_versatile_panel(panel);
>   struct drm_display_mode *mode;
>  
> diff --git a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c 
> b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
> index 98f184b81187..37d6b7390954 100644
> --- a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
> +++ b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
> @@ -162,9 +162,9 @@ static const struct drm_display_mode feiyang_default_mode 
> = {
>   .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
>  };
>  
> -static int feiyang_get_modes(struct drm_panel *panel)
> +static i