On 11/18/2014 08:56 AM, Lina Iyer wrote: > On Fri, Nov 14 2014 at 15:46 -0700, Stephen Boyd wrote: >> On 10/24, Lina Iyer wrote: > >>> +{ >>> + struct spm_driver_data *drv = this_cpu_ptr(&cpu_spm_drv); >>> + u32 start_index; >>> + u32 ctl_val; >>> + >>> + if (!drv->available) >>> + return -ENXIO; >> >> It would be nice if we didn't need this by only registering the >> cpuidle device for this CPU once we've initialized the SPM >> hardware. >> > I did explore it. It strays our cpuidle code away from the standard code > that we are trying to go towards with idle-states framework. > > So fix the framework? >>> + >>> + /* Write the SPM sequences, first.. */ >>> + addr = drv->reg_base + >>> drv->reg_data->reg_offset[SPM_REG_SEQ_ENTRY]; >>> + seq_data = (const u32 *)drv->reg_data->seq; >> >> Why do we need a cast? >> > Compiler warns otherwise. > > How? $ cat main.c extern int magic(const void *d); struct m { unsigned int data[2]; }; struct s { const struct m *m; }; static const struct m m = { .data = { 0x345, 0x34}, }; static const struct s s = { .m = &m, }; int main() { const unsigned int *d; d = s.m->data; return magic(d); } $ gcc -c main.c > >>> + .of_match_table = spm_match_table, >>> + }, >>> +}; >>> + >>> +module_platform_driver(spm_driver); >> >> MODULE_LICENSE()? >> MODULE_ALIAS()? >> > MODULE_DESCRIPTION() would work? > Sure, add them all please. -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html