2020-03-12 12:23:08

by Pascal Roeleven

[permalink] [raw]
Subject: pwm: sun4i: pwm-backlight not working since 5.6-rc1

Hi all,

I am working on adding an old A10 device to mainline and noticed an
issue when testing on 5.5.8 vs master.

Since 5.6-rc1, I can't control the brightness of my LCD backlight
anymore. The backlight stays on full brightness instead. I am
controlling the brightness value via sysfs for testing.

I am not sure if this is a general pwm-sun4i issue or if it is related
to the backlight. However I narrowed it down to one commit for
pwm-sun4i:

fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5

If I use pwm-sun4i.c from 5b090b430d750961305030232314b6acdb0102aa on
master, the backlight works fine. Unfortunately, due to my lack of
kernel experience, I can't see how the commit above broke it.

Not sure if it helps, but the binding for the backlight is as follows:

backlight: backlight {
compatible = "pwm-backlight";
pwms = <&pwm 0 100000 PWM_POLARITY_INVERTED>;
power-supply = <&reg_vbat>;
enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
brightness-levels = <0 30 40 50 60 70 80 90 100>;
default-brightness-level = <8>;
};

Please let me know if there is anything else which might be helpful to
know or anything I can test.

Regards,
Pascal


2020-03-12 13:31:38

by Uwe Kleine-König

[permalink] [raw]
Subject: Re: pwm: sun4i: pwm-backlight not working since 5.6-rc1

On Thu, Mar 12, 2020 at 01:22:13PM +0100, Pascal Roeleven wrote:
> Hi all,
>
> I am working on adding an old A10 device to mainline and noticed an issue
> when testing on 5.5.8 vs master.
>
> Since 5.6-rc1, I can't control the brightness of my LCD backlight anymore.
> The backlight stays on full brightness instead. I am controlling the
> brightness value via sysfs for testing.
>
> I am not sure if this is a general pwm-sun4i issue or if it is related to
> the backlight. However I narrowed it down to one commit for pwm-sun4i:
>
> fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5
>
> If I use pwm-sun4i.c from 5b090b430d750961305030232314b6acdb0102aa on
> master, the backlight works fine. Unfortunately, due to my lack of kernel
> experience, I can't see how the commit above broke it.

Hmm, I cannot see how fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5 breaks
this. Looking at the output of

git show -b fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5

(i.e. ignoring whitespace changes) I don't see how the behaviour you're
reporting can be explained.

Are you sure that fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5 is the bad
commit?

Can you install a tool to inspect register values and check how the
affected registers change if you switch kernel versions and/or pwm
settings?

(e.g.
memtool md 0x1c20e00+0xc
)

Best regards
Uwe

--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | https://www.pengutronix.de/ |

2020-03-12 15:35:12

by Pascal Roeleven

[permalink] [raw]
Subject: Re: pwm: sun4i: pwm-backlight not working since 5.6-rc1

On 2020-03-12 14:29, Uwe Kleine-König wrote:
> On Thu, Mar 12, 2020 at 01:22:13PM +0100, Pascal Roeleven wrote:
>> Hi all,
>>
>> I am working on adding an old A10 device to mainline and noticed an
>> issue
>> when testing on 5.5.8 vs master.
>>
>> Since 5.6-rc1, I can't control the brightness of my LCD backlight
>> anymore.
>> The backlight stays on full brightness instead. I am controlling the
>> brightness value via sysfs for testing.
>>
>> I am not sure if this is a general pwm-sun4i issue or if it is related
>> to
>> the backlight. However I narrowed it down to one commit for pwm-sun4i:
>>
>> fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5
>>
>> If I use pwm-sun4i.c from 5b090b430d750961305030232314b6acdb0102aa on
>> master, the backlight works fine. Unfortunately, due to my lack of
>> kernel
>> experience, I can't see how the commit above broke it.
>
> Hmm, I cannot see how fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5 breaks
> this. Looking at the output of
>
> git show -b fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5
>
> (i.e. ignoring whitespace changes) I don't see how the behaviour you're
> reporting can be explained.
>
> Are you sure that fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5 is the bad
> commit?
>
> Can you install a tool to inspect register values and check how the
> affected registers change if you switch kernel versions and/or pwm
> settings?
>
> (e.g.
> memtool md 0x1c20e00+0xc
> )
>
> Best regards
> Uwe

Thanks for your response.

Yes I am sure that is the commit. If I am on master, and replace
pwm-sun4i.c with the one from 5b090b43, everything works. If I then
apply fa4d8178, it stops working.

And strangely the output of the registers is exactly the same before and
after fa4d8178:

01c20e00: 00000050 00130014 00000000 (full brightness)
01c20e00: 00000050 00130006 00000000 (min brightness)

Even when I'm on 5b090b43 and cherry-pick fa4d8178 can I reproduce the
issue.

2020-03-16 07:26:59

by Uwe Kleine-König

[permalink] [raw]
Subject: Re: pwm: sun4i: pwm-backlight not working since 5.6-rc1

