From nobody Tue Dec 2 02:49:48 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 C04953328F8 for ; Tue, 18 Nov 2025 15:29:59 +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=1763479801; cv=none; b=kfH2ldpaC+qyYJ+8kz6dNaiJdErN3p/SFssHlMpfSaZFReoC9qhIuvGoYPkbihXf6L7Zr8mxhWBWsPPkGncyonlmYQsXhg6pGTd3s8N00GelynkabxArtp5L4Aa2rMdsfhbshkSOZLMB2gC8H56QZ/aqcsScdoqsF6u7aVgW56k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763479801; c=relaxed/simple; bh=h8Wy8BJTgTAWjvrbRWFecxoijX7E/X0NFjBj8Sl81/Y=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=GAtywoxRxL+HyZYwIJ3Sr7PaB4jH10mDsww+f1oldMu5gtSlZvg8jaTu4dCJMemd9VVtXzR6YLW6xiD6z8YSQs+R/CQO9rZ6JoKwrhjmrBE/FcY1P1RQBSrl7ukSLXEfj1kKM6kXyQp6mOxpB65FhTtaeF+52A4W3fV7QVHHZ0Q= 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=GsciJI+e; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=BZfJmeKB; 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="GsciJI+e"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="BZfJmeKB" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AIED92g2272034 for ; Tue, 18 Nov 2025 15:29:58 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:message-id:mime-version :subject:to; s=qcppdkim1; bh=I+VDmgEGyB6TgQRIfvWH0W0zNDau9SODpdv whVSLYSM=; b=GsciJI+eubbH2Zmbgge245eKjnyy1XkJFZ116YUk6WP9LAt4OV5 chSnlm/0lB2NYYL5CAeSzv/WDruvnDN8rmlEYZg2J5gHafySfRbC+4LpEeX/ctqh ZYlwpK7AoME1ijgGfm92JuoPWq9+mYBeeZKZK9CKofoT12BKRksywKrzwrN7fbz/ pzODjAdPZtmg37xmbOqaTBmlMrlVBU55fA+tmV4K/RvOT+1WrhJ6AcB2dueFiYiN pJKKN/5ZQIzBFwLl82W09vE/M3hdBAzylhO6mBHzUs/QLRwK78/ayMJb7BxDHdUF BAYRgkcQ7cZRU/P+cOcGR5zqwWA4HQlrdgw== Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4agkrmhfjv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 18 Nov 2025 15:29:58 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-b993eb2701bso5566842a12.0 for ; Tue, 18 Nov 2025 07:29:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763479797; x=1764084597; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=I+VDmgEGyB6TgQRIfvWH0W0zNDau9SODpdvwhVSLYSM=; b=BZfJmeKBDUTR7EO/0qxulwX1gWI+kjTEvvfWjXF9A9E6ms3cXV6X0o+xONcLJMw+rZ Hv9eVEiiO3Uk9QgsqfH5vZ1Bn0v5McjP/MHulvW+m36c30RdzaWlRGqZctMC0cs51hT4 EfabSw41U+179R5NUP64JP8+Dz07krK5BfUiit8X2Yj42Sw1OejJzCHoYuWYKxbHYRbx Fp35U+DG2LjJXQsLtJyszfkdskafXlxm8cbhR6Jll2zf7dHixl/0xyDODAZ4sxfrjdmd zpifJVUXPqIckGcbvnrM5hBgB26pCXUUL8E4ia8YwqeoFEiiSgBadt73BioN2UmWxwm0 Nkmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763479797; x=1764084597; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=I+VDmgEGyB6TgQRIfvWH0W0zNDau9SODpdvwhVSLYSM=; b=VsDHeMh1EV40CVTNXXU3Yra1fV1SiHdTGGyyI4MorLakBz1IOQNP91YKNe5OQ0bTgR heoytqhko2FdqW8JWGTWi4pBIdn95rVDOlc06AokMH62hDzdnfl9g5jlcYtNX/N6SZcQ V+uTxcIhkzGCi8JivL3eoUpTo3zIacfnCnugcgUtGUFGE3kUjEXn2CvtYjKKy4bIUR/g DSh9Pta1ajXGLbgtpEiehqWGjPjpgyGDYQirH3HryNDrYZ26GVWB/Trs2YFy8eQ8wmHu brTCTu9A4DgoKf+zdGm8Wv/bQHpG1sbF0X8Lmx10FHYgM/BO+o6wTlJjfLz8XbMy1QTv 327w== X-Forwarded-Encrypted: i=1; AJvYcCUp1Ejv3zw4yl53EwIc3HJbOEMy1La29KKkmhPWX2L/RALtB+GDXbLsw1e6tn4xoTaTAgZ/wOT4fWUG1AI=@vger.kernel.org X-Gm-Message-State: AOJu0YxcTN4UDlFOZUV1um4G0VaPYAXbKR7OLHdHTs7dVLiv1Av3sInR xX1XJO+Ukd6yUxA8Lo4lj0lPQJP65cPNuqZIiDP49IxVT/7Q7K6GO/DL7rKV3obwsRaeRAmfps1 HqklKTH1VBfw/IPGJrvTZ1wEdo9MVzR0J36PRU1ikkrjEwb6CI8s3xqP+KqDB3irEAcyZ/afYh7 g= X-Gm-Gg: ASbGncuEJWAb5i3BHxNm4XLbY611eo5OLCfuHnx64QlbyzjvQVQR5+HY6o3VEv8GVYB GhRg2zeaJ+V55JmVnnEm7eesU3VXPgrUOv9J/oj6Dwy9jYuotCoeYW8qNV6w8YWko3fWe/hsdNi f3WWn+XzMBoCGRSACb1ripL1PjRifekGCcYvslfJBbCbA3ic5/lfSAw3zegAJNQG59dSM2nRTsz dIx4r5r5SeR+ub0Cc0N09FMBNT1/g+a4a/RZe2G033pWflxAZBMZ8d2L82ykGnMTway8RWmBhEa UxAPQBulzBx5SthJCRuZdnv1kFeTj2qqHu2FB8PIOg2aVKjZK9nTZJ+KH3kWi/Ic0XvXb/r8bL9 hbxm2A3igBBhq82bFZqjXiQDvSAlKr/GfFX5T92gqEQ4n9i/wg5nmhYRR X-Received: by 2002:a05:6a20:3952:b0:341:84ee:7597 with SMTP id adf61e73a8af0-35ba228b7c4mr18420527637.47.1763479797459; Tue, 18 Nov 2025 07:29:57 -0800 (PST) X-Google-Smtp-Source: AGHT+IEe4mHSbCZax4MAs1NmPegRHOtwX0Q3zmqbi4opsIbcLXwrTwyddGfmcrdprr0gXjZZ4jZQ0g== X-Received: by 2002:a05:6a20:3952:b0:341:84ee:7597 with SMTP id adf61e73a8af0-35ba228b7c4mr18420492637.47.1763479796936; Tue, 18 Nov 2025 07:29:56 -0800 (PST) Received: from localhost (c-73-37-105-206.hsd1.or.comcast.net. [73.37.105.206]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-bc375081bf8sm15591289a12.24.2025.11.18.07.29.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Nov 2025 07:29:56 -0800 (PST) From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Rob Clark , Connor Abbott , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v2] drm/msm/registers: Fix encoding fields in 64b registers Date: Tue, 18 Nov 2025 07:29:49 -0800 Message-ID: <20251118152952.226510-1-robin.clark@oss.qualcomm.com> X-Mailer: git-send-email 2.51.1 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: AW1haW4tMjUxMTE4MDEyNCBTYWx0ZWRfX1S7NsM/ElxqH oFMuTrzLTV8DOfl0NeDUZ3qZB2WPkPJgrPxVdf6sOAkxsp+w4A+bhfiRUPNWAs0bie51MmElLmj lfwUwoWyLxOpKvSNbDONI+Gsg9I3h23m39M+aUWoJl3pR4garetZHKfb6NQMfSWqnkgYw1hMB2V YtyeHJTXMy34u/5pYbGn7lIoGjiLyCofxqYxq1ra9fq0bgoPLyoaeyK1FkosDeXvptLDTep3iey Mq8rn2DBy1f7F+wfkJUXGb4DHpYFrbhpuHSqgY8g+KQ9AuTuzWulKeRerSp41wS/a7IzWb567Kh w9Jd7iS6vZ5xMem7Cp+N0a2Mz20ngke33Ak8mJgAH+SUE7vrK6/EIzbRymhTe51jxhRWN/ZWDSs QOxH6XmfZMR0qWlX5Z00jc8Rst1c5g== X-Proofpoint-ORIG-GUID: 292P2p79CZLliu8bITepgCik6EAXBAmE X-Proofpoint-GUID: 292P2p79CZLliu8bITepgCik6EAXBAmE X-Authority-Analysis: v=2.4 cv=JfWxbEKV c=1 sm=1 tr=0 ts=691c90f6 cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=19Wyn7e3V/0aNffMjNCMQw==:17 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=OSLXHSMv42BtIwkUFNYA:9 a=_Vgx9l1VpLgwpw_dHYaR:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-18_01,2025-11-18_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 suspectscore=0 adultscore=0 spamscore=0 impostorscore=0 clxscore=1015 bulkscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511180124 Content-Type: text/plain; charset="utf-8" Based on mesa commit 3f70b0578402 ("freedreno/registers: Fix encoding fields in 64b registers"), but with some fixes to not skip emitting interrupt enum values. v2: Don't append "ull" to 32b reg MASK defines, to avoid printf format conversion warnings all over the place Co-developed-by: Connor Abbott Signed-off-by: Connor Abbott Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/registers/gen_header.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/msm/registers/gen_header.py b/drivers/gpu/drm/= msm/registers/gen_header.py index 1d603dadfabd..2acad951f1e2 100644 --- a/drivers/gpu/drm/msm/registers/gen_header.py +++ b/drivers/gpu/drm/msm/registers/gen_header.py @@ -189,12 +189,13 @@ class Bitset(object): print(" return (struct fd_reg_pair) {") print(" .reg =3D (uint32_t)%s," % reg.reg_offset()) print(" .value =3D") + cast =3D "(uint64_t)" if reg.bit_size =3D=3D 64 else "" for f in self.fields: if f.type in [ "address", "waddress" ]: continue else: type, val =3D f.ctype("fields.%s" % field_name(reg, f)) - print(" (%-40s << %2d) |" % (val, f.low)) + print(" (%s%-40s << %2d) |" % (cast, val, f.low)) value_name =3D "dword" if reg.bit_size =3D=3D 64: value_name =3D "qword" @@ -264,10 +265,11 @@ class Bitset(object): (prefix, prefix, prefix, skip)) =20 =20 - def dump(self, is_deprecated, prefix=3DNone): + def dump(self, is_deprecated, prefix=3DNone, reg=3DNone): if prefix is None: prefix =3D self.name - if self.reg and self.reg.bit_size =3D=3D 64: + reg64 =3D reg and self.reg and self.reg.bit_size =3D=3D 64 + if reg64: print("static inline uint32_t %s_LO(uint32_t val)\n{" % prefix) print("\treturn val;\n}") print("static inline uint32_t %s_HI(uint32_t val)\n{" % prefix) @@ -283,14 +285,17 @@ class Bitset(object): elif f.type =3D=3D "boolean" or (f.type is None and f.low =3D=3D f.high= ): tab_to("#define %s" % name, "0x%08x" % (1 << f.low)) else: - tab_to("#define %s__MASK" % name, "0x%08x" % mask(f.low, f.high)) + typespec =3D "ull" if reg64 else "u" + tab_to("#define %s__MASK" % name, "0x%08x%s" % (mask(f.low, f.high), t= ypespec)) tab_to("#define %s__SHIFT" % name, "%d" % f.low) type, val =3D f.ctype("val") + ret_type =3D "uint64_t" if reg64 else "uint32_t" + cast =3D "(uint64_t)" if reg64 else "" =20 - print("static inline uint32_t %s(%s val)\n{" % (name, type)) + print("static inline %s %s(%s val)\n{" % (ret_type, name, type)) if f.shr > 0: print("\tassert(!(val & 0x%x));" % mask(0, f.shr - 1)) - print("\treturn ((%s) << %s__SHIFT) & %s__MASK;\n}" % (val, name, name= )) + print("\treturn (%s(%s) << %s__SHIFT) & %s__MASK;\n}" % (cast, val, na= me, name)) print() =20 class Array(object): @@ -437,7 +442,7 @@ class Reg(object): print("static inline%s uint32_t REG_%s(%s) { return 0x%08x + %s; }" % (= depcrstr, self.full_name, proto, offset, strides)) =20 if self.bitset.inline: - self.bitset.dump(is_deprecated, self.full_name) + self.bitset.dump(is_deprecated, self.full_name, self) print("") =20 def dump_pack_struct(self, is_deprecated): --=20 2.51.1