soundwire: bus: use no_pm IO routines for all interrupt handling
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Fri, 22 Jan 2021 07:06:28 +0000 (15:06 +0800)
committerVinod Koul <vkoul@kernel.org>
Sat, 6 Feb 2021 10:24:53 +0000 (15:54 +0530)
There is no need to play with pm_runtime reference counts, if needed
the codec drivers are already explicitly resumed.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20210122070634.12825-4-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/soundwire/bus.c

index b8b578191a3b6d08987db36b9b7091c7159a4697..675d028e923d7c0cd8abd041c177c3e947d6146c 100644 (file)
@@ -1293,7 +1293,7 @@ static int sdw_handle_dp0_interrupt(struct sdw_slave *slave, u8 *slave_status)
        u8 clear, impl_int_mask;
        int status, status2, ret, count = 0;
 
-       status = sdw_read(slave, SDW_DP0_INT);
+       status = sdw_read_no_pm(slave, SDW_DP0_INT);
        if (status < 0) {
                dev_err(slave->bus->dev,
                        "SDW_DP0_INT read failed:%d\n", status);
@@ -1332,7 +1332,7 @@ static int sdw_handle_dp0_interrupt(struct sdw_slave *slave, u8 *slave_status)
                }
 
                /* clear the interrupts but don't touch reserved and SDCA_CASCADE fields */
-               ret = sdw_write(slave, SDW_DP0_INT, clear);
+               ret = sdw_write_no_pm(slave, SDW_DP0_INT, clear);
                if (ret < 0) {
                        dev_err(slave->bus->dev,
                                "SDW_DP0_INT write failed:%d\n", ret);
@@ -1340,7 +1340,7 @@ static int sdw_handle_dp0_interrupt(struct sdw_slave *slave, u8 *slave_status)
                }
 
                /* Read DP0 interrupt again */
-               status2 = sdw_read(slave, SDW_DP0_INT);
+               status2 = sdw_read_no_pm(slave, SDW_DP0_INT);
                if (status2 < 0) {
                        dev_err(slave->bus->dev,
                                "SDW_DP0_INT read failed:%d\n", status2);
@@ -1371,7 +1371,7 @@ static int sdw_handle_port_interrupt(struct sdw_slave *slave,
                return sdw_handle_dp0_interrupt(slave, slave_status);
 
        addr = SDW_DPN_INT(port);
-       status = sdw_read(slave, addr);
+       status = sdw_read_no_pm(slave, addr);
        if (status < 0) {
                dev_err(slave->bus->dev,
                        "SDW_DPN_INT read failed:%d\n", status);
@@ -1405,7 +1405,7 @@ static int sdw_handle_port_interrupt(struct sdw_slave *slave,
                }
 
                /* clear the interrupt but don't touch reserved fields */
-               ret = sdw_write(slave, addr, clear);
+               ret = sdw_write_no_pm(slave, addr, clear);
                if (ret < 0) {
                        dev_err(slave->bus->dev,
                                "SDW_DPN_INT write failed:%d\n", ret);
@@ -1413,7 +1413,7 @@ static int sdw_handle_port_interrupt(struct sdw_slave *slave,
                }
 
                /* Read DPN interrupt again */
-               status2 = sdw_read(slave, addr);
+               status2 = sdw_read_no_pm(slave, addr);
                if (status2 < 0) {
                        dev_err(slave->bus->dev,
                                "SDW_DPN_INT read failed:%d\n", status2);
@@ -1455,7 +1455,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
        }
 
        /* Read Intstat 1, Intstat 2 and Intstat 3 registers */
-       ret = sdw_read(slave, SDW_SCP_INT1);
+       ret = sdw_read_no_pm(slave, SDW_SCP_INT1);
        if (ret < 0) {
                dev_err(slave->bus->dev,
                        "SDW_SCP_INT1 read failed:%d\n", ret);
@@ -1463,7 +1463,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
        }
        buf = ret;
 
-       ret = sdw_nread(slave, SDW_SCP_INTSTAT2, 2, buf2);
+       ret = sdw_nread_no_pm(slave, SDW_SCP_INTSTAT2, 2, buf2);
        if (ret < 0) {
                dev_err(slave->bus->dev,
                        "SDW_SCP_INT2/3 read failed:%d\n", ret);
@@ -1471,7 +1471,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
        }
 
        if (slave->prop.is_sdca) {
-               ret = sdw_read(slave, SDW_DP0_INT);
+               ret = sdw_read_no_pm(slave, SDW_DP0_INT);
                if (ret < 0) {
                        dev_err(slave->bus->dev,
                                "SDW_DP0_INT read failed:%d\n", ret);
@@ -1568,7 +1568,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
                }
 
                /* Ack interrupt */
-               ret = sdw_write(slave, SDW_SCP_INT1, clear);
+               ret = sdw_write_no_pm(slave, SDW_SCP_INT1, clear);
                if (ret < 0) {
                        dev_err(slave->bus->dev,
                                "SDW_SCP_INT1 write failed:%d\n", ret);
@@ -1582,7 +1582,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
                 * Read status again to ensure no new interrupts arrived
                 * while servicing interrupts.
                 */
-               ret = sdw_read(slave, SDW_SCP_INT1);
+               ret = sdw_read_no_pm(slave, SDW_SCP_INT1);
                if (ret < 0) {
                        dev_err(slave->bus->dev,
                                "SDW_SCP_INT1 read failed:%d\n", ret);
@@ -1590,7 +1590,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
                }
                _buf = ret;
 
-               ret = sdw_nread(slave, SDW_SCP_INTSTAT2, 2, _buf2);
+               ret = sdw_nread_no_pm(slave, SDW_SCP_INTSTAT2, 2, _buf2);
                if (ret < 0) {
                        dev_err(slave->bus->dev,
                                "SDW_SCP_INT2/3 read failed:%d\n", ret);
@@ -1598,7 +1598,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
                }
 
                if (slave->prop.is_sdca) {
-                       ret = sdw_read(slave, SDW_DP0_INT);
+                       ret = sdw_read_no_pm(slave, SDW_DP0_INT);
                        if (ret < 0) {
                                dev_err(slave->bus->dev,
                                        "SDW_DP0_INT read failed:%d\n", ret);