From nobody Sat Feb 7 19:41:06 2026 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 DE4002FF64A for ; Tue, 18 Nov 2025 15:07:20 +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=1763478442; cv=none; b=EeZQiYFr7qJt6h8M+SSGIJub39PJfjcfZCXpGYaU/YKeOQLVGnUvFZHDsGniIg2IAyj3wrjfWfkeC4uDY/tVGY5cbJU1XLiXzGecrjNaRukLkYNxFm2rUj4uRrV8P2sk/35DePoEb/TV+DvhUxgeDaQHtScR1kEYY38tdt5U96s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763478442; c=relaxed/simple; bh=VXGbY1KhCuCPwRs8I3ovmJpc4pdc4DeTIUuoDHQosdg=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=m2SNwU+OXo+DuQvgswK/5n4EktFM7jppn4L1FzHxc7meiFENfWXkLAd84gp7jjaWAPns8YyfuHURV5xMtooBxr1T8O4o5FcvSJq3ECE4XTkr59JPmLwN74eCzlLJwrEyj0RtQhR6VU2i9pP3nlF+cCG4fjZkBFJejmlTlgtI1XE= 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=o1BE7OeW; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=MRys/AYp; 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="o1BE7OeW"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="MRys/AYp" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AIEHP3T623776 for ; Tue, 18 Nov 2025 15:07:20 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=B8mN/GmjCsBG0594TCA5PjjHjg1VtzMRNYw pzS6EVWg=; b=o1BE7OeWrWuG5/+UmIahCqeT249CIiRgTZqGP/9UbC8XDo2aK11 EPHXxoWfw+vM98ijbrfNKR4+jk7AKTiMIuJ89L8k1Qzru5xwUhwNbgIQpX0TQH0w ELAiG/Rqck0TbhoIGHF3x5+TyPudc7dgPrjGo8Imh4afgGfsgsE0KWoaMZppE8k3 dnikibjEod+hLGj5cpaxJvsfFtSVz7QL5zFFDhMK6b3lC0n/hCf9bJo1zz57jUkW syTfwoMWuLvk5WD+GbuNPo/nv6vmW90xT6+wRT0MYwImop1U6Lk8m4lxk4/Y50vB jX+/uuTUBk8qLLUmevmTMG7hgOm4CAM0jCg== Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4agahfaueg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 18 Nov 2025 15:07:20 +0000 (GMT) Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-7b89c1ce9cfso5603697b3a.2 for ; Tue, 18 Nov 2025 07:07:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763478440; x=1764083240; 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=B8mN/GmjCsBG0594TCA5PjjHjg1VtzMRNYwpzS6EVWg=; b=MRys/AYpUmKDCX79Vd/KyYOlS+OXb+hfZg+2wWUACvoKJdn91m/8vJE/hepUmZduhX AAPAFXllQUhOMh/AHWPLUXx8igPrK4wYttl0wog4+vkbu155YipuUjiDJlmTvIlVTm+B lb2nXid0uGiubjGhwI7TGVnFbKWYv43/hgqNrG/FoEeqndpY2Z8TYfN4+fmFpeAjGnFl Ygfj2jAVviAhLDARYNIwRi4Lal4TRh6QCeC98+TNlie4D2NpWfY7xySrKH15E/0ke+dg JMWBnGhxOg124uvXPM2GLueysFnUixFeJrtyjeuP9F4mMp3fJ0nNZ4FGQENfeexlOAit 3x8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763478440; x=1764083240; 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=B8mN/GmjCsBG0594TCA5PjjHjg1VtzMRNYwpzS6EVWg=; b=tZlo4tcJMRmHM6qGL/KYHUzGgFuX2TzZFpxjXFgY/PPIGvG9Gqa8YeMK09JBmp83BQ ED5f8EzZdaPDstFdAIim0elpv5SODFCh3Bwb4OajWne1XP2KaBEGQAqnkjC3/bsxqMDM wr8Kr8GI6GabA3Jdmps/1NxSknmu4JyeygWBf3QpFK0+rLIZecfWm5YTMn6NgupXmhuU wexudtdGgNh9UrQog8jw2Ykq+eKIK6zyaSI5W5t+JKKftf5jXw4iOx+BFFUD+L6lT+Kz IGyClacT0vUxgd5FanlMJpwKP2K9dF6VH+ItYIoWoIf3fG1RcqEMK3Q8FSjKMSbSyK1F CRKw== X-Forwarded-Encrypted: i=1; AJvYcCVm7AGhsBXth0EEvX58VQbPQQOCu6gVdMk/Swg3U5V+juqVj3xqYLtFZH28958NK2wg2D2WkPD4ChpsspU=@vger.kernel.org X-Gm-Message-State: AOJu0YxrwyUZqc84EmIY3otBZF2lbCP7cYalqTaIKxHAGCzs08CvqWly o8qr1e7RnIU55DzcqfNivIzyEOMcCTfDrJrMS3wFpFePQwr3XiFM5HgAUNMW4/EOa8lha9nFcCS eRPq2cepwDcYnVe7J26YRinsUFtygAcvmPXt2sQjB2Zz/jf4QJmJXs/AXT1CAk7xq824= X-Gm-Gg: ASbGncuZOXvsVDzm/QyVYC65MxyHp19Fg+pRwnOiyov1paeLSATfGRZCo4+ArEMpxGz S5eR8my4ekCVqdxIG6TapgCmHxoU+feWjvggGnUGktWLeVDWubZ76YBesyfFC7riJw65HTOR2Js XEgKalrk/bgrQlFqVeKcCVg3nauFVDnQMns7CMsNlXpKmgt+HG/PcrhFphm9qCi6FeBb7p+aCtH 7jKynn7ITyyRE3f5pUQU6eC1raV7gCNKR0Yspu6amltB9SBJWRiJAQoKXBRa0cQ5TB/QWif0xH9 UY+4Zh4ANnK0k17e1QEMfK0vOkt+IXIbtnu8xFxlHPJ3Gcy98GmlfyEQdGXrPIWWyR3nUbog35y vWPQGG/9Ovu3t11ECiqLqyo3Eimj12iMw2qwfmA77H4LZHb+qWAUdxF6n X-Received: by 2002:a05:6a00:1703:b0:772:4319:e7df with SMTP id d2e1a72fcca58-7ba3c66bd52mr18596376b3a.30.1763478439461; Tue, 18 Nov 2025 07:07:19 -0800 (PST) X-Google-Smtp-Source: AGHT+IEN8v25wkXWT1nNh0+Q/Q5NPaq5o0aKvp1i2kqJK/B168hXAA16+kV6/H29MM4NOga7YqBAhw== X-Received: by 2002:a05:6a00:1703:b0:772:4319:e7df with SMTP id d2e1a72fcca58-7ba3c66bd52mr18596314b3a.30.1763478438733; Tue, 18 Nov 2025 07:07:18 -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 d2e1a72fcca58-7b921cb6f44sm16942993b3a.0.2025.11.18.07.07.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Nov 2025 07:07:18 -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] drm/msm/registers: Fix encoding fields in 64b registers Date: Tue, 18 Nov 2025 07:07:12 -0800 Message-ID: <20251118150715.201623-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: AW1haW4tMjUxMTE4MDEyMSBTYWx0ZWRfX3r15H4SjKXPr 7C1igmaxIOGXPuPav2amkmKrdy0QdZYKfC+CzYNTNNfyMrDd6KMPtTytFjNn0wJME7JN3b0BfcG kM2urxefJFGd/vDt2rMWP83O4binBVXO88S7CeujWgPxtK6JNzvgKwsatfgMeUIb1J+EJk7rtP6 jsmJ44/5L+HGKDb8I6vDuhETzXEg6CpUwZC4nVA45gzmkT1wlUQsd8m+GrcUFqGFi7aAJKLY85g tC0cWzxd5NlgwKYPiHNs34N6W+ttyXZ+JqUQOrLZgeogYuPR1Bz4ArzmXaKIy4OwwvKA/T5wgWS FnBAy9v+li8g6cuaoympMHWU9HrYTqyZr0UMHiufMF03SRd6U/ZIVng5oi2boo5tMKdCPsFkwXX KALQPPtbJO+E4Fb+EYfGzMTVgAdYTA== X-Authority-Analysis: v=2.4 cv=RpTI7SmK c=1 sm=1 tr=0 ts=691c8ba8 cx=c_pps a=m5Vt/hrsBiPMCU0y4gIsQw==: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=IoOABgeZipijB_acs4fv:22 X-Proofpoint-ORIG-GUID: wjjTxjJ3ju1Sh68ktq-gsXDC15Y8dUmh X-Proofpoint-GUID: wjjTxjJ3ju1Sh68ktq-gsXDC15Y8dUmh 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 priorityscore=1501 clxscore=1015 adultscore=0 bulkscore=0 suspectscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511180121 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. Co-developed-by: Connor Abbott Signed-off-by: Connor Abbott Signed-off-by: Rob Clark Reviewed-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/registers/gen_header.py | 17 ++++++++++------- 1 file changed, 10 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..54a08d4a0ae7 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,10 @@ 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: + if reg and self.reg and self.reg.bit_size =3D=3D 64: 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 +284,16 @@ 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)) + tab_to("#define %s__MASK" % name, "0x%08xull" % mask(f.low, f.high)) tab_to("#define %s__SHIFT" % name, "%d" % f.low) type, val =3D f.ctype("val") + ret_type =3D "uint64_t" if reg and reg.bit_size =3D=3D 64 else "uint32= _t" + cast =3D "(uint64_t)" if reg and reg.bit_size =3D=3D 64 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 +440,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