From: Greg Kroah-Hartman Date: Sat, 28 Jul 2018 06:50:37 +0000 (+0200) Subject: 4.17-stable patches X-Git-Tag: v4.17.12~36 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9e389c77113ddf5bec31ee530a3d4f3011fbf871;p=thirdparty%2Fkernel%2Fstable-queue.git 4.17-stable patches added patches: spi-spi-s3c64xx-fix-system-resume-support.patch --- diff --git a/queue-4.17/spi-spi-s3c64xx-fix-system-resume-support.patch b/queue-4.17/spi-spi-s3c64xx-fix-system-resume-support.patch new file mode 100644 index 00000000000..e6b9988fec2 --- /dev/null +++ b/queue-4.17/spi-spi-s3c64xx-fix-system-resume-support.patch @@ -0,0 +1,49 @@ +From e935dba111621bd6a0c5d48e6511a4d9885103b4 Mon Sep 17 00:00:00 2001 +From: Marek Szyprowski +Date: Wed, 16 May 2018 10:42:39 +0200 +Subject: spi: spi-s3c64xx: Fix system resume support + +From: Marek Szyprowski + +commit e935dba111621bd6a0c5d48e6511a4d9885103b4 upstream. + +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 +Reviewed-by: Krzysztof Kozlowski +Signed-off-by: Mark Brown +Cc: stable@vger.kernel.org +Signed-off-by: Sudip Mukherjee +Signed-off-by: Greg Kroah-Hartman +--- + drivers/spi/spi-s3c64xx.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/spi/spi-s3c64xx.c ++++ b/drivers/spi/spi-s3c64xx.c +@@ -1260,8 +1260,6 @@ static int s3c64xx_spi_resume(struct dev + if (ret < 0) + return ret; + +- s3c64xx_spi_hwinit(sdd, sdd->port_id); +- + return spi_master_resume(master); + } + #endif /* CONFIG_PM_SLEEP */ +@@ -1299,6 +1297,8 @@ static int s3c64xx_spi_runtime_resume(st + if (ret != 0) + goto err_disable_src_clk; + ++ s3c64xx_spi_hwinit(sdd, sdd->port_id); ++ + return 0; + + err_disable_src_clk: