public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Andersson <andersson@kernel.org>
To: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
Cc: Thomas Gleixner <tglx@kernel.org>, Rob Herring <robh@kernel.org>,
	 Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	 Konrad Dybcio <konradybcio@kernel.org>,
	cros-qcom-dts-watchers@chromium.org,
	 linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org
Subject: Re: [PATCH 00/35] irqchip/qcom-pdc: Clean up register mapping and DT descriptions
Date: Fri, 10 Apr 2026 21:48:25 -0500	[thread overview]
Message-ID: <adm1uXe6QRes8DiX@baldur> (raw)
In-Reply-To: <20260410184124.1068210-1-mukesh.ojha@oss.qualcomm.com>

On Sat, Apr 11, 2026 at 12:10:37AM +0530, Mukesh Ojha wrote:
> The Qualcomm PDC (Power Domain Controller) hardware exposes multiple DRV
> (Driver) regions, each 0x10000 bytes in size, where each region serves a
> specific client in the system . Linux only needs access to the APSS DRV
> region.
> 
> Despite this, the driver was mapping up to 0x30000 bytes (three DRV
> regions) via a QCOM_PDC_SIZE clamp introduced as a workaround for old
> sm8150 DTs that described a too-small register window. Correspondingly,
> most platform DTS files described the PDC reg as 0x30000 in size, and
> several also carried a second, entirely unused reg entry pointing at an
> unrelated register region that the driver never maps.
> 
> This series cleans all of that up in three logical steps:
> 
> 1. (patches 2-6):
> 

These patches are for the IRQ subsystem/maintainer.

> Split __pdc_enable_intr() into two focused per-version helpers
> to separate the HW < 3.2 bank-based path from the HW >= 3.2 per-pin
> path. Replace the pdc_version global with a function pointer assigned
> once at probe time, moving the version check out of the hot path.
> Tighten the ioremap clamp from QCOM_PDC_SIZE (0x30000) to PDC_DRV_SIZE
> (0x10000) now that the DT fixes below make the workaround unnecessary.
> Also add a PDC_VERSION() constructor macro and use FIELD_GET() for bank
> index extraction to make the bit encoding self-documenting.
> 
> 2. (patches 1, 7-28):
> 

And these patches are for the Qualcomm SoC/DT tree.

> All 28 platform DTS files that described the PDC reg window as 0x30000
> are corrected to 0x10000, reflecting the single APSS DRV region that
> Linux actually maps.
> 
> 3. (patches 29-35):
> 

Same with these.


I don't see any dependencies between the IRQ and DT patches, can they be
merged independently? Why did you send them together?

Regards,
Bjorn

