From nobody Tue Aug 25 00:11:21 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 C5C6844D021 for ; Wed, 8 Jul 2026 14:40:59 +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=1783521661; cv=none; b=TC4r2po5IP3XpBKaU7d8bR1V0dZDfeHJ8Rs/b1BEljPSApaaDZkh0P3b8SFGNb9tJqHZ0g7vcn6FWW+gs0fA1lbaQftNp98/6mzD0U9TuwpLMZ3BQeAdc9YtLW0Z6B4b2y2J8egCJSqO2kBY7HNl/vfxA//9oBqA32ko6lqfnak= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783521661; c=relaxed/simple; bh=b+pp/0eMvXfKqo7wq9dHpWibqkFfwTyWma2wdSVnAxU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=iSLdrEHUJ5irt7JPu/fzrmsvflM3QQUF29vczdmav4BT3cylubuTs9N0tjn9obdm1zUARVuko+Yhq9i5iDw+6RbglW59EMHv5ba1O+xdmbBD+1bAsN5M0S+MWCzDmXVUrZO1nhbOT83uPUEjZ0XMk3SGdqI1QxdVxVlszU2VMj4= 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=lukpCgP8; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Kz18lpZA; 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="lukpCgP8"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Kz18lpZA" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 668D85sT2678788 for ; Wed, 8 Jul 2026 14:40:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= gnPPMZzj3Mrmv2RNnlqkr23EYkv16gUC6haf1k/aIks=; b=lukpCgP8h6w848RP xuIbaIhsVeXTjrTRbU0rrOQEldWko58SlhpUg0gMO/cp0dYP+TMDnex0ikb99azn 0SPoNUEhZ768Emh+wlq1WOe52MEr3i7O6pNGtKcyiXE1XQWFnqUi4e0CxTBZXHoX eC/nJUA5CizNp+97+ZYg1LX9nNymmvoSOaaCo9SlO3MpoTAxKvADeWrw9HKdLgBt ga1aD9j2D0hCq1iFQ56lvhamhdEu4snMaLmcrs90/pstwM2Cnf5icfA688JK5lny 8qVPD/p19M9hdyfSzv261LunVKRqRiC8Xk1ZtY10sg+r3NnD3hzvKQ8+nkujVn74 O5obbg== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f9q5s8e61-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Jul 2026 14:40:58 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-92e820609d9so76438185a.2 for ; Wed, 08 Jul 2026 07:40:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783521658; x=1784126458; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=gnPPMZzj3Mrmv2RNnlqkr23EYkv16gUC6haf1k/aIks=; b=Kz18lpZA4YWtcZkW943RF1yZr3j+o8djrucWAG+fUSP+hj9YPO+gn4Vfa4lo5NNA+A lEKQHQQi8E2sqpXs2t3YKDSSrwXHT9HCd6SdooLMjebwqBf8vyQzuE/1YbUo1bZGegdp 9T6I2lDymuzf8rCbS+NyvrytcmacqHvQK0sxGJD0/C5bsV14scgCnWrgfxlbpBX8x+LI TMpmyZUzXmP3FLhM49wRshHvE7E+gKdEBVyGky2w/QLiQzCqaPaiA+0dhD1jac+6XOOO Pt8m0Ta7fo8AvodBAd1BiWblR39zuZu8i4h4mcdhTYqvlU/B4/OKCdVkqI7sN3nqW+iU scuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783521658; x=1784126458; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=gnPPMZzj3Mrmv2RNnlqkr23EYkv16gUC6haf1k/aIks=; b=PCZqzQip6+/WC9qSNJuXC/FWGAD6p8ToIL/le+N3PTIu3w6vrwm6BIS9A5MAKFTdXk OkS9/ENTnL1nDojQrRNHt5ZZ2ilArNx+WjTymDWfVZxdb2z7SLiedXymrvUsWEWRRfQm YFjWdDLLOqdB8drQNq02KPJ4kAY5M77DwJUuxHIN3TZJ8trimqsIIwJ/nqDTxVGDhKeq BvsPTlI+Ai9jbh4vkuppU2CGcm9hecRzU4t57gGfYcDoa0nR3u/ZtL2Cni5q4MxR+tgG t5ortvBCcuoVZNEpPsU05e+WUP/IBXTcSFu5+taAFP2eJrOdtDUFp3JU22BfYL3coRQH RKxQ== X-Forwarded-Encrypted: i=1; AHgh+Ro/rCe7fU2uQEnH95+aHG04+O9mE0HlIGx3heueFmBJdlma+XdtewEtrClenfznsc8WuQT0kcH28phCjVM=@vger.kernel.org X-Gm-Message-State: AOJu0YzxfSqexBVyemy6/dHmxv7kRZy4TSCOhb9j1MbbfBnboN0GmAr8 qVmspvbctc7QYE56j5B8X9z5bBe1VUacAb8/5thSpA8XVh0lpGrPE+vdV20juvsqCkuFBChJ2CY mtU0lCS5pElvzanN4462YChjMTVT0pr5cCidOWoexe9myOpNPCgNR05JtxX3Upd5dpTs= X-Gm-Gg: AfdE7ck2ySAPAMBwHf0oQsk3V7bG6omaSerziuZ0iaoJUvxW3AcPNzKcm4yc54WfU2M kUXlMUQihOGNp0lQyy931aUgZ19gIv/i0fIP+YEQt+Y9Mg98dOsD/13E8eIeJOdubVT/6kejYEx CKMMfUt1Hl/01/c8SFQx4NtJ33cs7Ef4ZPzYnuNsmGLpL/1SujiwWQ75hAj/dY3jDWhA1K12cpW clSS8InyR6MNf26rALmlyUtlEonbsqOCIWqAO23QTePyc8z8tKcL7MiERMJAL7qCp0ur2427m0J 7M//Oi7BwyKvrQRAUIc8yusnfV2UCm7cRZDBfNkif1se/ZJkq7yGK6GHvXoQvl9VLhLnYAcpvs7 iYM+YUqrP+gJwSof8Eymqglhx9JloqpA8+LQ= X-Received: by 2002:a05:622a:15cc:b0:51c:7b12:5fe7 with SMTP id d75a77b69052e-51c8b42875emr28942471cf.83.1783521657650; Wed, 08 Jul 2026 07:40:57 -0700 (PDT) X-Received: by 2002:a05:622a:15cc:b0:51c:7b12:5fe7 with SMTP id d75a77b69052e-51c8b42875emr28942101cf.83.1783521657238; Wed, 08 Jul 2026 07:40:57 -0700 (PDT) Received: from [127.0.1.1] ([178.197.223.174]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15da821c58sm52543766b.48.2026.07.08.07.40.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jul 2026 07:40:55 -0700 (PDT) From: Krzysztof Kozlowski Date: Wed, 08 Jul 2026 16:40:33 +0200 Subject: [PATCH v4 3/7] dtc: dt-check-style: Rework handling YAML/DTS in rules Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260708-dts-style-checker-v4-3-c175e6401150@oss.qualcomm.com> References: <20260708-dts-style-checker-v4-0-c175e6401150@oss.qualcomm.com> In-Reply-To: <20260708-dts-style-checker-v4-0-c175e6401150@oss.qualcomm.com> To: Rob Herring , Saravana Kannan , Krzysztof Kozlowski , Conor Dooley , Test User Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Daniel Golle , Krzysztof Kozlowski X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3892; i=krzysztof.kozlowski@oss.qualcomm.com; h=from:subject:message-id; bh=b+pp/0eMvXfKqo7wq9dHpWibqkFfwTyWma2wdSVnAxU=; b=owEBbQKS/ZANAwAKAcE3ZuaGi4PXAcsmYgBqTmFppAlyyirSPtnnclYvhKQAS3wbKaDHmUF7X UqN2tDfkpOJAjMEAAEKAB0WIQTd0mIoPREbIztuuKjBN2bmhouD1wUCak5haQAKCRDBN2bmhouD 11bGD/0bBHROobuiKuII92sQCYE7o2gOdN5s6p7mWjJQVhtm2sgR06E7BbgFfIkyLCnA6Y2Mp5i uolW5ikkYn7vDvM2CgKun2iS6DMY4/G3EiWjjQyP1w5XR+mmZ5daFmpQyDo/909rHUJnzVH7OCK x8quikCrvyj/gGWU6nKY8ksi6+mp5NsKFdx6Y2IKZjoMkAgpP6kqeqBy2dJF8WGtYmL82SYeI7Y zApy3NFNPK/emE3HfrCxj7pW4RQ2tIkzJlLCViuCKnnaEiKl3G5Zf6UpDYqrM8JB2xt54gOCysQ ZLsmmut77bgXRMhauKaTdPNqtHdVkibIhVYvl04slNKQD8mEYfLox0eZhzlUOR/nOzN/ANJ8IFD Dtc0+wnRZdfauBPQmOJdXTihYF3HdSZumdSFe2ec65JNVBQLnpOkgzVoSiLsCYE4o8KuUGAC5/U 1t/VAuXsFU4nfY2IUNqfEN6gZcJkg7aD2lnski27T9OpmEQfNJ5x4lLuJoaKB+TyA8vcfpSAqa3 oLwQgp7tDYrOMAj3/RoS75TDY3F8zCtDJ4U98SA/uR8mWtjYgO0IhIHnXM3iWk31ErwfyZ3ZlHk NNaQ07wP7X0XtqOMYKcg7HAeLRzMw51vUuWqUzwC/P+uJbhxIhS+ok6LkSzg8g10QAOY9C1Uu5c 7nW7Znc1XbCbemQ== X-Developer-Key: i=krzysztof.kozlowski@oss.qualcomm.com; a=openpgp; fpr=9BD07E0E0C51F8D59677B7541B93437D3B41629B X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA4MDE0NCBTYWx0ZWRfXxUMliVg9vWWX 6TN9ZvEQ5Hwvp9EfLn2nTWGsv6NnSVXspje3+3X9LnhioBrp8ktGsb/VTjSWY/iYlATk+tJ4jNY BKrxhmt6CXq/SnL9VuiMVAvTvs7TKjEI7+M8wWwhgH7gM0El/L3YN6wuUr3SjhtEChlxwemxzvc zFOXlbPXrBJEEjkXwQe7DBlh33/qU1KrpRMuZijT/QIvZWmusyY/RbwRkrro2MnDi7ErfxCMHiD toF2ivjZjSrNxY6Lb//3KqodxRGRId5lR7chq6bWxP/qwTLIlKQTtvwSdWTR92V3pfpwI1KFoNN s2+VuPf/rnTkbTBmOgDGMWE5IRnVsM9YJd3NCqV9Mxznaj2teZxcY8F5mYZxGOy31ny7nzqJTPy n7IaiMVsP7T7WM6FVDxvOmc7f5h2Wd+R49YLPaVDuSgQvk8V9uG32Z5I77n1Zci8kYrq8IQEowD Rr122U0BLhOHU4J5E/Q== X-Proofpoint-ORIG-GUID: rFnGJEVCBsTiZFa8JPCY465PlbWhAsX1 X-Authority-Analysis: v=2.4 cv=NfTWEWD4 c=1 sm=1 tr=0 ts=6a4e617a cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=N6niishs+lR9UBL1FN3Qrw==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=ZK4BJI6VOU2p3dBXLA4A:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA4MDE0NCBTYWx0ZWRfX2TwJJzQl/8BL GVPKhzX04reIn/Us9YiD1vL2soraFX1WD3v1y5z81ZlRm5p228eHxyETjESSMh+dS3LugokQid3 /RJCdVRRIS45stmopxhAz9v/tCM05ko= X-Proofpoint-GUID: rFnGJEVCBsTiZFa8JPCY465PlbWhAsX1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-08_02,2026-07-08_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 phishscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607080144 Individual rules behave differently depending whether they handle bindings (YAML) or DTS, but the code was focusing on type of indentation (spaces vs tabs). That indentation is actually irrelevant in some rules, so differentiate based on file type. This will be more relevant in the future when more rules act differently on DTS, than on bindings. Signed-off-by: Krzysztof Kozlowski --- Changes in v3: New patch --- scripts/dtc/dt-check-style | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/scripts/dtc/dt-check-style b/scripts/dtc/dt-check-style index 5d7765f35ecb..bb9ec5b82319 100755 --- a/scripts/dtc/dt-check-style +++ b/scripts/dtc/dt-check-style @@ -311,13 +311,16 @@ def collect_labels_and_refs(text): =20 class Ctx: """Context passed to each rule check. Carries the parsed lines, - raw text, mode, and indent kind.""" + raw text, mode and kind.""" =20 - def __init__(self, lines, text, mode, indent_kind): + def __init__(self, lines, text, mode, kind): self.lines =3D lines self.text =3D text self.mode =3D mode # 'relaxed' or 'strict' - self.indent_kind =3D indent_kind # 'spaces' or 'tab' + if kind in DTS_FAMILY: + self.file_type =3D 'dts' + else: + self.file_type =3D 'yaml' =20 =20 class Rule: @@ -347,7 +350,7 @@ def check_tab_in_yaml_example(ctx): a #define value are tolerated (those are CPP macros, not DTS). For .dts files, this rule does not apply -- tabs are required. """ - if ctx.indent_kind !=3D 'spaces': + if ctx.file_type !=3D 'yaml': return for dl in ctx.lines: if dl.linetype =3D=3D LineType.PREPROCESSOR: @@ -420,7 +423,7 @@ def check_indent_unit_strict(ctx): unit =3D detect_indent_unit(ctx) if unit is None: return - if ctx.indent_kind =3D=3D 'spaces': + if ctx.file_type =3D=3D 'yaml': if unit !=3D ' ': yield (1, 'indent unit must be 4 spaces in strict mode, ' 'got %r' % unit) @@ -431,7 +434,7 @@ def check_indent_consistent(ctx): unit =3D detect_indent_unit(ctx) if unit is None: return - if ctx.indent_kind =3D=3D 'spaces': + if ctx.file_type =3D=3D 'yaml': if unit not in (' ', ' '): return # let check_indent_unit_* report this else: @@ -1016,11 +1019,11 @@ def select_rules(mode, input_kind): # Block runner # ------------------------------------------------------------------------= --- =20 -def check_block(text, mode, indent_kind, input_type): +def check_block(text, mode, input_type): """Run all selected rules on a single block of DTS text. Returns a list of (lineno, rule_name, message) tuples.""" lines =3D classify_lines(text) - ctx =3D Ctx(lines, text, mode, indent_kind) + ctx =3D Ctx(lines, text, mode, input_type) rules =3D select_rules(mode, input_type) findings =3D [] for r in rules: @@ -1100,17 +1103,15 @@ def collect_findings(filepath, mode): formatted output strings; count is the number of findings.""" kind =3D input_kind(filepath) if kind =3D=3D 'yaml': - indent_kind =3D 'spaces' iterator =3D iter_yaml_examples(filepath) elif kind in DTS_FAMILY: - indent_kind =3D 'tab' iterator =3D iter_dts_file(filepath) else: return (['%s: unknown file type, skipping' % filepath], 0) =20 out =3D [] for text, base, idx in iterator: - for lineno, rule, msg in check_block(text, mode, indent_kind, kind= ): + for lineno, rule, msg in check_block(text, mode, kind): abs_line =3D base + lineno - 1 ex_tag =3D '' if idx is None else ' example %d' % idx out.append('%s:%d:%s [%s] %s' % --=20 2.53.0