Athlon XP-M 3000+ won't return to highest CPU freq after being on battery
I'm running Slackware current with kernel 22.214.171.124 on an eMachines M2352 laptop. I've got ACPI working and I'm using the ondemand cpu governor. Here's my problem: if I boot while on AC power, the computer will use its full speed of 2186 mhz, but if I ever switch to battery power ondemand will only take it up to 1457 mhz. Even if I plug it back in, it will only go up to 1457 mhz until I reboot it. If I hibernate it and resume with software suspend 2, it still is limited to 1457 mhz.
Whether I'm plugged in or not, cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies returns the following:
2186580 1855280 1457720 1325200 1192680 1060160 795120 530080
Here's what /proc/cpuinfo returns:
processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 10
model name : Mobile AMD Athlon(tm) XP 3000+
stepping : 0
cpu MHz : 530.083
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mp mmxext 3dnowext 3dnow
bogomips : 1061.61
This is not a huge issue, as 1457 mhz is still pretty quick, but it's annoying just the knowledge that I'm not running on full cpu. I have observed this issue since the first time I compiled a kernel with a CPU scaling governor. I'm not sure if it was happening before that, but I've looked around the kernel and haven't seen anything that might do this.
I have also tried switching the governor to userspace and manually setting the /sys entry to 2186 mhz, but the highest it will go is 1457.
There appears to be nothing in my ACPI event handler that could possibly be doing this either.
Any help is greatly appreciated.