Received: by 2002:a05:6358:a55:b0:ec:fcf4:3ecf with SMTP id 21csp1331666rwb; Fri, 13 Jan 2023 10:45:19 -0800 (PST) X-Google-Smtp-Source: AMrXdXucfeNS+qdtQVKF8Et+Pf+LGxu5k7RublGppDKdbWmLwFOz8OOdXbJ6E2nnNDMLezZ8VNB0 X-Received: by 2002:a17:907:d68e:b0:798:d745:f87 with SMTP id wf14-20020a170907d68e00b00798d7450f87mr70758674ejc.73.1673635519469; Fri, 13 Jan 2023 10:45:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673635519; cv=none; d=google.com; s=arc-20160816; b=ZFjF2PMGTkzP3KzsdVO1xZIJ6uLHQLNGROu5Ib+BVlAMO8UYEtaep68yKnn7RRGy00 ewDgzqHSrgCcFyKsc+Tg74H0bYeuq9omJFsY1aaUW65pTC57JX1mKQNc8DvNM/LnZ0hC BttEg86WnP2R6EP/vv8p0uUViVXCj9/ZN7zymxwp/MhQXjVqaQ8QiMStkgI11+mF+FCE LKzlE+VacorjDGSuM6E6TBeNnnYryoeioK7/TqyGclbARysRJRyhE1sAwgX5sJpi6DWO r2EtPU70nPEjMv/mccUPD9MLDY8MkZcvT6TDZgLF2Dx/N/g5bX2t1rn39auUUypB047X 4kWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=v0IZMQ5s013CKLPMbvZH+OUmUx07zKwii/Tta4BO8NQ=; b=C9fqQQLNYKORRkfVhfJeT6qeZe0MxVUDV85ftXYs1BIRPVDcW2Om6pRUtSh9VAPZTp TNnCD0t2/wAB0PWH3VZ4AdyAkFAnw85RVkNCcq1G9r25DfRSS6pNzRHnYsjQrssBBO8+ wn3aFnSpjA8YedZdFVr/pQbTGEUWjueAVOq32nbdW9N5I/ixOX/f8Ygf26W2Fa6+iL1z CNq+LxzpejwbZM2EFH0IG7J2B9tbdIiXMX1X+ppNUe1yLU+Va74AlfbKb9Svesx2ohHp fevck10GbnqgynOpyiZQgiDuyEOfSGHspLBXCDKQQRj3Q4xNDeAYBAe8VVd2yYlVOcVp oEbA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=ochu6DRc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id xb7-20020a170907070700b007877f3132d9si22623006ejb.438.2023.01.13.10.45.07; Fri, 13 Jan 2023 10:45:19 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=ochu6DRc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231316AbjAMSaz (ORCPT + 51 others); Fri, 13 Jan 2023 13:30:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41718 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231222AbjAMSaP (ORCPT ); Fri, 13 Jan 2023 13:30:15 -0500 Received: from mail-pg1-x530.google.com (mail-pg1-x530.google.com [IPv6:2607:f8b0:4864:20::530]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D2C786C075 for ; Fri, 13 Jan 2023 10:26:37 -0800 (PST) Received: by mail-pg1-x530.google.com with SMTP id b12so15548477pgj.6 for ; Fri, 13 Jan 2023 10:26:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=v0IZMQ5s013CKLPMbvZH+OUmUx07zKwii/Tta4BO8NQ=; b=ochu6DRcIo08TOd/D8jh5Tf6fdQOlvs9XXYjw9VXWD1QJ6nUv0zY1YEEzocAoEf7eY KCIsfp9Pm0V31jq97KHsb3tRLRE3N47wfuTygppoSTRhrSQi5WYjrUvSGpCC4JieBiEG AbszzxRfLaJChuj8z9UUCZcoaCnKZx24qa+k0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=v0IZMQ5s013CKLPMbvZH+OUmUx07zKwii/Tta4BO8NQ=; b=ofr+tU9Q4A4zjWllXKTRP2MBy9wYAC0byM40zVTu9Yq4UIwaswAvWSvM2YA1wI2b/x CUyCA8SyUXy1Np9hWqlrKO26AFzNlipHIAELogsn3gXOe//IKSTmNtVKYfTyOBNuqUhc AP+yhyTlRhAhCdf6v4FjC8laTFRXAGR4XhiY3mvmlprGqIEXEkdIPKELvtHozjpvpnFg ueL3cn/P7vuv2XuLN5R0zc2sbXjtSJm2CSTYp2IEPfJsFZ/h5rnACUEnrShLiEHee11H 8NLGuvMHdSgq6yGCw2ZSnk6ntFBpx/u+TZ///geBAlULUATI7ujVEnvi+o001MTwuNVo +kow== X-Gm-Message-State: AFqh2kpgzUVVHCXEeN/XSQbZ8ZM6IQiHnU+vkP7YoevpJhMElF5JAkF8 5dobfOdR+DoRFfmFqmd+lh0miSwETwnISwpx X-Received: by 2002:a62:2903:0:b0:57f:f2cd:6180 with SMTP id p3-20020a622903000000b0057ff2cd6180mr74775013pfp.0.1673634397061; Fri, 13 Jan 2023 10:26:37 -0800 (PST) Received: from pmalani.c.googlers.com.com (33.5.83.34.bc.googleusercontent.com. [34.83.5.33]) by smtp.gmail.com with ESMTPSA id 124-20020a621882000000b0057709fce782sm9330183pfy.54.2023.01.13.10.26.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Jan 2023 10:26:36 -0800 (PST) From: Prashant Malani To: linux-kernel@vger.kernel.org, chrome-platform@lists.linux.dev Cc: bleung@chromium.org, Prashant Malani Subject: [PATCH] platform/chrome: cros_typec_vdm: Fix VDO copy Date: Fri, 13 Jan 2023 18:26:26 +0000 Message-Id: <20230113182626.1149539-1-pmalani@chromium.org> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- drivers/platform/chrome/cros_typec_vdm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/platform/chrome/cros_typec_vdm.c b/drivers/platform/chrome/cros_typec_vdm.c index aca9d337118e..06f4a55999c5 100644 --- a/drivers/platform/chrome/cros_typec_vdm.c +++ b/drivers/platform/chrome/cros_typec_vdm.c @@ -86,10 +86,12 @@ static int cros_typec_port_amode_vdm(struct typec_altmode *amode, const u32 hdr, .command = TYPEC_CONTROL_COMMAND_SEND_VDM_REQ, }; struct typec_vdm_req vdm_req = {}; + int i; vdm_req.vdm_data[0] = hdr; vdm_req.vdm_data_objects = cnt; - memcpy(&vdm_req.vdm_data[1], vdo, cnt - 1); + for (i = 1; i < cnt; i++) + vdm_req.vdm_data[i] = vdo[i-1]; vdm_req.partner_type = TYPEC_PARTNER_SOP; req.vdm_req_params = vdm_req; -- 2.39.0.314.g84b9a713c41-goog