Hello,

On Thu, Mar 12, 2020 at 04:06:07PM +0100, Pascal Roeleven wrote:
> On 2020-03-12 14:29, Uwe Kleine-K?nig wrote:
> > On Thu, Mar 12, 2020 at 01:22:13PM +0100, Pascal Roeleven wrote:
> > > Hi all,
> > >
> > > I am working on adding an old A10 device to mainline and noticed an
> > > issue
> > > when testing on 5.5.8 vs master.
> > >
> > > Since 5.6-rc1, I can't control the brightness of my LCD backlight
> > > anymore.
> > > The backlight stays on full brightness instead. I am controlling the
> > > brightness value via sysfs for testing.
> > >
> > > I am not sure if this is a general pwm-sun4i issue or if it is
> > > related to
> > > the backlight. However I narrowed it down to one commit for pwm-sun4i:
> > >
> > > fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5
> > >
> > > If I use pwm-sun4i.c from 5b090b430d750961305030232314b6acdb0102aa on
> > > master, the backlight works fine. Unfortunately, due to my lack of
> > > kernel
> > > experience, I can't see how the commit above broke it.
> >
> > Hmm, I cannot see how fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5 breaks
> > this. Looking at the output of
> >
> > git show -b fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5
> >
> > (i.e. ignoring whitespace changes) I don't see how the behaviour you're
> > reporting can be explained.
> >
> > Are you sure that fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5 is the bad
> > commit?
> >
> > Can you install a tool to inspect register values and check how the
> > affected registers change if you switch kernel versions and/or pwm
> > settings?
> >
> > (e.g.
> > memtool md 0x1c20e00+0xc
> > )
> >
> > Best regards
> > Uwe
>
> Thanks for your response.
>
> Yes I am sure that is the commit. If I am on master, and replace pwm-sun4i.c
> with the one from 5b090b43, everything works. If I then apply fa4d8178, it
> stops working.
>
> And strangely the output of the registers is exactly the same before and
> after fa4d8178:
>
> 01c20e00: 00000050 00130014 00000000 (full brightness)
> 01c20e00: 00000050 00130006 00000000 (min brightness)
>
> Even when I'm on 5b090b43 and cherry-pick fa4d8178 can I reproduce the
> issue.

Very strange. I'm out of sensible ideas. The remaining ones are:

- enable tracing in the kernel and boot with

trace_event=pwm

And then check after the problem occurred in
/sys/kernel/debug/tracing/trace if something sticks out.

- Try modifying the registers using memtool. E.g.

memtool mw 0x01c20e04 0x00130012

- Do you have equipment to check the actual output of the PWM hardware?
If so, what do you see?

Best regards
Uwe

--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | https://www.pengutronix.de/ |

2020-03-17 17:33:08

by Uwe Kleine-König

[permalink] [raw]
Subject: Re: pwm: sun4i: pwm-backlight not working since 5.6-rc1

Hello Pascal,

On Mon, Mar 16, 2020 at 08:26:13AM +0100, Uwe Kleine-K?nig wrote:
> On Thu, Mar 12, 2020 at 04:06:07PM +0100, Pascal Roeleven wrote:
> > On 2020-03-12 14:29, Uwe Kleine-K?nig wrote:
> > > On Thu, Mar 12, 2020 at 01:22:13PM +0100, Pascal Roeleven wrote:
> > > > Hi all,
> > > >
> > > > I am working on adding an old A10 device to mainline and noticed an
> > > > issue
> > > > when testing on 5.5.8 vs master.
> > > >
> > > > Since 5.6-rc1, I can't control the brightness of my LCD backlight
> > > > anymore.
> > > > The backlight stays on full brightness instead. I am controlling the
> > > > brightness value via sysfs for testing.
> > > >
> > > > I am not sure if this is a general pwm-sun4i issue or if it is
> > > > related to
> > > > the backlight. However I narrowed it down to one commit for pwm-sun4i:
> > > >
> > > > fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5
> > > >
> > > > If I use pwm-sun4i.c from 5b090b430d750961305030232314b6acdb0102aa on
> > > > master, the backlight works fine. Unfortunately, due to my lack of
> > > > kernel
> > > > experience, I can't see how the commit above broke it.
> > >
> > > Hmm, I cannot see how fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5 breaks
> > > this. Looking at the output of
> > >
> > > git show -b fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5
> > >
> > > (i.e. ignoring whitespace changes) I don't see how the behaviour you're
> > > reporting can be explained.
> > >
> > > Are you sure that fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5 is the bad
> > > commit?
> > >
> > > Can you install a tool to inspect register values and check how the
> > > affected registers change if you switch kernel versions and/or pwm
> > > settings?
> > >
> > > (e.g.
> > > memtool md 0x1c20e00+0xc
> > > )
> > >
> > > Best regards
> > > Uwe
> >
> > Thanks for your response.
> >
> > Yes I am sure that is the commit. If I am on master, and replace pwm-sun4i.c
> > with the one from 5b090b43, everything works. If I then apply fa4d8178, it
> > stops working.
> >
> > And strangely the output of the registers is exactly the same before and
> > after fa4d8178:
> >
> > 01c20e00: 00000050 00130014 00000000 (full brightness)
> > 01c20e00: 00000050 00130006 00000000 (min brightness)
> >
> > Even when I'm on 5b090b43 and cherry-pick fa4d8178 can I reproduce the
> > issue.
>
> Very strange. I'm out of sensible ideas. The remaining ones are:
>
> - enable tracing in the kernel and boot with
>
> trace_event=pwm
>
> And then check after the problem occurred in
> /sys/kernel/debug/tracing/trace if something sticks out.
>
> - Try modifying the registers using memtool. E.g.
>
> memtool mw 0x01c20e04 0x00130012
>
> - Do you have equipment to check the actual output of the PWM hardware?
> If so, what do you see?

