From patchwork Fri May 3 18:15:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 794651 Received: from mail-lj1-f169.google.com (mail-lj1-f169.google.com [209.85.208.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D898A158A02 for ; Fri, 3 May 2024 18:15:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714760109; cv=none; b=Y6cmwRZssDBe+ceDgfzhC2uSqiAgwIXFFJtNMIq2R4iJDHWkVBgtxr9verWCwjNHhgYnf+FbxgQdgtOfyRMmf+6PIuzqC73gOwkyerHCHRbaFCKR/BN6a4ip9IQm5hYi0XZ9NaftJZadOtVNJ/BNBFUDpz8QDA3030GSKZvj1EQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714760109; c=relaxed/simple; bh=Nc9hNE58BK51xhK8ILsD1cIi3UtQvYLTsi34vGY1x6w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bvJkL2YJyNG/rKnC028+mQaFi3VzcTwXREHvz6LNs9U8U/Oyfm01sJM5cWnn4o/Gt6J7FFE6yYtO2PaqcKe27McTQceJYAG/9BYoTCVPtW8Jn5zMhWj6UmsaTiYsbuTyGWsBosbfR4rqQRA4l3A/Rb7zWphH8uHkDRMOI6/sRb4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=VV16mmnS; arc=none smtp.client-ip=209.85.208.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="VV16mmnS" Received: by mail-lj1-f169.google.com with SMTP id 38308e7fff4ca-2df83058d48so86259381fa.1 for ; Fri, 03 May 2024 11:15:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1714760106; x=1715364906; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=skHQQr6/l6kfvwJ0x7uA/O7xeOEy9Dekh3cEjjcSscA=; b=VV16mmnSGsFoMaxFz7GxDJZpmsdrqFdZblUpXGV84caBijoV9Fr9dmrhwyWzmsQjyw celEPUlW14kEe3CAPim3zHMT+yXDSBOU+xzA3IqiwV4AnddegqIrWoLQGyTdqE9KDtV2 UrfiojxnsO+VlsfcPwL1tDHopHF847albTx5hXfPdx8usbJu0BPUO7fhvguSnovjR1K1 Uq5w9epgu7d3oDQubQ9rkjlB1jP77NKfrsZxfOkoXc446cY+iNm2QmdPrizV+xtIXN2x jfhWNtvmAbnIYKmVQWvbAsrfUEbmLDAOMwCmeWtmM+ST4t0cXHbzO9NpPv0QG5EHf8pJ SpZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714760106; x=1715364906; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=skHQQr6/l6kfvwJ0x7uA/O7xeOEy9Dekh3cEjjcSscA=; b=ROIXgy5/FRxVJmvXi9dhuXEDzJBr9QIFmZ3qw/STexo2PLmLq9GpJjVsPoiZe1o8WI /XEgjwCbw0gtJK2FysyIrZ1qh36pZBEcVtAGtcdB/oTddKXaoeSWr2+pqQqP0Jp62ovT McWTiLcNwPwhaMhqxrKa4+SHEdLEUHwJABYLB9xUfSSJL1Jz/UilQXF2fGsGY2DcdduX O2q94Mz4twiM0g2/IsgnI38CbGrnJx7dPcmgRPXDJW7smZpqO4ThfjXevjSgC9CiclWQ JegGNKrycoJeTYnIEou/bQexo7N+LsRyfkccAEZH+Uz+pOsUiajxGHvt8K9nQLTYUTp/ mk+Q== X-Gm-Message-State: AOJu0YwwzDtyMHTfiN3M3iv22cNtXthKmzt7a0SnzNP+QMLIuQOLvx0X 41hk1eso4Fp754ynBoORoyEivoDWR/Knwuww5XLjEmb29Y/bBSRqU5e2isQffSw= X-Google-Smtp-Source: AGHT+IErLUvCTp3mZM1tRLp0DEFt22pumkf6pfZD/UceDRcKf1yCaB01xmYu/WOUEodg5n3tjuKMxg== X-Received: by 2002:a2e:9b0e:0:b0:2e2:1bbd:4ffb with SMTP id u14-20020a2e9b0e000000b002e21bbd4ffbmr2103527lji.22.1714760106046; Fri, 03 May 2024 11:15:06 -0700 (PDT) Received: from umbar.lan ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id s7-20020a2e9c07000000b002de118decbbsm605548lji.53.2024.05.03.11.15.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 May 2024 11:15:05 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 03 May 2024 21:15:03 +0300 Subject: [PATCH v2 1/2] drm/msm/gen_header: allow skipping the validation Precedence: bulk X-Mailing-List: linux-arm-msm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240503-fd-fix-lxml-v2-1-f80a60ce21a1@linaro.org> References: <20240503-fd-fix-lxml-v2-0-f80a60ce21a1@linaro.org> In-Reply-To: <20240503-fd-fix-lxml-v2-0-f80a60ce21a1@linaro.org> To: Rob Clark , Abhinav Kumar , Sean Paul , Marijn Suijten , David Airlie , Daniel Vetter , Helen Koike , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org, Stephen Rothwell X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=4120; i=dmitry.baryshkov@linaro.org; h=from:subject:message-id; bh=Nc9hNE58BK51xhK8ILsD1cIi3UtQvYLTsi34vGY1x6w=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBmNSmozOG/joa4cqDUWD1VjN9wTEAvsB5eq+xk7 QAdsumPRPmJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCZjUpqAAKCRCLPIo+Aiko 1Q9xB/4iDrSSvTmfXNCsFiLTo2477qXgJzXMHzCiAUJ9v03lU5+MFosDd5wVJErlvq797qkByIr Nv7ifu0ag+lYSh86wjxBD5xwxH2ZSgBEwVMsnQFj+1e9MZq8/peQGsVndUnWKI61SSmVvp9Z5A1 ywoG0u0V3fMcnx79xqJo2VgZGzHgQPusIQDG0E48uVgh8e2MBAFj/9DGrkFIoHy/ai5xXNKFz5X 0yQq0Jt/7ZrNf4Yq4WBM0FiwlxnSjr9N7Ikl4USl2QeNe8UGBSEF5hB6Ycz84We1Py7A89I5grd BARXj1ORVR0Ce0H4u3/ZLZXonu5IvO/scRi5LnPu8VhwP1N2 X-Developer-Key: i=dmitry.baryshkov@linaro.org; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A We don't need to run the validation of the XML files if we are just compiling the kernel. Skip the validation unless the user enables corresponding Kconfig option. This removes a warning from gen_header.py about lxml being not installed. Reported-by: Stephen Rothwell Closes: https://lore.kernel.org/all/20240409120108.2303d0bd@canb.auug.org.au/ Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/Kconfig | 8 ++++++++ drivers/gpu/drm/msm/Makefile | 9 ++++++++- drivers/gpu/drm/msm/registers/gen_header.py | 14 +++++++++++--- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/msm/Kconfig b/drivers/gpu/drm/msm/Kconfig index f202f26adab2..4c9bf237d4a2 100644 --- a/drivers/gpu/drm/msm/Kconfig +++ b/drivers/gpu/drm/msm/Kconfig @@ -54,6 +54,14 @@ config DRM_MSM_GPU_SUDO Only use this if you are a driver developer. This should *not* be enabled for production kernels. If unsure, say N. +config DRM_MSM_VALIDATE_XML + bool "Validate XML register files against schema" + depends on DRM_MSM && EXPERT + depends on $(success,$(PYTHON3) -c "import lxml") + help + Validate XML files with register definitions against rules-fd schema. + This option is mostly targeting DRM MSM developers. If unsure, say N. + config DRM_MSM_MDSS bool depends on DRM_MSM diff --git a/drivers/gpu/drm/msm/Makefile b/drivers/gpu/drm/msm/Makefile index c861de58286c..718968717ad5 100644 --- a/drivers/gpu/drm/msm/Makefile +++ b/drivers/gpu/drm/msm/Makefile @@ -156,8 +156,15 @@ msm-y += $(adreno-y) $(msm-display-y) obj-$(CONFIG_DRM_MSM) += msm.o +ifeq (y,$(CONFIG_DRM_MSM_VALIDATE_XML)) + headergen-opts += --validate +else + headergen-opts += --no-validate +endif + quiet_cmd_headergen = GENHDR $@ - cmd_headergen = mkdir -p $(obj)/generated && $(PYTHON3) $(srctree)/$(src)/registers/gen_header.py --rnn $(srctree)/$(src)/registers --xml $< c-defines > $@ + cmd_headergen = mkdir -p $(obj)/generated && $(PYTHON3) $(srctree)/$(src)/registers/gen_header.py \ + $(headergen-opts) --rnn $(srctree)/$(src)/registers --xml $< c-defines > $@ $(obj)/generated/%.xml.h: $(src)/registers/adreno/%.xml \ $(src)/registers/adreno/adreno_common.xml \ diff --git a/drivers/gpu/drm/msm/registers/gen_header.py b/drivers/gpu/drm/msm/registers/gen_header.py index 90d5c2991d05..fc3bfdc991d2 100644 --- a/drivers/gpu/drm/msm/registers/gen_header.py +++ b/drivers/gpu/drm/msm/registers/gen_header.py @@ -538,6 +538,9 @@ class Parser(object): self.variants.add(reg.domain) def do_validate(self, schemafile): + if self.validate == False: + return + try: from lxml import etree @@ -567,7 +570,10 @@ class Parser(object): if not xmlschema.validate(xml_doc): error_str = str(xmlschema.error_log.filter_from_errors()[0]) raise self.error("Schema validation failed for: " + filename + "\n" + error_str) - except ImportError: + except ImportError as e: + if self.validate: + raise e + print("lxml not found, skipping validation", file=sys.stderr) def do_parse(self, filename): @@ -586,9 +592,10 @@ class Parser(object): self.stack.pop() file.close() - def parse(self, rnn_path, filename): + def parse(self, rnn_path, filename, validate): self.path = rnn_path self.stack = [] + self.validate = validate self.do_parse(filename) def parse_reg(self, attrs, bit_size): @@ -853,7 +860,7 @@ def dump_c(args, guard, func): p = Parser() try: - p.parse(args.rnn, args.xml) + p.parse(args.rnn, args.xml, args.validate) except Error as e: print(e, file=sys.stderr) exit(1) @@ -941,6 +948,7 @@ def main(): parser = argparse.ArgumentParser() parser.add_argument('--rnn', type=str, required=True) parser.add_argument('--xml', type=str, required=True) + parser.add_argument('--validate', action=argparse.BooleanOptionalAction) subparsers = parser.add_subparsers() subparsers.required = True From patchwork Fri May 3 18:15:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 794443 Received: from mail-lj1-f176.google.com (mail-lj1-f176.google.com [209.85.208.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A759515887E for ; Fri, 3 May 2024 18:15:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714760110; cv=none; b=S0ZsR1Y0sikGpC0/iKetxj+WMAJgVEU4TXoSh1eBgrLxPg0X4QCpDRAt8OjxNTu/FS/amAuaAOt0dPXzx7JmX2+v3nzY4IzVDevfCUf91myRwf+i82Xb4j9x1e8687AyIaZsTzrwqZ1kqKcr61f7JXRqf9NdtT0Y9yDPY1/L2OE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714760110; c=relaxed/simple; bh=xF5XC7k5+A56fzWGKfMqVYu2cMBJwZJ6BmZnpTYRInw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KD6TImhtMbe2atduKPjgXxZBSS5vJ0EVq6tO5YYNCIkqzPqf7rLmUL9ehleq0zrztqZRC3hTPDUEzVqxXiZ0rC3T+YCRIs5UzraMl4eLAyfvbUPdlER96k+Yo866b3dC2bC0N/7+V/UaQWZ508xy9yl4NpZL3rWVncIkttHebCw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=iUO9uFvU; arc=none smtp.client-ip=209.85.208.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="iUO9uFvU" Received: by mail-lj1-f176.google.com with SMTP id 38308e7fff4ca-2e1fa1f1d9bso35008421fa.0 for ; Fri, 03 May 2024 11:15:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1714760107; x=1715364907; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=EVuYQnC+Oejbh47K886v7jLhxbV/LX35eFvPeTAUoM8=; b=iUO9uFvUtzvz64+kWoGD1LJqahdzouWIS0OcABIVn0JXmVYmC7DQaDIVF2LrYVjGB8 Ea74ur0RUi8GSyM4IqYyZxGp5GFHi9H73sjPFHGpjpwqPqNl5CZ0EiGRGB4F54PrWEzF Z8J/gc+Dhfzg7OF73YoXMuPV1TdgIp7IZ7brPm61Sg/XpAmDHAxQuCWpHPwBuBOpYCKq EnvY7rWoMZJoBTgrwcD4yEjvHlxS8bO95naFlWrnwO7hX3O4U/qs1bGLPQiy5h+R/eYm XsZedU3BkKErWTTyx7JNaInuDgQmOVH8sM9+pQtBUZ3fnD25O0wSFOw57br8NSpPaemz S1Nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714760107; x=1715364907; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EVuYQnC+Oejbh47K886v7jLhxbV/LX35eFvPeTAUoM8=; b=ZGFFW3UxDJq0gYJuZ1k6L45DYXxhidSasgysW9Vg3JLpRCmmOhA01J9458vNYGa6AZ ACIc80Nfqi5QA/7dIpMSgwkfc69h6YB/RcX5RAUFvNcapbVV+iiQN9mD7kb52aDfOLyQ nLND5jzsU/TBpD7x4rVGO4l4PjRpMmPpqs8NkiVb7ehsHlbVAGUJQJu4tMmgtJoJO5ap FUBZn3xr0HtmMAk2gimM6EfR4xvhAYYc0DGdv72dBjX0C/sAdLKhBFp+KIARXsiPIryT Ais72AnnutYh42p2sypQzRvqvgkpBQJFQIRjfjDqlC/hI9J+qsBjDrA2ar/YswE7UXgG A++g== X-Gm-Message-State: AOJu0YySh7P9H58kXKH/et2ObtLhMBN4lUU5F5gAcg9AcEn/wmdCWAnR 0iZRm12Pl3w/6vChSKQe5jjugivexRTBHrUtdgHEkbeBylrJZrL4WyfETqjevo8= X-Google-Smtp-Source: AGHT+IHH4MMFG5SQdw9yShhta2QBkdZvrkXtrf2jPCXHUI94xQ/Viajl3IVbjwM1N0fQaRrEeSD36Q== X-Received: by 2002:a05:651c:32c:b0:2de:c912:ec08 with SMTP id b12-20020a05651c032c00b002dec912ec08mr2716085ljp.16.1714760106823; Fri, 03 May 2024 11:15:06 -0700 (PDT) Received: from umbar.lan ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id s7-20020a2e9c07000000b002de118decbbsm605548lji.53.2024.05.03.11.15.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 May 2024 11:15:06 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 03 May 2024 21:15:04 +0300 Subject: [PATCH v2 2/2] drm/ci: validate drm/msm XML register files against schema Precedence: bulk X-Mailing-List: linux-arm-msm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240503-fd-fix-lxml-v2-2-f80a60ce21a1@linaro.org> References: <20240503-fd-fix-lxml-v2-0-f80a60ce21a1@linaro.org> In-Reply-To: <20240503-fd-fix-lxml-v2-0-f80a60ce21a1@linaro.org> To: Rob Clark , Abhinav Kumar , Sean Paul , Marijn Suijten , David Airlie , Daniel Vetter , Helen Koike , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1281; i=dmitry.baryshkov@linaro.org; h=from:subject:message-id; bh=xF5XC7k5+A56fzWGKfMqVYu2cMBJwZJ6BmZnpTYRInw=; b=owGbwMvMwMXYbdNlx6SpcZXxtFoSQ5qp5gr5zfPn2wYJGjr99i+4soPjH8vCom89UzzyHvzYJ b/Djjm7k9GYhYGRi0FWTJHFp6Blasym5LAPO6bWwwxiZQKZwsDFKQAT4W7kYFj72pOzIq69xrLi Y1M7e4/uPpv8THaleRnLchu4IiME9Zwu399uGXmNj4lHdMWOkjUmjhcfGwn7hJQfLxRtOXo5aPf c+VNtfoe1JATubJvzk/mEl4n9jm33Na97W++OjohYbDnt1XO/yK0lx1ouqr2sa9k8+ahDgdM10e n37dbO3pllYn/Ka0vx5z0aRlwzuATN6xeYqUqYu8jpfLvwdlsWj+RvxlexXmopDDWCL9951Jt4S FjE+Mn6LlC7/Ef+TFN/2JLslxcXx3Gzrn70aa8Y84yVnA+nTVPq80/yan9yWWwKZ1Pr8mdvXdMX ve/JrZrf+mm9laHWiX0zPI/JcGbFOPW3915bocuwicEOAA== X-Developer-Key: i=dmitry.baryshkov@linaro.org; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A In order to validate drm/msm register definition files against schema, reuse the nodebugfs build step. The validation entry is guarded by the EXPERT Kconfig option and we don't want to enable that option for all the builds. Signed-off-by: Dmitry Baryshkov Reviewed-by: Abhinav Kumar --- drivers/gpu/drm/ci/build.sh | 3 +++ drivers/gpu/drm/ci/build.yml | 1 + 2 files changed, 4 insertions(+) diff --git a/drivers/gpu/drm/ci/build.sh b/drivers/gpu/drm/ci/build.sh index 106f2d40d222..28a495c0c39c 100644 --- a/drivers/gpu/drm/ci/build.sh +++ b/drivers/gpu/drm/ci/build.sh @@ -12,6 +12,9 @@ rm -rf .git/rebase-apply apt-get update apt-get install -y libssl-dev +# for msm header validation +apt-get install -y python3-lxml + if [[ "$KERNEL_ARCH" = "arm64" ]]; then GCC_ARCH="aarch64-linux-gnu" DEBIAN_ARCH="arm64" diff --git a/drivers/gpu/drm/ci/build.yml b/drivers/gpu/drm/ci/build.yml index 17ab38304885..9c198239033d 100644 --- a/drivers/gpu/drm/ci/build.yml +++ b/drivers/gpu/drm/ci/build.yml @@ -106,6 +106,7 @@ build-nodebugfs:arm64: extends: .build:arm64 variables: DISABLE_KCONFIGS: "DEBUG_FS" + ENABLE_KCONFIGS: "EXPERT DRM_MSM_VALIDATE_XML" build:x86_64: extends: .build:x86_64