mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2026-11-10 20:48:12 +00:00
The interrupt handler uses a logical AND to check whether SPDIFRX
was in the SYNC state before clearing errors. Since both SYNC (1)
and ENABLE (3) are nonzero, this also treats ENABLE as SYNC (and
any other non-zero value that might be added).
The logical && basically just converts this to check for != 0.
So errors occurring while SPDIFRX is enabled cause the driver
to retry synch instead of disconnecting the PCM stream.
Fix is to change the logical && to equality (==) and only retry
when exactly in sync state.
Fixes:
|
History
|
|
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| stm32_adfsdm.c | ||
| stm32_i2s.c | ||
| stm32_sai.c | ||
| stm32_sai.h | ||
| stm32_sai_sub.c | ||
| stm32_spdifrx.c | ||