static inline void platform_do_lowpower(unsigned int cpu) { /* Just enter wfi for now. TODO: Properly shut off the cpu. */ for (;;) { msm_pm_cpu_enter_lowpower(cpu); if (pen_release == cpu) { /* * OK, proper wakeup, we're done */ pen_release = -1; dmac_flush_range((void *)&pen_release, (void *)(&pen_release + sizeof(pen_release))); break; } /* * getting here, means that we have come out of WFI without * having been woken up - this shouldn't happen * * The trouble is, letting people know about this is not really * possible, since we are currently running incoherently, and * therefore cannot safely call printk() or anything else */ dmac_inv_range((void *)&pen_release, (void *)(&pen_release + sizeof(pen_release))); pr_debug("CPU%u: spurious wakeup call\n", cpu); } }
static inline void platform_do_lowpower(unsigned int cpu, int *spurious) { for (;;) { msm_pm_cpu_enter_lowpower(cpu); if (pen_release == cpu_logical_map(cpu)) { break; } (*spurious)++; } }
static inline void platform_do_lowpower(unsigned int cpu) { for (;;) { msm_pm_cpu_enter_lowpower(cpu); if (pen_release == cpu_logical_map(cpu)) { pen_release = -1; dmac_flush_range((void *)&pen_release, (void *)(&pen_release + sizeof(pen_release))); break; } dmac_inv_range((void *)&pen_release, (void *)(&pen_release + sizeof(pen_release))); pr_debug("CPU%u: spurious wakeup call\n", cpu); } }
static inline void platform_do_lowpower(unsigned int cpu, int *spurious) { /* Just enter wfi for now. TODO: Properly shut off the cpu. */ for (;;) { msm_pm_cpu_enter_lowpower(cpu); if (pen_release == cpu_logical_map(cpu)) { /* * OK, proper wakeup, we're done */ break; } /* * getting here, means that we have come out of WFI without * having been woken up - this shouldn't happen * * The trouble is, letting people know about this is not really * possible, since we are currently running incoherently, and * therefore cannot safely call printk() or anything else */ (*spurious)++; } }