*cci = 0;
 
-       /*
-        * Below UCSI 2.0, MESSAGE_IN was limited to 16 bytes. Truncate the
-        * reads here.
-        */
-       if (ucsi->version <= UCSI_VERSION_1_2)
-               size = clamp(size, 0, 16);
+       if (size > UCSI_MAX_DATA_LENGTH(ucsi))
+               return -EINVAL;
 
        ret = ucsi->ops->sync_control(ucsi, command);
        if (ret)
 
 #define UCSI_DELAY_DEVICE_PDOS BIT(1)  /* Reading PDOs fails until the parter is in PD mode */
 };
 
+#define UCSI_MAX_DATA_LENGTH(u) (((u)->version < UCSI_VERSION_2_0) ? 0x10 : 0xff)
+
 #define UCSI_MAX_SVID          5
 #define UCSI_MAX_ALTMODES      (UCSI_MAX_SVID * 6)