mbox series

[v5,00/14] Add regulator devfreq support to Panfrost

Message ID 20200710095409.407087-1-peron.clem@gmail.com (mailing list archive)
Headers show
Series Add regulator devfreq support to Panfrost | expand

Message

Clément Péron July 10, 2020, 9:53 a.m. UTC
Hi,

This serie cleans and adds regulator support to Panfrost devfreq.
This is mostly based on comment for the freshly introduced lima
devfreq.

We need to add regulator support because on Allwinner the GPU OPP
table defines both frequencies and voltages.

First patches [01-07] should not change the actual behavior
and introduce a proper panfrost_devfreq struct.

Regards,
Clément

Changes since v4:
 - Fix missed a pfdev to &pfdev->devfreq during rebase

Changes since v3:
 - Collect Steven Price reviewed-by tags
 - Rebase on next/master (next-20200709)

Changes since v2:
 - Collect Alyssa Rosenzweig reviewed-by tags
 - Fix opp_set_regulator before adding opp_table (introduce in v2)
 - Call err_fini in case opp_add_table failed

Changes since v1:
 - Collect Steven Price reviewed-by tags
 - Fix spinlock comment
 - Drop OPP clock-name patch
 - Drop device_property_test patch
 - Add rename error labels patch

Clément Péron (14):
  drm/panfrost: avoid static declaration
  drm/panfrost: clean headers in devfreq
  drm/panfrost: don't use pfdevfreq.busy_count to know if hw is idle
  drm/panfrost: introduce panfrost_devfreq struct
  drm/panfrost: use spinlock instead of atomic
  drm/panfrost: properly handle error in probe
  drm/panfrost: rename error labels in device_init
  drm/panfrost: move devfreq_init()/fini() in device
  drm/panfrost: dynamically alloc regulators
  drm/panfrost: add regulators to devfreq
  arm64: defconfig: Enable devfreq cooling device
  arm64: dts: allwinner: h6: Add cooling map for GPU
  [DO NOT MERGE] arm64: dts: allwinner: h6: Add GPU OPP table
  [DO NOT MERGE] arm64: dts: allwinner: force GPU regulator to be always

 .../dts/allwinner/sun50i-h6-beelink-gs1.dts   |   1 +
 arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi  | 102 ++++++++++
 arch/arm64/configs/defconfig                  |   1 +
 drivers/gpu/drm/panfrost/panfrost_devfreq.c   | 175 ++++++++++++------
 drivers/gpu/drm/panfrost/panfrost_devfreq.h   |  30 ++-
 drivers/gpu/drm/panfrost/panfrost_device.c    |  61 +++---
 drivers/gpu/drm/panfrost/panfrost_device.h    |  14 +-
 drivers/gpu/drm/panfrost/panfrost_drv.c       |  15 +-
 drivers/gpu/drm/panfrost/panfrost_job.c       |  10 +-
 9 files changed, 296 insertions(+), 113 deletions(-)

Comments

Rob Herring (Arm) Aug. 7, 2020, 4:13 p.m. UTC | #1
On Fri, Jul 10, 2020 at 3:54 AM Clément Péron <peron.clem@gmail.com> wrote:
>
> Hi,
>
> This serie cleans and adds regulator support to Panfrost devfreq.
> This is mostly based on comment for the freshly introduced lima
> devfreq.
>
> We need to add regulator support because on Allwinner the GPU OPP
> table defines both frequencies and voltages.
>
> First patches [01-07] should not change the actual behavior
> and introduce a proper panfrost_devfreq struct.
>
> Regards,
> Clément
>
> Changes since v4:
>  - Fix missed a pfdev to &pfdev->devfreq during rebase
>
> Changes since v3:
>  - Collect Steven Price reviewed-by tags
>  - Rebase on next/master (next-20200709)
>
> Changes since v2:
>  - Collect Alyssa Rosenzweig reviewed-by tags
>  - Fix opp_set_regulator before adding opp_table (introduce in v2)
>  - Call err_fini in case opp_add_table failed
>
> Changes since v1:
>  - Collect Steven Price reviewed-by tags
>  - Fix spinlock comment
>  - Drop OPP clock-name patch
>  - Drop device_property_test patch
>  - Add rename error labels patch
>
> Clément Péron (14):
>   drm/panfrost: avoid static declaration
>   drm/panfrost: clean headers in devfreq
>   drm/panfrost: don't use pfdevfreq.busy_count to know if hw is idle
>   drm/panfrost: introduce panfrost_devfreq struct
>   drm/panfrost: use spinlock instead of atomic
>   drm/panfrost: properly handle error in probe
>   drm/panfrost: rename error labels in device_init
>   drm/panfrost: move devfreq_init()/fini() in device
>   drm/panfrost: dynamically alloc regulators
>   drm/panfrost: add regulators to devfreq
>   arm64: defconfig: Enable devfreq cooling device
>   arm64: dts: allwinner: h6: Add cooling map for GPU
>   [DO NOT MERGE] arm64: dts: allwinner: h6: Add GPU OPP table
>   [DO NOT MERGE] arm64: dts: allwinner: force GPU regulator to be always

