platform/chrome: cros_typec_vdm: Fix VDO copy
authorPrashant Malani <pmalani@chromium.org>
Fri, 13 Jan 2023 18:26:26 +0000 (18:26 +0000)
committerPrashant Malani <pmalani@chromium.org>
Tue, 24 Jan 2023 19:02:38 +0000 (19:02 +0000)
commit478f32ab4daae8a9bae3723d1040c6e4e3a09bc5
tree75759d76e8d1a781a5731b11129899b8f463b18e
parent13aba1e532f047459a683f76439ad90fb29eab05
platform/chrome: cros_typec_vdm: Fix VDO copy

The usage of memcpy() affects the representation of the VDOs as they are
copied to the EC Host Command buffer. Specifically, all higher order
bits get dropped (for example: a VDO of 0x406 just gets copied as 0x6).

Avoid this by explicitly copying each VDO in the array. The number of
VDOs generated by alternate mode drivers in their VDMs is almost always
just 1 (apart from the header) so this doesn't affect performance in a
meaningful way).

Fixes: 40a9b13a09ef ("platform/chrome: cros_typec_vdm: Add VDM send support")
Signed-off-by: Prashant Malani <pmalani@chromium.org>
Reviewed-by: Benson Leung <bleung@chromium.org>
Link: https://lore.kernel.org/r/20230113182626.1149539-1-pmalani@chromium.org
Signed-off-by: Prashant Malani <pmalani@chromium.org>
drivers/platform/chrome/cros_typec_vdm.c