IMO the following does nothing more than continue to demonstrate my lack of understanding... but it does get
cat /sys/devices/system/cpu/cpuidle/current_driver
return "arm_idle" on 4.19 after booting.
I made the following hackish edits to 4.19 cpuidle-arm.c to make it "work" like 4.14:
/*
* Allow the initialization to continue for other CPUs, if the reported
* failure is a HW misconfiguration/breakage (-ENXIO).
*/
if (ret) {
//pr_err("CPU %d failed to init idle CPU ops\n", cpu);
ret = ret == -ENXIO ? 0 : ret;
//goto out_kfree_drv;
}
ret = cpuidle_register_driver(drv);
if (ret) {
if (ret != -EBUSY)
pr_err("Failed to register cpuidle driver\n");
goto out_kfree_drv;
}
/*
*dev = kzalloc(sizeof(*dev), GFP_KERNEL);
*if (!dev) {
* ret = -ENOMEM;
* goto out_unregister_drv;
*}
*dev->cpu = cpu;
*
*ret = cpuidle_register_device(dev);
*if (ret) {
* pr_err("Failed to register cpuidle device for CPU %d\n",
* cpu);
* goto out_kfree_dev;
*}
*/
return 0;
I'm away until Monday. I'd really like to get some kind of spec sheet for ipq8064. Are "spm" and "saw" even used?
EDIT: reference this and this regarding cpuidle, qcom-scm driver (not relevant?), and the transition from 4.4 to 4.9.