IOMUX: Fix stopping unused dropped consoles
authorStephan Gerhold <stephan.gerhold@linaro.org>
Mon, 7 Apr 2025 11:10:00 +0000 (13:10 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 14 Apr 2025 22:57:06 +0000 (16:57 -0600)
iomux_match_device() returns -ENOENT instead of the end index, which means
console_stop() is never called at the moment for unused consoles.

This prevents e.g. f_acm from releasing the USB gadget interface when
removing it from stdio/stderr/stdin.

Fixes: b672c1619bb9 ("IOMUX: Split out iomux_match_device() helper")
Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
common/iomux.c

index 1224c15..4844df5 100644 (file)
@@ -131,7 +131,7 @@ int iomux_doenv(const int console, const char *arg)
        /* Stop dropped consoles */
        for (i = 0; i < repeat; i++) {
                j = iomux_match_device(cons_set, cs_idx, old_set[i]);
-               if (j == cs_idx)
+               if (j == -ENOENT)
                        console_stop(console, old_set[i]);
        }