FS#11330 - Clip*: disable peripherals in lcd_enable()

Attached to Project: Rockbox
Opened by Rafaël Carré (funman) - Saturday, 29 May 2010, 13:27 GMT
Last edited by Rafaël Carré (funman) - Friday, 30 July 2010, 17:31 GMT
Task Type Patches
Category LCD
Status Closed
Assigned To No-one
Operating System Another
Severity Low
Priority Normal
Reported Version Release 3.4
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


Switch off DBOP (or SSP for Clip+) clocks when LCD is not in use.

7 minutes more runtime on Clipv1
10 minutes more runtime on Clip+
6 minutes more runtime on Clipv2

These numbers are really low so we need more benches to be sure there is an effect at all.
This task depends upon

Closed by  Rafaël Carré (funman)
Friday, 30 July 2010, 17:31 GMT
Reason for closing:  Rejected
Additional comments about closing:  Clipv1 LCD sometimes stay off / (or crashes?) after unplugging USB
Comment by Bertrik Sikken (bertrik) - Sunday, 25 July 2010, 21:18 GMT
Attached in a resynced version of the patch (funman, please verify my sync). Don't we also need something like dbop_init in lcd-clipv2.c ?

I'll benchmark this in the clip+.
Comment by Rafaël Carré (funman) - Sunday, 25 July 2010, 21:28 GMT
Your sync looks alright

I added dbop_init() for clipv1 because the screen wouldn't go back on, but it worked on clipv2 with only toggling the clock enable bit.

Disabling the DBOP clock might reset some registers, we should verify what happens on clipv2 too, the registers might have a defaut reset value which works anyway.
Comment by Bertrik Sikken (bertrik) - Monday, 26 July 2010, 16:07 GMT
I got 17h21m with the patch compared to 17h17m earlier with plain SVN (benchmarked with the same album), so 4 minutes improvement for the Clip+ I tested on (a COMBO4E variant with new OLED controller and new SD controller). This was done with default settings (except repeat turned on), so most of the benchmark was done with the display OFF anyway.