mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
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: 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>
This commit is contained in:
parent
299e9780b9
commit
c30b63ef0d
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user