[PATCH V3 3/7] drm: bridge: samsung-dsim: Fetch pll-clock-frequency automatically

Adam Ford aford173 at gmail.com
Thu May 4 13:30:22 UTC 2023


On Thu, May 4, 2023 at 8:18 AM Alexander Stein
<alexander.stein at ew.tq-group.com> wrote:
>
> Am Donnerstag, 4. Mai 2023, 14:57:01 CEST schrieb Adam Ford:
> > On Thu, May 4, 2023 at 7:40 AM Alexander Stein
> >
> > <alexander.stein at ew.tq-group.com> wrote:
> > > Hi Adam,
> > >
> > > Am Donnerstag, 4. Mai 2023, 14:00:08 CEST schrieb Adam Ford:
> > > > On Thu, May 4, 2023 at 4:21 AM Alexander Stein
> > > >
> > > > <alexander.stein at ew.tq-group.com> wrote:
> > > > > Am Dienstag, 2. Mai 2023, 03:07:55 CEST schrieb Adam Ford:
> > > > > > Make the pll-clock-frequency optional.  If it's present, use it
> > > > > > to maintain backwards compatibility with existing hardware.  If it
> > > > > > is absent, read clock rate of "sclk_mipi" to determine the rate.
> > > > > >
> > > > > > Signed-off-by: Adam Ford <aford173 at gmail.com>
> > > > > > Tested-by: Chen-Yu Tsai <wenst at chromium.org>
> > > > > > ---
> > > > > >
> > > > > >  drivers/gpu/drm/bridge/samsung-dsim.c | 12 ++++++++++--
> > > > > >  1 file changed, 10 insertions(+), 2 deletions(-)
> > > > > >
> > > > > > diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c
> > > > > > b/drivers/gpu/drm/bridge/samsung-dsim.c index
> > > > > > bf4b33d2de76..2dc02a9e37c0
> > > > > > 100644
> > > > > > --- a/drivers/gpu/drm/bridge/samsung-dsim.c
> > > > > > +++ b/drivers/gpu/drm/bridge/samsung-dsim.c
> > > > > > @@ -1726,12 +1726,20 @@ static int samsung_dsim_parse_dt(struct
> > > > > > samsung_dsim *dsi) {
> > > > > >
> > > > > >       struct device *dev = dsi->dev;
> > > > > >       struct device_node *node = dev->of_node;
> > > > > >
> > > > > > +     struct clk *pll_clk;
> > > > > >
> > > > > >       int ret;
> > > > > >
> > > > > >       ret = samsung_dsim_of_read_u32(node,
> > > > > >       "samsung,pll-clock-frequency",
> > > > > >
> > > > > >                                      &dsi->pll_clk_rate);
> > > > > >
> > > > > > -     if (ret < 0)
> > > > > > -             return ret;
> > > > > > +
> > > > > > +     /* If it doesn't exist, read it from the clock instead of
> > > > > > failing
> > > > > > */
> > > > > > +     if (ret < 0) {
> > > > > > +             pll_clk = devm_clk_get(dev, "sclk_mipi");
> > > > > > +             if (!IS_ERR(pll_clk))
> > > > > > +                     dsi->pll_clk_rate = clk_get_rate(pll_clk);
> > > > > > +             else
> > > > > > +                     return PTR_ERR(pll_clk);
> > > > > > +     }
> > > > >
> > > > > Now that 'samsung,pll-clock-frequency' is optional the error in
> > > > > samsung_dsim_of_read_u32() should be changed. Otherwise you will get
> > > > >
> > > > > > /soc at 0/bus at 32c00000/dsi at 32e10000: failed to get 'samsung,pll-clock-
> > > > >
> > > > > frequency' property
> > > >
> > > > I'll change the message from err to info with a message that reads "no
> > > > samsung,pll-clock-frequency, using pixel clock"
> > > >
> > > > Does that work?
> > >
> > > Having just a info is totally fine with me. Thanks.
> > > Although your suggested message somehow implies (to me) using pixel clock
> > > is just a fallback. I'm a bit concerned some might think
> > > "samsung,pll-clock- frequency" should be provided in DT. But this might
> > > just be me.
> >
> > Oops, I got the PLL and burst burst clock confused.  I think both
> > burst-clock and pll clock messages should get updates.
> >
> > The pll clock should say something like "samsung,pll-clock-frequency
> > not defined, using sclk_mipi"
> >
> > The imx8m n/m/p have the sclk_mipi defined in the device tree, and
> > this patch allows them to not have
> > to manually set the pll clock since it can be read.  This allows to
> > people to change the frequency of the PLL in
> > in one place and let the driver read it instead of having to set the
> > value in two places for the same clock.
>
> That's why I would like to make it sound less error-like.
> How about "Using sclk_mipi for pll clock frequency"?
>
> > For the burst clock, I'd like to propose
> > "samsung,burst-clock-frequency not defined, using pixel clock"
>
> Similar to above how about "Using pixel clock for burst clock frequency"?

I like that.

>
> > Does that work for you?
>
> But I'm okay with both ways. Up to you.

 I'll wait another day or two to see if anyone else has any feedback,
and I'll submit V4 with some other items addressed too.

Thank you for your review!

adam

>
> Thanks and best regards,
> Alexander
>
>
> > > frequency
> > >
> > >
> > > Best regards,
> > > Alexander
> > >
> > > > adam
> > > >
> > > > > Best regards,
> > > > > Alexander
> > > > >
> > > > > >       ret = samsung_dsim_of_read_u32(node, "samsung,burst-clock-
> > > > >
> > > > > frequency",
> > > > >
> > > > > >                                      &dsi->burst_clk_rate);
> > > > >
> > > > > --
> > > > > TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
> > > > > Amtsgericht München, HRB 105018
> > > > > Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
> > > > > http://www.tq-group.com/
> > >
> > > --
> > > TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
> > > Amtsgericht München, HRB 105018
> > > Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
> > > http://www.tq-group.com/
>
>
> --
> TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
> Amtsgericht München, HRB 105018
> Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
> http://www.tq-group.com/
>
>


More information about the dri-devel mailing list