• Status Closed
  • Percent Complete
  • Task Type Bugs
  • Category Operating System/Drivers
  • Assigned To No-one
  • Operating System Another
  • Severity Low
  • Priority Very Low
  • Reported Version Release 3.6
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by Bertrik Sikken - 2010-07-03
Last edited by Bertrik Sikken - 2010-11-01

FS#11453 - AMSv2: power down fails sometimes when wake-up alarm timer set

When using the wake-up alarm on AMSv2 players, the power-off often does not work when an wake-up alarm time has been set. A typical symptom is that on power-down the display shows “shutting down”, dims a bit, but never actually shuts down.

I can reliably reproduce this on my sansa clip+ as follows:
* Set an alarm to wake up in 2 minutes after the current time
* Power off the player and wait until players wakes up
* Set back the current time by 2 minutes and set the alarm again.
* Power off the player → it hangs while showing “shutting down” with the display slightly dimmed.

Attached patch fixes it for me completely (although funman still reports problems even with this patch)

Closed by  Bertrik Sikken
2010-11-01 19:01
Reason for closing:  Fixed
Additional comments about closing:  

The idea of alarm2.diff has been committed as SVN r28435. Seems to be completely fixed now, please re-open if you see a shutdown-for-wakeup problem.

Bertrik Sikken commented on 2010-07-05 15:36

Attached patch is a bit cleaned up. It introduces two local functions wakeup_read and wakeup_write that read/write the wakeup register making sure that the read/write sequence is cannot be interrupted.

This works flawless here on my clip+ so far, I haven’t seen any failed power-downs and the player wakes up at the proper time.

Bertrik Sikken commented on 2010-07-07 09:21

Attached patch cleans it up a little more by moving all of the alarm data into a struct that is encoded/written by the alarm_write function and read/decoded by the alarm_read function.

Bertrik Sikken commented on 2010-07-16 10:06

I’ve committed patch wakeup3.patch as SVN r27447 and I’m leaving this task open for a while in case the problem hasn’t been solved completely

Marek Salaba commented on 2010-07-20 09:50

I tested on Fuse2 with SVN > SVN r27447 and work fine. Before always faills me.

Fabian Vogel commented on 2010-08-03 14:55

I can often reproduce the “shutting down”-symptom on my clip+ r27662 as follows:
* set an alarm time
* record something (5 seconds or longer)
* stop recording and
* power off immediately

Bertrik Sikken commented on 2010-08-03 21:15

On my clip+ it seems now that either having played back something or having recorded something causes the power-down for wakeup to fail. The AS3543 datasheet shows MCLK as a possible wake-up source, so maybe MCLK is somehow preventing the power-down. MCLK is a clock used in playback and recording.

Bertrik Sikken commented on 2010-08-08 20:59

This proof-of-concept patch seems to fix the case with shutdown after recording for me. It writes to CGU_AUDIO to configure the MCLK just before going into powerdown-for-wakeup, so this supports my suspicion that it’s related to MCLK. The value written to CGU_AUDIO is the one that I see on my clip+ before having recorded or played back anything.

Fabian Vogel commented on 2010-08-12 16:10

If you repeat the
* set-alarm-time
* playback something
* stop and
* powerdown-for-wakeup
procedure 3-4 times, it will often fail.

Fabian Vogel commented on 2010-09-07 19:31

bertrik you are right that MCLK prevent the power-down. But in the CGU_AUDIO Register the disable of I2SO_MCLK (bit 11 = 0) sometimes fails. So I enabled bit 11 and pllb_fout (bit 1) . Then I powered down PLLB in CGU_PLLBSUP by bit 3. Works fine.


Available keyboard shortcuts


Task Details

Task Editing