mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
ALSA: hda: cs35l56: Fix lifecycle of codec pointer
[ Upstream commit d339131bf02d4ed918415574082caf5e8af6e664 ] The codec should be cleared when the amp driver is unbound and when resuming it should be tested to prevent loading firmware into the device and ALSA in a partially configured system state. Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Link: https://lore.kernel.org/r/20240531112716.25323-1-simont@opensource.cirrus.com Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
10967873b8
commit
4871dd2f71
1 changed files with 5 additions and 0 deletions
|
@ -702,6 +702,8 @@ static void cs35l56_hda_unbind(struct device *dev, struct device *master, void *
|
|||
if (comps[cs35l56->index].dev == dev)
|
||||
memset(&comps[cs35l56->index], 0, sizeof(*comps));
|
||||
|
||||
cs35l56->codec = NULL;
|
||||
|
||||
dev_dbg(cs35l56->base.dev, "Unbound\n");
|
||||
}
|
||||
|
||||
|
@ -807,6 +809,9 @@ static int cs35l56_hda_system_resume(struct device *dev)
|
|||
|
||||
cs35l56->suspended = false;
|
||||
|
||||
if (!cs35l56->codec)
|
||||
return 0;
|
||||
|
||||
ret = cs35l56_is_fw_reload_needed(&cs35l56->base);
|
||||
dev_dbg(cs35l56->base.dev, "fw_reload_needed: %d\n", ret);
|
||||
if (ret > 0) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue