Re: [PATCH v2 18/57] irqdomain: gpu: Switch to irq_domain_create_linear()

Alex Deucher
2025-03-19T13:32:00Z

On Wed, Mar 19, 2025 at 5:44 AM Jiri Slaby (SUSE) <jirislaby@kernel.org> wrote:
>
> irq_domain_add_linear() is going away as being obsolete now. Switch to
> the preferred irq_domain_create_linear(). That differs in the first
> parameter: It takes more generic struct fwnode_handle instead of struct
> device_node. Therefore, of_fwnode_handle() is added around the
> parameter.
>
> Note some of the users can likely use dev->fwnode directly instead of
> indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not
> guaranteed to be set for all, so this has to be investigated on case to
> case basis (by people who can actually test with the HW).
>
> Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: "Christian König" <christian.koenig@amd.com>
> Cc: David Airlie <airlied@gmail.com>
> Cc: Simona Vetter <simona@ffwll.ch>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
> Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> Cc: Sean Paul <sean@poorly.run>
> Cc: Marijn Suijten <marijn.suijten@somainline.org>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: amd-gfx@lists.freedesktop.org
> Cc: dri-devel@lists.freedesktop.org
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 4 ++--
> drivers/gpu/drm/msm/msm_mdss.c | 2 +-
> drivers/gpu/ipu-v3/ipu-common.c | 4 ++--

I would suggest splitting this by driver.

Alex

> 3 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
> index 19ce4da285e8..38e7043016e1 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
> @@ -725,8 +725,8 @@ static const struct irq_domain_ops amdgpu_hw_irqdomain_ops = {
> */
> int amdgpu_irq_add_domain(struct amdgpu_device *adev)
> {
> - adev->irq.domain = irq_domain_add_linear(NULL, AMDGPU_MAX_IRQ_SRC_ID,
> - &amdgpu_hw_irqdomain_ops, adev);
> + adev->irq.domain = irq_domain_create_linear(NULL, AMDGPU_MAX_IRQ_SRC_ID,
> + &amdgpu_hw_irqdomain_ops, adev);
> if (!adev->irq.domain) {
> DRM_ERROR("GPU irq add domain failed\n");
> return -ENODEV;
> diff --git a/drivers/gpu/drm/msm/msm_mdss.c b/drivers/gpu/drm/msm/msm_mdss.c
> index dcb49fd30402..9d006ee88a8a 100644
> --- a/drivers/gpu/drm/msm/msm_mdss.c
> +++ b/drivers/gpu/drm/msm/msm_mdss.c
> @@ -150,7 +150,7 @@ static int _msm_mdss_irq_domain_add(struct msm_mdss *msm_mdss)
>
> dev = msm_mdss->dev;
>
> - domain = irq_domain_add_linear(dev->of_node, 32,
> + domain = irq_domain_create_linear(of_fwnode_handle(dev->of_node), 32,
> &msm_mdss_irqdomain_ops, msm_mdss);
> if (!domain) {
> dev_err(dev, "failed to add irq_domain\n");
> diff --git a/drivers/gpu/ipu-v3/ipu-common.c b/drivers/gpu/ipu-v3/ipu-common.c
> index fa77e4e64f12..223e6d563a6b 100644
> --- a/drivers/gpu/ipu-v3/ipu-common.c
> +++ b/drivers/gpu/ipu-v3/ipu-common.c
> @@ -1169,8 +1169,8 @@ static int ipu_irq_init(struct ipu_soc *ipu)
> };
> int ret, i;
>
> - ipu->domain = irq_domain_add_linear(ipu->dev->of_node, IPU_NUM_IRQS,
> - &irq_generic_chip_ops, ipu);
> + ipu->domain = irq_domain_create_linear(of_fwnode_handle(ipu->dev->of_node), IPU_NUM_IRQS,
> + &irq_generic_chip_ops, ipu);
> if (!ipu->domain) {
> dev_err(ipu->dev, "failed to add irq domain\n");
> return -ENODEV;
> --
> 2.49.0
>