From nobody Fri Oct 3 16:44:13 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7C3762EDD62 for ; Wed, 27 Aug 2025 20:12:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756325569; cv=none; b=pNQPbgRekWnTUbj/AfPkvGe2FVG1uIVAg7vCIE+tcQzTSLgBg3k6m4/auVovFXw1rF0nIMR2aj0D48rt392NT6zhwYPSiyoZARB4KXZaFPfZS6a1lCalKcy/48FJgACsEhS6YDdHBQK7QRJ+n2tObwcE4QdB2f0YZeYyUJeK7WY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756325569; c=relaxed/simple; bh=meLDgphMIzrKjvme/9NyKwkff6sfs1AHm861URMwqb4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=IytXqrEa7QBVV5EBDbwqfA3l+PSD7qUeel/ycJk1tgHIDP+u4BBLH9aDXuIHWWEWCJBrp0Jl5wED3nPWYDrE/fhdejZVuMJA5ktVvqFh9m7Vm3vvXIdM5SfLpMKTR6RwHY+7lB0xGJD4wthSdsKr8mP/wnlNIUsdDeQ4Ggk/BEA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=Fs4jMqr5; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Fs4jMqr5" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57RGfnn6022886 for ; Wed, 27 Aug 2025 20:12:46 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=eCTGEcbB5k6 fBhyVH2N2aNB10W+jMPYCn5g3eW0CwJw=; b=Fs4jMqr5JCTbDd4qFcRfY/09Ofk eKJDb797kgpfG9loG4XpEYoqSI6XHNEfxufqT3Bwt0A2dwq1iUYlYIGiRZ7WXhxu PUBz0Cl0xkFJDyt6Jthf80vg/OrEgLmXGfohIUzaVyOT74yKtLrhp4BcvZXlKTOM vUWi9A/Njoa3QCXK/h61rrOJrTEgif7XFU1vjd3ktTgayO/R2IpfqSItgTlq/8uK bJ8mTgMGSvjBdvq21PF+0bT7UEejyb4AzVfFdIOLT7FHZ9pM0qr/KLp9SmsJm4lB dNAlV5UUiWkZlg/uMkO+5RRVLFUajDjG1LD26096NxVEAbl1xIevbf+kSIg== Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48q5y5nmha-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Wed, 27 Aug 2025 20:12:46 +0000 (GMT) Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-7720cb56ee3so394554b3a.1 for ; Wed, 27 Aug 2025 13:12:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756325565; x=1756930365; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eCTGEcbB5k6fBhyVH2N2aNB10W+jMPYCn5g3eW0CwJw=; b=SvFmktBQHvnlrakefDJq6D5c0eJgfPuR36fHTXP8/H154pdfJZzd+5oBuHUw4J2rIk lBIsGIKtUH5Qj2HvYtv5wL1/nvJqJpQPx+7J7YzhUmDdyDpkpt5k2L4N8jgx2tAt1tOJ v2WpubN6BFIETT1orugL0Ko7pqCoj02VIsOKpSrqeXRXFeE6geIJ0Ofz0bBwA3Eic91e fKnivKnXQaM9wG7Z9br8ZGV6KSG5CRtHeQCx+HwBMk/kGM6pKXXworIbiXvnKDpVGGD2 SAYwsOZeTDNePw7gbcxTqpLRHm+YWDdq44A0edvp25Lm3ag0WIHuPqX4Wp2ypCdb/JnT hW5A== X-Forwarded-Encrypted: i=1; AJvYcCWUMXvcEMaBZyt9NXbX5iI19g4qnVDS/2cB7j8y/OW9hothXQlAMQVVuvAcd4qXJMfQzMgmtLi/pu5VoFQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yx0zcSa5XwKRzYcb6SThJQBBEwQkEkoK8EciSM11d1J10Ye5gUW hs97syWBfBjNY2w+bWl3/jATtZi/vmm7YmKbN+SB/L13RzLJHAMuq2qcd3i1jpRNzmU8rLilayd RA3C06n17ImxOk/++AENg1HKy5+yPv2AAUpZ4iL5W5gCOjEn3PegO6ZChWc0gYOv3HCk= X-Gm-Gg: ASbGncuQS3rCrWWEL1OcThEwuXF0zi9eR3XGX4S6WoNotlrCb1UGh2PcS9i7AZHhAoQ yvIzyvhlrq9vm8lQETkw/VmOEi0KiBJ9znoi6VhGGaoaY+8XQWyfQnKCvrSVuzgvHrhGLO1gG8x hDgFq/oR3mA8QOtbUzFpovfo1OoFh0Mstvn1kfwrL0AkhARkSAtO3yvzvwDmyJFCtoEMhSSAmCb cpVm+kK8aBggPq9hM/0Zu00tl4gQ0Gjb7z8f8EtBxGvm5JHj8exVi+XFn9MA/w8wSEdmKEFKeMm 3Zn00Rt81lsia9ZBacDtwotnTgDmJ/vctaKFapFpom0ON1vVLrG/V+2Xu6C3r6wq+1PP9zrwz0R WgTFDhEBoCJNDraZVESn7JT6kUXY= X-Received: by 2002:a05:6a20:9188:b0:215:d565:3026 with SMTP id adf61e73a8af0-24340b5ada1mr27366899637.20.1756325565212; Wed, 27 Aug 2025 13:12:45 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFIj8L+nwLix1KG/6QnjHpZZhIafsh1DBdgu75+84yKYOIB7X2r8rCg6cN0Ay9YbseD9uexTw== X-Received: by 2002:a05:6a20:9188:b0:215:d565:3026 with SMTP id adf61e73a8af0-24340b5ada1mr27366868637.20.1756325564771; Wed, 27 Aug 2025 13:12:44 -0700 (PDT) Received: from hu-amelende-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b49cbbbaffdsm12185234a12.51.2025.08.27.13.12.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Aug 2025 13:12:43 -0700 (PDT) From: Anjelique Melendez To: heikki.krogerus@linux.intel.com, gregkh@linuxfoundation.org Cc: lumag@kernel.org, neil.armstrong@linaro.org, johan+linaro@kernel.org, quic_bjorande@quicinc.com, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org Subject: [PATCH v3 1/2] usb: typec: ucsi_glink: Update request/response buffers to be packed Date: Wed, 27 Aug 2025 13:12:40 -0700 Message-Id: <20250827201241.3111857-2-anjelique.melendez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250827201241.3111857-1-anjelique.melendez@oss.qualcomm.com> References: <20250827201241.3111857-1-anjelique.melendez@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODIzMDAzMyBTYWx0ZWRfX8mA0opypVy7J NMRVCxVV9/e1KyzbOU+rxUWDFD1+PNjHHYBjkzNDGTR6JGoosEaOf+c1kyxBdcemFzx1Ml/3eld LNjMTrS9edsQg/V3oG2lE7vyKEljEdrvmaoK/UQnZkVN7jyxmw3tgREu4XEDmQy66/jB88qT4FS Fxsqjnu/iRC21CbpDo5gv7b071gfadbwxTLrSNv0hG5S3U0vX+Mcj/rBs+7GvZpSBtIbeU1Xp2q MveFL96l7BiDc4o0wY+Nw7U+Y+sSUkbWzZUHN0bFx2sHiqrQ4Ev4lK4dVBII2PKwK6B86TQXKev RrazL0OKa3ZVX67hzZFwg3xrprscO1W/cla8Asvizycy6wjmcPhUXU48xitb9MigL2VvyE0vGOe Fe8gPT8j X-Authority-Analysis: v=2.4 cv=Lco86ifi c=1 sm=1 tr=0 ts=68af66be cx=c_pps a=rEQLjTOiSrHUhVqRoksmgQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=OI1EoHIFZYFGuZb9aTAA:9 a=2VI0MkxyNR6bbpdq8BZq:22 X-Proofpoint-GUID: Z0rXYvmBfD3W3jaLUCukXQ0494h1Y_0v X-Proofpoint-ORIG-GUID: Z0rXYvmBfD3W3jaLUCukXQ0494h1Y_0v X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-27_04,2025-08-26_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 adultscore=0 clxscore=1015 malwarescore=0 spamscore=0 suspectscore=0 phishscore=0 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508230033 Content-Type: text/plain; charset="utf-8" Update the ucsi request/response buffers to be packed to ensure there are no "holes" in memory while we read/write these structs. Signed-off-by: Anjelique Melendez Reviewed-by: Heikki Krogerus --- drivers/usb/typec/ucsi/ucsi_glink.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/usb/typec/ucsi/ucsi_glink.c b/drivers/usb/typec/ucsi/u= csi_glink.c index 8af79101a2fc..1f9f0d942c1a 100644 --- a/drivers/usb/typec/ucsi/ucsi_glink.c +++ b/drivers/usb/typec/ucsi/ucsi_glink.c @@ -30,24 +30,24 @@ struct ucsi_read_buf_req_msg { struct pmic_glink_hdr hdr; }; =20 -struct ucsi_read_buf_resp_msg { +struct __packed ucsi_read_buf_resp_msg { struct pmic_glink_hdr hdr; u8 buf[UCSI_BUF_SIZE]; u32 ret_code; }; =20 -struct ucsi_write_buf_req_msg { +struct __packed ucsi_write_buf_req_msg { struct pmic_glink_hdr hdr; u8 buf[UCSI_BUF_SIZE]; u32 reserved; }; =20 -struct ucsi_write_buf_resp_msg { +struct __packed ucsi_write_buf_resp_msg { struct pmic_glink_hdr hdr; u32 ret_code; }; =20 -struct ucsi_notify_ind_msg { +struct __packed ucsi_notify_ind_msg { struct pmic_glink_hdr hdr; u32 notification; u32 receiver; --=20 2.34.1 From nobody Fri Oct 3 16:44:13 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 072B02F067F for ; Wed, 27 Aug 2025 20:12:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756325570; cv=none; b=am+Ygt2fvmjOTlSa7VLOlBUpoAHUkBubyrXFHXfHxEzsJUMtPN/2uGU6h/oeBiHaJS4+00gRMi5JcXjnW6jyt/rNxY/pNo3xDOwIw+Fm/4DPKwhPtgUZf/SYInmTq5wlgu/+R0FG7AwuBpS1zAWQWt5eB97cgjknuDusqdz+78w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756325570; c=relaxed/simple; bh=MpyJSyCj2xWmtO5J2dSyFdFgZvc2VOqXTVnMmGLSs2Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=tuQA9/d5Zhgx7x09FL4h0BG1LeE6q1sDcBCIv7LyVAiZqmLMqHznoF8DxYOaUEhEAQjTK1JzQpNTi3q+lmctYPpS+c97iGdG3O77y6xnwZAYtGobs8JViOdjqDUQXxKw0wq2XzDA6b7+jlJDBXeoaPdnQd9GgnZLCIcTb0CD9Kw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=LTG0SrGG; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="LTG0SrGG" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57RGf6A3031265 for ; Wed, 27 Aug 2025 20:12:48 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=+hiFh6kSS4u nir4HcxHNHp4T4OOazJBEpiZOWRLYe38=; b=LTG0SrGGbIx021JG/C6xPuJ0G/w 5uZtkYFkHdnq+6D81Hy716kfooSw2M8SZJK8lsQwWpVkGPBn1meglXJ8HvdcabIR rr5M+iZjjVxf5xCbM8YTbe3k7O+3E9BUIxJkJf9V6SOo/N8hgxoKOLSr7+C8KKXA +X178pSYUbxbv76Qr1JvU1aTpUAr+sly+J8gsC3Do9I45+lDXX9ctutQ6cKeG1Xj XiayCg6I8m/MLS3U8Hk4A0L+s8bABAM5aEpd81rf9NG9MEvl1BigqHlAjwNVqBCl 8FRKiZmq1YgcHNlMXU/fALtmU0FPvdiT/zxTXT4MVsrTlKnbzGwLHJcWe+A== Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48q615nrq1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Wed, 27 Aug 2025 20:12:47 +0000 (GMT) Received: by mail-pf1-f199.google.com with SMTP id d2e1a72fcca58-7720ac7c788so188555b3a.3 for ; Wed, 27 Aug 2025 13:12:47 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756325567; x=1756930367; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+hiFh6kSS4unir4HcxHNHp4T4OOazJBEpiZOWRLYe38=; b=vyT47xrf4sMPI5c+UQdXLcoYPKAucjPvprFTE8GbsblawKkqstdyIY9Aip/5PoCSeD LGOlNxybxyHrvxTnArf5BnSjHQEQtzHm1WSrXi4o5+IQ1Tg6J91dUoCJKTDGS6+xrhYJ m2b4FnMYjB/z9ZMpW+6aJ6Ak83oZVYhmjAYbHJgLnqoI/NnGGqMF8eRhBrojyKFnjeba ulT8eSNYlnYl6W6ZLkRJQTM/a+H3IoUkpTBA6o1jGck310do94q7Sg311CrdJ4W5ETex DvMAvcMKW8VafX6qjIz19lvUHfrnVj91UrfKXLjZLDK8bU/kigoij1womhJrzxDlvbuP 1cOg== X-Forwarded-Encrypted: i=1; AJvYcCXnxgAQL2jYFR79+5Ff+g/NjhnC93CJAC7Axi5FKxR9AVDLpXKjoIjNZcOSnpHw10pzipKBQdh3dYMeI40=@vger.kernel.org X-Gm-Message-State: AOJu0YzNdydXsSow+kWPipCMgwK7UkJ5ZmXOu//2N2zj+FQ/jMcWp7Si x8Uziq3N59HWOCh70exHzoPyUwRSZMoNQi0AvfQhUOtZpzkFrwa+i8UfhY2+K7CnStoXAuYGPhw rSDDU5G/rtkmOQlKKdkJ57t4lf1Hx0P5XCPxLi0S6cDkV84vmVHg0zYGnDR8eUtyyFt4= X-Gm-Gg: ASbGncuPgZobzmbHoefho1pyRx5NSiMZuzZdb5XlrO+DX+cJC6AZxl1mUCWrBk7mGaU kiBnHRm7Td1fs39MBAhqcLUXlGJnJ0eJtoZFHA+WlJAXWYREtCXu5LT4ZquPJLlWfCbIa3bQlEL OddllatX8XQESbpjrBDIOp+TbCPVcCxT/dMNxSGV55X5NLrJK/GgxgGZSUZ+RevzQFTn23QXaL/ H34WblO/qROfaJBHpcIjmJDHhr6MeQrghpU2Mtgx26Fomh83zaLZjtWmT9Fc+dblSKxRinhVoGV Ylkn2kw4s+xU5Fp+oKHlSmNsA8dqY+4BZC1vTmlTa+Zrnxw1p7eIq3NL30J065acMoJ7OwaDLrI 9KG9iozaPp8zdE7ON7A/Um1oUz60= X-Received: by 2002:a05:6a20:549d:b0:240:1d13:ccc3 with SMTP id adf61e73a8af0-24340b04b66mr28622416637.4.1756325566630; Wed, 27 Aug 2025 13:12:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFuabulry35Oh45R7S+Y/EAACvQFqi8OkZbW04d7jR07ab1s2Trdgdysl7HE23tj34ZDiibaA== X-Received: by 2002:a05:6a20:549d:b0:240:1d13:ccc3 with SMTP id adf61e73a8af0-24340b04b66mr28622386637.4.1756325566115; Wed, 27 Aug 2025 13:12:46 -0700 (PDT) Received: from hu-amelende-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b49cbbbaffdsm12185234a12.51.2025.08.27.13.12.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Aug 2025 13:12:45 -0700 (PDT) From: Anjelique Melendez To: heikki.krogerus@linux.intel.com, gregkh@linuxfoundation.org Cc: lumag@kernel.org, neil.armstrong@linaro.org, johan+linaro@kernel.org, quic_bjorande@quicinc.com, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org Subject: [PATCH v3 2/2] usb: typec: ucsi_glink: Increase buffer size to support UCSI v2 Date: Wed, 27 Aug 2025 13:12:41 -0700 Message-Id: <20250827201241.3111857-3-anjelique.melendez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250827201241.3111857-1-anjelique.melendez@oss.qualcomm.com> References: <20250827201241.3111857-1-anjelique.melendez@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODIzMDAzNCBTYWx0ZWRfX5icp2ix6h6tF Y4imHaDEyqJ1IvOhoZf6eZS1W8wMobmv4yzw9rO8wZEDmelB32t2uxrK58jSDFX1oqczSi2tpF2 iOqKB83CW1E6r+ZICYOUSx+zKA8o3QNmeUBzyKvtvWArC4ucmK5CiB0ZTOKk5bSODsAY/jvnMz1 Sg5v1jnAnMjZ+1HXgV61ISaHVenbBjsbb8nyzEBmCVvrOpd/iIV67LfgbYlofFEMFSMJTA/hAy1 upgnT3ddv4Eff6pST05zPHHWisBSwvcnjGJf2F1bT0tRfoV9Ps0SYK4fYo33LYvbJb0XCCJWM8j 4VdnH4Hp5TlVrk6m8GSvV/oadk6srs8WgzaeRtQKR3H1fzRuAkZo9trw57G9eSXylUdhpm0Pn5C cqA0gevD X-Proofpoint-GUID: dBv9LZIKIDSnd50uQa9vJx5-tCnahpXA X-Authority-Analysis: v=2.4 cv=K+AiHzWI c=1 sm=1 tr=0 ts=68af66bf cx=c_pps a=WW5sKcV1LcKqjgzy2JUPuA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=vumWCRg_uR-EWTXYnocA:9 a=OpyuDcXvxspvyRM73sMx:22 X-Proofpoint-ORIG-GUID: dBv9LZIKIDSnd50uQa9vJx5-tCnahpXA X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-27_04,2025-08-26_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 bulkscore=0 clxscore=1015 adultscore=0 impostorscore=0 priorityscore=1501 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508230034 Content-Type: text/plain; charset="utf-8" UCSI v2 specification has increased the MSG_IN and MSG_OUT size from 16 bytes to 256 bytes each for the message exchange between OPM and PPM This makes the total buffer size increase from 48 bytes to 528 bytes. Update the buffer size to support this increase. Signed-off-by: Anjelique Melendez --- drivers/usb/typec/ucsi/ucsi_glink.c | 85 +++++++++++++++++++++++++---- 1 file changed, 75 insertions(+), 10 deletions(-) diff --git a/drivers/usb/typec/ucsi/ucsi_glink.c b/drivers/usb/typec/ucsi/u= csi_glink.c index 1f9f0d942c1a..fc12569ec520 100644 --- a/drivers/usb/typec/ucsi/ucsi_glink.c +++ b/drivers/usb/typec/ucsi/ucsi_glink.c @@ -16,10 +16,10 @@ =20 #define PMIC_GLINK_MAX_PORTS 3 =20 -#define UCSI_BUF_SIZE 48 +#define UCSI_BUF_V1_SIZE (UCSI_MESSAGE_OUT + (UCSI_MESSAGE_OUT - UCSI_MES= SAGE_IN)) +#define UCSI_BUF_V2_SIZE (UCSIv2_MESSAGE_OUT + (UCSIv2_MESSAGE_OUT - UCSI= _MESSAGE_IN)) =20 #define MSG_TYPE_REQ_RESP 1 -#define UCSI_BUF_SIZE 48 =20 #define UC_NOTIFY_RECEIVER_UCSI 0x0 #define UC_UCSI_READ_BUF_REQ 0x11 @@ -32,13 +32,25 @@ struct ucsi_read_buf_req_msg { =20 struct __packed ucsi_read_buf_resp_msg { struct pmic_glink_hdr hdr; - u8 buf[UCSI_BUF_SIZE]; + u8 buf[UCSI_BUF_V1_SIZE]; + u32 ret_code; +}; + +struct __packed ucsi_v2_read_buf_resp_msg { + struct pmic_glink_hdr hdr; + u8 buf[UCSI_BUF_V2_SIZE]; u32 ret_code; }; =20 struct __packed ucsi_write_buf_req_msg { struct pmic_glink_hdr hdr; - u8 buf[UCSI_BUF_SIZE]; + u8 buf[UCSI_BUF_V1_SIZE]; + u32 reserved; +}; + +struct __packed ucsi_v2_write_buf_req_msg { + struct pmic_glink_hdr hdr; + u8 buf[UCSI_BUF_V2_SIZE]; u32 reserved; }; =20 @@ -72,7 +84,7 @@ struct pmic_glink_ucsi { bool ucsi_registered; bool pd_running; =20 - u8 read_buf[UCSI_BUF_SIZE]; + u8 read_buf[UCSI_BUF_V2_SIZE]; }; =20 static int pmic_glink_ucsi_read(struct ucsi *__ucsi, unsigned int offset, @@ -131,18 +143,34 @@ static int pmic_glink_ucsi_read_message_in(struct ucs= i *ucsi, void *val, size_t static int pmic_glink_ucsi_locked_write(struct pmic_glink_ucsi *ucsi, unsi= gned int offset, const void *val, size_t val_len) { - struct ucsi_write_buf_req_msg req =3D {}; + struct ucsi_v2_write_buf_req_msg req =3D {}; + size_t len, max_buf_len; unsigned long left; int ret; =20 req.hdr.owner =3D PMIC_GLINK_OWNER_USBC; req.hdr.type =3D MSG_TYPE_REQ_RESP; req.hdr.opcode =3D UC_UCSI_WRITE_BUF_REQ; + + if (ucsi->ucsi->version >=3D UCSI_VERSION_2_0) { + max_buf_len =3D UCSI_BUF_V2_SIZE; + len =3D sizeof(req); + } else if (ucsi->ucsi->version) { + max_buf_len =3D UCSI_BUF_V1_SIZE; + len =3D sizeof(struct ucsi_write_buf_req_msg); + } else { + dev_err(ucsi->dev, "UCSI version not set\n"); + return -EINVAL; + } + + if (offset + val_len > max_buf_len) + return -EINVAL; + memcpy(&req.buf[offset], val, val_len); =20 reinit_completion(&ucsi->write_ack); =20 - ret =3D pmic_glink_send(ucsi->client, &req, sizeof(req)); + ret =3D pmic_glink_send(ucsi->client, &req, len); if (ret < 0) { dev_err(ucsi->dev, "failed to send UCSI write request: %d\n", ret); return ret; @@ -216,12 +244,49 @@ static const struct ucsi_operations pmic_glink_ucsi_o= ps =3D { =20 static void pmic_glink_ucsi_read_ack(struct pmic_glink_ucsi *ucsi, const v= oid *data, int len) { - const struct ucsi_read_buf_resp_msg *resp =3D data; + u32 ret_code, buf_len, max_len; + u8 *buf; + + if (ucsi->ucsi->version) { + if (ucsi->ucsi->version >=3D UCSI_VERSION_2_0) { + max_len =3D sizeof(struct ucsi_v2_read_buf_resp_msg); + buf =3D ((struct ucsi_v2_read_buf_resp_msg *)data)->buf; + buf_len =3D UCSI_BUF_V2_SIZE; + } else { + max_len =3D sizeof(struct ucsi_read_buf_resp_msg); + buf =3D ((struct ucsi_read_buf_resp_msg *)data)->buf; + buf_len =3D UCSI_BUF_V1_SIZE; + } + } else if (!ucsi->ucsi->version && !ucsi->ucsi_registered) { + /* + * If UCSI version is not known yet because device is not registered, ch= oose buffer + * size which best fits incoming data + */ + if (len > sizeof(struct pmic_glink_hdr) + UCSI_BUF_V2_SIZE) { + max_len =3D sizeof(struct ucsi_v2_read_buf_resp_msg); + buf =3D ((struct ucsi_v2_read_buf_resp_msg *)data)->buf; + buf_len =3D UCSI_BUF_V2_SIZE; + } else { + max_len =3D sizeof(struct ucsi_read_buf_resp_msg); + buf =3D ((struct ucsi_read_buf_resp_msg *)data)->buf; + buf_len =3D UCSI_BUF_V1_SIZE; + } + } else { + dev_err(ucsi->dev, "UCSI version not set\n"); + return; + } =20 - if (resp->ret_code) + if (len > max_len) + return; + + if (buf_len > len - sizeof(struct pmic_glink_hdr) - sizeof(u32)) + buf_len =3D len - sizeof(struct pmic_glink_hdr) - sizeof(u32); + + memcpy(&ret_code, buf + sizeof(struct pmic_glink_hdr) + buf_len, sizeof(u= 32)); + if (ret_code) return; =20 - memcpy(ucsi->read_buf, resp->buf, UCSI_BUF_SIZE); + memcpy(ucsi->read_buf, buf, buf_len); complete(&ucsi->read_ack); } =20 --=20 2.34.1