]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ALSA: hda: cs35l56: Put ACPI device after setting companion
authorShuhao Fu <sfual@cse.ust.hk>
Tue, 28 Apr 2026 08:01:39 +0000 (16:01 +0800)
committerTakashi Iwai <tiwai@suse.de>
Thu, 7 May 2026 14:31:25 +0000 (16:31 +0200)
acpi_dev_get_first_match_dev() returns a refcounted ACPI device and
callers are expected to balance it with acpi_dev_put().

When no companion is already attached, cs35l56_hda_read_acpi() looks
up an ACPI device and sets it with ACPI_COMPANION_SET(), but leaves
the lookup reference held.

ACPI_COMPANION_SET() does not take ownership of that reference, so
drop it with acpi_dev_put() after attaching the companion.

Fixes: 73cfbfa9caea ("ALSA: hda/cs35l56: Add driver for Cirrus Logic CS35L56 amplifier")
Signed-off-by: Shuhao Fu <sfual@cse.ust.hk>
Tested-by: Simon Trimmer <simont@opensource.cirrus.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20260428080139.GA1649104@chcpu16
sound/hda/codecs/side-codecs/cs35l56_hda.c

index 4c8d01799931c86579b8c76a6a08723456774e38..cdbc576569efee22970e978580f7a653887966cb 100644 (file)
@@ -1041,6 +1041,7 @@ static int cs35l56_hda_read_acpi(struct cs35l56_hda *cs35l56, int hid, int id)
                        return -ENODEV;
                }
                ACPI_COMPANION_SET(cs35l56->base.dev, adev);
+               acpi_dev_put(adev);
        }
 
        /* Initialize things that could be overwritten by a fixup */