diff mbox

[RFC,v3,1/6] spi: core: add support for wakeup-source dts property

Message ID 1498039313-24220-2-git-send-email-jeffy.chen@rock-chips.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jeffy Chen June 21, 2017, 10:01 a.m. UTC
Use generic wakeup-source property to enable spi device wakeup.

Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
---

Changes in v3: None

 drivers/spi/spi.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

Comments

Mark Brown June 21, 2017, 10:52 a.m. UTC | #1
On Wed, Jun 21, 2017 at 06:01:48PM +0800, Jeffy Chen wrote:
> Use generic wakeup-source property to enable spi device wakeup.

If this is a generic property shouldn't it be in the driver core rather
than individual subsystems?
diff mbox

Patch

diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index c3f6b52..a510bba 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -547,11 +547,16 @@  int spi_add_device(struct spi_device *spi)
 
 	/* Device may be bound to an active driver when this returns */
 	status = device_add(&spi->dev);
-	if (status < 0)
+	if (status < 0) {
 		dev_err(dev, "can't add %s, status %d\n",
-				dev_name(&spi->dev), status);
-	else
-		dev_dbg(dev, "registered child %s\n", dev_name(&spi->dev));
+			dev_name(&spi->dev), status);
+		goto done;
+	}
+
+	dev_dbg(dev, "registered child %s\n", dev_name(&spi->dev));
+
+	if (device_property_read_bool(&spi->dev, "wakeup-source"))
+		device_init_wakeup(&spi->dev, true);
 
 done:
 	mutex_unlock(&spi_add_lock);
@@ -638,6 +643,8 @@  void spi_unregister_device(struct spi_device *spi)
 	if (!spi)
 		return;
 
+	device_init_wakeup(&spi->dev, false);
+
 	if (spi->dev.of_node) {
 		of_node_clear_flag(spi->dev.of_node, OF_POPULATED);
 		of_node_put(spi->dev.of_node);