thunderbolt: Introduce usb4_port_sb_opcode_err_to_errno() helper
Subsystems (2)
PATCH 1/1 thunderbolt: Introduce usb4_port_sb_opcode_err_to_errno() helper
The usb4_port_sb_opcode_err_to_errno() converts from USB4 error codes to the Linux errno space. In particular, this makes the intention of the repeating usb4_port_retimer_read() call in the usb4_port_retimer_nvm_authenticate_status() clearer.
Signed-off-by Andy Shevchenko <[email protected]>
--- drivers/thunderbolt/usb4.c | 41 +++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 21 deletions(-)
drivers/thunderbolt/usb4.c +20 -21
@@ -1303,6 +1303,20 @@ static int usb4_port_sb_write(struct tb_port *port, enum usb4_sb_target target,return 0 ; } +static int usb4_port_sb_opcode_err_to_errno (u32 val) +{ +switch (val) { +case 0 : +return 0 ; +case USB4_SB_OPCODE_ERR : +return -EAGAIN ; +case USB4_SB_OPCODE_ONS : +return -EOPNOTSUPP ; +default : +return -EIO ; + } +} +static int usb4_port_sb_op (struct tb_port *port,enum usb4_sb_target target,u8 index,enum usb4_sb_opcode opcode,int timeout_msec) {
@@ -1325,21 +1339,8 @@ static int usb4_port_sb_op(struct tb_port *port, enum usb4_sb_target target,if (ret)return ret; -switch (val) { -case 0 : -return 0 ; - -case USB4_SB_OPCODE_ERR : -return -EAGAIN ; - -case USB4_SB_OPCODE_ONS : -return -EOPNOTSUPP ; - -default : -if (val != opcode) -return -EIO ; -break ; - } +if (val != opcode) +return usb4_port_sb_opcode_err_to_errno (val); }while (ktime_before (ktime_get (), timeout));return -ETIMEDOUT ;
@@ -1814,12 +1815,13 @@ int usb4_port_retimer_nvm_authenticate_status(struct tb_port *port, u8 index,if (ret)return ret; -switch (val) { + ret =usb4_port_sb_opcode_err_to_errno (val); +switch (ret) {case 0 : *status =0 ;return 0 ; -case USB4_SB_OPCODE_ERR : +case -EAGAIN : ret =usb4_port_retimer_read (port, index,USB4_SB_METADATA , &metadata,sizeof (metadata));if (ret)
@@ -1828,11 +1830,8 @@ int usb4_port_retimer_nvm_authenticate_status(struct tb_port *port, u8 index, *status = metadata &USB4_SB_METADATA_NVM_AUTH_WRITE_MASK ;return 0 ; -case USB4_SB_OPCODE_ONS : -return -EOPNOTSUPP ; -default : -return -EIO ; +return ret; } }
Signature · 1 line
2.40.0.1.gaa8946217a0b
Mika Westerberg
AppliedQuoted 6 lines · Andy Shevchenko
The
usb4_port_sb_opcode_err_to_errno()converts from USB4 error codes to the Linux errno space. In particular, this makes the intention of the repeatingusb4_port_retimer_read()call in theusb4_port_retimer_nvm_authenticate_status()clearer.Signed-off-by Andy Shevchenko <[email protected]>
Applied to thunderbolt.git/next, thanks Andy!