Ticket #2062 (closed enhancement: fixed)

Opened 10 years ago

Last modified 9 years ago

xglamo doesn't implement any power management

Reported by: laforge Owned by: openmoko-kernel
Priority: normal Milestone:
Component: kernel Version:
Severity: blocker Keywords:
Cc: Blocked By:
Blocking: Estimated Completion (week):
HasPatchForReview: no PatchReviewResult:
Reproducible: always

Description

the glamo chip has very fine-grained power management features (such as clock-gating to every hardware functional unit). None of those features seem to be curently used in xglamo.

All I can find is a function to enable the clocking for a particular unit, but no function to disable the clocking, and thus no code that ever switches off any functional unit.

This is important when e.g. going to screen-blank situation. We can switch off the clocks to 2D engine, the DAC block, even disable any output of the high-frequency video signal.

And please don't tell me this is not worth optimizing because the system will suspend to RAM soon after blanking the screen. Imagine your mp3/ogg player running on the device. You will not suspend to ram, but still don't want to waste power generating a video signal that nobody can see due to backlight being blanked

Change History

comment:1 Changed 10 years ago by andy

Last time I looked at Xglamo sources it seemed to be based on a cut and paste of the kernel framebuffer driver for Glamo. There was stuff like locking for modal command queue and so on that didn't cooperate with the kernel side implementation for example.

Rather than adding things to XGlamo it might make sense to do these things on kernel side alone, for example with a callback to machine specific stuff whenever the backlight is enabled or disabled?

comment:2 Changed 10 years ago by zecke

Yes, only the kernel can know which other units of the glamo are unused and can power them down. But I agree that it needs addressing.

comment:3 Changed 10 years ago by laforge

I have now implemented at least disabling of the pixel clock. With some luck, this will already provide significant savings. Unfortunatly we cannot switch off the memory clock and put it in self-refresh as long as the sd/mmc driver might still need it. Since most users will have a card present (and mounted) at all time, it's probably not worth optimizing for that case.

I've sent the patches to openmoko-kernel but they're not yet in the archives...

comment:4 Changed 10 years ago by zecke

For the record I try to rebase xglamo to the latest upstream version and also try to get rid of the duplication between kernel and xglamo.

comment:5 Changed 9 years ago by PaulFertser

  • Status changed from new to closed
  • HasPatchForReview unset
  • Resolution set to fixed

Since xglamo is no longer relevant, closing. AFAIK power management is implemented to some extent (pixel clock disabling) in Lars's tree, it will be in the upcoming .31-based OM kernel.

Note: See TracTickets for help on using tickets.