diff --git a/drivers/thunderbolt/usb4.c b/drivers/thunderbolt/usb4.c index fe1b061f7055..c9b3931c45ed 100644 --- a/drivers/thunderbolt/usb4.c +++ b/drivers/thunderbolt/usb4.c @@ -1836,13 +1836,16 @@ int usb4_port_sw_margin_errors(struct tb_port *port, enum usb4_sb_target target, u8 index, u32 *errors, size_t dwords) { int ret; + u8 reg; ret = usb4_port_sb_op(port, target, index, USB4_SB_OPCODE_READ_SW_MARGIN_ERR, 150); if (ret) return ret; - return usb4_port_sb_read(port, target, index, USB4_SB_METADATA, errors, + reg = (dwords > 1) ? USB4_SB_DATA : USB4_SB_METADATA; + + return usb4_port_sb_read(port, target, index, reg, errors, sizeof(*errors) * dwords); }