]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: SDCA: Tidy up irq_enable_flags()/sdca_irq_disable()
authorCharles Keepax <ckeepax@opensource.cirrus.com>
Thu, 9 Apr 2026 16:43:27 +0000 (17:43 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 9 Apr 2026 18:39:31 +0000 (19:39 +0100)
In irq_enable_flags() and sdca_irq_disable() there is a NULL
check on the interrupt data pointer, however this is just pulled
from an array so can never be NULL. This was likely left over
from an earlier version that looked up the data in a different
way. Replace the check with checking for the IRQ itself being
non-zero.

Whilst here also drop the sdca_interrupt structure down into
the loop within the function to better match the style of the
rest of the code in this file.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20260409164328.3999434-4-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sdca/sdca_interrupts.c

index 475aebcafe3f132b735386a93cea752ea85045c5..3d7eb19967243a52b7bfd7df8954fa492689dda1 100644 (file)
@@ -630,13 +630,12 @@ EXPORT_SYMBOL_NS_GPL(sdca_irq_allocate, "SND_SOC_SDCA");
 static void irq_enable_flags(struct sdca_function_data *function,
                             struct sdca_interrupt_info *info, bool early)
 {
-       struct sdca_interrupt *interrupt;
        int i;
 
        for (i = 0; i < SDCA_MAX_INTERRUPTS; i++) {
-               interrupt = &info->irqs[i];
+               struct sdca_interrupt *interrupt = &info->irqs[i];
 
-               if (!interrupt || interrupt->function != function)
+               if (!interrupt->irq || interrupt->function != function)
                        continue;
 
                switch (SDCA_CTL_TYPE(interrupt->entity->type,
@@ -689,13 +688,12 @@ EXPORT_SYMBOL_NS_GPL(sdca_irq_enable, "SND_SOC_SDCA");
 void sdca_irq_disable(struct sdca_function_data *function,
                      struct sdca_interrupt_info *info)
 {
-       struct sdca_interrupt *interrupt;
        int i;
 
        for (i = 0; i < SDCA_MAX_INTERRUPTS; i++) {
-               interrupt = &info->irqs[i];
+               struct sdca_interrupt *interrupt = &info->irqs[i];
 
-               if (!interrupt || interrupt->function != function)
+               if (!interrupt->irq || interrupt->function != function)
                        continue;
 
                disable_irq(interrupt->irq);