Skip to contentSkip to conversation

PXA PWM possible regression after 3.5: backlight remains off after resume

DISCUSSION Paul Parsons 3 participants 5 messages Sep 23, 2012 – Sep 26, 2012

lore
Share & tools
lore
#0 lore raw

There is a possible PXA PWM regression between 3.5 and 3.6-rc6: if I suspend and then resume an iPAQ hx4700, the backlight remains off.

In 3.5 the backlight would turn on after the resume.

I presumed this is a PWM issue because the PXA PWM driver was reworked and moved trees between 3.5 and 3.6-rc6. And there was mention of broken PWM drivers about a month ago, for example:
http://lists.infradead.org/pipermail/linux-arm-kernel/2012-August/115717.html

Does my backlight breakage sound familiar to anybody? Is there anything obvious I can try before debugging it further?

Regards,
Paul

#1 lore raw
Quoted 5 lines · Paul Parsons

There is a possible PXA PWM regression between 3.5 and 3.6-rc6: if I suspend and then resume an iPAQ hx4700, the backlight remains off.

In 3.5 the backlight would turn on after the resume.

Quoted 7 lines

I presumed this is a PWM issue because the PXA PWM driver was reworked and moved trees between 3.5 and 3.6-rc6. And there was mention of broken PWM drivers about a month ago, for example:
http://lists.infradead.org/pipermail/linux-arm-kernel/2012-August/115717.html

Does my backlight breakage sound familiar to anybody? Is there anything obvious I can try before debugging it further?

Looking at the code from before the move to the PWM subsystem I have a hard time understanding how this could have worked for supend/resume in the first place. The driver has never supported the supend and resume callbacks. Maybe it is also a problem related to some other change. Clocking would be a likely candidate. But again I wonder how this ever worked properly without the suspend and resume callbacks.

Can you pinpoint more exactly when this failed to break. PXA PWM was already included in 3.6-rc1 so if it is related then it should have happened at that time already.

Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120923/21e1ae3c/attachment.sig>

#2 lore raw

Hello Thierry,

Quoted 21 lines · Thierry Reding
Quoted 5 lines · Paul Parsons

There is a possible PXA PWM regression between 3.5 and 3.6-rc6: if I suspend and then resume an iPAQ hx4700, the backlight remains off.

In 3.5 the backlight would turn on after the resume.

Quoted 7 lines

I presumed this is a PWM issue because the PXA PWM driver was reworked and moved trees between 3.5 and 3.6-rc6. And there was mention of broken PWM drivers about a month ago, for example:
http://lists.infradead.org/pipermail/linux-arm-kernel/2012-August/115717.html

Does my backlight breakage sound familiar to anybody? Is there anything obvious I can try before debugging it further?

Looking at the code from before the move to the PWM subsystem I have a hard time understanding how this could have worked for supend/resume in the first place. The driver has never supported the supend and resume callbacks. Maybe it is also a problem related to some other change. Clocking would be a likely candidate. But again I wonder how this ever worked properly without the suspend and resume callbacks.

Quoted 3 lines

Can you pinpoint more exactly when this failed to break. PXA PWM was already included in 3.6-rc1 so if it is related then it should have happened at that time already.

The same failure is also present in 3.6-rc1.

Just to be clear, are you saying that drivers/pwm/pwm-pxa.c should include suspend/resume handlers like in drivers/pwm/pwm-samsung.c ?

Agreed that it is possible that recent changes exposed a latent bug somewhere, and that turning the backlight on after resume should never have worked.

#3 lore raw
Quoted 8 lines · Paul Parsons

The same failure is also present in 3.6-rc1.

Just to be clear, are you saying that drivers/pwm/pwm-pxa.c should include suspend/resume handlers like in drivers/pwm/pwm-samsung.c ?

Agreed that it is possible that recent changes exposed a latent bug somewhere, and that turning the backlight on after resume should never have worked.

Hi Paul,

I checked on the mioa701 board (see [1]).
On my board, the backlight if fully driven by PXA PWM0, and the suspend/resume is working perfectly.

So I don't thing anything is needed for suspend/resume wrt PWM (empirically).

Cheers.

Signature · 14 lines
Robert

[1]
$ cat /sys/class/backlight/pwm-backlight/actual_brightness 
50
$ cat /sys/class/backlight/pwm-backlight/actual_brightness 
50
$ echo 90 > /sys/class/backlight/pwm-backlight/brightness        
$ echo mem > /sys/power/state 
$ 
$ cat /sys/class/backlight/pwm-backlight/actual_brightness 
90
$ uname -a
Linux mioa701 3.6.0-rc6+ #26 PREEMPT Sat Sep 22 22:08:41 CEST 2012 armv5tel unknown
#4 lore raw
Quoted 11 lines · Robert Jarzmik
Quoted 8 lines · Paul Parsons

The same failure is also present in 3.6-rc1.

Just to be clear, are you saying that drivers/pwm/pwm-pxa.c should include suspend/resume handlers like in drivers/pwm/pwm-samsung.c ?

Agreed that it is possible that recent changes exposed a latent bug somewhere, and that turning the backlight on after resume should never have worked.

Quoted 7 lines

Hi Paul,

I checked on the mioa701 board (see [1]).
On my board, the backlight if fully driven by PXA PWM0, and the suspend/resume is working perfectly.

So I don't thing anything is needed for suspend/resume wrt PWM (empirically).

You're right. I belatedly reached the same conclusion after I noticed that only the pwm-samsung driver included any suspend/resume handlers:
the other drivers can't all be broken!

Fortunately I have just identified the problem: the PXA27X PWM device numbering scheme has changed, breaking the hx4700 platform and probably other PXA27X platforms which use PWM1 or PWM2.

Regards,
Paul