]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
iommu/arm-smmu-v3: Don't display an error when IRQ lines are missing
authorJean-Philippe Brucker <jean-philippe@linaro.org>
Mon, 11 Nov 2019 11:17:20 +0000 (12:17 +0100)
committerJoerg Roedel <jroedel@suse.de>
Mon, 11 Nov 2019 14:43:56 +0000 (15:43 +0100)
Since commit 7723f4c5ecdb ("driver core: platform: Add an error message
to platform_get_irq*()"), platform_get_irq_byname() displays an error
when the IRQ isn't found. Since the SMMUv3 driver uses that function to
query which interrupt method is available, the message is now displayed
during boot for any SMMUv3 that doesn't implement the combined
interrupt, or that implements MSIs.

[   20.700337] arm-smmu-v3 arm-smmu-v3.7.auto: IRQ combined not found
[   20.706508] arm-smmu-v3 arm-smmu-v3.7.auto: IRQ eventq not found
[   20.712503] arm-smmu-v3 arm-smmu-v3.7.auto: IRQ priq not found
[   20.718325] arm-smmu-v3 arm-smmu-v3.7.auto: IRQ gerror not found

Use platform_get_irq_byname_optional() to avoid displaying a spurious
error.

Fixes: 7723f4c5ecdb ("driver core: platform: Add an error message to platform_get_irq*()")
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Acked-by: Will Deacon <will@kernel.org>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/arm-smmu-v3.c

index 3f20e548f1ecad793a7ad01bd16636edf261adb5..9be6e0a8fe9a37e3159f8f712daca27fd6fa5ca6 100644 (file)
@@ -3611,19 +3611,19 @@ static int arm_smmu_device_probe(struct platform_device *pdev)
 
        /* Interrupt lines */
 
-       irq = platform_get_irq_byname(pdev, "combined");
+       irq = platform_get_irq_byname_optional(pdev, "combined");
        if (irq > 0)
                smmu->combined_irq = irq;
        else {
-               irq = platform_get_irq_byname(pdev, "eventq");
+               irq = platform_get_irq_byname_optional(pdev, "eventq");
                if (irq > 0)
                        smmu->evtq.q.irq = irq;
 
-               irq = platform_get_irq_byname(pdev, "priq");
+               irq = platform_get_irq_byname_optional(pdev, "priq");
                if (irq > 0)
                        smmu->priq.q.irq = irq;
 
-               irq = platform_get_irq_byname(pdev, "gerror");
+               irq = platform_get_irq_byname_optional(pdev, "gerror");
                if (irq > 0)
                        smmu->gerr_irq = irq;
        }