Message ID | 20190517184659.18828-2-peron.clem@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Allwinner H6 Mali GPU support | expand |
Hi Rob, On Fri, 17 May 2019 at 22:07, Rob Herring <robh+dt@kernel.org> wrote: > > On Fri, May 17, 2019 at 1:47 PM Clément Péron <peron.clem@gmail.com> wrote: > > > > Allwinner H6 has an ARM Mali-T720 MP2 which required a bus_clock. > > > > Add an optional bus_clock at the init of the panfrost driver. > > > > Signed-off-by: Clément Péron <peron.clem@gmail.com> > > --- > > drivers/gpu/drm/panfrost/panfrost_device.c | 25 +++++++++++++++++++++- > > drivers/gpu/drm/panfrost/panfrost_device.h | 1 + > > 2 files changed, 25 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/panfrost/panfrost_device.c b/drivers/gpu/drm/panfrost/panfrost_device.c > > index 3b2bced1b015..8da6e612d384 100644 > > --- a/drivers/gpu/drm/panfrost/panfrost_device.c > > +++ b/drivers/gpu/drm/panfrost/panfrost_device.c > > @@ -44,7 +44,8 @@ static int panfrost_clk_init(struct panfrost_device *pfdev) > > > > pfdev->clock = devm_clk_get(pfdev->dev, NULL); > > if (IS_ERR(pfdev->clock)) { > > - dev_err(pfdev->dev, "get clock failed %ld\n", PTR_ERR(pfdev->clock)); > > + dev_err(pfdev->dev, "get clock failed %ld\n", > > + PTR_ERR(pfdev->clock)); > > Please drop this whitespace change. Sorry, I thought it was only a mistake here, I will drop it. Why are they so many lines over 80 characters? Is there a specific coding style to follow ? Thanks, Clement > > > return PTR_ERR(pfdev->clock); > > } > >
Hi, On Sat, 18 May 2019 at 00:17, Rob Herring <robh+dt@kernel.org> wrote: > > On Fri, May 17, 2019 at 5:08 PM Clément Péron <peron.clem@gmail.com> wrote: > > > > Hi Rob, > > > > On Fri, 17 May 2019 at 22:07, Rob Herring <robh+dt@kernel.org> wrote: > > > > > > On Fri, May 17, 2019 at 1:47 PM Clément Péron <peron.clem@gmail.com> wrote: > > > > > > > > Allwinner H6 has an ARM Mali-T720 MP2 which required a bus_clock. > > > > > > > > Add an optional bus_clock at the init of the panfrost driver. > > > > > > > > Signed-off-by: Clément Péron <peron.clem@gmail.com> > > > > --- > > > > drivers/gpu/drm/panfrost/panfrost_device.c | 25 +++++++++++++++++++++- > > > > drivers/gpu/drm/panfrost/panfrost_device.h | 1 + > > > > 2 files changed, 25 insertions(+), 1 deletion(-) > > > > > > > > diff --git a/drivers/gpu/drm/panfrost/panfrost_device.c b/drivers/gpu/drm/panfrost/panfrost_device.c > > > > index 3b2bced1b015..8da6e612d384 100644 > > > > --- a/drivers/gpu/drm/panfrost/panfrost_device.c > > > > +++ b/drivers/gpu/drm/panfrost/panfrost_device.c > > > > @@ -44,7 +44,8 @@ static int panfrost_clk_init(struct panfrost_device *pfdev) > > > > > > > > pfdev->clock = devm_clk_get(pfdev->dev, NULL); > > > > if (IS_ERR(pfdev->clock)) { > > > > - dev_err(pfdev->dev, "get clock failed %ld\n", PTR_ERR(pfdev->clock)); > > > > + dev_err(pfdev->dev, "get clock failed %ld\n", > > > > + PTR_ERR(pfdev->clock)); > > > > > > Please drop this whitespace change. > > > > Sorry, I thought it was only a mistake here, I will drop it. > > Why are they so many lines over 80 characters? > > I'd guess most are prints and/or just slightly over. > > > Is there a specific coding style to follow ? > > Yes, but generally the 80 character thing is more a guidance. Not > having unrelated changes in a single commit is more of a hard rule. Ok, thanks for the clarification. Clément > > Rob
diff --git a/drivers/gpu/drm/panfrost/panfrost_device.c b/drivers/gpu/drm/panfrost/panfrost_device.c index 3b2bced1b015..8da6e612d384 100644 --- a/drivers/gpu/drm/panfrost/panfrost_device.c +++ b/drivers/gpu/drm/panfrost/panfrost_device.c @@ -44,7 +44,8 @@ static int panfrost_clk_init(struct panfrost_device *pfdev) pfdev->clock = devm_clk_get(pfdev->dev, NULL); if (IS_ERR(pfdev->clock)) { - dev_err(pfdev->dev, "get clock failed %ld\n", PTR_ERR(pfdev->clock)); + dev_err(pfdev->dev, "get clock failed %ld\n", + PTR_ERR(pfdev->clock)); return PTR_ERR(pfdev->clock); } @@ -55,11 +56,33 @@ static int panfrost_clk_init(struct panfrost_device *pfdev) if (err) return err; + pfdev->bus_clock = devm_clk_get_optional(pfdev->dev, "bus"); + if (IS_ERR(pfdev->bus_clock)) { + dev_err(pfdev->dev, "get bus_clock failed %ld\n", + PTR_ERR(pfdev->bus_clock)); + return PTR_ERR(pfdev->bus_clock); + } + + if (pfdev->bus_clock) { + rate = clk_get_rate(pfdev->bus_clock); + dev_info(pfdev->dev, "bus_clock rate = %lu\n", rate); + + err = clk_prepare_enable(pfdev->bus_clock); + if (err) + goto disable_clock; + } + return 0; + +disable_clock: + clk_disable_unprepare(pfdev->clock); + + return err; } static void panfrost_clk_fini(struct panfrost_device *pfdev) { + clk_disable_unprepare(pfdev->bus_clock); clk_disable_unprepare(pfdev->clock); } diff --git a/drivers/gpu/drm/panfrost/panfrost_device.h b/drivers/gpu/drm/panfrost/panfrost_device.h index 56f452dfb490..8074f221034b 100644 --- a/drivers/gpu/drm/panfrost/panfrost_device.h +++ b/drivers/gpu/drm/panfrost/panfrost_device.h @@ -66,6 +66,7 @@ struct panfrost_device { void __iomem *iomem; struct clk *clock; + struct clk *bus_clock; struct regulator *regulator; struct reset_control *rstc;
Allwinner H6 has an ARM Mali-T720 MP2 which required a bus_clock. Add an optional bus_clock at the init of the panfrost driver. Signed-off-by: Clément Péron <peron.clem@gmail.com> --- drivers/gpu/drm/panfrost/panfrost_device.c | 25 +++++++++++++++++++++- drivers/gpu/drm/panfrost/panfrost_device.h | 1 + 2 files changed, 25 insertions(+), 1 deletion(-)