From nobody Tue Apr 7 20:25:19 2026 Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) (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 6F3D9436377 for ; Fri, 27 Feb 2026 14:03:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772201008; cv=none; b=pohe5vhnx3/yElys7c+R6JKg5T1jp6d9bBt5Ct7/m7Ef1+smGeHstcLzAEV0zKBPX0mlV91yzWIrJvxTtpe55cScTrnhG2GFT2V20KZa243rzk/4UCn4RZZwd+ll9dsLuIngwAIl9VIJAqrazOpaeQbPLrLQ7QOhaP20AoCJyXQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772201008; c=relaxed/simple; bh=5Ob4If5bM1vydiRMvU1sj5ib8uHPbHMbNwg2lGsnstQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HIL4FO8zZu4BGFdF5wW/Q3y9Flh0af/Nq5gIcrwPWtU+CTtozrJDcIDG99ymhzlLFIJvTbWWj7ELMDsADL3yDNMZS1l5fe52smPqu7DRrTjMoj8sYXaKk96LMF5HkECKpItH0eAXIVrt2JoLlQMAzjjh6y+7Puh7k6gw5mUrqGw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=M+DW3ld3; arc=none smtp.client-ip=209.85.221.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="M+DW3ld3" Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-43770c94dfaso1971602f8f.2 for ; Fri, 27 Feb 2026 06:03:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772201005; x=1772805805; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9EHC7NrypUxgz1lYY6iG3E5oOhgzT9flGec5pjdwbFc=; b=M+DW3ld3pjndjhmlwpB0x5E1OC4LqNUNqZ05U3e9vGQnNjUDbZvsEdqRh+Zw8umnc0 u/9uVQqYnMUv0pvphYEVCtuoWYrH645gTK4RTdKhj74xszXN/8XAOfJ+aEEozsF+sSf3 aUpWYtWM+w6e+rs9b4ONWIhrd/xmMbdWsH330ZlkudtGvB/NmtFrXLow9Y7OsUeh7XXZ FhKE3qCBnXcJu+vcco5H7d9CX7T7lmXSXEThmMHDO4gOxBz6nJVPYsrQ5UZCeuGwO2i3 7caFuW05FQa69DCWPJoZY/YTtTPcWcQmHegXfS9ZpB5NXAwE8RhoKXQKgrUmDFQuoW3H eGlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772201005; x=1772805805; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=9EHC7NrypUxgz1lYY6iG3E5oOhgzT9flGec5pjdwbFc=; b=QXdk1bnpf/BWl5IKXy3ajiWKgXPwEezV6rhge7uYqnKa83fdSSxt2eaI6mVXjip2tx iLokERWyHBieT5WwEsrSh6rHIzM/jC9jPkEHXPmloGJAo7WnH6MU+O/KIU77MMxD3Fe4 mzeIw8XFkJSmP3co4nix9FJng+gHDT5h3CQ08zypRwHmMBaf+q2etAXR30PiGpxCLINC toYzqqmmxIszzfGaHPhaC0WxwmluCsMhHDLYXfAlctJaCMkB/FeCpRRuY3F6eLdiPeKi kYsxUcx8MGmGN37DG9O7iZPFLXxYngdbSsJdfHyB/6KvrFCqrS1M8J/LmpnBsYrtcsys SMTA== X-Forwarded-Encrypted: i=1; AJvYcCW5xjApthsqkdGtV4BFAN8IyK5EeZAhcL6+HN1zFfmJH6ymxBwVd/IZ9vfKjVX9QfoWQdKyUWAwbhM4FiM=@vger.kernel.org X-Gm-Message-State: AOJu0YwkDooWD94UlB9fC/O+Jg0iheb9sS/s7zKiDChdwNb37uvn7Xe6 9qvhQPBZ5K94Goxe0C715kPNaRDwA03Pf/N2HAlNht3RaTvkAv15LhxW X-Gm-Gg: ATEYQzzgq3FJWwExiGTZvWrXZginCUEP9zmyQfYv6kX9wzCIOkl7AMCP7VZmyACgLtt wY/SFwtQr3I45vweZXXh+/erZnnlHAdTojSZq1igdEOEKE1XsA6OjAET6LIdFRWQXpDY4kub5jt vPzGAlOy6s3gwFLbTAUFVQ+Mx7+/+FysBq5Hm6P62r2ARkM1E1sQYJLfuBSzGJinmh1FAyVV+zr owwx/IMDdLp729WY6Xx1UZki8sADoGNOKGFwZO1WIwQ+Et8QAvFGIg5SNqTldCnZTpPRso7H+HC dAfyJb6zdZ7K/izLZ67dxfaD/gvbYjhP6XboP3UMMhNyZh/cNK0rQSauBTtGFAc9hS+4elUssWA +ckeckHsf+0rLH1vZhKuV6EidHeiO3Wgg+ScXQMpKdLmCsTZExr1no1f+AOglIV7fiao9lYO74e 0rtYkNUa+9RKxq0pqLG42wdu3lu7jcbpg= X-Received: by 2002:a05:6000:240d:b0:436:3536:f698 with SMTP id ffacd0b85a97d-4399de3e4d4mr4811989f8f.30.1772201004687; Fri, 27 Feb 2026 06:03:24 -0800 (PST) Received: from biju.lan ([2a00:23c4:a758:8a01:4d8b:fefb:26cf:1906]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4399c60feeesm7658811f8f.1.2026.02.27.06.03.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 06:03:24 -0800 (PST) From: Biju X-Google-Original-From: Biju To: Thomas Gleixner Cc: Biju Das , linux-kernel@vger.kernel.org, Geert Uytterhoeven , Prabhakar Mahadev Lad , Biju Das , linux-renesas-soc@vger.kernel.org Subject: [PATCH v4 5/9] irqchip/renesas-rzg2l: Drop IRQC_TINT_START macro Date: Fri, 27 Feb 2026 14:03:05 +0000 Message-ID: <20260227140316.308106-6-biju.das.jz@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260227140316.308106-1-biju.das.jz@bp.renesas.com> References: <20260227140316.308106-1-biju.das.jz@bp.renesas.com> 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 Content-Type: text/plain; charset="utf-8" From: Biju Das The IRQC_TINT_START value is different for RZ/G3L and RZ/G2L SoC. Add tint_start variable in struct rzg2l_hw_info to handle this difference and drop the macro IRQC_TINT_START. Signed-off-by: Biju Das --- v3->v4: * Updated commit description 'this differences->this difference'. * Updated tint_start variable type from u8-> unsigned int. v2->v3: * No change v1->v2: * No change --- drivers/irqchip/irq-renesas-rzg2l.c | 30 +++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/drivers/irqchip/irq-renesas-rzg2l.c b/drivers/irqchip/irq-rene= sas-rzg2l.c index 412273ae860f..6bd20aedbcea 100644 --- a/drivers/irqchip/irq-renesas-rzg2l.c +++ b/drivers/irqchip/irq-renesas-rzg2l.c @@ -22,7 +22,6 @@ =20 #define IRQC_IRQ_START 1 #define IRQC_IRQ_COUNT 8 -#define IRQC_TINT_START (IRQC_IRQ_START + IRQC_IRQ_COUNT) #define IRQC_TINT_COUNT 32 =20 #define ISCR 0x10 @@ -69,9 +68,11 @@ struct rzg2l_irqc_reg_cache { =20 /** * struct rzg2l_hw_info - Interrupt Control Unit controller hardware info = structure. + * @tint_start: Start of TINT interrupts * @num_irq: Total Number of interrupts */ struct rzg2l_hw_info { + unsigned int tint_start; unsigned int num_irq; }; =20 @@ -123,7 +124,7 @@ static void rzg2l_clear_irq_int(struct rzg2l_irqc_priv = *priv, unsigned int hwirq =20 static void rzg2l_clear_tint_int(struct rzg2l_irqc_priv *priv, unsigned in= t hwirq) { - u32 bit =3D BIT(hwirq - IRQC_TINT_START); + u32 bit =3D BIT(hwirq - priv->info.tint_start); u32 reg; =20 reg =3D readl_relaxed(priv->base + TSCR); @@ -145,7 +146,7 @@ static void rzg2l_irqc_eoi(struct irq_data *d) raw_spin_lock(&priv->lock); if (hw_irq >=3D IRQC_IRQ_START && hw_irq <=3D IRQC_IRQ_COUNT) rzg2l_clear_irq_int(priv, hw_irq); - else if (hw_irq >=3D IRQC_TINT_START && hw_irq < priv->info.num_irq) + else if (hw_irq >=3D priv->info.tint_start && hw_irq < priv->info.num_irq) rzg2l_clear_tint_int(priv, hw_irq); raw_spin_unlock(&priv->lock); irq_chip_eoi_parent(d); @@ -170,7 +171,7 @@ static void rzfive_irqc_unmask_irq_interrupt(struct rzg= 2l_irqc_priv *priv, static void rzfive_irqc_mask_tint_interrupt(struct rzg2l_irqc_priv *priv, unsigned int hwirq) { - u32 bit =3D BIT(hwirq - IRQC_TINT_START); + u32 bit =3D BIT(hwirq - priv->info.tint_start); =20 writel_relaxed(readl_relaxed(priv->base + TMSK) | bit, priv->base + TMSK); } @@ -178,7 +179,7 @@ static void rzfive_irqc_mask_tint_interrupt(struct rzg2= l_irqc_priv *priv, static void rzfive_irqc_unmask_tint_interrupt(struct rzg2l_irqc_priv *priv, unsigned int hwirq) { - u32 bit =3D BIT(hwirq - IRQC_TINT_START); + u32 bit =3D BIT(hwirq - priv->info.tint_start); =20 writel_relaxed(readl_relaxed(priv->base + TMSK) & ~bit, priv->base + TMSK= ); } @@ -191,7 +192,7 @@ static void rzfive_irqc_mask(struct irq_data *d) raw_spin_lock(&priv->lock); if (hwirq >=3D IRQC_IRQ_START && hwirq <=3D IRQC_IRQ_COUNT) rzfive_irqc_mask_irq_interrupt(priv, hwirq); - else if (hwirq >=3D IRQC_TINT_START && hwirq < priv->info.num_irq) + else if (hwirq >=3D priv->info.tint_start && hwirq < priv->info.num_irq) rzfive_irqc_mask_tint_interrupt(priv, hwirq); raw_spin_unlock(&priv->lock); irq_chip_mask_parent(d); @@ -205,7 +206,7 @@ static void rzfive_irqc_unmask(struct irq_data *d) raw_spin_lock(&priv->lock); if (hwirq >=3D IRQC_IRQ_START && hwirq <=3D IRQC_IRQ_COUNT) rzfive_irqc_unmask_irq_interrupt(priv, hwirq); - else if (hwirq >=3D IRQC_TINT_START && hwirq < priv->info.num_irq) + else if (hwirq >=3D priv->info.tint_start && hwirq < priv->info.num_irq) rzfive_irqc_unmask_tint_interrupt(priv, hwirq); raw_spin_unlock(&priv->lock); irq_chip_unmask_parent(d); @@ -216,8 +217,8 @@ static void rzfive_tint_irq_endisable(struct irq_data *= d, bool enable) struct rzg2l_irqc_priv *priv =3D irq_data_to_priv(d); unsigned int hwirq =3D irqd_to_hwirq(d); =20 - if (hwirq >=3D IRQC_TINT_START && hwirq < priv->info.num_irq) { - u32 offset =3D hwirq - IRQC_TINT_START; + if (hwirq >=3D priv->info.tint_start && hwirq < priv->info.num_irq) { + u32 offset =3D hwirq - priv->info.tint_start; u32 tssr_offset =3D TSSR_OFFSET(offset); u8 tssr_index =3D TSSR_INDEX(offset); u32 reg; @@ -261,9 +262,9 @@ static void rzg2l_tint_irq_endisable(struct irq_data *d= , bool enable) struct rzg2l_irqc_priv *priv =3D irq_data_to_priv(d); unsigned int hw_irq =3D irqd_to_hwirq(d); =20 - if (hw_irq >=3D IRQC_TINT_START && hw_irq < priv->info.num_irq) { + if (hw_irq >=3D priv->info.tint_start && hw_irq < priv->info.num_irq) { struct rzg2l_irqc_priv *priv =3D irq_data_to_priv(d); - u32 offset =3D hw_irq - IRQC_TINT_START; + u32 offset =3D hw_irq - priv->info.tint_start; u32 tssr_offset =3D TSSR_OFFSET(offset); u8 tssr_index =3D TSSR_INDEX(offset); u32 reg; @@ -354,7 +355,7 @@ static int rzg2l_tint_set_edge(struct irq_data *d, unsi= gned int type) { struct rzg2l_irqc_priv *priv =3D irq_data_to_priv(d); unsigned int hwirq =3D irqd_to_hwirq(d); - u32 titseln =3D hwirq - IRQC_TINT_START; + u32 titseln =3D hwirq - priv->info.tint_start; u32 tssr_offset =3D TSSR_OFFSET(titseln); u8 tssr_index =3D TSSR_INDEX(titseln); u8 index, sense; @@ -401,7 +402,7 @@ static int rzg2l_irqc_set_type(struct irq_data *d, unsi= gned int type) =20 if (hw_irq >=3D IRQC_IRQ_START && hw_irq <=3D IRQC_IRQ_COUNT) ret =3D rzg2l_irq_set_type(d, type); - else if (hw_irq >=3D IRQC_TINT_START && hw_irq < priv->info.num_irq) + else if (hw_irq >=3D priv->info.tint_start && hw_irq < priv->info.num_irq) ret =3D rzg2l_tint_set_edge(d, type); if (ret) return ret; @@ -503,7 +504,7 @@ static int rzg2l_irqc_alloc(struct irq_domain *domain, = unsigned int virq, tint =3D TINT_EXTRACT_GPIOINT(hwirq); hwirq =3D TINT_EXTRACT_HWIRQ(hwirq); =20 - if (hwirq < IRQC_TINT_START) + if (hwirq < priv->info.tint_start) return -EINVAL; } =20 @@ -606,6 +607,7 @@ static int rzg2l_irqc_common_probe(struct platform_devi= ce *pdev, struct device_n } =20 static const struct rzg2l_hw_info rzg2l_hw_params =3D { + .tint_start =3D IRQC_IRQ_START + IRQC_IRQ_COUNT, .num_irq =3D IRQC_IRQ_START + IRQC_IRQ_COUNT + IRQC_TINT_COUNT, }; =20 --=20 2.43.0