mirror of
https://github.com/torvalds/linux.git
synced 2026-05-13 00:28:54 +02:00
usb6fire_control_input_vol_put() stores the analog capture volume
as a signed offset in rt->input_vol[] (-15..+15), but it compares
the cached value against the user-visible mixer value (0..30)
before subtracting 15.
This mixes two domains in the change detection path. Since the
runtime is zero-initialized, the visible default is 15; writing 0
right after probe is ignored, while writing 15 is reported as a
change even though the cached value remains 0.
Normalize the user value before comparing it with the cached offset.
Fixes:
|
||
|---|---|---|
| .. | ||
| chip.c | ||
| chip.h | ||
| comm.c | ||
| comm.h | ||
| common.h | ||
| control.c | ||
| control.h | ||
| firmware.c | ||
| firmware.h | ||
| Makefile | ||
| midi.c | ||
| midi.h | ||
| pcm.c | ||
| pcm.h | ||