Patches 1-10 applied to drm-misc.

Rob
Clément Péron Aug. 7, 2020, 4:28 p.m. UTC | #2
Hi Rob,

On Fri, 7 Aug 2020 at 18:13, Rob Herring <robh@kernel.org> wrote:
>
> On Fri, Jul 10, 2020 at 3:54 AM Clément Péron <peron.clem@gmail.com> wrote:
> >
> > Hi,
> >
> > This serie cleans and adds regulator support to Panfrost devfreq.
> > This is mostly based on comment for the freshly introduced lima
> > devfreq.
> >
> > We need to add regulator support because on Allwinner the GPU OPP
> > table defines both frequencies and voltages.
> >
> > First patches [01-07] should not change the actual behavior
> > and introduce a proper panfrost_devfreq struct.
> >
> > Regards,
> > Clément
> >
> > Changes since v4:
> >  - Fix missed a pfdev to &pfdev->devfreq during rebase
> >
> > Changes since v3:
> >  - Collect Steven Price reviewed-by tags
> >  - Rebase on next/master (next-20200709)
> >
> > Changes since v2:
> >  - Collect Alyssa Rosenzweig reviewed-by tags
> >  - Fix opp_set_regulator before adding opp_table (introduce in v2)
> >  - Call err_fini in case opp_add_table failed
> >
> > Changes since v1:
> >  - Collect Steven Price reviewed-by tags
> >  - Fix spinlock comment
> >  - Drop OPP clock-name patch
> >  - Drop device_property_test patch
> >  - Add rename error labels patch
> >
> > Clément Péron (14):
> >   drm/panfrost: avoid static declaration
> >   drm/panfrost: clean headers in devfreq
> >   drm/panfrost: don't use pfdevfreq.busy_count to know if hw is idle
> >   drm/panfrost: introduce panfrost_devfreq struct
> >   drm/panfrost: use spinlock instead of atomic
> >   drm/panfrost: properly handle error in probe
> >   drm/panfrost: rename error labels in device_init
> >   drm/panfrost: move devfreq_init()/fini() in device
> >   drm/panfrost: dynamically alloc regulators
> >   drm/panfrost: add regulators to devfreq
> >   arm64: defconfig: Enable devfreq cooling device
> >   arm64: dts: allwinner: h6: Add cooling map for GPU
> >   [DO NOT MERGE] arm64: dts: allwinner: h6: Add GPU OPP table
> >   [DO NOT MERGE] arm64: dts: allwinner: force GPU regulator to be always
>
> Patches 1-10 applied to drm-misc.

This serie has been superseded by v5.

Could you apply the v5 instead.

Thanks
Clément

