| From ad3794d1f29c79c25e51a986d6e66d9179a0495f Mon Sep 17 00:00:00 2001 |
| From: Wolfram Sang <wsa+renesas@sang-engineering.com> |
| Date: Thu, 20 Apr 2017 12:04:33 +0200 |
| Subject: [PATCH 050/286] i2c: rcar: clarify PM handling with more comments |
| |
| PM handling is correct but might be a bit subtle. Add some comments for |
| clarification. |
| |
| Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> |
| Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
| Signed-off-by: Wolfram Sang <wsa@the-dreams.de> |
| (cherry picked from commit 63a761eef55759c0bc725739fe575193c09fa4ef) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/i2c/busses/i2c-rcar.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/i2c/busses/i2c-rcar.c |
| +++ b/drivers/i2c/busses/i2c-rcar.c |
| @@ -753,6 +753,7 @@ static int rcar_reg_slave(struct i2c_cli |
| if (slave->flags & I2C_CLIENT_TEN) |
| return -EAFNOSUPPORT; |
| |
| + /* Keep device active for slave address detection logic */ |
| pm_runtime_get_sync(rcar_i2c_priv_to_dev(priv)); |
| |
| priv->slave = slave; |
| @@ -856,13 +857,14 @@ static int rcar_i2c_probe(struct platfor |
| priv->dma_direction = DMA_NONE; |
| priv->dma_rx = priv->dma_tx = ERR_PTR(-EPROBE_DEFER); |
| |
| + /* Activate device for clock calculation */ |
| pm_runtime_enable(dev); |
| pm_runtime_get_sync(dev); |
| ret = rcar_i2c_clock_calculate(priv, &i2c_t); |
| if (ret < 0) |
| goto out_pm_put; |
| |
| - /* Don't suspend when multi-master to keep arbitration working */ |
| + /* Stay always active when multi-master to keep arbitration working */ |
| if (of_property_read_bool(dev->of_node, "multi-master")) |
| priv->flags |= ID_P_PM_BLOCKED; |
| else |