> Seven platform DTS files (kaanapali, lemans, milos, monaco, sc8280xp,
> sdx75, talos) carried a second reg entry pointing at an unrelated
> hardware block. The driver only ever calls of_address_to_resource(node,
> 0, ...) so this second entry was never mapped or accessed. Remove it.
> 
> The net result is that every PDC node in the tree now describes exactly
> one register region of exactly 0x10000 bytes — the APSS DRV region that
> the driver actually uses — and the driver's ioremap clamp matches that
> reality.
> 
> Mukesh Ojha (35):
>   dt-bindings: qcom,pdc: Tighten reg to single APSS DRV region
>   irqchip/qcom-pdc: Split __pdc_enable_intr() into per-version helpers
>   irqchip/qcom-pdc: Tighten ioremap clamp to single DRV region size
>   irqchip/qcom-pdc: Replace pdc_version global with a function pointer
>   irqchip/qcom-pdc: Add PDC_VERSION() macro to describe version register
>     fields
>   irqchip/qcom-pdc: Use FIELD_GET() to extract bank index and bit
>     position
>   arm64: dts: qcom: sdm845: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: sdm670: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: sc7180: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: sc7280: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: sc8180x: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: sm8150: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: sc8280xp: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: sm8250: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: sm8350: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: sm8450: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: sm8550: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: sm8650: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: sm4450: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: x1e80100: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: sm6350: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: sar2130p: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: qcs615: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: qcs8300: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: sa8775p: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: sdx75: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: milos: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: qdu1000: Fix PDC reg size to single APSS DRV region
>   arm64: dts: qcom: kaanapali: Drop unused second PDC reg entry
>   arm64: dts: qcom: lemans: Drop unused second PDC reg entry
>   arm64: dts: qcom: milos: Drop unused second PDC reg entry
>   arm64: dts: qcom: monaco: Drop unused second PDC reg entry
>   arm64: dts: qcom: sc8280xp: Drop unused second PDC reg entry
>   arm64: dts: qcom: sdx75: Drop unused second PDC reg entry
>   arm64: dts: qcom: talos: Drop unused second PDC reg entry
> 
>  .../interrupt-controller/qcom,pdc.yaml        |  2 +-
>  arch/arm64/boot/dts/qcom/hamoa.dtsi           |  2 +-
>  arch/arm64/boot/dts/qcom/kaanapali.dtsi       |  3 +-
>  arch/arm64/boot/dts/qcom/kodiak.dtsi          |  2 +-
>  arch/arm64/boot/dts/qcom/lemans.dtsi          |  3 +-
>  arch/arm64/boot/dts/qcom/milos.dtsi           |  3 +-
>  arch/arm64/boot/dts/qcom/monaco.dtsi          |  3 +-
>  arch/arm64/boot/dts/qcom/qdu1000.dtsi         |  2 +-
>  arch/arm64/boot/dts/qcom/sar2130p.dtsi        |  2 +-
>  arch/arm64/boot/dts/qcom/sc7180.dtsi          |  2 +-
>  arch/arm64/boot/dts/qcom/sc8180x.dtsi         |  2 +-
>  arch/arm64/boot/dts/qcom/sc8280xp.dtsi        |  2 +-
>  arch/arm64/boot/dts/qcom/sdm670.dtsi          |  2 +-
>  arch/arm64/boot/dts/qcom/sdm845.dtsi          |  2 +-
>  arch/arm64/boot/dts/qcom/sdx75.dtsi           |  3 +-
>  arch/arm64/boot/dts/qcom/sm4450.dtsi          |  2 +-
>  arch/arm64/boot/dts/qcom/sm6350.dtsi          |  2 +-
>  arch/arm64/boot/dts/qcom/sm8150.dtsi          |  2 +-
>  arch/arm64/boot/dts/qcom/sm8250.dtsi          |  2 +-
>  arch/arm64/boot/dts/qcom/sm8350.dtsi          |  2 +-
>  arch/arm64/boot/dts/qcom/sm8450.dtsi          |  2 +-
>  arch/arm64/boot/dts/qcom/sm8550.dtsi          |  2 +-
>  arch/arm64/boot/dts/qcom/sm8650.dtsi          |  2 +-
>  arch/arm64/boot/dts/qcom/talos.dtsi           |  3 +-
>  drivers/irqchip/qcom-pdc.c                    | 56 +++++++++++--------
>  25 files changed, 57 insertions(+), 53 deletions(-)
> 
> -- 
> 2.53.0
> 

      parent reply	other threads:[~2026-04-11  2:48 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-10 18:40 [PATCH 00/35] irqchip/qcom-pdc: Clean up register mapping and DT descriptions Mukesh Ojha
2026-04-10 18:40 ` [PATCH 01/35] dt-bindings: qcom,pdc: Tighten reg to single APSS DRV region Mukesh Ojha
2026-04-10 18:40 ` [PATCH 02/35] irqchip/qcom-pdc: Split __pdc_enable_intr() into per-version helpers Mukesh Ojha
2026-04-10 18:40 ` [PATCH 03/35] irqchip/qcom-pdc: Tighten ioremap clamp to single DRV region size Mukesh Ojha
2026-04-10 18:40 ` [PATCH 04/35] irqchip/qcom-pdc: Replace pdc_version global with a function pointer Mukesh Ojha
2026-04-11  2:43   ` Bjorn Andersson
2026-04-11  6:23     ` Mukesh Ojha
2026-04-10 18:40 ` [PATCH 05/35] irqchip/qcom-pdc: Add PDC_VERSION() macro to describe version register fields Mukesh Ojha
2026-04-10 18:40 ` [PATCH 06/35] irqchip/qcom-pdc: Use FIELD_GET() to extract bank index and bit position Mukesh Ojha
2026-04-10 18:40 ` [PATCH 07/35] arm64: dts: qcom: sdm845: Fix PDC reg size to single APSS DRV region Mukesh Ojha
2026-04-10 18:40 ` [PATCH 08/35] arm64: dts: qcom: sdm670: " Mukesh Ojha
2026-04-10 18:40 ` [PATCH 09/35] arm64: dts: qcom: sc7180: " Mukesh Ojha
2026-04-10 18:40 ` [PATCH 10/35] arm64: dts: qcom: sc7280: " Mukesh Ojha
2026-04-10 18:40 ` [PATCH 11/35] arm64: dts: qcom: sc8180x: " Mukesh Ojha
2026-04-10 18:40 ` [PATCH 12/35] arm64: dts: qcom: sm8150: " Mukesh Ojha
2026-04-10 18:40 ` [PATCH 13/35] arm64: dts: qcom: sc8280xp: " Mukesh Ojha
2026-04-10 18:40 ` [PATCH 14/35] arm64: dts: qcom: sm8250: " Mukesh Ojha
2026-04-10 18:40 ` [PATCH 15/35] arm64: dts: qcom: sm8350: " Mukesh Ojha
2026-04-10 18:40 ` [PATCH 16/35] arm64: dts: qcom: sm8450: " Mukesh Ojha
2026-04-10 18:40 ` [PATCH 17/35] arm64: dts: qcom: sm8550: " Mukesh Ojha
2026-04-10 18:40 ` [PATCH 18/35] arm64: dts: qcom: sm8650: " Mukesh Ojha
2026-04-10 18:40 ` [PATCH 19/35] arm64: dts: qcom: sm4450: " Mukesh Ojha
2026-04-10 18:40 ` [PATCH 20/35] arm64: dts: qcom: x1e80100: " Mukesh Ojha
2026-04-10 18:40 ` [PATCH 21/35] arm64: dts: qcom: sm6350: " Mukesh Ojha
2026-04-10 18:40 ` [PATCH 22/35] arm64: dts: qcom: sar2130p: " Mukesh Ojha
2026-04-10 18:41 ` [PATCH 23/35] arm64: dts: qcom: qcs615: " Mukesh Ojha
2026-04-10 18:41 ` [PATCH 24/35] arm64: dts: qcom: qcs8300: " Mukesh Ojha
2026-04-10 18:41 ` [PATCH 25/35] arm64: dts: qcom: sa8775p: " Mukesh Ojha
2026-04-10 18:41 ` [PATCH 26/35] arm64: dts: qcom: sdx75: " Mukesh Ojha
2026-04-10 18:41 ` [PATCH 27/35] arm64: dts: qcom: milos: " Mukesh Ojha
2026-04-10 18:41 ` [PATCH 28/35] arm64: dts: qcom: qdu1000: " Mukesh Ojha
2026-04-10 18:41 ` [PATCH 29/35] arm64: dts: qcom: kaanapali: Drop unused second PDC reg entry Mukesh Ojha
2026-04-10 18:41 ` [PATCH 30/35] arm64: dts: qcom: lemans: " Mukesh Ojha
2026-04-10 18:41 ` [PATCH 31/35] arm64: dts: qcom: milos: " Mukesh Ojha
2026-04-10 18:41 ` [PATCH 32/35] arm64: dts: qcom: monaco: " Mukesh Ojha
2026-04-10 18:41 ` [PATCH 33/35] arm64: dts: qcom: sc8280xp: " Mukesh Ojha
2026-04-10 18:41 ` [PATCH 34/35] arm64: dts: qcom: sdx75: " Mukesh Ojha
2026-04-10 18:41 ` [PATCH 35/35] arm64: dts: qcom: talos: " Mukesh Ojha
2026-04-11  2:48 ` Bjorn Andersson [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=adm1uXe6QRes8DiX@baldur \
    --to=andersson@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=cros-qcom-dts-watchers@chromium.org \
    --cc=devicetree@vger.kernel.org \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mukesh.ojha@oss.qualcomm.com \
    --cc=robh@kernel.org \
    --cc=tglx@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox