Hi everyone. I am writing some IPL code without Sony's kernel/firmware functioning in the background. The problem is, the LCD screen would automatically turn off just after a few minutes since my program started. Despite the black screen, everything else (including the sio console) still worked fine suggesting the machine was not in a sleep mode (at least the cpu and uart3 is still functioning).
Here is some more details. The LCD screen is initialized by Sony's kernel and my code just take over the cpu and replace the kernel in RAM to keep on running (thus the kernel is no longer there to look after the LCD). Since none of the code I wrote has the ability to control the LCD screen, i suspect the screen blackout could be the result of some sort of power-saving feature pre-activated by Sony's kernel. However, even if I turned off all the power-saving measures from the kernel before launching my own code, the black screen still persists.
Actually having the black screen when idling is good (which means i can still save some power when running my own program). But how to turn it back on? I have tried the following lines picked up from the IPL SDK (though i have absolutely no idea what they actually do), but none of them seemed working:
a) pspSysconCtrlPower(SYSCON_DEV_LCD|SYSCON_DEV_ON);
b) // GPIO.0 (LCD ON)
REG32(0xbe240000) |= 0x00000001;
REG32(0xbe240008) = 0x00000001;
Does anyone has any idea how to do this?
Thanks!
How to keep the PSP LCD screen power on?
In the SDK there is:
You could check out what that does and do the same probably.
Code: Select all
/**
* Generate a power tick, preventing unit from
* powering off and turning off display.
*
* @param unknown - pass 0
*/
int scePowerTick(int unknown);
HAHAHA, finally, after numerous of tests I eventually found out that it was not the power of lcd that got turned off after 10 minutes at all, it was merely the Linux kernel that tried to blank out the screen when the blank timer expired and swithed the framebuffer driver to some strange mode making it looked like a screen black out due to power saving, an idea so misleading and pushing me way off the course of investigation.
It now seems to me that the lcd device will just stay the way it was once initialized unless deliberate attempts are made later to force it to act differently (like changing graphic modes, or turning into a real power saving state, something that the Sony firmware is all capable of), so i won't bother to look into the firmware to figure out how it plays tricks with the lcd. But still thanks everyone who offered me help here :)
It now seems to me that the lcd device will just stay the way it was once initialized unless deliberate attempts are made later to force it to act differently (like changing graphic modes, or turning into a real power saving state, something that the Sony firmware is all capable of), so i won't bother to look into the firmware to figure out how it plays tricks with the lcd. But still thanks everyone who offered me help here :)