Commit c30b63ef authored by Pierre-Louis Bossart's avatar Pierre-Louis Bossart Committed by Vinod Koul

soundwire: bus: use no_pm IO routines for all interrupt handling

There is no need to play with pm_runtime reference counts, if needed
the codec drivers are already explicitly resumed.
Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: default avatarRander Wang <rander.wang@linux.intel.com>
Signed-off-by: default avatarBard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20210122070634.12825-4-yung-chuan.liao@linux.intel.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent 299e9780
...@@ -1293,7 +1293,7 @@ static int sdw_handle_dp0_interrupt(struct sdw_slave *slave, u8 *slave_status) ...@@ -1293,7 +1293,7 @@ static int sdw_handle_dp0_interrupt(struct sdw_slave *slave, u8 *slave_status)
u8 clear, impl_int_mask; u8 clear, impl_int_mask;
int status, status2, ret, count = 0; 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) { if (status < 0) {
dev_err(slave->bus->dev, dev_err(slave->bus->dev,
"SDW_DP0_INT read failed:%d\n", status); "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) ...@@ -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 */ /* 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) { if (ret < 0) {
dev_err(slave->bus->dev, dev_err(slave->bus->dev,
"SDW_DP0_INT write failed:%d\n", ret); "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) ...@@ -1340,7 +1340,7 @@ static int sdw_handle_dp0_interrupt(struct sdw_slave *slave, u8 *slave_status)
} }
/* Read DP0 interrupt again */ /* Read DP0 interrupt again */
status2 = sdw_read(slave, SDW_DP0_INT); status2 = sdw_read_no_pm(slave, SDW_DP0_INT);
if (status2 < 0) { if (status2 < 0) {
dev_err(slave->bus->dev, dev_err(slave->bus->dev,
"SDW_DP0_INT read failed:%d\n", status2); "SDW_DP0_INT read failed:%d\n", status2);
...@@ -1371,7 +1371,7 @@ static int sdw_handle_port_interrupt(struct sdw_slave *slave, ...@@ -1371,7 +1371,7 @@ static int sdw_handle_port_interrupt(struct sdw_slave *slave,
return sdw_handle_dp0_interrupt(slave, slave_status); return sdw_handle_dp0_interrupt(slave, slave_status);
addr = SDW_DPN_INT(port); addr = SDW_DPN_INT(port);
status = sdw_read(slave, addr); status = sdw_read_no_pm(slave, addr);
if (status < 0) { if (status < 0) {
dev_err(slave->bus->dev, dev_err(slave->bus->dev,
"SDW_DPN_INT read failed:%d\n", status); "SDW_DPN_INT read failed:%d\n", status);
...@@ -1405,7 +1405,7 @@ static int sdw_handle_port_interrupt(struct sdw_slave *slave, ...@@ -1405,7 +1405,7 @@ static int sdw_handle_port_interrupt(struct sdw_slave *slave,
} }
/* clear the interrupt but don't touch reserved fields */ /* 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) { if (ret < 0) {
dev_err(slave->bus->dev, dev_err(slave->bus->dev,
"SDW_DPN_INT write failed:%d\n", ret); "SDW_DPN_INT write failed:%d\n", ret);
...@@ -1413,7 +1413,7 @@ static int sdw_handle_port_interrupt(struct sdw_slave *slave, ...@@ -1413,7 +1413,7 @@ static int sdw_handle_port_interrupt(struct sdw_slave *slave,
} }
/* Read DPN interrupt again */ /* Read DPN interrupt again */
status2 = sdw_read(slave, addr); status2 = sdw_read_no_pm(slave, addr);
if (status2 < 0) { if (status2 < 0) {
dev_err(slave->bus->dev, dev_err(slave->bus->dev,
"SDW_DPN_INT read failed:%d\n", status2); "SDW_DPN_INT read failed:%d\n", status2);
...@@ -1455,7 +1455,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave) ...@@ -1455,7 +1455,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
} }
/* Read Intstat 1, Intstat 2 and Intstat 3 registers */ /* 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) { if (ret < 0) {
dev_err(slave->bus->dev, dev_err(slave->bus->dev,
"SDW_SCP_INT1 read failed:%d\n", ret); "SDW_SCP_INT1 read failed:%d\n", ret);
...@@ -1463,7 +1463,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave) ...@@ -1463,7 +1463,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
} }
buf = ret; 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) { if (ret < 0) {
dev_err(slave->bus->dev, dev_err(slave->bus->dev,
"SDW_SCP_INT2/3 read failed:%d\n", ret); "SDW_SCP_INT2/3 read failed:%d\n", ret);
...@@ -1471,7 +1471,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave) ...@@ -1471,7 +1471,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
} }
if (slave->prop.is_sdca) { if (slave->prop.is_sdca) {
ret = sdw_read(slave, SDW_DP0_INT); ret = sdw_read_no_pm(slave, SDW_DP0_INT);
if (ret < 0) { if (ret < 0) {
dev_err(slave->bus->dev, dev_err(slave->bus->dev,
"SDW_DP0_INT read failed:%d\n", ret); "SDW_DP0_INT read failed:%d\n", ret);
...@@ -1568,7 +1568,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave) ...@@ -1568,7 +1568,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
} }
/* Ack interrupt */ /* Ack interrupt */
ret = sdw_write(slave, SDW_SCP_INT1, clear); ret = sdw_write_no_pm(slave, SDW_SCP_INT1, clear);
if (ret < 0) { if (ret < 0) {
dev_err(slave->bus->dev, dev_err(slave->bus->dev,
"SDW_SCP_INT1 write failed:%d\n", ret); "SDW_SCP_INT1 write failed:%d\n", ret);
...@@ -1582,7 +1582,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave) ...@@ -1582,7 +1582,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
* Read status again to ensure no new interrupts arrived * Read status again to ensure no new interrupts arrived
* while servicing interrupts. * while servicing interrupts.
*/ */
ret = sdw_read(slave, SDW_SCP_INT1); ret = sdw_read_no_pm(slave, SDW_SCP_INT1);
if (ret < 0) { if (ret < 0) {
dev_err(slave->bus->dev, dev_err(slave->bus->dev,
"SDW_SCP_INT1 read failed:%d\n", ret); "SDW_SCP_INT1 read failed:%d\n", ret);
...@@ -1590,7 +1590,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave) ...@@ -1590,7 +1590,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
} }
_buf = ret; _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) { if (ret < 0) {
dev_err(slave->bus->dev, dev_err(slave->bus->dev,
"SDW_SCP_INT2/3 read failed:%d\n", ret); "SDW_SCP_INT2/3 read failed:%d\n", ret);
...@@ -1598,7 +1598,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave) ...@@ -1598,7 +1598,7 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
} }
if (slave->prop.is_sdca) { if (slave->prop.is_sdca) {
ret = sdw_read(slave, SDW_DP0_INT); ret = sdw_read_no_pm(slave, SDW_DP0_INT);
if (ret < 0) { if (ret < 0) {
dev_err(slave->bus->dev, dev_err(slave->bus->dev,
"SDW_DP0_INT read failed:%d\n", ret); "SDW_DP0_INT read failed:%d\n", ret);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment