public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Sam Ravnborg <sam@ravnborg.org>,
	devicetree@vger.kernel.org, Conor Dooley <conor+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Magnus Damm <magnus.damm@gmail.com>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	Rob Herring <robh+dt@kernel.org>,
	Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>,
	Thomas Zimmermann <tzimmermann@suse.de>
Subject: Re: [PATCH 39/39] drm: renesas: shmobile: Add DT support
Date: Fri, 23 Jun 2023 21:52:52 +0300	[thread overview]
Message-ID: <20230623185252.GS2112@pendragon.ideasonboard.com> (raw)
In-Reply-To: <CAMuHMdVsvz1knSDqQW16rrT3tq2Zz4dfEJj4WS5By0AYLWRazA@mail.gmail.com>

On Fri, Jun 23, 2023 at 08:09:53PM +0200, Geert Uytterhoeven wrote:
> On Fri, Jun 23, 2023 at 7:54 PM Sam Ravnborg <sam@ravnborg.org> wrote:
> > On Fri, Jun 23, 2023 at 08:50:19PM +0300, Laurent Pinchart wrote:
> > > On Thu, Jun 22, 2023 at 11:21:51AM +0200, Geert Uytterhoeven wrote:
> > > > Add DT support, by:
> > > >   1. Creating a panel bridge from DT, and attaching it to the encoder,
> > > >   2. Replacing the custom connector with a bridge connector,
> > > >   3. Obtaining clock configuration based on the compatible value.
> > > >
> > > > Note that for now the driver uses a fixed clock configuration selecting
> > > > the bus clock, as the current code to select other clock inputs needs
> > > > changes to support any other SoCs than SH7724.
> > > >
> > > > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> > > > Cc: Rob Herring <robh+dt@kernel.org>
> > > > Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
> > > > Cc: Conor Dooley <conor+dt@kernel.org>
> > > > Cc: devicetree@vger.kernel.org
> > > > ---
> > > > SH-Mobile AG5 (SH73A0) support is untested.
> > > >
> > > > Unbind crashes when drm_encoder_cleanup() calls drm_bridge_detach(), as
> > > > the bridge (allocated by devm_drm_panel_bridge_add()) has already been
> > > > freed by that time.
> > > > Should I allocate my encoder with devm_kzalloc(), instead of embedding
> > > > it inside struct shmob_drm_device?
> > >
> > > That shouldn't be needed, if you manage the memory for shmob_drm_device
> > > with the DRM managed helpers.
> 
> Well, Marek said unbind works fine in drivers/gpu/drm/mxsfb/lcdif_drv.c,
> where the order is:
> 
>     bridge = devm_drm_of_get_bridge(...)
>     encoder = devm_kzalloc(...)
>     drm_encoder_init(...)
> 
> > > Lifetime management of bridges is currently completely broken, there's
> > > nothing that prevents bridges from being freed while still in use.
> > > That's an issue in DRM, not in your driver.
> 
> OK ;-) (or :-(
> 
> > > > --- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
> > > > +++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
> > > > @@ -508,9 +508,43 @@ static const struct drm_encoder_helper_funcs encoder_helper_funcs = {
> > > >     .mode_fixup = shmob_drm_encoder_mode_fixup,
> > > >  };
> > > >
> > > > +/* -----------------------------------------------------------------------------
> > > > + * Encoder
> > > > + */
> > > > +
> > > > +static int shmob_drm_encoder_init(struct shmob_drm_device *sdev,
> > > > +                             struct device_node *enc_node)
> > > > +{
> > > > +   struct drm_bridge *bridge;
> > > > +   struct drm_panel *panel;
> > > > +   int ret;
> > > > +
> > > > +   /* Create a panel bridge */
> > > > +   panel = of_drm_find_panel(enc_node);
> > >
> > > Using drm_of_find_panel_or_bridge() would allow supporting platforms
> > > that connect a non-panel device to the SoC, in additional to the already
> > > supported panels.
> >
> > From the documentation of drm_of_find_panel_or_bridge():
> >
> >  * This function is deprecated and should not be used in new drivers. Use
> >  * devm_drm_of_get_bridge() instead.

Indeed, my bad/ devm_drm_of_get_bridge() is better.

> > I suggest to go that route.
> 
> OK (do I have the feeling that these helpers are sometimes deprecated
> faster than they are written? ;-)
> 
> > > > @@ -147,11 +148,13 @@ static int shmob_drm_remove(struct platform_device *pdev)
> > > >  static int shmob_drm_probe(struct platform_device *pdev)
> > > >  {
> > > >     struct shmob_drm_platform_data *pdata = pdev->dev.platform_data;
> > >
> > > How about dropping non-DT support ? That would simplify the driver.
> >
> > +1 for that, without knowing the implications.
> 
> That depends on your priorities: do you want to migrate all users of
> sh_mobile_lcdc_fb to shmob_drm, or do you want the SuperH users to
> stick with sh_mobile_lcdc_fb until they have migrated to DT? ;-)

I'd vote for dropping LCDC support from the SH users. Does anyone
*really* need it ? If they do, they should convert the board to DT.

> Regardless of the above, I do not have (visible) access to any of the
> affected SH772[234] platforms...

-- 
Regards,

Laurent Pinchart

      reply	other threads:[~2023-06-23 18:53 UTC|newest]

Thread overview: 103+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-22  9:21 [PATCH 00/39] drm: renesas: shmobile: Atomic conversion + DT support Geert Uytterhoeven
2023-06-22  9:21 ` [PATCH 01/39] dt-bindings: display: Add Renesas SH-Mobile LCDC bindings Geert Uytterhoeven
2023-06-22 14:52   ` Rob Herring
2023-07-17 13:57     ` Geert Uytterhoeven
2023-06-23 14:43   ` Laurent Pinchart
2023-06-23 15:19     ` Geert Uytterhoeven
2023-06-23 15:33       ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 02/39] media: uapi: Add MEDIA_BUS_FMT_RGB666_2X9 variants Geert Uytterhoeven
2023-06-23 14:56   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 03/39] drm: renesas: shmobile: Fix overlay plane disable Geert Uytterhoeven
2023-06-23 14:59   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 04/39] drm: renesas: shmobile: Fix ARGB32 overlay format typo Geert Uytterhoeven
2023-06-22 10:11   ` Sergei Shtylyov
2023-06-23 14:58   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 05/39] drm: renesas: shmobile: Correct encoder/connector types Geert Uytterhoeven
2023-06-23 15:03   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 06/39] drm: renesas: shmobile: Add support for Runtime PM Geert Uytterhoeven
2023-06-23 15:07   ` Laurent Pinchart
2023-06-23 15:11     ` Laurent Pinchart
2023-06-23 15:22       ` Geert Uytterhoeven
2023-06-23 15:34         ` Laurent Pinchart
2023-06-23 17:41           ` Geert Uytterhoeven
2023-06-23 17:52             ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 07/39] drm: renesas: shmobile: Restore indentation of shmob_drm_setup_clocks() Geert Uytterhoeven
2023-06-23 15:04   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 08/39] drm: renesas: shmobile: Use %p4cc to print fourcc code Geert Uytterhoeven
2023-06-23 15:04   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 09/39] drm: renesas: shmobile: Add missing YCbCr formats Geert Uytterhoeven
2023-06-23 15:13   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 10/39] drm: renesas: shmobile: Improve shmob_drm_format_info table Geert Uytterhoeven
2023-06-23 15:30   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 11/39] drm: renesas: shmobile: Remove backlight support Geert Uytterhoeven
2023-06-23 15:36   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 12/39] drm: renesas: shmobile: Don't set display info width and height twice Geert Uytterhoeven
2023-06-28  1:46   ` [12/39] " Sui Jingfeng
2023-06-22  9:21 ` [PATCH 13/39] drm: renesas: shmobile: Rename input clocks Geert Uytterhoeven
2023-06-28  1:50   ` [13/39] " Sui Jingfeng
2023-06-22  9:21 ` [PATCH 14/39] drm: renesas: shmobile: Remove support for SYS panels Geert Uytterhoeven
2023-06-22  9:21 ` [PATCH 15/39] drm: renesas: shmobile: Improve error handling Geert Uytterhoeven
2023-06-23 15:41   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 16/39] drm: renesas: shmobile: Convert to use devm_request_irq() Geert Uytterhoeven
2023-06-23 15:41   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 17/39] drm: renesas: shmobile: Use drmm_universal_plane_alloc() Geert Uytterhoeven
2023-06-23 15:46   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 18/39] drm: renesas: shmobile: Embed drm_device in shmob_drm_device Geert Uytterhoeven
2023-06-23 15:48   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 19/39] drm: renesas: shmobile: Convert container helpers to static inline functions Geert Uytterhoeven
2023-06-23 15:49   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 20/39] drm: renesas: shmobile: Replace .dev_private with container_of() Geert Uytterhoeven
2023-06-23 15:50   ` Laurent Pinchart
2023-06-24  9:49   ` [20/39] " Sui Jingfeng
2023-06-22  9:21 ` [PATCH 21/39] drm: renesas: shmobile: Use struct videomode in platform data Geert Uytterhoeven
2023-06-23 15:53   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 22/39] drm: renesas: shmobile: Use media bus formats " Geert Uytterhoeven
2023-06-23 15:54   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 23/39] drm: renesas: shmobile: Move interface handling to connector setup Geert Uytterhoeven
2023-06-23 16:39   ` Laurent Pinchart
2023-06-23 17:51     ` Geert Uytterhoeven
2023-06-23 17:53       ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 24/39] drm: renesas: shmobile: Unify plane allocation Geert Uytterhoeven
2023-06-23 16:50   ` Laurent Pinchart
2023-06-23 17:55     ` Geert Uytterhoeven
2023-06-23 18:50       ` Laurent Pinchart
2023-06-25  8:58         ` Geert Uytterhoeven
2023-06-25 16:56           ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 25/39] drm: renesas: shmobile: Rename shmob_drm_crtc.crtc Geert Uytterhoeven
2023-06-23 16:51   ` Laurent Pinchart
2023-06-27 14:38   ` [25/39] " Sui Jingfeng
2023-06-22  9:21 ` [PATCH 26/39] drm: renesas: shmobile: Rename shmob_drm_connector.connector Geert Uytterhoeven
2023-06-23 16:51   ` Laurent Pinchart
2023-06-27 14:40   ` [26/39] " Sui Jingfeng
2023-06-22  9:21 ` [PATCH 27/39] drm: renesas: shmobile: Rename shmob_drm_plane.plane Geert Uytterhoeven
2023-06-23 16:52   ` Laurent Pinchart
2023-06-27 14:40   ` [27/39] " Sui Jingfeng
2023-06-22  9:21 ` [PATCH 28/39] drm: renesas: shmobile: Use drm_crtc_handle_vblank() Geert Uytterhoeven
2023-06-23 16:53   ` Laurent Pinchart
2023-06-24  9:33   ` [28/39] " Sui Jingfeng
2023-06-25  8:55     ` Geert Uytterhoeven
2023-06-22  9:21 ` [PATCH 29/39] drm: renesas: shmobile: Move shmob_drm_crtc_finish_page_flip() Geert Uytterhoeven
2023-06-23 16:53   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 30/39] drm: renesas: shmobile: Wait for page flip when turning CRTC off Geert Uytterhoeven
2023-06-23 17:08   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 31/39] drm: renesas: shmobile: Turn vblank on/off when enabling/disabling CRTC Geert Uytterhoeven
2023-06-23 17:09   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 32/39] drm: renesas: shmobile: Shutdown the display on remove Geert Uytterhoeven
2023-06-23 17:10   ` Laurent Pinchart
2023-06-27 14:57   ` [32/39] " Sui Jingfeng
2023-07-05 10:29     ` Geert Uytterhoeven
2023-06-22  9:21 ` [PATCH 33/39] drm: renesas: shmobile: Cleanup encoder Geert Uytterhoeven
2023-06-23 17:12   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 34/39] drm: renesas: shmobile: Atomic conversion part 1 Geert Uytterhoeven
2023-06-22  9:21 ` [PATCH 35/39] drm: renesas: shmobile: Atomic conversion part 2 Geert Uytterhoeven
2023-06-22  9:21 ` [PATCH 36/39] drm: renesas: shmobile: Use suspend/resume helpers Geert Uytterhoeven
2023-06-23 17:14   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 37/39] drm: renesas: shmobile: Remove internal CRTC state tracking Geert Uytterhoeven
2023-06-23 17:15   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 38/39] drm: renesas: shmobile: Atomic conversion part 3 Geert Uytterhoeven
2023-06-23 17:18   ` Laurent Pinchart
2023-06-22  9:21 ` [PATCH 39/39] drm: renesas: shmobile: Add DT support Geert Uytterhoeven
2023-06-23 17:50   ` Laurent Pinchart
2023-06-23 17:54     ` Sam Ravnborg
2023-06-23 18:09       ` Geert Uytterhoeven
2023-06-23 18:52         ` Laurent Pinchart [this message]

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=20230623185252.GS2112@pendragon.ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=geert@linux-m68k.org \
    --cc=kieran.bingham+renesas@ideasonboard.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=robh+dt@kernel.org \
    --cc=sam@ravnborg.org \
    --cc=tzimmermann@suse.de \
    /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