I assume the sun4i-series you sent earlier today resolves the problems
you reported here?

Best regards
Uwe

--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | https://www.pengutronix.de/ |

2020-03-17 17:54:50

by Pascal Roeleven

[permalink] [raw]
Subject: Re: pwm: sun4i: pwm-backlight not working since 5.6-rc1

On 2020-03-17 18:32, Uwe Kleine-König wrote:
> Hello Pascal,
>
> On Mon, Mar 16, 2020 at 08:26:13AM +0100, Uwe Kleine-König wrote:
>> On Thu, Mar 12, 2020 at 04:06:07PM +0100, Pascal Roeleven wrote:
>> > On 2020-03-12 14:29, Uwe Kleine-König wrote:
>> > > On Thu, Mar 12, 2020 at 01:22:13PM +0100, Pascal Roeleven wrote:
>> > > > Hi all,
>> > > >
>> > > > I am working on adding an old A10 device to mainline and noticed an
>> > > > issue
>> > > > when testing on 5.5.8 vs master.
>> > > >
>> > > > Since 5.6-rc1, I can't control the brightness of my LCD backlight
>> > > > anymore.
>> > > > The backlight stays on full brightness instead. I am controlling the
>> > > > brightness value via sysfs for testing.
>> > > >
>> > > > I am not sure if this is a general pwm-sun4i issue or if it is
>> > > > related to
>> > > > the backlight. However I narrowed it down to one commit for pwm-sun4i:
>> > > >
>> > > > fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5
>> > > >
>> > > > If I use pwm-sun4i.c from 5b090b430d750961305030232314b6acdb0102aa on
>> > > > master, the backlight works fine. Unfortunately, due to my lack of
>> > > > kernel
>> > > > experience, I can't see how the commit above broke it.
>> > >
>> > > Hmm, I cannot see how fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5 breaks
>> > > this. Looking at the output of
>> > >
>> > > git show -b fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5
>> > >
>> > > (i.e. ignoring whitespace changes) I don't see how the behaviour you're
>> > > reporting can be explained.
>> > >
>> > > Are you sure that fa4d81784681a26bcf7d2a43c6ac5cf991ef28f5 is the bad
>> > > commit?
>> > >
>> > > Can you install a tool to inspect register values and check how the
>> > > affected registers change if you switch kernel versions and/or pwm
>> > > settings?
>> > >
>> > > (e.g.
>> > > memtool md 0x1c20e00+0xc
>> > > )
>> > >
>> > > Best regards
>> > > Uwe
>> >
>> > Thanks for your response.
>> >
>> > Yes I am sure that is the commit. If I am on master, and replace pwm-sun4i.c
>> > with the one from 5b090b43, everything works. If I then apply fa4d8178, it
>> > stops working.
>> >
>> > And strangely the output of the registers is exactly the same before and
>> > after fa4d8178:
>> >
>> > 01c20e00: 00000050 00130014 00000000 (full brightness)
>> > 01c20e00: 00000050 00130006 00000000 (min brightness)
>> >
>> > Even when I'm on 5b090b43 and cherry-pick fa4d8178 can I reproduce the
>> > issue.
>>
>> Very strange. I'm out of sensible ideas. The remaining ones are:
>>
>> - enable tracing in the kernel and boot with
>>
>> trace_event=pwm
>>
>> And then check after the problem occurred in
>> /sys/kernel/debug/tracing/trace if something sticks out.
>>
>> - Try modifying the registers using memtool. E.g.
>>
>> memtool mw 0x01c20e04 0x00130012
>>
>> - Do you have equipment to check the actual output of the PWM
>> hardware?
>> If so, what do you see?
>
> I assume the sun4i-series you sent earlier today resolves the problems
> you reported here?
>
> Best regards
> Uwe

Hi Uwe,

Yes it does, but as Emil mentioned it's probably not complete. It's just
an RFC for now to make sure it doesn't cause a regression. Turns out the
Allwinner PWM controller is even more pickier than I thought.

Again, thank you for your help.