Since Linux v4.10 release (commit 1d9174fbc55e "PM / Runtime: Defer resuming of the device in pm_runtime_force_resume()"), pm_runtime_force_resume() function doesn't runtime resume device if it was not runtime active before system suspend. Thus, driver should not do any register access after pm_runtime_force_resume() without checking the runtime status of the device. To fix this issue, simply move s3c64xx_spi_hwinit() call to s3c64xx_spi_runtime_resume() to ensure that hardware is always properly initialized. This fixes Synchronous external abort issue on system suspend/resume cycle on newer Exynos SoCs.
Signed-off-by: Marek Szyprowski m.szyprowski@samsung.com CC: stable@vger.kernel.org # 4.10.x: 1c75862d8e5a spi: spi-s3c64xx: Remove unused s3c64xx_spi_hwinit() CC: stable@vger.kernel.org # 4.10.x Reviewed-by: Krzysztof Kozlowski krzk@kernel.org Acked-by: Andi Shyti andi@etezian.org --- Resend reason: added cc: stable, reviewed and acked tags --- drivers/spi/spi-s3c64xx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c index f55dc78957ad..7b7151ec14c8 100644 --- a/drivers/spi/spi-s3c64xx.c +++ b/drivers/spi/spi-s3c64xx.c @@ -1292,8 +1292,6 @@ static int s3c64xx_spi_resume(struct device *dev) if (ret < 0) return ret;
- s3c64xx_spi_hwinit(sdd); - return spi_master_resume(master); } #endif /* CONFIG_PM_SLEEP */ @@ -1331,6 +1329,8 @@ static int s3c64xx_spi_runtime_resume(struct device *dev) if (ret != 0) goto err_disable_src_clk;
+ s3c64xx_spi_hwinit(sdd); + return 0;
err_disable_src_clk:
On Thu, May 17, 2018 at 6:41 PM, Mark Brown broonie@kernel.org wrote:
On Thu, May 17, 2018 at 12:15:08PM +0200, Marek Szyprowski wrote:
Resend reason: added cc: stable, reviewed and acked tags
Please don't resend so quickly for stuff like this, it just makes noise
- stable doesn't need to be CCed on e-mails.
Hi Mark,
The point of resend was to add the specific cc-stable tags with a prerequisite for backporting: CC: stable@vger.kernel.org # 4.10.x: 1c75862d8e5a spi: spi-s3c64xx: Remove unused s3c64xx_spi_hwinit() CC: stable@vger.kernel.org # 4.10.x Unfortunately I saw that these did not end up in patch you committed. Mentioning required commit is, I think, quite helpful for stable guys.
Best regards, Krzysztof
On Fri, May 18, 2018 at 07:33:03AM +0200, Krzysztof Kozlowski wrote:
The point of resend was to add the specific cc-stable tags with a prerequisite for backporting: CC: stable@vger.kernel.org # 4.10.x: 1c75862d8e5a spi: spi-s3c64xx: Remove unused s3c64xx_spi_hwinit() CC: stable@vger.kernel.org # 4.10.x
Unfortunately I saw that these did not end up in patch you committed. Mentioning required commit is, I think, quite helpful for stable guys.
If you want to mention the commit being fixed then use a Fixes: tag. I was complaining because I'd already applied the commit before that got resent so I had to try to figure out what was going on with it.
linux-stable-mirror@lists.linaro.org