Skip to content

Commit 7218588

Browse files
andy-shevbroonie
authored andcommitted
ASoC: Intel: bytcr_rt5651: Drop reference count of ACPI device after use
Theoretically the device might gone if its reference count drops to 0. This might be the case when we try to find the first physical node of the ACPI device. We need to keep reference to it until we get a result of the above mentioned call. Refactor the code to drop the reference count at the correct place. While at it, move to acpi_dev_put() as symmetrical call to the acpi_dev_get_first_match_dev(). Fixes: 02c0a3b ("ASoC: Intel: bytcr_rt5651: add MCLK, quirks and cleanups") Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20230112112852.67714-3-andriy.shevchenko@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 6b1c0bd commit 7218588

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

sound/soc/intel/boards/bytcr_rt5651.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -922,14 +922,14 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
922922
if (adev) {
923923
snprintf(byt_rt5651_codec_name, sizeof(byt_rt5651_codec_name),
924924
"i2c-%s", acpi_dev_name(adev));
925-
put_device(&adev->dev);
926925
byt_rt5651_dais[dai_index].codecs->name = byt_rt5651_codec_name;
927926
} else {
928927
dev_err(dev, "Error cannot find '%s' dev\n", mach->id);
929928
return -ENXIO;
930929
}
931930

932931
codec_dev = acpi_get_first_physical_node(adev);
932+
acpi_dev_put(adev);
933933
if (!codec_dev)
934934
return -EPROBE_DEFER;
935935
priv->codec_dev = get_device(codec_dev);

0 commit comments

Comments
 (0)