Re: [PATCH v1 05/26] drm/panel: add drm_connector argument to get_modes()
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()
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()
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()
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