>
> Rob
Clément Péron Aug. 7, 2020, 4:30 p.m. UTC | #3
On Fri, 7 Aug 2020 at 18:28, Clément Péron <peron.clem@gmail.com> wrote:
>
> Hi Rob,
>
> On Fri, 7 Aug 2020 at 18:13, Rob Herring <robh@kernel.org> wrote:
> >
> > On Fri, Jul 10, 2020 at 3:54 AM Clément Péron <peron.clem@gmail.com> wrote:
> > >
> > > Hi,
> > >
> > > This serie cleans and adds regulator support to Panfrost devfreq.
> > > This is mostly based on comment for the freshly introduced lima
> > > devfreq.
> > >
> > > We need to add regulator support because on Allwinner the GPU OPP
> > > table defines both frequencies and voltages.
> > >
> > > First patches [01-07] should not change the actual behavior
> > > and introduce a proper panfrost_devfreq struct.
> > >
> > > Regards,
> > > Clément
> > >
> > > Changes since v4:
> > >  - Fix missed a pfdev to &pfdev->devfreq during rebase
> > >
> > > Changes since v3:
> > >  - Collect Steven Price reviewed-by tags
> > >  - Rebase on next/master (next-20200709)
> > >
> > > Changes since v2:
> > >  - Collect Alyssa Rosenzweig reviewed-by tags
> > >  - Fix opp_set_regulator before adding opp_table (introduce in v2)
> > >  - Call err_fini in case opp_add_table failed
> > >
> > > Changes since v1:
> > >  - Collect Steven Price reviewed-by tags
> > >  - Fix spinlock comment
> > >  - Drop OPP clock-name patch
> > >  - Drop device_property_test patch
> > >  - Add rename error labels patch
> > >
> > > Clément Péron (14):
> > >   drm/panfrost: avoid static declaration
> > >   drm/panfrost: clean headers in devfreq
> > >   drm/panfrost: don't use pfdevfreq.busy_count to know if hw is idle
> > >   drm/panfrost: introduce panfrost_devfreq struct
> > >   drm/panfrost: use spinlock instead of atomic
> > >   drm/panfrost: properly handle error in probe
> > >   drm/panfrost: rename error labels in device_init
> > >   drm/panfrost: move devfreq_init()/fini() in device
> > >   drm/panfrost: dynamically alloc regulators
> > >   drm/panfrost: add regulators to devfreq
> > >   arm64: defconfig: Enable devfreq cooling device
> > >   arm64: dts: allwinner: h6: Add cooling map for GPU
> > >   [DO NOT MERGE] arm64: dts: allwinner: h6: Add GPU OPP table
> > >   [DO NOT MERGE] arm64: dts: allwinner: force GPU regulator to be always
> >
> > Patches 1-10 applied to drm-misc.
>
> This serie has been superseded by v5.
>
> Could you apply the v5 instead.

Oups forget my email

I got an issue with my gmail...

Thanks

>
> Thanks
> Clément
>
> >
> > Rob
Daniel Vetter Aug. 10, 2020, 12:21 p.m. UTC | #4
On Fri, Aug 07, 2020 at 06:30:05PM +0200, Clément Péron wrote:
> On Fri, 7 Aug 2020 at 18:28, Clément Péron <peron.clem@gmail.com> wrote:
> >
> > Hi Rob,
> >
> > On Fri, 7 Aug 2020 at 18:13, Rob Herring <robh@kernel.org> wrote:
> > >
> > > On Fri, Jul 10, 2020 at 3:54 AM Clément Péron <peron.clem@gmail.com> wrote:
> > > >
> > > > Hi,
> > > >
> > > > This serie cleans and adds regulator support to Panfrost devfreq.
> > > > This is mostly based on comment for the freshly introduced lima
> > > > devfreq.
> > > >
> > > > We need to add regulator support because on Allwinner the GPU OPP
> > > > table defines both frequencies and voltages.
> > > >
> > > > First patches [01-07] should not change the actual behavior
> > > > and introduce a proper panfrost_devfreq struct.
> > > >
> > > > Regards,
> > > > Clément
> > > >
> > > > Changes since v4:
> > > >  - Fix missed a pfdev to &pfdev->devfreq during rebase
> > > >
> > > > Changes since v3:
> > > >  - Collect Steven Price reviewed-by tags
> > > >  - Rebase on next/master (next-20200709)
> > > >
> > > > Changes since v2:
> > > >  - Collect Alyssa Rosenzweig reviewed-by tags
> > > >  - Fix opp_set_regulator before adding opp_table (introduce in v2)
> > > >  - Call err_fini in case opp_add_table failed
> > > >
> > > > Changes since v1:
> > > >  - Collect Steven Price reviewed-by tags
> > > >  - Fix spinlock comment
> > > >  - Drop OPP clock-name patch
> > > >  - Drop device_property_test patch
> > > >  - Add rename error labels patch
> > > >
> > > > Clément Péron (14):
> > > >   drm/panfrost: avoid static declaration
> > > >   drm/panfrost: clean headers in devfreq
> > > >   drm/panfrost: don't use pfdevfreq.busy_count to know if hw is idle
> > > >   drm/panfrost: introduce panfrost_devfreq struct
> > > >   drm/panfrost: use spinlock instead of atomic
> > > >   drm/panfrost: properly handle error in probe
> > > >   drm/panfrost: rename error labels in device_init
> > > >   drm/panfrost: move devfreq_init()/fini() in device
> > > >   drm/panfrost: dynamically alloc regulators
> > > >   drm/panfrost: add regulators to devfreq
> > > >   arm64: defconfig: Enable devfreq cooling device
> > > >   arm64: dts: allwinner: h6: Add cooling map for GPU
> > > >   [DO NOT MERGE] arm64: dts: allwinner: h6: Add GPU OPP table
> > > >   [DO NOT MERGE] arm64: dts: allwinner: force GPU regulator to be always
> > >
> > > Patches 1-10 applied to drm-misc.
> >
> > This serie has been superseded by v5.
> >
> > Could you apply the v5 instead.
> 
> Oups forget my email
> 
> I got an issue with my gmail...

