Loading drivers/spi/spi-geni-qcom.c +27 −18 Original line number Diff line number Diff line Loading @@ -786,6 +786,25 @@ static int spi_geni_prepare_message(struct spi_master *spi, } } if (pm_runtime_status_suspended(mas->dev)) { if (!pm_runtime_enabled(mas->dev)) { GENI_SE_ERR(mas->ipc, false, NULL, "%s: System suspended\n", __func__); return -EACCES; } ret = pm_runtime_get_sync(mas->dev); if (ret < 0) { dev_err(mas->dev, "%s:pm_runtime_get_sync failed %d\n", __func__, ret); WARN_ON_ONCE(1); pm_runtime_put_noidle(mas->dev); /* Set device in suspended since resume failed */ pm_runtime_set_suspended(mas->dev); return ret; } } mas->cur_xfer_mode = select_xfer_mode(spi, spi_msg); if (mas->cur_xfer_mode < 0) { Loading Loading @@ -1877,27 +1896,17 @@ static int spi_geni_resume(struct device *dev) static int spi_geni_suspend(struct device *dev) { int ret = 0; if (!pm_runtime_status_suspended(dev)) { struct spi_master *spi = get_spi_master(dev); struct spi_geni_master *geni_mas = spi_master_get_devdata(spi); if (list_empty(&spi->queue) && !spi->cur_msg) { GENI_SE_ERR(geni_mas->ipc, true, dev, "%s: Force suspend", __func__); ret = spi_geni_runtime_suspend(dev); if (ret) { if (!pm_runtime_status_suspended(dev)) { GENI_SE_ERR(geni_mas->ipc, true, dev, "Force suspend Failed:%d", ret); } else { pm_runtime_disable(dev); pm_runtime_set_suspended(dev); pm_runtime_enable(dev); } } else { ":%s: runtime PM is active\n", __func__); ret = -EBUSY; return ret; } } GENI_SE_ERR(geni_mas->ipc, true, dev, ":%s: End\n", __func__); return ret; } #else Loading Loading
drivers/spi/spi-geni-qcom.c +27 −18 Original line number Diff line number Diff line Loading @@ -786,6 +786,25 @@ static int spi_geni_prepare_message(struct spi_master *spi, } } if (pm_runtime_status_suspended(mas->dev)) { if (!pm_runtime_enabled(mas->dev)) { GENI_SE_ERR(mas->ipc, false, NULL, "%s: System suspended\n", __func__); return -EACCES; } ret = pm_runtime_get_sync(mas->dev); if (ret < 0) { dev_err(mas->dev, "%s:pm_runtime_get_sync failed %d\n", __func__, ret); WARN_ON_ONCE(1); pm_runtime_put_noidle(mas->dev); /* Set device in suspended since resume failed */ pm_runtime_set_suspended(mas->dev); return ret; } } mas->cur_xfer_mode = select_xfer_mode(spi, spi_msg); if (mas->cur_xfer_mode < 0) { Loading Loading @@ -1877,27 +1896,17 @@ static int spi_geni_resume(struct device *dev) static int spi_geni_suspend(struct device *dev) { int ret = 0; if (!pm_runtime_status_suspended(dev)) { struct spi_master *spi = get_spi_master(dev); struct spi_geni_master *geni_mas = spi_master_get_devdata(spi); if (list_empty(&spi->queue) && !spi->cur_msg) { GENI_SE_ERR(geni_mas->ipc, true, dev, "%s: Force suspend", __func__); ret = spi_geni_runtime_suspend(dev); if (ret) { if (!pm_runtime_status_suspended(dev)) { GENI_SE_ERR(geni_mas->ipc, true, dev, "Force suspend Failed:%d", ret); } else { pm_runtime_disable(dev); pm_runtime_set_suspended(dev); pm_runtime_enable(dev); } } else { ":%s: runtime PM is active\n", __func__); ret = -EBUSY; return ret; } } GENI_SE_ERR(geni_mas->ipc, true, dev, ":%s: End\n", __func__); return ret; } #else Loading