spi: s3c64xx: Fix pm_runtime_get_sync() return value check
authorSylwester Nawrocki <s.nawrocki@samsung.com>
Mon, 10 Jun 2013 16:22:26 +0000 (18:22 +0200)
committerMark Brown <broonielinaro.org>
Mon, 10 Jun 2013 17:04:00 +0000 (18:04 +0100)
If the device is already in a runtime PM enabled state
pm_runtime_get_sync() will return 1, so a test for negative
value should be used to check for errors.

Without this patch there are seen errors like:

[    8.540000] s3c64xx-spi 13930000.spi: Failed to enable device: 1
[    8.545000] spi_master spi1: failed to prepare transfer hardware

Likely because the driver uses synchronous API to runtime enable
the device and asynchronous one to disable it.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mark Brown <broonielinaro.org>
Cc: stable@vger.kernel.org
drivers/spi/spi-s3c64xx.c

index 5000586cb98da2331b0cbe1c31ec26b0f6f40eb4..71cc3e6ef47ca770dd73c4d55f8153d42a8471aa 100644 (file)
@@ -444,7 +444,7 @@ static int s3c64xx_spi_prepare_transfer(struct spi_master *spi)
        }
 
        ret = pm_runtime_get_sync(&sdd->pdev->dev);
-       if (ret != 0) {
+       if (ret < 0) {
                dev_err(dev, "Failed to enable device: %d\n", ret);
                goto out_tx;
        }