irqchip/tegra: Fix overflow implicit truncation warnings
authorSai Prakash Ranjan <quic_saipraka@quicinc.com>
Wed, 18 May 2022 16:44:12 +0000 (22:14 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Aug 2022 09:09:30 +0000 (11:09 +0200)
[ Upstream commit 443685992bda9bb4f8b17fc02c9f6c60e62b1461 ]

Fix -Woverflow warnings for tegra irqchip driver which is a result
of moving arm64 custom MMIO accessor macros to asm-generic function
implementations giving a bonus type-checking now and uncovering these
overflow warnings.

drivers/irqchip/irq-tegra.c: In function ‘tegra_ictlr_suspend’:
drivers/irqchip/irq-tegra.c:151:18: warning: large integer implicitly truncated to unsigned type [-Woverflow]
   writel_relaxed(~0ul, ictlr + ICTLR_COP_IER_CLR);
                  ^

Suggested-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Sai Prakash Ranjan <quic_saipraka@quicinc.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Cc: Marc Zyngier <maz@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/irqchip/irq-tegra.c

index 3973a14bb15bafdeeced9c0362e6b1b84b68648d..02ffefd5011adbbf91e03fe569b104ae86e2664b 100644 (file)
@@ -157,10 +157,10 @@ static int tegra_ictlr_suspend(void)
                lic->cop_iep[i] = readl_relaxed(ictlr + ICTLR_COP_IEP_CLASS);
 
                /* Disable COP interrupts */
-               writel_relaxed(~0ul, ictlr + ICTLR_COP_IER_CLR);
+               writel_relaxed(GENMASK(31, 0), ictlr + ICTLR_COP_IER_CLR);
 
                /* Disable CPU interrupts */
-               writel_relaxed(~0ul, ictlr + ICTLR_CPU_IER_CLR);
+               writel_relaxed(GENMASK(31, 0), ictlr + ICTLR_CPU_IER_CLR);
 
                /* Enable the wakeup sources of ictlr */
                writel_relaxed(lic->ictlr_wake_mask[i], ictlr + ICTLR_CPU_IER_SET);
@@ -181,12 +181,12 @@ static void tegra_ictlr_resume(void)
 
                writel_relaxed(lic->cpu_iep[i],
                               ictlr + ICTLR_CPU_IEP_CLASS);
-               writel_relaxed(~0ul, ictlr + ICTLR_CPU_IER_CLR);
+               writel_relaxed(GENMASK(31, 0), ictlr + ICTLR_CPU_IER_CLR);
                writel_relaxed(lic->cpu_ier[i],
                               ictlr + ICTLR_CPU_IER_SET);
                writel_relaxed(lic->cop_iep[i],
                               ictlr + ICTLR_COP_IEP_CLASS);
-               writel_relaxed(~0ul, ictlr + ICTLR_COP_IER_CLR);
+               writel_relaxed(GENMASK(31, 0), ictlr + ICTLR_COP_IER_CLR);
                writel_relaxed(lic->cop_ier[i],
                               ictlr + ICTLR_COP_IER_SET);
        }
@@ -321,7 +321,7 @@ static int __init tegra_ictlr_init(struct device_node *node,
                lic->base[i] = base;
 
                /* Disable all interrupts */
-               writel_relaxed(~0UL, base + ICTLR_CPU_IER_CLR);
+               writel_relaxed(GENMASK(31, 0), base + ICTLR_CPU_IER_CLR);
                /* All interrupts target IRQ */
                writel_relaxed(0, base + ICTLR_CPU_IEP_CLASS);