From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
To: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Cc: Thomas Abraham <thomas.ab@samsung.com>,
Sylwester Nawrocki <s.nawrocki@samsung.com>,
Kukjin Kim <kgene.kim@samsung.com>, Kukjin Kim <kgene@kernel.org>,
Viresh Kumar <viresh.kumar@linaro.org>,
Ben Gamari <ben@smart-cactus.org>,
Tomasz Figa <tomasz.figa@gmail.com>,
Lukasz Majewski <l.majewski@samsung.com>,
Heiko Stuebner <heiko@sntech.de>,
Chanwoo Choi <cw00.choi@samsung.com>,
Kevin Hilman <khilman@linaro.org>,
Javier Martinez Canillas <javier@osg.samsung.com>,
Tobias Jakobi <tjakobi@math.uni-bielefeld.de>,
Anand Moon <linux.amoon@gmail.com>,
linux-samsung-soc@vger.kernel.org, linux-pm@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 4/8] ARM: Exynos: use generic cpufreq driver for Exynos5420
Date: Thu, 10 Dec 2015 15:18:25 +0100 [thread overview]
Message-ID: <4086299.WTtvsacqTF@amdc1976> (raw)
In-Reply-To: <5666886C.10203@samsung.com>
Hi,
On Tuesday, December 08, 2015 04:36:12 PM Krzysztof Kozlowski wrote:
> On 08.12.2015 03:18, Bartlomiej Zolnierkiewicz wrote:
> > From: Thomas Abraham <thomas.ab@samsung.com>
> >
> > The new CPU clock type allows the use of cpufreq-dt driver
> > for Exynos5420.
> >
> > Changes by Bartlomiej:
> > - split Exynos5420 support from the original patch
> > - disable cpufreq if big.LITTLE switcher support is enabled
> > - switch to using cpufreq-dt driver
> >
> > Cc: Tomasz Figa <tomasz.figa@gmail.com>
> > Cc: Kukjin Kim <kgene.kim@samsung.com>
> > Cc: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
> > Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
> > Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
> > ---
> > arch/arm/mach-exynos/exynos.c | 3 +++
> > 1 file changed, 3 insertions(+)
>
> I think this is actually now your patch, not Thomas any more. :)
It seems so, I'll update the patch.
> > diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
> > index 1c47aee..7a89c9d 100644
> > --- a/arch/arm/mach-exynos/exynos.c
> > +++ b/arch/arm/mach-exynos/exynos.c
> > @@ -230,6 +230,9 @@ static const struct of_device_id exynos_cpufreq_matches[] = {
> > { .compatible = "samsung,exynos4212", .data = "cpufreq-dt" },
> > { .compatible = "samsung,exynos4412", .data = "cpufreq-dt" },
> > { .compatible = "samsung,exynos5250", .data = "cpufreq-dt" },
> > +#ifndef CONFIG_BL_SWITCHER
> > + { .compatible = "samsung,exynos5420", .data = "cpufreq-dt" },
> > +#endif
>
> Why not on BL_SWITCHER? Shouldn't be enough to disable ARM_DT_BL_CPUFREQ?
ARM_DT_BL_CPUFREQ is not relevant here (it requires to be explicitly
enabled by platform code, just like cpufreq-dt) and the dependency on
!BL_SWITCHER is needed because when BL_SWITCHER is enabled big and
LITTLE cores are grouped in pairs and presented as "virtual" CPUs to
the system:
...
[ 0.002630] CPU0: update cpu_capacity 448
[ 0.002646] CPU0: thread -1, cpu 0, socket 1, mpidr 80000100
[ 0.002835] Setting up static identity map for 0x40008280 - 0x400082d8
[ 0.003106] ARM CCI driver probed
[ 0.003351] Exynos MCPM support installed
[ 0.045350] CPU1: update cpu_capacity 448
[ 0.045358] CPU1: thread -1, cpu 1, socket 1, mpidr 80000101
[ 0.060326] CPU2: update cpu_capacity 448
[ 0.060334] CPU2: thread -1, cpu 2, socket 1, mpidr 80000102
[ 0.075326] CPU3: update cpu_capacity 448
[ 0.075334] CPU3: thread -1, cpu 3, socket 1, mpidr 80000103
[ 0.090337] CPU4: update cpu_capacity 1535
[ 0.090345] CPU4: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.105314] CPU5: update cpu_capacity 1535
[ 0.105321] CPU5: thread -1, cpu 1, socket 0, mpidr 80000001
[ 0.120338] CPU6: update cpu_capacity 1535
[ 0.120345] CPU6: thread -1, cpu 2, socket 0, mpidr 80000002
[ 0.135330] CPU7: update cpu_capacity 1535
[ 0.135338] CPU7: thread -1, cpu 3, socket 0, mpidr 80000003
[ 0.135466] Brought up 8 CPUs
...
[ 3.027498] big.LITTLE switcher initializing
[ 3.031761] CPU0 paired with CPU7
[ 3.035055] CPU1 paired with CPU6
[ 3.038332] CPU2 paired with CPU5
[ 3.041598] CPU3 paired with CPU4
[ 3.044930] GIC ID for CPU 0 cluster 1 is 4
[ 3.049078] GIC ID for CPU 1 cluster 1 is 5
[ 3.053258] GIC ID for CPU 2 cluster 1 is 6
[ 3.057370] GIC ID for CPU 3 cluster 1 is 7
[ 3.061558] GIC ID for CPU 0 cluster 0 is 0
[ 3.083336] IRQ53 no longer affine to CPU4
[ 3.084336] CPU4: shutdown
[ 3.107059] GIC ID for CPU 1 cluster 0 is 1
[ 3.123303] IRQ54 no longer affine to CPU5
[ 3.124213] CPU5: shutdown
[ 3.146387] GIC ID for CPU 2 cluster 0 is 2
[ 3.158143] cpu cpu0: 1100 MHz, 1250 mV --> 900 MHz, 1100 mV
[ 3.168228] IRQ55 no longer affine to CPU6
[ 3.169135] CPU6: shutdown
[ 3.191485] GIC ID for CPU 3 cluster 0 is 3
[ 3.208264] IRQ56 no longer affine to CPU7
[ 3.209166] CPU7: shutdown
[ 3.236752] big.LITTLE switcher initialized
...
Only arm_big_little_dt driver knows how to handle this setup
correctly. cpufreq-dt just treats "virtual" CPUs as a LITTLE
ones. Thus when "virtual CPU"'s current core is switched to
a big one cpufreq-dt is unable to update its voltage.
[ I tried using BL_SWITCHER_DUMMY_IF functionality to simulate
this with:
echo 0,0 > /dev/b.L_switcher
but it doesn't seem to work for some reason (from looking at
arch/arm/common/bL_switcher_dummy_if.c code it seems that at
least "bL_switcher_write" line should get logged but it does
not happen). ]
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
WARNING: multiple messages have this Message-ID (diff)
From: b.zolnierkie@samsung.com (Bartlomiej Zolnierkiewicz)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 4/8] ARM: Exynos: use generic cpufreq driver for Exynos5420
Date: Thu, 10 Dec 2015 15:18:25 +0100 [thread overview]
Message-ID: <4086299.WTtvsacqTF@amdc1976> (raw)
In-Reply-To: <5666886C.10203@samsung.com>
Hi,
On Tuesday, December 08, 2015 04:36:12 PM Krzysztof Kozlowski wrote:
> On 08.12.2015 03:18, Bartlomiej Zolnierkiewicz wrote:
> > From: Thomas Abraham <thomas.ab@samsung.com>
> >
> > The new CPU clock type allows the use of cpufreq-dt driver
> > for Exynos5420.
> >
> > Changes by Bartlomiej:
> > - split Exynos5420 support from the original patch
> > - disable cpufreq if big.LITTLE switcher support is enabled
> > - switch to using cpufreq-dt driver
> >
> > Cc: Tomasz Figa <tomasz.figa@gmail.com>
> > Cc: Kukjin Kim <kgene.kim@samsung.com>
> > Cc: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
> > Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
> > Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
> > ---
> > arch/arm/mach-exynos/exynos.c | 3 +++
> > 1 file changed, 3 insertions(+)
>
> I think this is actually now your patch, not Thomas any more. :)
It seems so, I'll update the patch.
> > diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
> > index 1c47aee..7a89c9d 100644
> > --- a/arch/arm/mach-exynos/exynos.c
> > +++ b/arch/arm/mach-exynos/exynos.c
> > @@ -230,6 +230,9 @@ static const struct of_device_id exynos_cpufreq_matches[] = {
> > { .compatible = "samsung,exynos4212", .data = "cpufreq-dt" },
> > { .compatible = "samsung,exynos4412", .data = "cpufreq-dt" },
> > { .compatible = "samsung,exynos5250", .data = "cpufreq-dt" },
> > +#ifndef CONFIG_BL_SWITCHER
> > + { .compatible = "samsung,exynos5420", .data = "cpufreq-dt" },
> > +#endif
>
> Why not on BL_SWITCHER? Shouldn't be enough to disable ARM_DT_BL_CPUFREQ?
ARM_DT_BL_CPUFREQ is not relevant here (it requires to be explicitly
enabled by platform code, just like cpufreq-dt) and the dependency on
!BL_SWITCHER is needed because when BL_SWITCHER is enabled big and
LITTLE cores are grouped in pairs and presented as "virtual" CPUs to
the system:
...
[ 0.002630] CPU0: update cpu_capacity 448
[ 0.002646] CPU0: thread -1, cpu 0, socket 1, mpidr 80000100
[ 0.002835] Setting up static identity map for 0x40008280 - 0x400082d8
[ 0.003106] ARM CCI driver probed
[ 0.003351] Exynos MCPM support installed
[ 0.045350] CPU1: update cpu_capacity 448
[ 0.045358] CPU1: thread -1, cpu 1, socket 1, mpidr 80000101
[ 0.060326] CPU2: update cpu_capacity 448
[ 0.060334] CPU2: thread -1, cpu 2, socket 1, mpidr 80000102
[ 0.075326] CPU3: update cpu_capacity 448
[ 0.075334] CPU3: thread -1, cpu 3, socket 1, mpidr 80000103
[ 0.090337] CPU4: update cpu_capacity 1535
[ 0.090345] CPU4: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.105314] CPU5: update cpu_capacity 1535
[ 0.105321] CPU5: thread -1, cpu 1, socket 0, mpidr 80000001
[ 0.120338] CPU6: update cpu_capacity 1535
[ 0.120345] CPU6: thread -1, cpu 2, socket 0, mpidr 80000002
[ 0.135330] CPU7: update cpu_capacity 1535
[ 0.135338] CPU7: thread -1, cpu 3, socket 0, mpidr 80000003
[ 0.135466] Brought up 8 CPUs
...
[ 3.027498] big.LITTLE switcher initializing
[ 3.031761] CPU0 paired with CPU7
[ 3.035055] CPU1 paired with CPU6
[ 3.038332] CPU2 paired with CPU5
[ 3.041598] CPU3 paired with CPU4
[ 3.044930] GIC ID for CPU 0 cluster 1 is 4
[ 3.049078] GIC ID for CPU 1 cluster 1 is 5
[ 3.053258] GIC ID for CPU 2 cluster 1 is 6
[ 3.057370] GIC ID for CPU 3 cluster 1 is 7
[ 3.061558] GIC ID for CPU 0 cluster 0 is 0
[ 3.083336] IRQ53 no longer affine to CPU4
[ 3.084336] CPU4: shutdown
[ 3.107059] GIC ID for CPU 1 cluster 0 is 1
[ 3.123303] IRQ54 no longer affine to CPU5
[ 3.124213] CPU5: shutdown
[ 3.146387] GIC ID for CPU 2 cluster 0 is 2
[ 3.158143] cpu cpu0: 1100 MHz, 1250 mV --> 900 MHz, 1100 mV
[ 3.168228] IRQ55 no longer affine to CPU6
[ 3.169135] CPU6: shutdown
[ 3.191485] GIC ID for CPU 3 cluster 0 is 3
[ 3.208264] IRQ56 no longer affine to CPU7
[ 3.209166] CPU7: shutdown
[ 3.236752] big.LITTLE switcher initialized
...
Only arm_big_little_dt driver knows how to handle this setup
correctly. cpufreq-dt just treats "virtual" CPUs as a LITTLE
ones. Thus when "virtual CPU"'s current core is switched to
a big one cpufreq-dt is unable to update its voltage.
[ I tried using BL_SWITCHER_DUMMY_IF functionality to simulate
this with:
echo 0,0 > /dev/b.L_switcher
but it doesn't seem to work for some reason (from looking at
arch/arm/common/bL_switcher_dummy_if.c code it seems that at
least "bL_switcher_write" line should get logged but it does
not happen). ]
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
next prev parent reply other threads:[~2015-12-10 14:18 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-07 18:18 [PATCH v4 0/8] cpufreq: add generic cpufreq driver support for Exynos542x/5800 platforms Bartlomiej Zolnierkiewicz
2015-12-07 18:18 ` Bartlomiej Zolnierkiewicz
2015-12-07 18:18 ` [PATCH v4 1/8] ARM: dts: Exynos542x/5800: add cluster regulator supply properties Bartlomiej Zolnierkiewicz
2015-12-07 18:18 ` Bartlomiej Zolnierkiewicz
2015-12-08 6:48 ` Krzysztof Kozlowski
2015-12-08 6:48 ` Krzysztof Kozlowski
2015-12-08 10:16 ` Markus Reichl
2015-12-08 10:16 ` Markus Reichl
2015-12-08 10:16 ` Markus Reichl
2015-12-07 18:18 ` [PATCH v4 2/8] clk: samsung: exynos5420: add cpu clock configuration data and instantiate cpu clock Bartlomiej Zolnierkiewicz
2015-12-07 18:18 ` Bartlomiej Zolnierkiewicz
2015-12-07 18:18 ` [PATCH v4 3/8] ARM: dts: Exynos5420: add CPU OPP properties Bartlomiej Zolnierkiewicz
2015-12-07 18:18 ` Bartlomiej Zolnierkiewicz
2015-12-08 6:28 ` Viresh Kumar
2015-12-08 6:28 ` Viresh Kumar
2015-12-08 6:28 ` Viresh Kumar
2015-12-08 7:17 ` Krzysztof Kozlowski
2015-12-08 7:17 ` Krzysztof Kozlowski
2015-12-07 18:18 ` [PATCH v4 4/8] ARM: Exynos: use generic cpufreq driver for Exynos5420 Bartlomiej Zolnierkiewicz
2015-12-07 18:18 ` Bartlomiej Zolnierkiewicz
2015-12-08 7:36 ` Krzysztof Kozlowski
2015-12-08 7:36 ` Krzysztof Kozlowski
2015-12-10 14:18 ` Bartlomiej Zolnierkiewicz [this message]
2015-12-10 14:18 ` Bartlomiej Zolnierkiewicz
2015-12-11 1:13 ` Krzysztof Kozlowski
2015-12-11 1:13 ` Krzysztof Kozlowski
2015-12-07 18:18 ` [PATCH v4 5/8] clk: samsung: exynos5422/5800: fix cpu clock configuration data Bartlomiej Zolnierkiewicz
2015-12-07 18:18 ` Bartlomiej Zolnierkiewicz
2015-12-07 18:18 ` [PATCH v4 6/8] ARM: dts: Exynos5800: fix CPU OPP Bartlomiej Zolnierkiewicz
2015-12-07 18:18 ` Bartlomiej Zolnierkiewicz
2015-12-08 8:07 ` Krzysztof Kozlowski
2015-12-08 8:07 ` Krzysztof Kozlowski
2015-12-07 18:18 ` [PATCH v4 7/8] ARM: dts: Exynos5422: fix OPP tables Bartlomiej Zolnierkiewicz
2015-12-07 18:18 ` Bartlomiej Zolnierkiewicz
2015-12-08 8:13 ` Krzysztof Kozlowski
2015-12-08 8:13 ` Krzysztof Kozlowski
2015-12-08 13:41 ` Javier Martinez Canillas
2015-12-08 13:41 ` Javier Martinez Canillas
2015-12-09 0:34 ` Krzysztof Kozlowski
2015-12-09 0:34 ` Krzysztof Kozlowski
2015-12-09 2:19 ` Javier Martinez Canillas
2015-12-09 2:19 ` Javier Martinez Canillas
2015-12-10 15:57 ` Bartlomiej Zolnierkiewicz
2015-12-10 15:57 ` Bartlomiej Zolnierkiewicz
2015-12-07 18:18 ` [PATCH v4 8/8] ARM: Exynos: use generic cpufreq driver for Exynos5422/5800 Bartlomiej Zolnierkiewicz
2015-12-07 18:18 ` Bartlomiej Zolnierkiewicz
2015-12-08 6:17 ` [PATCH v4 0/8] cpufreq: add generic cpufreq driver support for Exynos542x/5800 platforms Viresh Kumar
2015-12-08 6:17 ` Viresh Kumar
2015-12-08 6:29 ` Viresh Kumar
2015-12-08 6:29 ` Viresh Kumar
2015-12-09 13:13 ` Javier Martinez Canillas
2015-12-09 13:13 ` Javier Martinez Canillas
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=4086299.WTtvsacqTF@amdc1976 \
--to=b.zolnierkie@samsung.com \
--cc=ben@smart-cactus.org \
--cc=cw00.choi@samsung.com \
--cc=heiko@sntech.de \
--cc=javier@osg.samsung.com \
--cc=k.kozlowski@samsung.com \
--cc=kgene.kim@samsung.com \
--cc=kgene@kernel.org \
--cc=khilman@linaro.org \
--cc=l.majewski@samsung.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux.amoon@gmail.com \
--cc=s.nawrocki@samsung.com \
--cc=thomas.ab@samsung.com \
--cc=tjakobi@math.uni-bielefeld.de \
--cc=tomasz.figa@gmail.com \
--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.