Rockbox

This is the bug/patch tracker for Rockbox. Click here for more information.

Quick links: Bugs · Patches · Rockbox frontpage

Tasklist

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

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

Details

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, 02:55 GMT+2
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, 23:21 GMT+2
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) - Wednesday, 02 September 2009, 01:18 GMT+2
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.) - Wednesday, 02 September 2009, 01:19 GMT+2
That's a different bug I think.
Comment by Dorian (Narann) - Wednesday, 02 September 2009, 01:22 GMT+2
Ok, I create a new thread. ;)
Comment by Marko Pahlke (perfectdrug) - Monday, 19 October 2009, 21:43 GMT+2
there is a post in the mailinglist about this issue:
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2009-01/0152.shtml

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, 21:49 GMT+2
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, 23:16 GMT+2
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)
   backlight_hold_fix.diff (0.5 KiB)
 firmware/backlight.c |    1 +
 1 file changed, 1 insertion(+)

Comment by Thomas Martitz (kugel.) - Monday, 23 November 2009, 23:51 GMT+2
Looks ok, but maybe rather like this?

if (queue_is_empty(&backlight_queue)
queue_post();

Just an idea, it may or may not work better. Nice catch anyway!
Comment by Rob Purchase (shotofadds) - Monday, 23 November 2009, 23:53 GMT+2
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, 08:37 GMT+2
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, 08:24 GMT+2
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)

Loading...