drm-misc is a non-rebasing tree (because it's got lots of
maintainers/committers). Which means we need fixup patches now.

Not that currently drm-misc-next isn't in linux-next because of the merge
window, so just rebasing on top of linux-next wont work (at least not
until -rc1 is out). You can get the tree here meanwhile:

https://cgit.freedesktop.org/drm/drm-misc/

Cheers, Daniel
Rob Herring (Arm) Aug. 10, 2020, 4:26 p.m. UTC | #5
On Mon, Aug 10, 2020 at 6:21 AM Daniel Vetter <daniel@ffwll.ch> wrote:
>
> On Fri, Aug 07, 2020 at 06:30:05PM +0200, Clément Péron wrote:
> > On Fri, 7 Aug 2020 at 18:28, Clément Péron <peron.clem@gmail.com> wrote:
> > >
> > > Hi Rob,
> > >
> > > On Fri, 7 Aug 2020 at 18:13, Rob Herring <robh@kernel.org> wrote:
> > > >
> > > > On Fri, Jul 10, 2020 at 3:54 AM Clément Péron <peron.clem@gmail.com> wrote:
> > > > >
> > > > > Hi,
> > > > >
> > > > > This serie cleans and adds regulator support to Panfrost devfreq.
> > > > > This is mostly based on comment for the freshly introduced lima
> > > > > devfreq.
> > > > >
> > > > > We need to add regulator support because on Allwinner the GPU OPP
> > > > > table defines both frequencies and voltages.
> > > > >
> > > > > First patches [01-07] should not change the actual behavior
> > > > > and introduce a proper panfrost_devfreq struct.
> > > > >
> > > > > Regards,
> > > > > Clément
> > > > >
> > > > > Changes since v4:
> > > > >  - Fix missed a pfdev to &pfdev->devfreq during rebase
> > > > >
> > > > > Changes since v3:
> > > > >  - Collect Steven Price reviewed-by tags
> > > > >  - Rebase on next/master (next-20200709)
> > > > >
> > > > > Changes since v2:
> > > > >  - Collect Alyssa Rosenzweig reviewed-by tags
> > > > >  - Fix opp_set_regulator before adding opp_table (introduce in v2)
> > > > >  - Call err_fini in case opp_add_table failed
> > > > >
> > > > > Changes since v1:
> > > > >  - Collect Steven Price reviewed-by tags
> > > > >  - Fix spinlock comment
> > > > >  - Drop OPP clock-name patch
> > > > >  - Drop device_property_test patch
> > > > >  - Add rename error labels patch
> > > > >
> > > > > Clément Péron (14):
> > > > >   drm/panfrost: avoid static declaration
> > > > >   drm/panfrost: clean headers in devfreq
> > > > >   drm/panfrost: don't use pfdevfreq.busy_count to know if hw is idle
> > > > >   drm/panfrost: introduce panfrost_devfreq struct
> > > > >   drm/panfrost: use spinlock instead of atomic
> > > > >   drm/panfrost: properly handle error in probe
> > > > >   drm/panfrost: rename error labels in device_init
> > > > >   drm/panfrost: move devfreq_init()/fini() in device
> > > > >   drm/panfrost: dynamically alloc regulators
> > > > >   drm/panfrost: add regulators to devfreq
> > > > >   arm64: defconfig: Enable devfreq cooling device
> > > > >   arm64: dts: allwinner: h6: Add cooling map for GPU
> > > > >   [DO NOT MERGE] arm64: dts: allwinner: h6: Add GPU OPP table
> > > > >   [DO NOT MERGE] arm64: dts: allwinner: force GPU regulator to be always
> > > >
> > > > Patches 1-10 applied to drm-misc.
> > >
> > > This serie has been superseded by v5.
> > >
> > > Could you apply the v5 instead.
> >
> > Oups forget my email
> >
> > I got an issue with my gmail...
>
> drm-misc is a non-rebasing tree (because it's got lots of
> maintainers/committers). Which means we need fixup patches now.
>
> Not that currently drm-misc-next isn't in linux-next because of the merge
> window, so just rebasing on top of linux-next wont work (at least not
> until -rc1 is out). You can get the tree here meanwhile:
>
> https://cgit.freedesktop.org/drm/drm-misc/

I applied v5 so there's nothing to do. The gmail issue was gmail put
v4 and v5 in the same conversion (under v4) which it likes to do
somewhat randomly and with no regard to actual threading. :(

Rob