All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicolas Boichat <drinkcat@chromium.org>
To: "Nick Fan (范哲維)" <Nick.Fan@mediatek.com>
Cc: "Rob Herring" <robh+dt@kernel.org>,
	"Weiyi Lu (呂威儀)" <Weiyi.Lu@mediatek.com>,
	"David Airlie" <airlied@linux.ie>,
	"Daniel Vetter" <daniel@ffwll.ch>,
	"Mark Rutland" <mark.rutland@arm.com>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"Tomeu Vizoso" <tomeu.vizoso@collabora.com>,
	"Steven Price" <steven.price@arm.com>,
	"Alyssa Rosenzweig" <alyssa.rosenzweig@collabora.com>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Mark Brown" <broonie@kernel.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	"Devicetree List" <devicetree@vger.kernel.org>,
	lkml <linux-kernel@vger.kernel.org>,
	"linux-arm Mailing List" <linux-arm-kernel@lists.infradead.org>,
	"moderated list:ARM/Mediatek SoC support"
	<linux-mediatek@lists.infradead.org>,
	"Hsin-Yi Wang" <hsinyi@chromium.org>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Viresh Kumar" <viresh.kumar@linaro.org>,
	"Stephen Boyd" <sboyd@kernel.org>,
	"JB Tsai (蔡志彬)" <Jb.Tsai@mediatek.com>,
	"Sj Huang (黃信璋)" <sj.huang@mediatek.com>
Subject: Re: [PATCH v4 7/7] RFC: drm/panfrost: devfreq: Add support for 2 regulators
Date: Mon, 9 Mar 2020 09:53:35 +0800	[thread overview]
Message-ID: <CANMq1KDmvxQdKHgyvQb6xChFX5UkBqPyQKXxuxGV70=p1=ezKw@mail.gmail.com> (raw)
In-Reply-To: <e4e95aa7713344e8b43fe5fad05de3ee@mtkmbs01n1.mediatek.inc>

Looping back on this, after digging a bit deeper...

