]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
mfd: sec-irq: s2dos05 doesn't support interrupts
authorAndré Draszik <andre.draszik@linaro.org>
Wed, 9 Apr 2025 20:37:36 +0000 (21:37 +0100)
committerLee Jones <lee@kernel.org>
Fri, 23 May 2025 07:48:40 +0000 (08:48 +0100)
The commit bf231e5febcf ("mfd: sec-core: Add support for the Samsung
s2dos05") adding s2dos05 support didn't add anything related to IRQ
support, so I assume this works without IRQs.

Rather than printing a warning message in sec_irq_init() due to the
missing IRQ number, or returning an error due to a missing irq chip
regmap, just return early explicitly.

This will become particularly important once errors from sec_irq_init()
aren't ignored anymore in an upcoming patch and helps the reader of
this code while reasoning about what the intention might be here.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: André Draszik <andre.draszik@linaro.org>
Link: https://lore.kernel.org/r/20250409-s2mpg10-v4-15-d66d5f39b6bf@linaro.org
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/mfd/sec-irq.c

index 340f5f14eba3fad3b25935803dd33e91f7ec6629..79b4f74b05a24e413a84ff8c0b16156a828310e5 100644 (file)
@@ -452,16 +452,12 @@ int sec_irq_init(struct sec_pmic_dev *sec_pmic)
        int type = sec_pmic->device_type;
        const struct regmap_irq_chip *sec_irq_chip;
 
-       if (!sec_pmic->irq) {
-               dev_warn(sec_pmic->dev,
-                        "No interrupt specified, no interrupts\n");
-               return 0;
-       }
-
        switch (type) {
        case S5M8767X:
                sec_irq_chip = &s5m8767_irq_chip;
                break;
+       case S2DOS05:
+               return 0;
        case S2MPA01:
                sec_irq_chip = &s2mps14_irq_chip;
                break;
@@ -492,6 +488,12 @@ int sec_irq_init(struct sec_pmic_dev *sec_pmic)
                                     sec_pmic->device_type);
        }
 
+       if (!sec_pmic->irq) {
+               dev_warn(sec_pmic->dev,
+                        "No interrupt specified, no interrupts\n");
+               return 0;
+       }
+
        ret = devm_regmap_add_irq_chip(sec_pmic->dev, sec_pmic->regmap_pmic,
                                       sec_pmic->irq, IRQF_ONESHOT,
                                       0, sec_irq_chip, &sec_pmic->irq_data);