sh: hwblk base implementation
Quoted 13 lines · Magnus Damm
This patch is the hwblk base implementation, containing structures and shared functions dealing with hardware blocks.
A each processor model should provide a list of hwblks and describe which module stop bit that is associated with each hwblck and how the hwblks are grouped together into areas.
The shared code keeps track of the usage count for each hwblk and the areas. Fallback implementations for processor specific code are also kept as weak symbols.
The clock framework, the runtime pm code and cpuidle will all tie into this hwblk implementation.
Quoted 6 lines · Magnus Damm
This patch contains the sh7722 specific hwblk implementation.
Hwblk ids are added to the processor specific header file, module stop bits and areas are kept track of as hwblks, clocks are converted to make use of the shared hwblk code. Code to determine allowed sleep modes is also added.
Quoted 6 lines · Magnus Damm
This patch adds cpuidle support for SuperH Mobile.
The sleep mode selected by cpuidle is compared with the mode selected by the hwblk sleep code and the best allowed mode is entered.
Quoted 7 lines
At this point "Sleep mode" and "Sleep mode + SF" are supported. This code can easily be extended to support "Software suspend mode", but the assembly code must first be updated to avoid loosing interrupts.
Also, update the code to only copy the assembly snippet into internal memory once at bootup.
All applied, thanks.