Unverified Commit cf6e26c7 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown
Browse files

ASoC: soc-component: merge snd_soc_component_read() and snd_soc_component_read32()



We had read/write function for Codec, Platform, etc,
but these has been merged into snd_soc_component_read/write().

Internally, it is using regmap or driver function.
In read case, each styles are like below

regmap
	ret = regmap_read(..., reg, &val);

driver function
	val = xxx->read(..., reg);

Because of this kind of different style, to keep same read style,
when we merged each read function into snd_soc_component_read(),
we created snd_soc_component_read32(), like below.
commit 738b49ef ("ASoC: add snd_soc_component_read32")

(1)	val = snd_soc_component_read32(component, reg);

(2)	ret = snd_soc_component_read(component, reg, &val);

Many drivers are using snd_soc_component_read32(), and
some drivers are using snd_soc_component_read() today.

In generally, we don't check read function successes,
because, we will have many other issues at initial timing
if read function didn't work.

Now we can use soc_component_err() when error case.
This means, it is easy to notice if error occurred.

This patch aggressively merge snd_soc_component_read() and _read32(),
and makes snd_soc_component_read/write() as generally style.

This patch do
	1) merge snd_soc_component_read() and snd_soc_component_read32()
	2) it uses soc_component_err() when error case (easy to notice)
	3) keeps read32 for now by #define
	4) update snd_soc_component_read() for all drivers

Because _read() user drivers are not too many, this patch changes
all user drivers.

Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Reviewed-by: default avatarKai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/87sgev4mfl.wl-kuninori.morimoto.gx@renesas.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 3bd057c8
Loading
Loading
Loading
Loading
+2 −3
Original line number Original line Diff line number Diff line
@@ -333,9 +333,8 @@ void snd_soc_component_set_aux(struct snd_soc_component *component,
int snd_soc_component_init(struct snd_soc_component *component);
int snd_soc_component_init(struct snd_soc_component *component);


/* component IO */
/* component IO */
int snd_soc_component_read(struct snd_soc_component *component,
#define snd_soc_component_read32 snd_soc_component_read
			   unsigned int reg, unsigned int *val);
unsigned int snd_soc_component_read(struct snd_soc_component *component,
unsigned int snd_soc_component_read32(struct snd_soc_component *component,
				      unsigned int reg);
				      unsigned int reg);
int snd_soc_component_write(struct snd_soc_component *component,
int snd_soc_component_write(struct snd_soc_component *component,
			    unsigned int reg, unsigned int val);
			    unsigned int reg, unsigned int val);
+2 −2
Original line number Original line Diff line number Diff line
@@ -490,8 +490,8 @@ static void ak4613_dummy_write(struct work_struct *work)
	 */
	 */
	udelay(5000000 / priv->rate);
	udelay(5000000 / priv->rate);


	snd_soc_component_read(component, PW_MGMT1, &mgmt1);
	mgmt1 = snd_soc_component_read(component, PW_MGMT1);
	snd_soc_component_read(component, PW_MGMT3, &mgmt3);
	mgmt3 = snd_soc_component_read(component, PW_MGMT3);


	snd_soc_component_write(component, PW_MGMT1, mgmt1);
	snd_soc_component_write(component, PW_MGMT1, mgmt1);
	snd_soc_component_write(component, PW_MGMT3, mgmt3);
	snd_soc_component_write(component, PW_MGMT3, mgmt3);
+1 −9
Original line number Original line Diff line number Diff line
@@ -129,19 +129,11 @@ static void cs47l35_hp_post_enable(struct snd_soc_dapm_widget *w)
	struct snd_soc_component *component =
	struct snd_soc_component *component =
		snd_soc_dapm_to_component(w->dapm);
		snd_soc_dapm_to_component(w->dapm);
	unsigned int val;
	unsigned int val;
	int ret;


	switch (w->shift) {
	switch (w->shift) {
	case MADERA_OUT1L_ENA_SHIFT:
	case MADERA_OUT1L_ENA_SHIFT:
	case MADERA_OUT1R_ENA_SHIFT:
	case MADERA_OUT1R_ENA_SHIFT:
		ret = snd_soc_component_read(component, MADERA_OUTPUT_ENABLES_1,
		val = snd_soc_component_read(component, MADERA_OUTPUT_ENABLES_1);
					     &val);
		if (ret) {
			dev_err(component->dev,
				"Failed to check output enables: %d\n", ret);
			return;
		}

		val &= (MADERA_OUT1L_ENA | MADERA_OUT1R_ENA);
		val &= (MADERA_OUT1L_ENA | MADERA_OUT1R_ENA);


		if (val != (MADERA_OUT1L_ENA | MADERA_OUT1R_ENA))
		if (val != (MADERA_OUT1L_ENA | MADERA_OUT1R_ENA))
+1 −9
Original line number Original line Diff line number Diff line
@@ -191,19 +191,11 @@ static void cs47l85_hp_post_enable(struct snd_soc_dapm_widget *w)
	struct snd_soc_component *component =
	struct snd_soc_component *component =
		snd_soc_dapm_to_component(w->dapm);
		snd_soc_dapm_to_component(w->dapm);
	unsigned int val;
	unsigned int val;
	int ret;


	switch (w->shift) {
	switch (w->shift) {
	case MADERA_OUT1L_ENA_SHIFT:
	case MADERA_OUT1L_ENA_SHIFT:
	case MADERA_OUT1R_ENA_SHIFT:
	case MADERA_OUT1R_ENA_SHIFT:
		ret = snd_soc_component_read(component, MADERA_OUTPUT_ENABLES_1,
		val = snd_soc_component_read(component, MADERA_OUTPUT_ENABLES_1);
					     &val);
		if (ret) {
			dev_err(component->dev,
				"Failed to check output enables: %d\n", ret);
			return;
		}

		val &= (MADERA_OUT1L_ENA | MADERA_OUT1R_ENA);
		val &= (MADERA_OUT1L_ENA | MADERA_OUT1R_ENA);


		if (val != (MADERA_OUT1L_ENA | MADERA_OUT1R_ENA))
		if (val != (MADERA_OUT1L_ENA | MADERA_OUT1R_ENA))
+2 −4
Original line number Original line Diff line number Diff line
@@ -48,11 +48,9 @@ static int rk3036_codec_antipop_get(struct snd_kcontrol *kcontrol,
				    struct snd_ctl_elem_value *ucontrol)
				    struct snd_ctl_elem_value *ucontrol)
{
{
	struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
	struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
	int val, ret, regval;
	int val, regval;


	ret = snd_soc_component_read(component, INNO_R09, &regval);
	regval = snd_soc_component_read(component, INNO_R09);
	if (ret)
		return ret;
	val = ((regval >> INNO_R09_HPL_ANITPOP_SHIFT) &
	val = ((regval >> INNO_R09_HPL_ANITPOP_SHIFT) &
	       INNO_R09_HP_ANTIPOP_MSK) == INNO_R09_HP_ANTIPOP_ON;
	       INNO_R09_HP_ANTIPOP_MSK) == INNO_R09_HP_ANTIPOP_ON;
	ucontrol->value.integer.value[0] = val;
	ucontrol->value.integer.value[0] = val;
Loading