From nobody Wed Dec 17 17:44:32 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 DB7FA38DD3 for ; Wed, 22 Oct 2025 00:46:00 +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=1761093962; cv=none; b=J9/qwww6k0WqzAxKBGPcPRLRN7gSf6Zi1gJ/Svv0b5nOfL/HNd9a7aqBer390NZ0mad17P1b0CuVJ9a5AqRrynuE0L3LguORQIejhVJ53qoueeA5wbpQbTWySDFq0pBgJHLxFw7giNsk028UasTGklugmgNGkTgk9O8WKPqaV+8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761093962; c=relaxed/simple; bh=A52ROh/Md8E/l7pDVKt3JwMJSU6DehcWufqvmQgZXsc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ir/qzJuahDmoo9aqC/PMw6tsEZYSV55LHoUeEbNscKkVTw/dVG3oLd8hCvKOFHDIPPOztBoUXpAavhXMA0qZA5oHKJoD1fuF26sgKHIxjACZ3AKAPViFBLXprOGTjf/OppvxbZbwtOfebHW0a1to5r5iRW4AHbQlXB6MqIbsQjU= 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=e7pNnJMe; 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="e7pNnJMe" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59LEk6YE030207 for ; Wed, 22 Oct 2025 00:46:00 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=uBL+fRZoVJd 0EnYHl7fL+1Rjn/9hbw2Gf19pU1BpfeA=; b=e7pNnJMekYEGtkXQbHG8yk4j2OE h+Osd2AsyklSBeAj8uCAiHKEnqNauHA+jQByDH0WcnoLATdtHBdqZq5TaB4QcYeG cl2VLu+6ZLbhYoSUcEIdRNq7WgIHv+007Y/ZGYRnIlSZ5JJm4eIZq2omiCAhVmbI L0GynrSdApOPWuRWHFmhs+112wmu+rlYjX/wluDYm5KW133YHhqYUMcSKosgr+V9 kh83px9RK8JeF4RdD7hTyzpakwlQGq5CGGj+N3cwSpN5CLQQBITeyt59Ccgl4PxV JPANh07pkRADMHmleZDlmbIXDaVZeQfqEk8IrW5UQUDlfzFgtlLyD/nP7Nw== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 49v2ge2pmb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Wed, 22 Oct 2025 00:45:59 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2904e9e0ef9so121068045ad.3 for ; Tue, 21 Oct 2025 17:45:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761093958; x=1761698758; 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=uBL+fRZoVJd0EnYHl7fL+1Rjn/9hbw2Gf19pU1BpfeA=; b=gnvez+VH63YMq7kPBx9yvWl5fgALbBfgTYwtl61CsLHm+7bGj5GjTT3enWpGQRA0L/ dTocziV7svbUjuJ3Z6UJO2lLpLpgtV+5Eg/6jwpw4Ml2fedqWfHLqtjJj69kDwCAheZO IzRqstA00v6zY32FHhOpA6y2M3vgwZi+TcLoKzqG7H2QHRG9xKgRLTz9kmpTE/2Fh6Zk soRPuwUMH7XmOYUiEr9PI1oM2BOjMCjxMWtXj4JrNkGQXARaMGE6cejnggA4HjHjS7Qh lA4hRJgm4ZdIguNlO7zOcssyKhZpAIxUBaJPFP+UM0vvT54rI8LT7cmjZALnc0kIPAJx yXRw== X-Forwarded-Encrypted: i=1; AJvYcCUAMmEB1AymQU4EDYYfvNAPtqxGur1sEk5NNJwznzOoOBxggP2WjzY3SAlNPlrYsqCxs7srZ0ZL1n49arU=@vger.kernel.org X-Gm-Message-State: AOJu0Yxxa639AUaX6KOtYkwaLFxyXCOPpgYJwFTa+s+aeqNf0DM8yO6b ktKRk39NnqYZlT8Fx3OzPcVmealH3TluEA8TlB2KmsFgIuq1xMQkvqqzvcFOFNU8aIleF5CwuLl lu0GbRZke+DZ0a+ImKko2M+uXzAAJgLftJEZqXNnHo2nbzdwi593wo+wJKNX0YVU0syY= X-Gm-Gg: ASbGncukv+Mi2mmjDefMcrRbZZm+ucEkemw8hVWoT24rsXfik9Hvk8sUVD7xbxARTnZ JNMEbSYU31YyUN1ZkiiiCOVsXJxLa7vYqiS9P6z8O28pH2BdLTKEIoJJ+G5+yQX4fifPrVjtI02 92uHMRE1OaaiO15HEkTbeJfvlESFXcFXPnHpH+mX0RfU50vc0MZOYVXt9wxj0UciJmdNKYnWDnx Y4ZigbA5Ea4v/Hhd8QlERzqr+WCK6BirU25ikX11cGgC05mr5x55Zq/K3A9d1b3lVeVLknTdSXl Ou2PoTIIK/Pn0eYok0dj6XpY0fw4U39oIyROV6GJlliVTlDpLNrCnBhd6kxInAwJgDliMUG6GDy sHt0uHjwk3oH5KQZJ5KMQacBBWv7eOyFURENaZWsMNj8eaRnmtRhYkTH+q1OS8w== X-Received: by 2002:a17:903:15ce:b0:273:ab5f:a507 with SMTP id d9443c01a7336-290c9cd9f34mr223087905ad.21.1761093958478; Tue, 21 Oct 2025 17:45:58 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFecZ5N9CY9Li0/dfJQAVy9O0/8BZE2w5QKSyPywvMXAXjd7XtWluXcbSuBxe1gDtRVplB+TA== X-Received: by 2002:a17:903:15ce:b0:273:ab5f:a507 with SMTP id d9443c01a7336-290c9cd9f34mr223087655ad.21.1761093958016; Tue, 21 Oct 2025 17:45:58 -0700 (PDT) Received: from hu-amelende-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29246ebcf67sm121913045ad.15.2025.10.21.17.45.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Oct 2025 17:45:57 -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 v6 1/2] usb: typec: ucsi_glink: Update request/response buffers to be packed Date: Tue, 21 Oct 2025 17:45:53 -0700 Message-Id: <20251022004554.1956729-2-anjelique.melendez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251022004554.1956729-1-anjelique.melendez@oss.qualcomm.com> References: <20251022004554.1956729-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: AW1haW4tMjUxMDE4MDAyMCBTYWx0ZWRfX59SlFDQxK9qY T5HPvHSUiYu8qPvOGnPqwLlY/PfIU5uEDfBfHf4cFbHN9ECkt9YQ5WGNOkeCOm0dSYaBVQVH+a3 D+al+rKI5N7CFqPUQLJRqy5dkyPdy/ZYNzvCYxzKLxVDo3vEIRGWO7kbBp5Lx6L6iAsva6JwkgY EzYBajJ7kAxMVYcDoJOiOk/mJW8/Cn52RAHKboAjKHcDSCjiLczU+r1kFUQk5fTrN0jmRGenshf QZ1RnFfN342R1X0fboBF6ZYabg9Tv96Src25ANmrWaabZhkUofIxrAfzOVYy7oiwzJjrQrQZMvH 2YP6lojVz6/GIXX3OoUlD5j0pO2XxYdQqELOClnoSwA1dghN5OdDDATbbeRjhLQ7UJfr6IhVnsv 7PTgVuZAdKr6ccA+Mlas+kJ9wKiFpQ== X-Authority-Analysis: v=2.4 cv=KqFAGGWN c=1 sm=1 tr=0 ts=68f82947 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=x6icFKpwvdMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=QyXUC8HyAAAA:8 a=OI1EoHIFZYFGuZb9aTAA:9 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-GUID: bqCB-1JYlWSiaYRVONGB39MUQEdhSBd_ X-Proofpoint-ORIG-GUID: bqCB-1JYlWSiaYRVONGB39MUQEdhSBd_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-21_03,2025-10-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 clxscore=1015 phishscore=0 malwarescore=0 impostorscore=0 lowpriorityscore=0 adultscore=0 priorityscore=1501 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180020 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 Wed Dec 17 17:44:32 2025 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 7D89E19309C for ; Wed, 22 Oct 2025 00:46:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761093963; cv=none; b=EcJdqw4qANK8ootwigD5ee8AGglsRiClQ5BgBp0btcmpz30pdq+F5kVmqYihgNLqvoWN/w0mzyIrAq+D0V8XdHxSmKo3yUAA9NatkZb02rCw2PossXQiwfVTNpcjab0HRjKgtIrUTaa65LKE/dWKGn0cDEZW8igN85La+xEhcYw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761093963; c=relaxed/simple; bh=pWxHW44EZoYVSkOewAQZ0Iz+uCPAjge1yg8BskkCR7U=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=tKu8M6d4UJlm8xPs574SPR65BgVjuXkdM0vMlX9RS9r4ux8xbwsI5YpCcpHtOzprrjN+bUCM2auYVs+NuJgNR+rYpJT8XkWkGZG/3/FAOORMwMIdqvP1shoUaa3VdxLsTslEipPnhCEySvNea69Y0nKzb1keTQL837rNE9p1RT0= 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=VaCWdTIk; arc=none smtp.client-ip=205.220.168.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="VaCWdTIk" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59LEXGaX020635 for ; Wed, 22 Oct 2025 00:46:00 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=Ofz4SPaaGCE jihV6QVq9ZPH2b088K+t4UidQCmtgRC4=; b=VaCWdTIkFArEhHkxLlC9B88rryZ h9tRtVeoxL5XUDfBk1uvVtYyssCYKpk5CzmsXYEqvuuFPblWvceOPavXzG82Qx45 HcwjSBBBrdSh287cfV9Ovd6iWiOxfZ5+fBs2Re06LsP0SVa6je+OXDMyOYf91pIY jOstS5lw2wAECHFuWRXaZMgEPTjV8SCAbqPcUU3S6Tj/ffsI/t9RKr50ZAGRYuG0 h3ZXr7FWQQXi+UdLnX8AjIO9epEmeHJYBiQUjlQd9Z5Khba7/kwT0uNp/QAkMNrW hHki3TeCljKWxiIeUR/AnSjJjdq4FkNe0IH3Vwpa6I4UFmR+lpxiFjyFZEQ== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 49v3442p1d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Wed, 22 Oct 2025 00:46:00 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-28c58e009d1so139810685ad.3 for ; Tue, 21 Oct 2025 17:46:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761093960; x=1761698760; 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=Ofz4SPaaGCEjihV6QVq9ZPH2b088K+t4UidQCmtgRC4=; b=tpwZ6GJhHevy0Uq8gaa55TZR2gqGYPvirOzhE9irKKemE1U02yipOY/15O51FSQrtw HwfhEBu4q456l1lybTU0lPZZxbrfHN0tolZsod1XqlIuzlpPAZjI/DA/Z8nXyr9AW9y/ TrJP5j0YPKyPBMG6uwlvv5yheJhphiOWaFZvQcdaUraUMWDzz3x4NP3F4kpln5mu3JBe 0uH7bBVKKFhiBUQA57RHEVb8G8HAVDmtIyfClqSR4lrUHoWKNTVqo9rNqjVZr7Bc2mz/ kO4h/cxci2WCa2Jtlt+FDAaACA/eAXdUFLkNJOOKVOeeaFNWeMBzB9rYWepj1ZhtGju8 GgSw== X-Forwarded-Encrypted: i=1; AJvYcCXIZeajVfrNZR767OPpSE/z8M0hIkjnhjZPtqo5Aj6N4jDnc2yyam3qYnO8PCT5CYuRg5rrwVLcmCwIeOQ=@vger.kernel.org X-Gm-Message-State: AOJu0YxW7+2ujkFOApRLqX0q+BROACYq+rZxg4d4B8cgoNk8P+J4to44 D5VrhK9kgXjp9pmVX5fC9NejbGcRnmnJ+7UwVIxlb5ySFo9Yk8+SwIxnfmi+HeNyO4FrTNrSjjk JlVEg+F/UqIH83EjzhCNgsxcq7hukw5IBaTZSHv+TtrGBY8r1l5RIi2z50He8NrDlNxs= X-Gm-Gg: ASbGncv50PoQ6WDrsJMmYPcLjz3WXrgreGBIXPMzcQIoPvNrOGtZwlBzsX0rCvMHk9f kskMaeGsjmPvn6iJCEQ1mT3zXtytyiGoCQKsiCIWYG2JLHpi2q76cTCHRbTm/8Ly2bGlIk1JQAW O/6quogqnk53n+GSQ/+k+D4PK3Isyrnjmf4hVMwK4z/qYwTfKATJ6Yn4rg8AjlDD1fSERPMdy4u FPeXVNdCwkTfHC0Jsk+NGZVv7UwJk70lUcEu5SFsALKphj2Fe39jw3Yztk/NSFArbG5gUHmGhOQ hr6U1q0KrqVEc5Z5W/TN3lSHdHgG4maHLPXyy7wml3pkluc/QO2akX6E8tI2+Mun3e9FmVL4Ear QsLOlXmt1rw3mB4vIjDUptvQlyOoyig3hoxJPCBIgGO6SHJRy0HbxALRvC/3vwg== X-Received: by 2002:a17:903:1250:b0:290:dfab:ca91 with SMTP id d9443c01a7336-290dfabccd9mr198000185ad.54.1761093959884; Tue, 21 Oct 2025 17:45:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGP2bGgL//K1+9S3/naE7QJvU094EI8LGpgUEBEN4PEQmvyRXKJYh7a9Zju5xNxs8aORy14XQ== X-Received: by 2002:a17:903:1250:b0:290:dfab:ca91 with SMTP id d9443c01a7336-290dfabccd9mr197999975ad.54.1761093959412; Tue, 21 Oct 2025 17:45:59 -0700 (PDT) Received: from hu-amelende-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29246ebcf67sm121913045ad.15.2025.10.21.17.45.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Oct 2025 17:45:58 -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 v6 2/2] usb: typec: ucsi_glink: Increase buffer size to support UCSI v2 Date: Tue, 21 Oct 2025 17:45:54 -0700 Message-Id: <20251022004554.1956729-3-anjelique.melendez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251022004554.1956729-1-anjelique.melendez@oss.qualcomm.com> References: <20251022004554.1956729-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-GUID: h-ESW-GVkdz5mi5ZCBh0xamiXXFl9-BZ X-Proofpoint-ORIG-GUID: h-ESW-GVkdz5mi5ZCBh0xamiXXFl9-BZ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMyBTYWx0ZWRfX78we0lvsBzhF fCxUCnyV4EPraF7J2/z2SQztcvXc4KJyg+bXe8JR4lFFP/RPjPhpIsQcnAkwfITAybIvSvOQDsW /f/ynu6ah01zfEuhiuQNZygh1WoYTit6G76EXgxz1ZzSMYAccMJynxQAqgn8c3MxyybIFuVVq/X c28wIGzyXpeemtGTbVtSrlBywO1kEwKG8rgUckNwc5SVHEwZ8xui76yzcoCr6TYH4KxGHgQfKZR 92bHEtqusAsKoRuJIbd3QWJUKtXPYtZ+ZhuEgT9GycjeXW6cu8JEV+nEpSyRu42BeUQPsStY1/p 97qlUyXvpWLhDTfBdsSs+2ZN0uvrkyFB9XxEASYGedI0gcykHFTJDJ6NKPTkVbY7cVH+jUPy5dI 0fzKVcPpt2iZ4qEYsdHQLuMt5M/6qQ== X-Authority-Analysis: v=2.4 cv=E/vAZKdl c=1 sm=1 tr=0 ts=68f82948 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=x6icFKpwvdMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=bL7WY3GH-9A0ZCLeatoA:9 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-21_03,2025-10-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 priorityscore=1501 bulkscore=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 adultscore=0 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180023 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 Reviewed-by: Dmitry Baryshkov Reviewed-by: Heikki Krogerus --- drivers/usb/typec/ucsi/ucsi_glink.c | 80 +++++++++++++++++++++++++---- 1 file changed, 70 insertions(+), 10 deletions(-) diff --git a/drivers/usb/typec/ucsi/ucsi_glink.c b/drivers/usb/typec/ucsi/u= csi_glink.c index 1f9f0d942c1a..11b3e24e34e2 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,19 @@ struct ucsi_read_buf_req_msg { =20 struct __packed ucsi_read_buf_resp_msg { struct pmic_glink_hdr hdr; - u8 buf[UCSI_BUF_SIZE]; + union { + u8 v2_buf[UCSI_BUF_V2_SIZE]; + u8 v1_buf[UCSI_BUF_V1_SIZE]; + } buf; u32 ret_code; }; =20 struct __packed ucsi_write_buf_req_msg { struct pmic_glink_hdr hdr; - u8 buf[UCSI_BUF_SIZE]; + union { + u8 v2_buf[UCSI_BUF_V2_SIZE]; + u8 v1_buf[UCSI_BUF_V1_SIZE]; + } buf; u32 reserved; }; =20 @@ -72,7 +78,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, @@ -132,17 +138,35 @@ static int pmic_glink_ucsi_locked_write(struct pmic_g= link_ucsi *ucsi, unsigned i const void *val, size_t val_len) { struct ucsi_write_buf_req_msg req =3D {}; + size_t req_len, buf_len; unsigned long left; int ret; + u8 *buf; =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; - memcpy(&req.buf[offset], val, val_len); + + if (ucsi->ucsi->version >=3D UCSI_VERSION_2_0) { + buf_len =3D UCSI_BUF_V2_SIZE; + buf =3D req.buf.v2_buf; + } else if (ucsi->ucsi->version) { + buf_len =3D UCSI_BUF_V1_SIZE; + buf =3D req.buf.v1_buf; + } else { + dev_err(ucsi->dev, "UCSI version unknown\n"); + return -EINVAL; + } + req_len =3D sizeof(struct pmic_glink_hdr) + buf_len + sizeof(u32); + + if (offset + val_len > buf_len) + return -EINVAL; + + memcpy(&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, req_len); if (ret < 0) { dev_err(ucsi->dev, "failed to send UCSI write request: %d\n", ret); return ret; @@ -216,12 +240,48 @@ 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, resp_len, buf_len =3D 0; + u8 *buf; + + if (ucsi->ucsi->version) { + if (ucsi->ucsi->version >=3D UCSI_VERSION_2_0) { + buf =3D ((struct ucsi_read_buf_resp_msg *)data)->buf.v2_buf; + buf_len =3D UCSI_BUF_V2_SIZE; + } else { + buf =3D ((struct ucsi_read_buf_resp_msg *)data)->buf.v1_buf; + buf_len =3D UCSI_BUF_V1_SIZE; + } + } else if (!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) { + buf =3D ((struct ucsi_read_buf_resp_msg *)data)->buf.v2_buf; + buf_len =3D UCSI_BUF_V2_SIZE; + } else { + buf =3D ((struct ucsi_read_buf_resp_msg *)data)->buf.v1_buf; + buf_len =3D UCSI_BUF_V1_SIZE; + } + } else { + dev_err(ucsi->dev, "Device has been registered but UCSI version is still= unknown\n"); + return; + } =20 - if (resp->ret_code) + resp_len =3D sizeof(struct pmic_glink_hdr) + buf_len + sizeof(u32); + + if (len > resp_len) + return; + + /* Ensure that buffer_len leaves space for ret_code to be read back from = memory */ + 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 + buf_len, sizeof(u32)); + 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