mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-13 19:59:34 -04:00
usb: typec: ucsi: Call CANCEL from single location
The command cancellation can be done right after detecting that the PPM is busy. There is no need to do it separately in ucsi_read_error() and ucsi_send_command_common(). Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Link: https://lore.kernel.org/r/20240816135859.3499351-6-heikki.krogerus@linux.intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
9289e6f5ee
commit
4f322657ad
@@ -111,7 +111,7 @@ static int ucsi_run_command(struct ucsi *ucsi, u64 command, u32 *cci,
|
||||
return ret;
|
||||
|
||||
if (*cci & UCSI_CCI_BUSY)
|
||||
return -EBUSY;
|
||||
return ucsi_run_command(ucsi, UCSI_CANCEL, cci, NULL, 0, false) ?: -EBUSY;
|
||||
|
||||
if (!(*cci & UCSI_CCI_COMMAND_COMPLETE))
|
||||
return -EIO;
|
||||
@@ -144,15 +144,7 @@ static int ucsi_read_error(struct ucsi *ucsi, u8 connector_num)
|
||||
int ret;
|
||||
|
||||
command = UCSI_GET_ERROR_STATUS | UCSI_CONNECTOR_NUMBER(connector_num);
|
||||
ret = ucsi_run_command(ucsi, command, &cci,
|
||||
&error, sizeof(error), false);
|
||||
|
||||
if (cci & UCSI_CCI_BUSY) {
|
||||
ret = ucsi_run_command(ucsi, UCSI_CANCEL, &cci, NULL, 0, false);
|
||||
|
||||
return ret ? ret : -EBUSY;
|
||||
}
|
||||
|
||||
ret = ucsi_run_command(ucsi, command, &cci, &error, sizeof(error), false);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
@@ -234,9 +226,8 @@ static int ucsi_send_command_common(struct ucsi *ucsi, u64 cmd,
|
||||
mutex_lock(&ucsi->ppm_lock);
|
||||
|
||||
ret = ucsi_run_command(ucsi, cmd, &cci, data, size, conn_ack);
|
||||
if (cci & UCSI_CCI_BUSY)
|
||||
ret = ucsi_run_command(ucsi, UCSI_CANCEL, &cci, NULL, 0, false) ?: -EBUSY;
|
||||
else if (cci & UCSI_CCI_ERROR)
|
||||
|
||||
if (cci & UCSI_CCI_ERROR)
|
||||
ret = ucsi_read_error(ucsi, connector_num);
|
||||
|
||||
mutex_unlock(&ucsi->ppm_lock);
|
||||
|
||||
Reference in New Issue
Block a user