Applied "ASoC: Intel: bytcr_rt5651: Move getting of codec_dev into probe()" to the asoc tree

Message ID E1fcxBr-0001lY-6U@debutante
State Accepted
Commit 2c375204bfad2f481feb006a82cdb67cc570b670
Headers show
  • Applied "ASoC: Intel: bytcr_rt5651: Move getting of codec_dev into probe()" to the asoc tree
Related show

Commit Message

Mark Brown July 10, 2018, 6:16 p.m.
The patch

   ASoC: Intel: bytcr_rt5651: Move getting of codec_dev into probe()

has been applied to the asoc tree at 

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.


From 2c375204bfad2f481feb006a82cdb67cc570b670 Mon Sep 17 00:00:00 2001
From: Hans de Goede <>

Date: Sun, 1 Jul 2018 20:36:30 +0200
Subject: [PATCH] ASoC: Intel: bytcr_rt5651: Move getting of codec_dev into

Move the getting of the codec_dev, to add device-props to it, out of
byt_rt5651_add_codec_device_props() and into its caller,

This is a preparation patch for adding support for an external amplifier
enable GPIO, which requires further accesses to the codec_dev.

Signed-off-by: Hans de Goede <>

Acked-by: Pierre-Louis Bossart <>

Signed-off-by: Mark Brown <>

 sound/soc/intel/boards/bytcr_rt5651.c | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)


Alsa-devel mailing list


diff --git a/sound/soc/intel/boards/bytcr_rt5651.c b/sound/soc/intel/boards/bytcr_rt5651.c
index 80f47a45cb10..d920725ce603 100644
--- a/sound/soc/intel/boards/bytcr_rt5651.c
+++ b/sound/soc/intel/boards/bytcr_rt5651.c
@@ -403,15 +403,10 @@  static const struct dmi_system_id byt_rt5651_quirk_table[] = {
  * Note this MUST be called before snd_soc_register_card(), so that the props
  * are in place before the codec component driver's probe function parses them.
-static int byt_rt5651_add_codec_device_props(const char *i2c_dev_name)
+static int byt_rt5651_add_codec_device_props(struct device *i2c_dev)
 	struct property_entry props[MAX_NO_PROPS] = {};
-	struct device *i2c_dev;
-	int ret, cnt = 0;
-	i2c_dev = bus_find_device_by_name(&i2c_bus_type, NULL, i2c_dev_name);
-	if (!i2c_dev)
-		return -EPROBE_DEFER;
+	int cnt = 0;
 	props[cnt++] = PROPERTY_ENTRY_U32("realtek,jack-detect-source",
@@ -425,10 +420,7 @@  static int byt_rt5651_add_codec_device_props(const char *i2c_dev_name)
 	if (byt_rt5651_quirk & BYT_RT5651_DMIC_EN)
 		props[cnt++] = PROPERTY_ENTRY_BOOL("realtek,dmic-en");
-	ret = device_add_properties(i2c_dev, props);
-	put_device(i2c_dev);
-	return ret;
+	return device_add_properties(i2c_dev, props);
 static int byt_rt5651_init(struct snd_soc_pcm_runtime *runtime)
@@ -696,6 +688,7 @@  static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
 	const char * const mic_name[] = { "dmic", "in1", "in12" };
 	struct byt_rt5651_private *priv;
 	struct snd_soc_acpi_mach *mach;
+	struct device *codec_dev;
 	const char *i2c_name = NULL;
 	const char *hp_swapped;
 	bool is_bytcr = false;
@@ -731,6 +724,11 @@  static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
 		"%s%s", "i2c-", i2c_name);
 	byt_rt5651_dais[dai_index].codec_name = byt_rt5651_codec_name;
+	codec_dev = bus_find_device_by_name(&i2c_bus_type, NULL,
+					    byt_rt5651_codec_name);
+	if (!codec_dev)
+		return -EPROBE_DEFER;
 	 * swap SSP0 if bytcr is detected
 	 * (will be overridden if DMI quirk is detected)
@@ -794,7 +792,8 @@  static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
 	/* Must be called before register_card, also see declaration comment. */
-	ret_val = byt_rt5651_add_codec_device_props(byt_rt5651_codec_name);
+	ret_val = byt_rt5651_add_codec_device_props(codec_dev);
+	put_device(codec_dev);
 	if (ret_val)
 		return ret_val;