Letux Kernel

Issue 952: Pyra: Screen occassionally doesn't power up again (Letux 5.10 and later)

Reported by Michael Mrozek, Nov 9, 2022

Since Letux 5.10, the screen on the Pyra sometimes doesn't power 
back on after the screensaver switched it off.

It still happens on 5.10.134, it's unknown if later kernel versions 
are affected as well.

The log entry when the issue occurs is:

[  619.570588] panel-btl507212-w677l 58004000.encoder.0: 
w677l_disable
[  619.883488] DSI: omapdss DSI error: DSI error, irqstatus 4000
[  619.890156] panel-btl507212-w677l 58004000.encoder.0: 
w677l_unprepare
[  619.897322] panel-btl507212-w677l 58004000.encoder.0: power_off()
[  619.913950] panel-btl507212-w677l 58004000.encoder.0: 
w677l_reset(active)
[  619.931133] panel-btl507212-w677l 58004000.encoder.0: 
w677l_regulator(off)
[  619.958695] panel-btl507212-w677l 58004000.encoder.0: 
w677l_unprepare finished
[  695.648243] panel-btl507212-w677l 58004000.encoder.0: 
w677l_prepare
[  695.655799] panel-btl507212-w677l 58004000.encoder.0: power_on()
[  695.663776] panel-btl507212-w677l 58004000.encoder.0: 
w677l_reset(active)
[  695.672108] panel-btl507212-w677l 58004000.encoder.0: 
w677l_regulator(on)
[  695.741011] panel-btl507212-w677l 58004000.encoder.0: 
w677l_reset(inactive)
[  695.780353] dsi: w677l_write(dcs 11) [0]
[  695.786701] DSI: omapdss DSI error: Error while sending BTA: 4000
[  695.797810] DSI: omapdss DSI error: bta sync failed
[  695.803425] panel-btl507212-w677l 58004000.encoder.0: write 
cmd/reg(11) failed: -5
[  695.811787] panel-btl507212-w677l 58004000.encoder.0: sequence 
failed: 0
[  695.835834] panel-btl507212-w677l 58004000.encoder.0: 
w677l_enable
[  695.842381] panel-btl507212-w677l 58004000.encoder.0: 
w677l_enable() powered on()

Comment 1 by Nikolaus Schaller, Nov 9, 2022

Have also seen it recently on newer kernels.
Status: Accepted

Comment 2 by Nikolaus Schaller, Nov 9, 2022

One more observation: killing Xorg (which is restarted) seems to 
make it work again.

Comment 3 by Nikolaus Schaller, Nov 11, 2022

The effect can also be observed with all 5.10.x and 5.15.x kernels 
where X11 woks (on earlier versions it does not start).

Repeat / Test by:

. x; for i in 1 2 3 4 5 6 7 8 9 10; do xset dpms force off; xset 
dpms force on; done; dmesg | fgrep -q BTA && echo bad || 
echo good

Ca. 2-5 out of 10 calls are bad.

So far, reason is unknown but it indicates some timing issue.

Background: "BTA" is "Bus turn around" for MIPI. 
Which means that the processor asks the display panel controller for 
some information. For that the DSI subsystem must turn off sending 
data and the panel controller responds. If that is happening too 
slow or taking too much time there is no valid communication which 
is somehow detected.

A newer log indicates a DSI error and some IRQ status

[   46.620531] panel-btl507212-w677l 58004000.encoder.0: 
w677l_enable
[   46.620551] panel-btl507212-w677l 58004000.encoder.0: 
w677l_enable() powered on()
[   47.619890] panel-btl507212-w677l 58004000.encoder.0: 
w677l_disable
[   47.915178] DSI: omapdss DSI error: DSI error, irqstatus 4000
[   47.915819] panel-btl507212-w677l 58004000.encoder.0: 
w677l_unprepare
[   47.915826] panel-btl507212-w677l 58004000.encoder.0: power_off()
[   47.926120] panel-btl507212-w677l 58004000.encoder.0: 
w677l_reset(active)
[   47.936387] panel-btl507212-w677l 58004000.encoder.0: 
w677l_regulator(off)
[   47.956726] panel-btl507212-w677l 58004000.encoder.0: 
w677l_unprepare finished
[   48.025804] panel-btl507212-w677l 58004000.encoder.0: 
w677l_prepare
[   48.025825] panel-btl507212-w677l 58004000.encoder.0: power_on()
[   48.025900] panel-btl507212-w677l 58004000.encoder.0: 
w677l_reset(active)
[   48.025926] panel-btl507212-w677l 58004000.encoder.0: 
w677l_regulator(on)
[   48.096452] panel-btl507212-w677l 58004000.encoder.0: 
w677l_reset(inactive)
[   48.126481] dsi: w677l_write(dcs 11) [0]
[   48.132707] DSI: omapdss DSI error: Error while sending BTA: 4000
[   48.132737] DSI: omapdss DSI error: bta sync failed
[   48.132738] panel-btl507212-w677l 58004000.encoder.0: write 
cmd/reg(11) failed: -5

Maybe we have to ask the omapdss maintainers.

Created: 21 days 16 hours ago by Michael Mrozek

Updated: 20 days 4 hours ago

Status: Accepted

Followed by: 1 person

Labels:
Type:Defect
Priority:Medium