diff options
| author | Junjie Cao <junjie.cao@intel.com> | 2026-09-20 10:42:32 +0800 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-09-24 20:04:59 +0100 |
| commit | 0bc42544a4a06e8d76eb412d2b1414db910a311d (patch) | |
| tree | 385473595fbe5385d44f875dd797909d3a5bbd3a /tools/perf/scripts/python | |
| parent | d06607bafb36abc14ed34c8adfb1239bebcd83d1 (diff) | |
ASoC: rt712-sdca-dmic: fix drvdata type in the gain controls
rt712_sdca_dmic_set_gain_get() and rt712_sdca_dmic_set_gain_put() take
the component drvdata as struct rt712_sdca_priv, but this driver stores
a struct rt712_sdca_dmic_priv.
regmap and mbq_regmap are at the same offsets in both structs, so the
register accesses work. slave is not: rt712_sdca_priv has dmic_component
in front of it, so its slave overlays rt712_sdca_dmic_priv's params,
which this driver never writes. When regmap_write() fails in the put
handler, dev_err() is called with &NULL->dev (RSI below):
rt712-sdca-dmic sdw:0:3:025d:1713:01: Defer on undeferrable control: 40800f13
BUG: kernel NULL pointer dereference, address: 0000000000000058
RIP: 0010:__dev_printk+0x10/0x70
RDX: ffffcdac45f83cd0 RSI: 0000000000000008 RDI: ffffffffa09cb5cb
Call Trace:
_dev_err+0x7f/0x99
rt712_sdca_dmic_set_gain_put.cold+0x20/0x25 [snd_soc_rt712_sdca_dmic]
snd_ctl_elem_write+0x19a/0x1f0 [snd]
snd_ctl_ioctl+0x658/0x8a0 [snd]
Seen on a Dell Precision 5690 running 7.2.5-200.fc44, with alsactl
writing the control during boot. Compile-tested only.
Fixes: 63a511284c9e ("ASoC: rt712-sdca: Add RT712 SDCA driver for Mic topology")
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=2532834
Cc: stable@vger.kernel.org
Signed-off-by: Junjie Cao <junjie.cao@intel.com>
Link: https://patch.msgid.link/20260920024232.710189-1-junjie.cao@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
