From mboxrd@z Thu Jan 1 00:00:00 1970 From: daniel.lezcano@linaro.org (Daniel Lezcano) Date: Wed, 26 Nov 2014 22:25:00 +0100 Subject: [PATCH v9 2/9] qcom: spm: Add Subsystem Power Manager driver In-Reply-To: <7hy4qxet3c.fsf@deeprootsystems.com> References: <1414194024-55547-1-git-send-email-lina.iyer@linaro.org> <1414194024-55547-3-git-send-email-lina.iyer@linaro.org> <7hy4qxet3c.fsf@deeprootsystems.com> Message-ID: <5476452C.9040107@linaro.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 11/26/2014 07:04 PM, Kevin Hilman wrote: > Oops, I thought I had sent this, but it was sitting in the drafts > folder. Sending anyways because it looks like most of these issues > still exist in v10. [ ... ] >> + * On some SoC's if the control registers are written first and if the >> + * CPU was held in reset, the reset signal could trigger the SPM state >> + * machine, before the sequences are completely written. >> + */ >> + spm_register_write(drv, SPM_REG_CFG, drv->reg_data->spm_cfg); >> + spm_register_write(drv, SPM_REG_DLY, drv->reg_data->spm_dly); >> + spm_register_write(drv, SPM_REG_PMIC_DLY, drv->reg_data->pmic_dly); >> + >> + spm_register_write(drv, SPM_REG_PMIC_DATA_0, >> + drv->reg_data->pmic_data[0]); >> + spm_register_write(drv, SPM_REG_PMIC_DATA_1, >> + drv->reg_data->pmic_data[1]); >> + >> + /** >> + * Ensure all observers see the above register writes before the >> + * cpuidle driver is allowed to use the SPM. >> + */ >> + wmb(); >> + drv->available = true; > > Others have already commented on this, but I'll add my $0.02 that this > suggest something is not right in the init sequence. Yep, I did the same comment. There is very likely something wrong in the init sequence somewhere. Lina, you really have to lean over that. >> + if ((cpu > -1) && !cpuidle_drv_init) { >> + platform_device_register(&qcom_cpuidle_device); >> + cpuidle_drv_init = true; >> + } >> + >> + return 0; >> +} >> + [ ... ] -- Linaro.org ? Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog