AMD Geode GX/LX support
PATCH 3/7 AMD Geode GX/LX support
This is a simple patch that fixes console APM blanking on the GX/LX platforms with BIOSes that still support APM. Please apply against linux-2.4.14-rc2-mm2.
Signed off by: Jordan Crouse ([email protected])
arch/i386/kernel/apm.c +14 -13
@@ -1057,22 +1057,23 @@ static int apm_engage_power_management(ustatic int apm_console_blank (int blank) { -int error; -u_short state; +int error, i; +u_short state; +u_short dev[3 ] = {0x100 ,0x1FF ,0x101 }; state = blank ?APM_STATE_STANDBY :APM_STATE_READY ; -/* Blank the first display device */ - error =set_power_state (0x100 , state); -if ((error !=APM_SUCCESS ) && (error !=APM_NO_ERROR )) { -/* try to blank them all instead */ - error =set_power_state (0x1ff , state); -if ((error !=APM_SUCCESS ) && (error !=APM_NO_ERROR )) -/* try to blank device one instead */ - error =set_power_state (0x101 , state); + +for (i =0 ; i <3 ; i++) { + error =set_power_state (dev[i], state); + +if ((error ==APM_SUCCESS ) || (error ==APM_NO_ERROR )) +return 1 ; + +if (error ==APM_NOT_ENGAGED ) +break ; } -if ((error ==APM_SUCCESS ) || (error ==APM_NO_ERROR )) -return 1 ; -if (error ==APM_NOT_ENGAGED ) { + +if (error ==APM_NOT_ENGAGED && state !=APM_STATE_READY ) {static int tried;int eng_error;if (tried++ ==0 ) {