]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: SDCA: Fix overwritten var within for loop
authorMaciej Strozek <mstrozek@opensource.cirrus.com>
Wed, 8 Apr 2026 09:38:31 +0000 (10:38 +0100)
committerMark Brown <broonie@kernel.org>
Wed, 8 Apr 2026 15:55:28 +0000 (16:55 +0100)
mask variable should not be overwritten within the for loop or it will
skip certain bits. Change to using BIT() macro.

Fixes: b9ab3b618241 ("ASoC: SDCA: Add some initial IRQ handlers")
Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20260408093835.2881486-2-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sdca/sdca_interrupts.c

index 1838dabcdf604740e2757d71ac365200633462cf..9acb0be84674c8edf2dcb7923937ce7210ed848c 100644 (file)
@@ -117,9 +117,7 @@ static irqreturn_t function_status_handler(int irq, void *data)
 
        status = val;
        for_each_set_bit(mask, &status, BITS_PER_BYTE) {
-               mask = 1 << mask;
-
-               switch (mask) {
+               switch (BIT(mask)) {
                case SDCA_CTL_ENTITY_0_FUNCTION_NEEDS_INITIALIZATION:
                        //FIXME: Add init writes
                        break;