FS#10362 - Flickering backlight when removing hold with backlight fading

Attached to Project: Rockbox
Opened by Jonas Häggqvist (rasher) - Sunday, 21 June 2009, 20:15 GMT
Last edited by Thomas Martitz (kugel.) - Tuesday, 25 October 2011, 16:58 GMT
Task Type Bugs
Category User Interface
Status New   Reopened
Assigned To No-one
Operating System All players
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No


After releasing hold after several minutes of playback with hold enabled, the backlight flickers on and off, if the following settings are enabled:

Backlight on hold: off
Backlight fade in: on
Backlight fade out: on
Caption backlight: on

My theory is that fade-in/out events from the caption backlight somehow get queued up, and happen once hold is released.

Happened as recently as today, with r21438. Reports in IRC said it appeared somewhere between 3.0 and 3.1.
This task depends upon

Comment by Matt Smith (dz) - Monday, 06 July 2009, 00:55 GMT
indeed, caption backlight on/off events (regardless of fade settings) are stacking up in backlight_queue while the backlight is forced off by the hold switch by setting timeout to -1. I can't quite manage to wrap my head around this code right now in order to fix it, though.
Comment by Thomas Martitz (kugel.) - Monday, 10 August 2009, 21:21 GMT
Why do you get this idea? I'm fairly sure I have seen this without caption backlight also (because I never have caption backlight on).
Comment by Dorian (Narann) - Tuesday, 01 September 2009, 23:18 GMT
Strange similar prob with plugins like Doom (on a Fuze v1). The turnaround I've find is to turning "Backlight on hold" to "on". (But it's very ennoying to have the Backlight ON when you are in "Hold".

Good luck for debug devs! ;)
Comment by Thomas Martitz (kugel.) - Tuesday, 01 September 2009, 23:19 GMT
That's a different bug I think.
Comment by Dorian (Narann) - Tuesday, 01 September 2009, 23:22 GMT
Ok, I create a new thread. ;)
Comment by Marko Pahlke (perfectdrug) - Monday, 19 October 2009, 19:43 GMT
there is a post in the mailinglist about this issue:

i think it is since the fading for units without hardwarefading . I noticed it myself with the h300 but also saw it at my e200 (which I have not that long).
Comment by Marko Pahlke (perfectdrug) - Monday, 19 October 2009, 19:49 GMT
the last post in the mailing list sounds exactly like what I would think after seeing it myself. The longer you have the backlight off with hold the longer it flickers after releasing hold. Don't know if that is possible.
Comment by Rob Purchase (shotofadds) - Monday, 23 November 2009, 22:16 GMT
This is caused by multiple SYS_TIMEOUT events being queued while in hold mode (one will be queued for each caption backlight or button press).

This one-line patch appears to fix it (which I'll commit if there are no complaints)
Comment by Thomas Martitz (kugel.) - Monday, 23 November 2009, 22:51 GMT
Looks ok, but maybe rather like this?

if (queue_is_empty(&backlight_queue)

Just an idea, it may or may not work better. Nice catch anyway!
Comment by Rob Purchase (shotofadds) - Monday, 23 November 2009, 22:53 GMT
I just went with the same way backlight_on() works. I'll try both and see which is best.

EDIT: That works too and looks neater. I'll go with kugel's suggestion.
Comment by Jonas Häggqvist (rasher) - Monday, 14 March 2011, 07:37 GMT
Either this was never fixed in the first place, or it's been re-introduced, because it just happened to me again.
Comment by Jonathan Gordon (jdgordon) - Monday, 04 July 2011, 06:24 GMT
did you try the posted patch?

edit: hmm, ok, that change is in svn... perhaps duplicate it in the buttonlight_off() (fixing the obvious value to make sense thou)