* ASoC: fix regression by adding back .read/.write
@ 2018-01-16 1:58 Kuninori Morimoto
2018-01-16 1:59 ` [PATCH] ASoC: tlv320dac33: " Kuninori Morimoto
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Kuninori Morimoto @ 2018-01-16 1:58 UTC (permalink / raw)
To: Mark Brown; +Cc: Linux-ALSA, Simon
Hi Mark
As Tony mentioned in "PM regression in next" mail thread,
below drivers need .read/.write back on codec driver.
twl4030/twl6040 side will be fixed by Tony's patch,
thus, I post for remains.
sound/soc/codecs/cx20442.c
sound/soc/codecs/tlv320dac33.c
sound/soc/codecs/twl4030.c
sound/soc/codecs/twl6040.c
sound/soc/codecs/uda1380.c
Because of this, my posted codec/platform conversion patch-set will
have conflict on above drivers.
I'm happy to post v2 patch for these when you accepted that series.
This .read/.write callback is implemented in Codec driver side only.
We need it in Component side too.
Last patch is for it.
Best regards
---
Kuninori Morimoto
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH] ASoC: tlv320dac33: fix regression by adding back .read/.write
2018-01-16 1:58 ASoC: fix regression by adding back .read/.write Kuninori Morimoto
@ 2018-01-16 1:59 ` Kuninori Morimoto
2018-01-16 13:56 ` Applied "ASoC: tlv320dac33: fix regression by adding back .read/.write" to the asoc tree Mark Brown
2018-01-16 1:59 ` [PATCH] ASoC: uda1380: fix regression by adding back .read/.write Kuninori Morimoto
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ messages in thread
From: Kuninori Morimoto @ 2018-01-16 1:59 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Bhumika Goyal; +Cc: alsa-devel
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
commit c4305af43a8 ("ASoC: use internal reg_cache on tlv320dac33")
removed .read/.write from driver, but it might breaks non-regmap
driver, because ALSA SoC framework might call it.
To fix this regression, this patch back .read/.write
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
sound/soc/codecs/tlv320dac33.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/sound/soc/codecs/tlv320dac33.c b/sound/soc/codecs/tlv320dac33.c
index 675f5b1..8c71d2f 100644
--- a/sound/soc/codecs/tlv320dac33.c
+++ b/sound/soc/codecs/tlv320dac33.c
@@ -246,6 +246,19 @@ static int dac33_write(struct snd_soc_codec *codec, unsigned int reg,
return ret;
}
+static int dac33_write_locked(struct snd_soc_codec *codec, unsigned int reg,
+ unsigned int value)
+{
+ struct tlv320dac33_priv *dac33 = snd_soc_codec_get_drvdata(codec);
+ int ret;
+
+ mutex_lock(&dac33->mutex);
+ ret = dac33_write(codec, reg, value);
+ mutex_unlock(&dac33->mutex);
+
+ return ret;
+}
+
#define DAC33_I2C_ADDR_AUTOINC 0x80
static int dac33_write16(struct snd_soc_codec *codec, unsigned int reg,
unsigned int value)
@@ -1422,6 +1435,8 @@ static int dac33_soc_remove(struct snd_soc_codec *codec)
}
static const struct snd_soc_codec_driver soc_codec_dev_tlv320dac33 = {
+ .read = dac33_read_reg_cache,
+ .write = dac33_write_locked,
.set_bias_level = dac33_set_bias_level,
.idle_bias_off = true,
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH] ASoC: uda1380: fix regression by adding back .read/.write
2018-01-16 1:58 ASoC: fix regression by adding back .read/.write Kuninori Morimoto
2018-01-16 1:59 ` [PATCH] ASoC: tlv320dac33: " Kuninori Morimoto
@ 2018-01-16 1:59 ` Kuninori Morimoto
2018-01-16 13:56 ` Applied "ASoC: uda1380: fix regression by adding back .read/.write" to the asoc tree Mark Brown
2018-01-16 2:00 ` [PATCH] ASoC: cx20442: fix regression by adding back .read/.write Kuninori Morimoto
2018-01-16 2:00 ` [PATCH] ASoC: add Component level .read/.write Kuninori Morimoto
3 siblings, 1 reply; 9+ messages in thread
From: Kuninori Morimoto @ 2018-01-16 1:59 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Jaroslav Kysela,
Javier Martinez Canillas, Bhumika Goyal
Cc: alsa-devel
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
commit c001bf633a9 ("ASoC: use internal reg_cache on uda1380")
removed .read/.write from driver, but it might breaks non-regmap
driver, because ALSA SoC framework might call it.
To fix this regression, this patch back .read/.write
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
sound/soc/codecs/uda1380.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sound/soc/codecs/uda1380.c b/sound/soc/codecs/uda1380.c
index 46a495b..c73e6a1 100644
--- a/sound/soc/codecs/uda1380.c
+++ b/sound/soc/codecs/uda1380.c
@@ -726,6 +726,8 @@ static int uda1380_probe(struct snd_soc_codec *codec)
static const struct snd_soc_codec_driver soc_codec_dev_uda1380 = {
.probe = uda1380_probe,
+ .read = uda1380_read_reg_cache,
+ .write = uda1380_write,
.set_bias_level = uda1380_set_bias_level,
.suspend_bias_off = true,
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH] ASoC: cx20442: fix regression by adding back .read/.write
2018-01-16 1:58 ASoC: fix regression by adding back .read/.write Kuninori Morimoto
2018-01-16 1:59 ` [PATCH] ASoC: tlv320dac33: " Kuninori Morimoto
2018-01-16 1:59 ` [PATCH] ASoC: uda1380: fix regression by adding back .read/.write Kuninori Morimoto
@ 2018-01-16 2:00 ` Kuninori Morimoto
2018-01-16 13:56 ` Applied "ASoC: cx20442: fix regression by adding back .read/.write" to the asoc tree Mark Brown
2018-01-16 2:00 ` [PATCH] ASoC: add Component level .read/.write Kuninori Morimoto
3 siblings, 1 reply; 9+ messages in thread
From: Kuninori Morimoto @ 2018-01-16 2:00 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Bhumika Goyal,
Lars-Peter Clausen
Cc: alsa-devel
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
commit 39b5a0f80c07f ("ASoC: cx20442: don't use reg_cache")
removed .read/.write from driver, but it might breaks non-regmap
driver, because ALSA SoC framework might call it.
To fix this regression, this patch back .read/.write.
and also this patch uses cx20442 internal reg_cache
which is needed for .read/.write.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
sound/soc/codecs/cx20442.c | 26 +++++++++++++++++---------
1 file changed, 17 insertions(+), 9 deletions(-)
diff --git a/sound/soc/codecs/cx20442.c b/sound/soc/codecs/cx20442.c
index 6b6f8e4..95bb10b 100644
--- a/sound/soc/codecs/cx20442.c
+++ b/sound/soc/codecs/cx20442.c
@@ -28,6 +28,7 @@
struct cx20442_priv {
struct tty_struct *tty;
struct regulator *por;
+ u8 reg_cache;
};
#define CX20442_PM 0x0
@@ -88,6 +89,17 @@ struct cx20442_priv {
{"ADC", NULL, "Input Mixer"},
};
+static unsigned int cx20442_read_reg_cache(struct snd_soc_codec *codec,
+ unsigned int reg)
+{
+ struct cx20442_priv *cx20442 = snd_soc_codec_get_drvdata(codec);
+
+ if (reg >= 1)
+ return -EINVAL;
+
+ return cx20442->reg_cache;
+}
+
enum v253_vls {
V253_VLS_NONE = 0,
V253_VLS_T,
@@ -112,8 +124,6 @@ enum v253_vls {
V253_VLS_TEST,
};
-#if 0
-/* FIXME : these function will be re-used */
static int cx20442_pm_to_v253_vls(u8 value)
{
switch (value & ~(1 << CX20442_AGC)) {
@@ -147,11 +157,10 @@ static int cx20442_write(struct snd_soc_codec *codec, unsigned int reg,
unsigned int value)
{
struct cx20442_priv *cx20442 = snd_soc_codec_get_drvdata(codec);
- u8 *reg_cache = codec->reg_cache;
int vls, vsp, old, len;
char buf[18];
- if (reg >= codec->driver->reg_cache_size)
+ if (reg >= 1)
return -EINVAL;
/* tty and write pointers required for talking to the modem
@@ -159,8 +168,8 @@ static int cx20442_write(struct snd_soc_codec *codec, unsigned int reg,
if (!cx20442->tty || !cx20442->tty->ops->write)
return -EIO;
- old = reg_cache[reg];
- reg_cache[reg] = value;
+ old = cx20442->reg_cache;
+ cx20442->reg_cache = value;
vls = cx20442_pm_to_v253_vls(value);
if (vls < 0)
@@ -190,7 +199,6 @@ static int cx20442_write(struct snd_soc_codec *codec, unsigned int reg,
return 0;
}
-#endif
/*
* Line discpline related code
@@ -384,12 +392,12 @@ static int cx20442_codec_remove(struct snd_soc_codec *codec)
return 0;
}
-static const u8 cx20442_reg;
-
static const struct snd_soc_codec_driver cx20442_codec_dev = {
.probe = cx20442_codec_probe,
.remove = cx20442_codec_remove,
.set_bias_level = cx20442_set_bias_level,
+ .read = cx20442_read_reg_cache,
+ .write = cx20442_write,
.component_driver = {
.dapm_widgets = cx20442_dapm_widgets,
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH] ASoC: add Component level .read/.write
2018-01-16 1:58 ASoC: fix regression by adding back .read/.write Kuninori Morimoto
` (2 preceding siblings ...)
2018-01-16 2:00 ` [PATCH] ASoC: cx20442: fix regression by adding back .read/.write Kuninori Morimoto
@ 2018-01-16 2:00 ` Kuninori Morimoto
2018-01-16 13:55 ` Applied "ASoC: add Component level .read/.write" to the asoc tree Mark Brown
3 siblings, 1 reply; 9+ messages in thread
From: Kuninori Morimoto @ 2018-01-16 2:00 UTC (permalink / raw)
To: Mark Brown; +Cc: Linux-ALSA
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
In current ALSA SoC, Codec only has .read/.write callback.
Codec will be merged into Component in next generation ALSA SoC,
thus current Codec specific feature need to be merged into it.
This is glue patch for it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
include/sound/soc.h | 3 +++
sound/soc/soc-io.c | 6 ++++++
2 files changed, 9 insertions(+)
diff --git a/include/sound/soc.h b/include/sound/soc.h
index a34aa20..b655d98 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -804,6 +804,9 @@ struct snd_soc_component_driver {
int (*suspend)(struct snd_soc_component *);
int (*resume)(struct snd_soc_component *);
+ unsigned int (*read)(struct snd_soc_component *, unsigned int);
+ int (*write)(struct snd_soc_component *, unsigned int, unsigned int);
+
/* pcm creation and destruction */
int (*pcm_new)(struct snd_soc_pcm_runtime *);
void (*pcm_free)(struct snd_pcm *);
diff --git a/sound/soc/soc-io.c b/sound/soc/soc-io.c
index 20340ad..2bc1c4c 100644
--- a/sound/soc/soc-io.c
+++ b/sound/soc/soc-io.c
@@ -34,6 +34,10 @@ int snd_soc_component_read(struct snd_soc_component *component,
ret = regmap_read(component->regmap, reg, val);
else if (component->read)
ret = component->read(component, reg, val);
+ else if (component->driver->read) {
+ *val = component->driver->read(component, reg);
+ ret = 0;
+ }
else
ret = -EIO;
@@ -70,6 +74,8 @@ int snd_soc_component_write(struct snd_soc_component *component,
return regmap_write(component->regmap, reg, val);
else if (component->write)
return component->write(component, reg, val);
+ else if (component->driver->write)
+ return component->driver->write(component, reg, val);
else
return -EIO;
}
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Applied "ASoC: add Component level .read/.write" to the asoc tree
2018-01-16 2:00 ` [PATCH] ASoC: add Component level .read/.write Kuninori Morimoto
@ 2018-01-16 13:55 ` Mark Brown
0 siblings, 0 replies; 9+ messages in thread
From: Mark Brown @ 2018-01-16 13:55 UTC (permalink / raw)
To: Kuninori Morimoto; +Cc: alsa-devel, Mark Brown
The patch
ASoC: add Component level .read/.write
has been applied to the asoc tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
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.
Thanks,
Mark
>From d0ff8ba57d9654e6f7a2e18f192bac3b93268fef Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Tue, 16 Jan 2018 02:00:59 +0000
Subject: [PATCH] ASoC: add Component level .read/.write
In current ALSA SoC, Codec only has .read/.write callback.
Codec will be merged into Component in next generation ALSA SoC,
thus current Codec specific feature need to be merged into it.
This is glue patch for it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
include/sound/soc.h | 3 +++
sound/soc/soc-io.c | 6 ++++++
2 files changed, 9 insertions(+)
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 1a7323238c49..6e865c2bcffe 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -802,6 +802,9 @@ struct snd_soc_component_driver {
int (*suspend)(struct snd_soc_component *);
int (*resume)(struct snd_soc_component *);
+ unsigned int (*read)(struct snd_soc_component *, unsigned int);
+ int (*write)(struct snd_soc_component *, unsigned int, unsigned int);
+
/* pcm creation and destruction */
int (*pcm_new)(struct snd_soc_pcm_runtime *);
void (*pcm_free)(struct snd_pcm *);
diff --git a/sound/soc/soc-io.c b/sound/soc/soc-io.c
index 20340ade20a7..2bc1c4c17896 100644
--- a/sound/soc/soc-io.c
+++ b/sound/soc/soc-io.c
@@ -34,6 +34,10 @@ int snd_soc_component_read(struct snd_soc_component *component,
ret = regmap_read(component->regmap, reg, val);
else if (component->read)
ret = component->read(component, reg, val);
+ else if (component->driver->read) {
+ *val = component->driver->read(component, reg);
+ ret = 0;
+ }
else
ret = -EIO;
@@ -70,6 +74,8 @@ int snd_soc_component_write(struct snd_soc_component *component,
return regmap_write(component->regmap, reg, val);
else if (component->write)
return component->write(component, reg, val);
+ else if (component->driver->write)
+ return component->driver->write(component, reg, val);
else
return -EIO;
}
--
2.15.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Applied "ASoC: cx20442: fix regression by adding back .read/.write" to the asoc tree
2018-01-16 2:00 ` [PATCH] ASoC: cx20442: fix regression by adding back .read/.write Kuninori Morimoto
@ 2018-01-16 13:56 ` Mark Brown
0 siblings, 0 replies; 9+ messages in thread
From: Mark Brown @ 2018-01-16 13:56 UTC (permalink / raw)
To: Kuninori Morimoto
Cc: alsa-devel, Lars-Peter Clausen, Liam Girdwood, Mark Brown, Bhumika Goyal
The patch
ASoC: cx20442: fix regression by adding back .read/.write
has been applied to the asoc tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
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.
Thanks,
Mark
>From 3c89724e994f4aee6ae2637ccd4e12aa4f92666c Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Tue, 16 Jan 2018 02:00:18 +0000
Subject: [PATCH] ASoC: cx20442: fix regression by adding back .read/.write
commit 39b5a0f80c07f ("ASoC: cx20442: don't use reg_cache")
removed .read/.write from driver, but it might breaks non-regmap
driver, because ALSA SoC framework might call it.
To fix this regression, this patch back .read/.write.
and also this patch uses cx20442 internal reg_cache
which is needed for .read/.write.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
sound/soc/codecs/cx20442.c | 26 +++++++++++++++++---------
1 file changed, 17 insertions(+), 9 deletions(-)
diff --git a/sound/soc/codecs/cx20442.c b/sound/soc/codecs/cx20442.c
index 6b6f8e44369b..95bb10ba80dc 100644
--- a/sound/soc/codecs/cx20442.c
+++ b/sound/soc/codecs/cx20442.c
@@ -28,6 +28,7 @@
struct cx20442_priv {
struct tty_struct *tty;
struct regulator *por;
+ u8 reg_cache;
};
#define CX20442_PM 0x0
@@ -88,6 +89,17 @@ static const struct snd_soc_dapm_route cx20442_audio_map[] = {
{"ADC", NULL, "Input Mixer"},
};
+static unsigned int cx20442_read_reg_cache(struct snd_soc_codec *codec,
+ unsigned int reg)
+{
+ struct cx20442_priv *cx20442 = snd_soc_codec_get_drvdata(codec);
+
+ if (reg >= 1)
+ return -EINVAL;
+
+ return cx20442->reg_cache;
+}
+
enum v253_vls {
V253_VLS_NONE = 0,
V253_VLS_T,
@@ -112,8 +124,6 @@ enum v253_vls {
V253_VLS_TEST,
};
-#if 0
-/* FIXME : these function will be re-used */
static int cx20442_pm_to_v253_vls(u8 value)
{
switch (value & ~(1 << CX20442_AGC)) {
@@ -147,11 +157,10 @@ static int cx20442_write(struct snd_soc_codec *codec, unsigned int reg,
unsigned int value)
{
struct cx20442_priv *cx20442 = snd_soc_codec_get_drvdata(codec);
- u8 *reg_cache = codec->reg_cache;
int vls, vsp, old, len;
char buf[18];
- if (reg >= codec->driver->reg_cache_size)
+ if (reg >= 1)
return -EINVAL;
/* tty and write pointers required for talking to the modem
@@ -159,8 +168,8 @@ static int cx20442_write(struct snd_soc_codec *codec, unsigned int reg,
if (!cx20442->tty || !cx20442->tty->ops->write)
return -EIO;
- old = reg_cache[reg];
- reg_cache[reg] = value;
+ old = cx20442->reg_cache;
+ cx20442->reg_cache = value;
vls = cx20442_pm_to_v253_vls(value);
if (vls < 0)
@@ -190,7 +199,6 @@ static int cx20442_write(struct snd_soc_codec *codec, unsigned int reg,
return 0;
}
-#endif
/*
* Line discpline related code
@@ -384,12 +392,12 @@ static int cx20442_codec_remove(struct snd_soc_codec *codec)
return 0;
}
-static const u8 cx20442_reg;
-
static const struct snd_soc_codec_driver cx20442_codec_dev = {
.probe = cx20442_codec_probe,
.remove = cx20442_codec_remove,
.set_bias_level = cx20442_set_bias_level,
+ .read = cx20442_read_reg_cache,
+ .write = cx20442_write,
.component_driver = {
.dapm_widgets = cx20442_dapm_widgets,
--
2.15.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Applied "ASoC: uda1380: fix regression by adding back .read/.write" to the asoc tree
2018-01-16 1:59 ` [PATCH] ASoC: uda1380: fix regression by adding back .read/.write Kuninori Morimoto
@ 2018-01-16 13:56 ` Mark Brown
0 siblings, 0 replies; 9+ messages in thread
From: Mark Brown @ 2018-01-16 13:56 UTC (permalink / raw)
To: Kuninori Morimoto
Cc: alsa-devel, Liam Girdwood, Javier Martinez Canillas, Mark Brown,
Bhumika Goyal
The patch
ASoC: uda1380: fix regression by adding back .read/.write
has been applied to the asoc tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
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.
Thanks,
Mark
>From 7604d8068e6253c143b27ce7e164ee8e7a9da5b9 Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Tue, 16 Jan 2018 01:59:53 +0000
Subject: [PATCH] ASoC: uda1380: fix regression by adding back .read/.write
commit c001bf633a9 ("ASoC: use internal reg_cache on uda1380")
removed .read/.write from driver, but it might breaks non-regmap
driver, because ALSA SoC framework might call it.
To fix this regression, this patch back .read/.write
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
sound/soc/codecs/uda1380.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sound/soc/codecs/uda1380.c b/sound/soc/codecs/uda1380.c
index 46a495b4da8d..c73e6a192224 100644
--- a/sound/soc/codecs/uda1380.c
+++ b/sound/soc/codecs/uda1380.c
@@ -726,6 +726,8 @@ static int uda1380_probe(struct snd_soc_codec *codec)
static const struct snd_soc_codec_driver soc_codec_dev_uda1380 = {
.probe = uda1380_probe,
+ .read = uda1380_read_reg_cache,
+ .write = uda1380_write,
.set_bias_level = uda1380_set_bias_level,
.suspend_bias_off = true,
--
2.15.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Applied "ASoC: tlv320dac33: fix regression by adding back .read/.write" to the asoc tree
2018-01-16 1:59 ` [PATCH] ASoC: tlv320dac33: " Kuninori Morimoto
@ 2018-01-16 13:56 ` Mark Brown
0 siblings, 0 replies; 9+ messages in thread
From: Mark Brown @ 2018-01-16 13:56 UTC (permalink / raw)
To: Kuninori Morimoto; +Cc: alsa-devel, Mark Brown, Liam Girdwood, Bhumika Goyal
The patch
ASoC: tlv320dac33: fix regression by adding back .read/.write
has been applied to the asoc tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
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.
Thanks,
Mark
>From 3d3dd0d3ac207e8d28f6289896b99c1c0dad2fbe Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Tue, 16 Jan 2018 01:59:01 +0000
Subject: [PATCH] ASoC: tlv320dac33: fix regression by adding back .read/.write
commit c4305af43a8 ("ASoC: use internal reg_cache on tlv320dac33")
removed .read/.write from driver, but it might breaks non-regmap
driver, because ALSA SoC framework might call it.
To fix this regression, this patch back .read/.write
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
sound/soc/codecs/tlv320dac33.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/sound/soc/codecs/tlv320dac33.c b/sound/soc/codecs/tlv320dac33.c
index 675f5b1b90a6..8c71d2f876ff 100644
--- a/sound/soc/codecs/tlv320dac33.c
+++ b/sound/soc/codecs/tlv320dac33.c
@@ -246,6 +246,19 @@ static int dac33_write(struct snd_soc_codec *codec, unsigned int reg,
return ret;
}
+static int dac33_write_locked(struct snd_soc_codec *codec, unsigned int reg,
+ unsigned int value)
+{
+ struct tlv320dac33_priv *dac33 = snd_soc_codec_get_drvdata(codec);
+ int ret;
+
+ mutex_lock(&dac33->mutex);
+ ret = dac33_write(codec, reg, value);
+ mutex_unlock(&dac33->mutex);
+
+ return ret;
+}
+
#define DAC33_I2C_ADDR_AUTOINC 0x80
static int dac33_write16(struct snd_soc_codec *codec, unsigned int reg,
unsigned int value)
@@ -1422,6 +1435,8 @@ static int dac33_soc_remove(struct snd_soc_codec *codec)
}
static const struct snd_soc_codec_driver soc_codec_dev_tlv320dac33 = {
+ .read = dac33_read_reg_cache,
+ .write = dac33_write_locked,
.set_bias_level = dac33_set_bias_level,
.idle_bias_off = true,
--
2.15.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2018-01-16 13:56 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-16 1:58 ASoC: fix regression by adding back .read/.write Kuninori Morimoto
2018-01-16 1:59 ` [PATCH] ASoC: tlv320dac33: " Kuninori Morimoto
2018-01-16 13:56 ` Applied "ASoC: tlv320dac33: fix regression by adding back .read/.write" to the asoc tree Mark Brown
2018-01-16 1:59 ` [PATCH] ASoC: uda1380: fix regression by adding back .read/.write Kuninori Morimoto
2018-01-16 13:56 ` Applied "ASoC: uda1380: fix regression by adding back .read/.write" to the asoc tree Mark Brown
2018-01-16 2:00 ` [PATCH] ASoC: cx20442: fix regression by adding back .read/.write Kuninori Morimoto
2018-01-16 13:56 ` Applied "ASoC: cx20442: fix regression by adding back .read/.write" to the asoc tree Mark Brown
2018-01-16 2:00 ` [PATCH] ASoC: add Component level .read/.write Kuninori Morimoto
2018-01-16 13:55 ` Applied "ASoC: add Component level .read/.write" to the asoc tree Mark Brown
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.