Re: [RFCv1 5/5] arm64/ARM: configs: Change CONFIG_PWM_MESON from m to y

From: Anand Moon
Date: Tue Oct 08 2019 - 10:39:04 EST


Hi Kevin / Martin,

On Tue, 8 Oct 2019 at 04:28, Kevin Hilman <khilman@xxxxxxxxxxxx> wrote:
>
> Martin Blumenstingl <martin.blumenstingl@xxxxxxxxxxxxxx> writes:
>
> > On Mon, Oct 7, 2019 at 3:17 PM Anand Moon <linux.amoon@xxxxxxxxx> wrote:
> > [...]
> >> diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
> >> index c9a867ac32d4..72f6a7dca0d6 100644
> >> --- a/arch/arm64/configs/defconfig
> >> +++ b/arch/arm64/configs/defconfig
> >> @@ -774,7 +774,7 @@ CONFIG_MPL3115=m
> >> CONFIG_PWM=y
> >> CONFIG_PWM_BCM2835=m
> >> CONFIG_PWM_CROS_EC=m
> >> -CONFIG_PWM_MESON=m
> >> +CONFIG_PWM_MESON=y
> >
> > some time ago I submitted a similar patch for the 32-bit SoCs
> > it turned that that pwm-meson can be built as module because the
> > kernel will run without CPU DVFS as long as the clock and regulator
> > drivers are returning -EPROBE_DEFER (-517)
>
> On 64-bit SoCs, the kernel boots with PWM as a module also, but DVFS
> only works sometimes, and making it built-in fixes the problem.
> Actually, it doesn't fix, it just hides the problem, which is likely a
> race or timeout happening during deferred probing.
>
> > did you check whether there's some other problem like some unused
> > clock which is being disabled at that moment?
> > I've been hunting weird problems in the past where it turned out that
> > changing kernel config bits changed the boot timing - that masked the
> > original problem
>
> Right, I would definitely prefer to not make this built-in without a lot
> more information to *why* this is needed. In figuring that out, we'll
> probably find the race/timeout that's the root cause.
>
> Kevin
>
>

Kevin,

As per my understanding from the kernelci.org logs it seen that
pwm-meson driver is requested more than once before it finally load the module.

[0] https://storage.kernelci.org/next/master/next-20191008/arm64/defconfig/gcc-8/lab-baylibre/boot-meson-g12b-odroid-n2.txt

Hi Martin,

I have tired your Martin's patch [1] and still the boot fails to move
ahead with below logs.
[1] https://lore.kernel.org/patchwork/patch/1034186/

[ 1.543928] xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0 SuperSpeed
[ 1.550422] usb usb2: We don't know the algorithms for LPM for this
host, disabling LPM.
[ 1.558702] hub 2-0:1.0: USB hub found
[ 1.562131] hub 2-0:1.0: 1 port detected
[ 1.566206] dwc3-meson-g12a ffe09000.usb: switching to Device Mode
[ 1.573252] meson-gx-mmc ffe05000.sd: Got CD GPIO
[ 1.607405] hctosys: unable to open rtc device (rtc0)

I have put some more prints in pwm-meson.c it fails to load the module
as microsSD card is not completely initialized.

Here is what I have tried to enable sd_emmc_b node, but still it fails
to initialize this driver..

- max-frequency = <50000000>;
+ sd-uhs-sdr12;
+ sd-uhs-sdr25;
+ sd-uhs-sdr50;
+ sd-uhs-ddr50;
+ max-frequency = <100000000>;
disable-wp;

Below are the boot logs.

[ 1.729877] meson-gx-mmc ffe05000.sd: Anand mmc proble start1
[ 1.734658] meson-gx-mmc ffe05000.sd: Got CD GPIO
[ 1.739237] meson-gx-mmc ffe05000.sd: Anand mmc proble start2
[ 1.744900] meson-gx-mmc ffe05000.sd: Anand mmc proble start3
[ 1.750594] meson-gx-mmc ffe05000.sd: Anand mmc proble start4
[ 1.756292] meson-gx-mmc ffe05000.sd: Anand mmc proble start5
[ 1.761987] meson-gx-mmc ffe05000.sd: Anand mmc proble start6
[ 1.767668] meson-gx-mmc ffe05000.sd: Anand mmc proble start7
[ 1.773356] meson-gx-mmc ffe05000.sd: Anand mmc proble start8
[ 1.779050] meson-gx-mmc ffe05000.sd: Anand mmc proble start9
[ 1.784748] meson-gx-mmc ffe05000.sd: Anand mmc proble start10
[ 1.790523] meson-gx-mmc ffe05000.sd: Anand mmc proble start11
[ 1.796578] meson-gx-mmc ffe05000.sd: Anand mmc proble start12
[ 1.802150] meson-gx-mmc ffe05000.sd: Anand mmc proble start13
[ 1.807980] meson-gx-mmc ffe05000.sd: Anand mmc proble start14
[ 1.813642] meson-gx-mmc ffe05000.sd: Anand mmc proble start15
[ 1.819416] meson-gx-mmc ffe05000.sd: Anand mmc proble start17
[ 1.825491] meson-gx-mmc ffe05000.sd: Anand mmc proble start18
[ 1.830984] meson-gx-mmc ffe05000.sd: Anand mmc proble start19
[ 1.862000] meson-gx-mmc ffe05000.sd: Anand mmc Final proble good to go
[ 1.863323] pwm-regulator regulator-vddcpu-a: Anand :
dutycycle_unit 100: dutycycle_range 100:0
[ 1.871617] pwm-regulator regulator-vddcpu-a: Failed to get PWM: -517
[ 1.878560] pwm-regulator regulator-vddcpu-b: Anand :
dutycycle_unit 100: dutycycle_range 100:0
[ 1.886613] pwm-regulator regulator-vddcpu-b: Failed to get PWM: -517
[ 1.894094] pwm-regulator regulator-vddcpu-a: Anand :
dutycycle_unit 100: dutycycle_range 100:0
[ 1.901771] pwm-regulator regulator-vddcpu-a: Failed to get PWM: -517
[ 1.909089] pwm-regulator regulator-vddcpu-b: Anand :
dutycycle_unit 100: dutycycle_range 100:0
[ 1.916658] pwm-regulator regulator-vddcpu-b: Failed to get PWM: -517
[ 1.924147] hctosys: unable to open rtc device (rtc0)

sd_emmc_b probe function return success but still not able to progress further.

Best Regards

-Anand