On Fri, Feb 14, 2020 at 9:38 AM Nick Fan (范哲維) <Nick.Fan@mediatek.com> wrote:
> [snip]
> > > Another thing that I'm not implementing is the dance that Mediatek
> > > does in their kbase driver when changing the clock (described in
> > > patch
> > > 2/7):
> > > ""
> > > The binding we use with out-of-tree Mali drivers includes more
> > > clocks, this is used for devfreq: the out-of-tree driver switches
> > > clk_mux to clk_sub_parent (26Mhz), adjusts clk_main_parent, then
> > > switches clk_mux back to clk_main_parent:
> > > (see
> > > https://chromium.googlesource.com/chromiumos/third_party/kernel/+/ch
> > > romeos-4.19/drivers/gpu/arm/midgard/platform/mediatek/mali_kbase_run
> > > time_pm.c#423)
> > > clocks =
> > >         <&topckgen CLK_TOP_MFGPLL_CK>,
> > >         <&topckgen CLK_TOP_MUX_MFG>,
> > >         <&clk26m>,
> > >         <&mfgcfg CLK_MFG_BG3D>;
> > > clock-names =
> > >         "clk_main_parent",
> > >         "clk_mux",
> > >         "clk_sub_parent",
> > >         "subsys_mfg_cg";
> > > ""
> > > Is there a clean/simple way to implement this in the clock
> > > framework/device tree? Or should we implement something in the
> > > panfrost driver?
> >
> > Putting parent clocks into 'clocks' for a device is a pretty common
> > abuse. The 'assigned-clocks' binding is what's used for parent clock
> > setup. Not sure that's going to help here though. Is this dance
> > because the parent clock frequency can't be changed cleanly?
>
> Nick/Weiyi, any idea why we do that dance in the first place? (maybe the PLL clock is unstable while it's being changed?)
>
> Clock source may become unstable during clock frequency changes, so it is always safer to switch to a more reliable clock source.
> Otherwise, it may cause some problem in some corner case.
> I would suggest to keep it.

The Mediatek CPUfreq driver actually does a very similar dance:
https://github.com/torvalds/linux/blob/master/drivers/cpufreq/mediatek-cpufreq.c#L249

What they have in the device tree is the main clock, and the
"intermediate" clock that is required during switching:
clocks = <&mcucfg CLK_MCU_MP0_SEL>, <&topckgen CLK_TOP_ARMPLL_DIV_PLL1>;
clock-names = "cpu", "intermediate";

The topology looks like this:
 clk26m                              15       15        1    26000000
        0     0  50000
    armpll_ll                         1        1        0  1417000000
        0     0  50000
       mcu_mp0_sel                    0        0        0  1417000000
        0     0  50000

And device tree provides mcu_mp0_sel as "cpu", and the armpll_div_pll1
as "intermediate".

The driver looks up armpll_ll by calling get_parent, then:
 - set_parent(mcu_mp0_sel, armpll_div_pll1)
 - set_rate(armpll_ll, new_rate)
 - set_parent(mcu_mp0_sel, armpll_ll)

On MT8183's GPU, the topology is a little bit more complicated (but I
think there should be a way to merge mfg_bg3d an mfg_sel in the clock
core)
 clk26m                              15       15        1    26000000
        0     0  50000
    mfgpll                            1        1        0   419999817
        0     0  50000
       mfgpll_ck                      2        2        0   419999817
        0     0  50000
          mfg_sel                     3        3        0   419999817
        0     0  50000
             mfg_bg3d                 1        1        0   419999817
        0     0  50000

We're going to need a special panfrost devfreq driver for mt8183
anyway (to handle the 2 regulators), so it would be easy to take a
similar approach:
 - Add "intermediate" clock in the device tree (clk26m)
 - Find mfg_sel/mfgpll_ck using 1/2 clk_get_parent calls.
 - Switch mfg_sel to clk26m, set mfgpll_ck rate, switch mfg_sel back
to mfgpll_ck.

(BTW, I tried to look, and couldn't find examples or reparenting
during clock changes in drivers/clk, are there existing drivers doing
similar things? Or this would be new?).

WARNING: multiple messages have this Message-ID (diff)
From: Nicolas Boichat <drinkcat@chromium.org>
To: "Nick Fan (范哲維)" <Nick.Fan@mediatek.com>
Cc: "Mark Rutland" <mark.rutland@arm.com>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"David Airlie" <airlied@linux.ie>,
	"Viresh Kumar" <viresh.kumar@linaro.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Weiyi Lu (呂威儀)" <Weiyi.Lu@mediatek.com>,
	"Steven Price" <steven.price@arm.com>,
	"Alyssa Rosenzweig" <alyssa.rosenzweig@collabora.com>,
	"Devicetree List" <devicetree@vger.kernel.org>,
	"Sj Huang (黃信璋)" <sj.huang@mediatek.com>,
	"Mark Brown" <broonie@kernel.org>,
	"moderated list:ARM/Mediatek SoC support"
	<linux-mediatek@lists.infradead.org>,
	"Hsin-Yi Wang" <hsinyi@chromium.org>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"linux-arm Mailing List" <linux-arm-kernel@lists.infradead.org>,
	"Tomeu Vizoso" <tomeu.vizoso@collabora.com>,
	"Stephen Boyd" <sboyd@kernel.org>,
	lkml <linux-kernel@vger.kernel.org>,
	"JB Tsai (蔡志彬)" <Jb.Tsai@mediatek.com>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Daniel Vetter" <daniel@ffwll.ch>
Subject: Re: [PATCH v4 7/7] RFC: drm/panfrost: devfreq: Add support for 2 regulators
Date: Mon, 9 Mar 2020 09:53:35 +0800	[thread overview]
Message-ID: <CANMq1KDmvxQdKHgyvQb6xChFX5UkBqPyQKXxuxGV70=p1=ezKw@mail.gmail.com> (raw)
In-Reply-To: <e4e95aa7713344e8b43fe5fad05de3ee@mtkmbs01n1.mediatek.inc>

Looping back on this, after digging a bit deeper...

On Fri, Feb 14, 2020 at 9:38 AM Nick Fan (范哲維) <Nick.Fan@mediatek.com> wrote:
> [snip]
> > > Another thing that I'm not implementing is the dance that Mediatek
> > > does in their kbase driver when changing the clock (described in
> > > patch
> > > 2/7):
> > > ""
> > > The binding we use with out-of-tree Mali drivers includes more
> > > clocks, this is used for devfreq: the out-of-tree driver switches
> > > clk_mux to clk_sub_parent (26Mhz), adjusts clk_main_parent, then
> > > switches clk_mux back to clk_main_parent:
> > > (see
> > > https://chromium.googlesource.com/chromiumos/third_party/kernel/+/ch
> > > romeos-4.19/drivers/gpu/arm/midgard/platform/mediatek/mali_kbase_run
> > > time_pm.c#423)
> > > clocks =
> > >         <&topckgen CLK_TOP_MFGPLL_CK>,
> > >         <&topckgen CLK_TOP_MUX_MFG>,
> > >         <&clk26m>,
> > >         <&mfgcfg CLK_MFG_BG3D>;
> > > clock-names =
> > >         "clk_main_parent",
> > >         "clk_mux",
> > >         "clk_sub_parent",
> > >         "subsys_mfg_cg";
> > > ""
> > > Is there a clean/simple way to implement this in the clock
> > > framework/device tree? Or should we implement something in the
> > > panfrost driver?
> >
> > Putting parent clocks into 'clocks' for a device is a pretty common
> > abuse. The 'assigned-clocks' binding is what's used for parent clock
> > setup. Not sure that's going to help here though. Is this dance
> > because the parent clock frequency can't be changed cleanly?
>
> Nick/Weiyi, any idea why we do that dance in the first place? (maybe the PLL clock is unstable while it's being changed?)
>
> Clock source may become unstable during clock frequency changes, so it is always safer to switch to a more reliable clock source.
> Otherwise, it may cause some problem in some corner case.
> I would suggest to keep it.

The Mediatek CPUfreq driver actually does a very similar dance:
https://github.com/torvalds/linux/blob/master/drivers/cpufreq/mediatek-cpufreq.c#L249

What they have in the device tree is the main clock, and the
"intermediate" clock that is required during switching:
clocks = <&mcucfg CLK_MCU_MP0_SEL>, <&topckgen CLK_TOP_ARMPLL_DIV_PLL1>;
clock-names = "cpu", "intermediate";

The topology looks like this:
 clk26m                              15       15        1    26000000
        0     0  50000
    armpll_ll                         1        1        0  1417000000
        0     0  50000
       mcu_mp0_sel                    0        0        0  1417000000
        0     0  50000

And device tree provides mcu_mp0_sel as "cpu", and the armpll_div_pll1
as "intermediate".

The driver looks up armpll_ll by calling get_parent, then:
 - set_parent(mcu_mp0_sel, armpll_div_pll1)
 - set_rate(armpll_ll, new_rate)
 - set_parent(mcu_mp0_sel, armpll_ll)

On MT8183's GPU, the topology is a little bit more complicated (but I
think there should be a way to merge mfg_bg3d an mfg_sel in the clock
core)
 clk26m                              15       15        1    26000000
        0     0  50000
    mfgpll                            1        1        0   419999817
        0     0  50000
       mfgpll_ck                      2        2        0   419999817
        0     0  50000
          mfg_sel                     3        3        0   419999817
        0     0  50000
             mfg_bg3d                 1        1        0   419999817
        0     0  50000

We're going to need a special panfrost devfreq driver for mt8183
anyway (to handle the 2 regulators), so it would be easy to take a
similar approach:
 - Add "intermediate" clock in the device tree (clk26m)
 - Find mfg_sel/mfgpll_ck using 1/2 clk_get_parent calls.
 - Switch mfg_sel to clk26m, set mfgpll_ck rate, switch mfg_sel back
to mfgpll_ck.

(BTW, I tried to look, and couldn't find examples or reparenting
during clock changes in drivers/clk, are there existing drivers doing
similar things? Or this would be new?).

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

WARNING: multiple messages have this Message-ID (diff)
From: Nicolas Boichat <drinkcat@chromium.org>
To: "Nick Fan (范哲維)" <Nick.Fan@mediatek.com>
Cc: "Mark Rutland" <mark.rutland@arm.com>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"David Airlie" <airlied@linux.ie>,
	"Viresh Kumar" <viresh.kumar@linaro.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Weiyi Lu (呂威儀)" <Weiyi.Lu@mediatek.com>,
	"Steven Price" <steven.price@arm.com>,
	"Alyssa Rosenzweig" <alyssa.rosenzweig@collabora.com>,
	"Devicetree List" <devicetree@vger.kernel.org>,
	"Sj Huang (黃信璋)" <sj.huang@mediatek.com>,
	"Mark Brown" <broonie@kernel.org>,
	"moderated list:ARM/Mediatek SoC support"
	<linux-mediatek@lists.infradead.org>,
	"Hsin-Yi Wang" <hsinyi@chromium.org>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"linux-arm Mailing List" <linux-arm-kernel@lists.infradead.org>,
	"Tomeu Vizoso" <tomeu.vizoso@collabora.com>,
	"Stephen Boyd" <sboyd@kernel.org>,
	lkml <linux-kernel@vger.kernel.org>,
	"JB Tsai (蔡志彬)" <Jb.Tsai@mediatek.com>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Daniel Vetter" <daniel@ffwll.ch>
Subject: Re: [PATCH v4 7/7] RFC: drm/panfrost: devfreq: Add support for 2 regulators
Date: Mon, 9 Mar 2020 09:53:35 +0800	[thread overview]
Message-ID: <CANMq1KDmvxQdKHgyvQb6xChFX5UkBqPyQKXxuxGV70=p1=ezKw@mail.gmail.com> (raw)
In-Reply-To: <e4e95aa7713344e8b43fe5fad05de3ee@mtkmbs01n1.mediatek.inc>

Looping back on this, after digging a bit deeper...

On Fri, Feb 14, 2020 at 9:38 AM Nick Fan (范哲維) <Nick.Fan@mediatek.com> wrote:
> [snip]
> > > Another thing that I'm not implementing is the dance that Mediatek
> > > does in their kbase driver when changing the clock (described in
> > > patch
> > > 2/7):
> > > ""
> > > The binding we use with out-of-tree Mali drivers includes more
> > > clocks, this is used for devfreq: the out-of-tree driver switches
> > > clk_mux to clk_sub_parent (26Mhz), adjusts clk_main_parent, then
> > > switches clk_mux back to clk_main_parent:
> > > (see
> > > https://chromium.googlesource.com/chromiumos/third_party/kernel/+/ch
> > > romeos-4.19/drivers/gpu/arm/midgard/platform/mediatek/mali_kbase_run
> > > time_pm.c#423)
> > > clocks =
> > >         <&topckgen CLK_TOP_MFGPLL_CK>,
> > >         <&topckgen CLK_TOP_MUX_MFG>,
> > >         <&clk26m>,
> > >         <&mfgcfg CLK_MFG_BG3D>;
> > > clock-names =
> > >         "clk_main_parent",
> > >         "clk_mux",
> > >         "clk_sub_parent",
> > >         "subsys_mfg_cg";
> > > ""
> > > Is there a clean/simple way to implement this in the clock
> > > framework/device tree? Or should we implement something in the
> > > panfrost driver?
> >
> > Putting parent clocks into 'clocks' for a device is a pretty common
> > abuse. The 'assigned-clocks' binding is what's used for parent clock
> > setup. Not sure that's going to help here though. Is this dance
> > because the parent clock frequency can't be changed cleanly?
>
> Nick/Weiyi, any idea why we do that dance in the first place? (maybe the PLL clock is unstable while it's being changed?)
>
> Clock source may become unstable during clock frequency changes, so it is always safer to switch to a more reliable clock source.
> Otherwise, it may cause some problem in some corner case.
> I would suggest to keep it.

The Mediatek CPUfreq driver actually does a very similar dance:
https://github.com/torvalds/linux/blob/master/drivers/cpufreq/mediatek-cpufreq.c#L249

What they have in the device tree is the main clock, and the
"intermediate" clock that is required during switching:
clocks = <&mcucfg CLK_MCU_MP0_SEL>, <&topckgen CLK_TOP_ARMPLL_DIV_PLL1>;
clock-names = "cpu", "intermediate";

The topology looks like this:
 clk26m                              15       15        1    26000000
        0     0  50000
    armpll_ll                         1        1        0  1417000000
        0     0  50000
       mcu_mp0_sel                    0        0        0  1417000000
        0     0  50000

And device tree provides mcu_mp0_sel as "cpu", and the armpll_div_pll1
as "intermediate".

The driver looks up armpll_ll by calling get_parent, then:
 - set_parent(mcu_mp0_sel, armpll_div_pll1)
 - set_rate(armpll_ll, new_rate)
 - set_parent(mcu_mp0_sel, armpll_ll)

On MT8183's GPU, the topology is a little bit more complicated (but I
think there should be a way to merge mfg_bg3d an mfg_sel in the clock
core)
 clk26m                              15       15        1    26000000
        0     0  50000
    mfgpll                            1        1        0   419999817
        0     0  50000
       mfgpll_ck                      2        2        0   419999817
        0     0  50000
          mfg_sel                     3        3        0   419999817
        0     0  50000
             mfg_bg3d                 1        1        0   419999817
        0     0  50000

We're going to need a special panfrost devfreq driver for mt8183
anyway (to handle the 2 regulators), so it would be easy to take a
similar approach:
 - Add "intermediate" clock in the device tree (clk26m)
 - Find mfg_sel/mfgpll_ck using 1/2 clk_get_parent calls.
 - Switch mfg_sel to clk26m, set mfgpll_ck rate, switch mfg_sel back
to mfgpll_ck.

(BTW, I tried to look, and couldn't find examples or reparenting
during clock changes in drivers/clk, are there existing drivers doing
similar things? Or this would be new?).

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Nicolas Boichat <drinkcat@chromium.org>
To: "Nick Fan (范哲維)" <Nick.Fan@mediatek.com>
Cc: "Mark Rutland" <mark.rutland@arm.com>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"David Airlie" <airlied@linux.ie>,
	"Viresh Kumar" <viresh.kumar@linaro.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Weiyi Lu (呂威儀)" <Weiyi.Lu@mediatek.com>,
	"Steven Price" <steven.price@arm.com>,
	"Alyssa Rosenzweig" <alyssa.rosenzweig@collabora.com>,
	"Devicetree List" <devicetree@vger.kernel.org>,
	"Sj Huang (黃信璋)" <sj.huang@mediatek.com>,
	"Mark Brown" <broonie@kernel.org>,
	"moderated list:ARM/Mediatek SoC support"
	<linux-mediatek@lists.infradead.org>,
	"Hsin-Yi Wang" <hsinyi@chromium.org>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"linux-arm Mailing List" <linux-arm-kernel@lists.infradead.org>,
	"Tomeu Vizoso" <tomeu.vizoso@collabora.com>,
	"Stephen Boyd" <sboyd@kernel.org>,
	lkml <linux-kernel@vger.kernel.org>,
	"JB Tsai (蔡志彬)" <Jb.Tsai@mediatek.com>,
	"Rob Herring" <robh+dt@kernel.org>
Subject: Re: [PATCH v4 7/7] RFC: drm/panfrost: devfreq: Add support for 2 regulators
Date: Mon, 9 Mar 2020 09:53:35 +0800	[thread overview]
Message-ID: <CANMq1KDmvxQdKHgyvQb6xChFX5UkBqPyQKXxuxGV70=p1=ezKw@mail.gmail.com> (raw)
In-Reply-To: <e4e95aa7713344e8b43fe5fad05de3ee@mtkmbs01n1.mediatek.inc>

Looping back on this, after digging a bit deeper...

On Fri, Feb 14, 2020 at 9:38 AM Nick Fan (范哲維) <Nick.Fan@mediatek.com> wrote:
> [snip]
> > > Another thing that I'm not implementing is the dance that Mediatek
> > > does in their kbase driver when changing the clock (described in
> > > patch
> > > 2/7):
> > > ""
> > > The binding we use with out-of-tree Mali drivers includes more
> > > clocks, this is used for devfreq: the out-of-tree driver switches
> > > clk_mux to clk_sub_parent (26Mhz), adjusts clk_main_parent, then
> > > switches clk_mux back to clk_main_parent:
> > > (see
> > > https://chromium.googlesource.com/chromiumos/third_party/kernel/+/ch
> > > romeos-4.19/drivers/gpu/arm/midgard/platform/mediatek/mali_kbase_run
> > > time_pm.c#423)
> > > clocks =
> > >         <&topckgen CLK_TOP_MFGPLL_CK>,
> > >         <&topckgen CLK_TOP_MUX_MFG>,
> > >         <&clk26m>,
> > >         <&mfgcfg CLK_MFG_BG3D>;
> > > clock-names =
> > >         "clk_main_parent",
> > >         "clk_mux",
> > >         "clk_sub_parent",
> > >         "subsys_mfg_cg";
> > > ""
> > > Is there a clean/simple way to implement this in the clock
> > > framework/device tree? Or should we implement something in the
> > > panfrost driver?
> >
> > Putting parent clocks into 'clocks' for a device is a pretty common
> > abuse. The 'assigned-clocks' binding is what's used for parent clock
> > setup. Not sure that's going to help here though. Is this dance
> > because the parent clock frequency can't be changed cleanly?
>
> Nick/Weiyi, any idea why we do that dance in the first place? (maybe the PLL clock is unstable while it's being changed?)
>
> Clock source may become unstable during clock frequency changes, so it is always safer to switch to a more reliable clock source.
> Otherwise, it may cause some problem in some corner case.
> I would suggest to keep it.

The Mediatek CPUfreq driver actually does a very similar dance:
https://github.com/torvalds/linux/blob/master/drivers/cpufreq/mediatek-cpufreq.c#L249

What they have in the device tree is the main clock, and the
"intermediate" clock that is required during switching:
clocks = <&mcucfg CLK_MCU_MP0_SEL>, <&topckgen CLK_TOP_ARMPLL_DIV_PLL1>;
clock-names = "cpu", "intermediate";

The topology looks like this:
 clk26m                              15       15        1    26000000
        0     0  50000
    armpll_ll                         1        1        0  1417000000
        0     0  50000
       mcu_mp0_sel                    0        0        0  1417000000
        0     0  50000

And device tree provides mcu_mp0_sel as "cpu", and the armpll_div_pll1
as "intermediate".

The driver looks up armpll_ll by calling get_parent, then:
 - set_parent(mcu_mp0_sel, armpll_div_pll1)
 - set_rate(armpll_ll, new_rate)
 - set_parent(mcu_mp0_sel, armpll_ll)

On MT8183's GPU, the topology is a little bit more complicated (but I
think there should be a way to merge mfg_bg3d an mfg_sel in the clock
core)
 clk26m                              15       15        1    26000000
        0     0  50000
    mfgpll                            1        1        0   419999817
        0     0  50000
       mfgpll_ck                      2        2        0   419999817
        0     0  50000
          mfg_sel                     3        3        0   419999817
        0     0  50000
             mfg_bg3d                 1        1        0   419999817
        0     0  50000

We're going to need a special panfrost devfreq driver for mt8183
anyway (to handle the 2 regulators), so it would be easy to take a
similar approach:
 - Add "intermediate" clock in the device tree (clk26m)
 - Find mfg_sel/mfgpll_ck using 1/2 clk_get_parent calls.
 - Switch mfg_sel to clk26m, set mfgpll_ck rate, switch mfg_sel back
to mfgpll_ck.

(BTW, I tried to look, and couldn't find examples or reparenting
during clock changes in drivers/clk, are there existing drivers doing
similar things? Or this would be new?).
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2020-03-09  1:53 UTC|newest]

Thread overview: 166+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-07  5:26 [PATCH v4 0/7] Add dts for mt8183 GPU (and misc panfrost patches) Nicolas Boichat
2020-02-07  5:26 ` Nicolas Boichat
2020-02-07  5:26 ` Nicolas Boichat
2020-02-07  5:26 ` Nicolas Boichat
2020-02-07  5:26 ` [PATCH v4 1/7] dt-bindings: gpu: mali-bifrost: Add Mediatek MT8183 Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-25 17:16   ` Rob Herring
2020-02-25 17:16     ` Rob Herring
2020-02-25 17:16     ` Rob Herring
2020-02-25 17:16     ` Rob Herring
2020-02-26  0:55     ` Nicolas Boichat
2020-02-26  0:55       ` Nicolas Boichat
2020-02-26  0:55       ` Nicolas Boichat
2020-02-26  0:55       ` Nicolas Boichat
2020-03-06  2:34       ` Nick Fan
2020-03-06  2:34         ` Nick Fan
2020-03-06  2:34         ` Nick Fan
2020-03-06  2:34         ` Nick Fan
2020-03-06  2:43         ` Nicolas Boichat
2020-03-06  2:43           ` Nicolas Boichat
2020-03-06  2:43           ` Nicolas Boichat
2020-03-06  2:43           ` Nicolas Boichat
2020-03-06 14:13         ` Rob Herring
2020-03-06 14:13           ` Rob Herring
2020-03-06 14:13           ` Rob Herring
2020-03-06 14:13           ` Rob Herring
2020-03-06 14:43           ` Steven Price
2020-03-06 14:43             ` Steven Price
2020-03-06 14:43             ` Steven Price
2020-03-06 14:43             ` Steven Price
2020-03-09  7:55             ` Nick Fan
2020-03-09  7:55               ` Nick Fan
2020-03-09  7:55               ` Nick Fan
2020-03-09  7:55               ` Nick Fan
2020-02-07  5:26 ` [PATCH v4 2/7] arm64: dts: mt8183: Add node for the Mali GPU Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-07  5:26 ` [PATCH v4 3/7] drm/panfrost: Improve error reporting in panfrost_gpu_power_on Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-12 10:38   ` Matthias Brugger
2020-02-12 10:38     ` Matthias Brugger
2020-02-12 10:38     ` Matthias Brugger
2020-02-12 10:38     ` Matthias Brugger
2020-02-07  5:26 ` [PATCH v4 4/7] drm/panfrost: Add support for multiple regulators Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-10 11:31   ` Steven Price
2020-02-10 11:31     ` Steven Price
2020-02-10 11:31     ` Steven Price
2020-02-10 11:31     ` Steven Price
2020-02-10 14:00   ` Mark Brown
2020-02-10 14:00     ` Mark Brown
2020-02-10 14:00     ` Mark Brown
2020-02-10 14:00     ` Mark Brown
2020-02-07  5:26 ` [PATCH v4 5/7] drm/panfrost: Add support for multiple power domains Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-07 13:52   ` Alyssa Rosenzweig
2020-02-07 13:52     ` Alyssa Rosenzweig
2020-02-07 13:52     ` Alyssa Rosenzweig
2020-02-07 13:52     ` Alyssa Rosenzweig
2020-02-09 12:43     ` Nicolas Boichat
2020-02-09 12:43       ` Nicolas Boichat
2020-02-09 12:43       ` Nicolas Boichat
2020-02-09 12:43       ` Nicolas Boichat
2020-02-07 14:25   ` Ulf Hansson
2020-02-07 14:25     ` Ulf Hansson
2020-02-07 14:25     ` Ulf Hansson
2020-02-07 14:25     ` Ulf Hansson
2020-02-09 12:50     ` Nicolas Boichat
2020-02-09 12:50       ` Nicolas Boichat
2020-02-09 12:50       ` Nicolas Boichat
2020-02-09 12:50       ` Nicolas Boichat
2020-02-10  7:50       ` Ulf Hansson
2020-02-10  7:50         ` Ulf Hansson
2020-02-10  7:50         ` Ulf Hansson
2020-02-10  7:50         ` Ulf Hansson
2020-02-10 11:39   ` Steven Price
2020-02-10 11:39     ` Steven Price
2020-02-10 11:39     ` Steven Price
2020-02-10 11:39     ` Steven Price
2020-02-11 19:43   ` Rob Herring
2020-02-11 19:43     ` Rob Herring
2020-02-11 19:43     ` Rob Herring
2020-02-11 19:43     ` Rob Herring
2020-02-11 20:08     ` Saravana Kannan
2020-02-11 20:08       ` Saravana Kannan
2020-02-11 20:08       ` Saravana Kannan
2020-02-11 20:08       ` Saravana Kannan
2020-02-12  1:58       ` Rob Herring
2020-02-12  1:58         ` Rob Herring
2020-02-12  1:58         ` Rob Herring
2020-02-12  1:58         ` Rob Herring
2020-02-12  2:10         ` Saravana Kannan
2020-02-12  2:10           ` Saravana Kannan
2020-02-12  2:10           ` Saravana Kannan
2020-02-12  2:10           ` Saravana Kannan
2020-02-12  2:08       ` Nicolas Boichat
2020-02-12  2:08         ` Nicolas Boichat
2020-02-12  2:08         ` Nicolas Boichat
2020-02-12  2:08         ` Nicolas Boichat
2020-02-07  5:26 ` [PATCH v4 6/7] RFC: drm/panfrost: Add mt8183-mali compatible string Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-07  5:26 ` [PATCH v4 7/7] RFC: drm/panfrost: devfreq: Add support for 2 regulators Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-07  5:26   ` Nicolas Boichat
2020-02-12  8:49   ` Nicolas Boichat
2020-02-12  8:49     ` Nicolas Boichat
2020-02-12  8:49     ` Nicolas Boichat
2020-02-12  8:49     ` Nicolas Boichat
2020-02-12  9:06     ` Viresh Kumar
2020-02-12  9:06       ` Viresh Kumar
2020-02-12  9:06       ` Viresh Kumar
2020-02-12  9:06       ` Viresh Kumar
2020-02-12 18:14     ` Rob Herring
2020-02-12 18:14       ` Rob Herring
2020-02-12 18:14       ` Rob Herring
2020-02-12 18:14       ` Rob Herring
2020-02-13  7:57       ` Nicolas Boichat
2020-02-13  7:57         ` Nicolas Boichat
2020-02-13  7:57         ` Nicolas Boichat
2020-02-13  7:57         ` Nicolas Boichat
2020-02-13  8:24         ` Nicolas Boichat
2020-02-13  8:24           ` Nicolas Boichat
2020-02-13  8:24           ` Nicolas Boichat
2020-02-13  8:24           ` Nicolas Boichat
2020-02-14  1:37         ` Nick Fan (范哲維)
2020-02-14  1:37           ` Nick Fan (范哲維)
2020-03-09  1:53           ` Nicolas Boichat [this message]
2020-03-09  1:53             ` Nicolas Boichat
2020-03-09  1:53             ` Nicolas Boichat
2020-03-09  1:53             ` Nicolas Boichat
2020-02-07  6:17 ` [PATCH v4 0/7] Add dts for mt8183 GPU (and misc panfrost patches) Tomeu Vizoso
2020-02-07  6:17   ` Tomeu Vizoso
2020-02-07  6:17   ` Tomeu Vizoso
2020-02-07  6:17   ` Tomeu Vizoso
2020-02-07  7:42   ` Nicolas Boichat
2020-02-07  7:42     ` Nicolas Boichat
2020-02-07  7:42     ` Nicolas Boichat
2020-02-07  7:42     ` Nicolas Boichat
2020-02-07  8:13     ` Tomeu Vizoso
2020-02-07  8:13       ` Tomeu Vizoso
2020-02-07  8:13       ` Tomeu Vizoso
2020-02-07  8:13       ` Tomeu Vizoso
2020-02-10  3:39       ` Nicolas Boichat
2020-02-10  3:39         ` Nicolas Boichat
2020-02-10  3:39         ` Nicolas Boichat
2020-02-10  3:39         ` Nicolas Boichat
2020-02-10  8:17         ` Tomeu Vizoso
2020-02-10  8:17           ` Tomeu Vizoso
2020-02-10  8:17           ` Tomeu Vizoso
2020-02-10  8:17           ` Tomeu Vizoso
2020-02-25 20:35 ` Rob Herring
2020-02-25 20:35   ` Rob Herring
2020-02-25 20:35   ` Rob Herring
2020-02-25 20:35   ` Rob Herring

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='CANMq1KDmvxQdKHgyvQb6xChFX5UkBqPyQKXxuxGV70=p1=ezKw@mail.gmail.com' \
    --to=drinkcat@chromium.org \
    --cc=Jb.Tsai@mediatek.com \
    --cc=Nick.Fan@mediatek.com \
    --cc=Weiyi.Lu@mediatek.com \
    --cc=airlied@linux.ie \
    --cc=alyssa.rosenzweig@collabora.com \
    --cc=broonie@kernel.org \
    --cc=daniel@ffwll.ch \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hsinyi@chromium.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=mark.rutland@arm.com \
    --cc=matthias.bgg@gmail.com \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=sj.huang@mediatek.com \
    --cc=steven.price@arm.com \
    --cc=tomeu.vizoso@collabora.com \
    --cc=ulf.hansson@linaro.org \
    --cc=viresh.kumar@linaro.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.