Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Lars-Peter Clausen <lars@metafoo.de>
To: Mark Brown <broonie@kernel.org>, Liam Girdwood <lgirdwood@gmail.com>
Cc: Brian Austin <brian.austin@cirrus.com>,
	Lars-Peter Clausen <lars@metafoo.de>,
	patches@opensource.wolfsonmicro.com, alsa-devel@alsa-project.org,
	Paul Handrigan <Paul.Handrigan@cirrus.com>,
	Kuninori Morimoto <kuninori.morimoto.gx@gmail.com>,
	Peter Ujfalusi <peter.ujfalusi@ti.com>,
	Maxime Ripard <maxime.ripard@free-electrons.com>,
	Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Subject: [PATCH 03/13] ASoC: Prepare SOC_SINGLE_XR_SX controls for regmap
Date: Tue, 18 Mar 2014 09:02:06 +0100	[thread overview]
Message-ID: <1395129736-11938-4-git-send-email-lars@metafoo.de> (raw)
In-Reply-To: <1395129736-11938-1-git-send-email-lars@metafoo.de>

SOC_SINGLE_XR_SX controls currently only work with CODECs that set the
'reg_word_size' field in their snd_soc_codec_driver struct. Going forward
support for ASoC level IO will eventually be removed and all drivers will be
converted to regmap. Preparing for the transition this patch adds support for
CODECs using regmap for IO to the SOC_SINGLE_XR_SX control. We already have the
val_bytes field in the CODEC struct which holds the number of bytes per word,
but it is only initialized when regmap is used. Also initialize it for drivers
still using legacy IO and update the SOC_SINGLE_XR_SX handlers to use it.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 sound/soc/soc-core.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index b322cf29..0a39031 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -3349,7 +3349,7 @@ int snd_soc_get_xr_sx(struct snd_kcontrol *kcontrol,
 	struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
 	unsigned int regbase = mc->regbase;
 	unsigned int regcount = mc->regcount;
-	unsigned int regwshift = codec->driver->reg_word_size * BITS_PER_BYTE;
+	unsigned int regwshift = codec->val_bytes * BITS_PER_BYTE;
 	unsigned int regwmask = (1<<regwshift)-1;
 	unsigned int invert = mc->invert;
 	unsigned long mask = (1UL<<mc->nbits)-1;
@@ -3395,7 +3395,7 @@ int snd_soc_put_xr_sx(struct snd_kcontrol *kcontrol,
 	struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
 	unsigned int regbase = mc->regbase;
 	unsigned int regcount = mc->regcount;
-	unsigned int regwshift = codec->driver->reg_word_size * BITS_PER_BYTE;
+	unsigned int regwshift = codec->val_bytes * BITS_PER_BYTE;
 	unsigned int regwmask = (1<<regwshift)-1;
 	unsigned int invert = mc->invert;
 	unsigned long mask = (1UL<<mc->nbits)-1;
@@ -4298,6 +4298,7 @@ int snd_soc_register_codec(struct device *dev,
 	codec->dev = dev;
 	codec->driver = codec_drv;
 	codec->num_dai = num_dai;
+	codec->val_bytes = codec_drv->reg_word_size;
 	mutex_init(&codec->mutex);
 
 	for (i = 0; i < num_dai; i++) {
-- 
1.8.0

  parent reply	other threads:[~2014-03-18  8:01 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-18  8:02 [PATCH 00/13] ASoC: Move IO and kcontrols to the component level Lars-Peter Clausen
2014-03-18  8:02 ` [PATCH 01/13] ASoC: Add snd_soc_kcontrol_codec() helper function Lars-Peter Clausen
2014-03-24 10:57   ` Charles Keepax
2014-03-18  8:02 ` [PATCH 02/13] ASoC: Add snd_soc_kcontrol_platform() " Lars-Peter Clausen
2014-03-18  8:02 ` Lars-Peter Clausen [this message]
2014-03-18  8:02 ` [PATCH 04/13] ASoC: Move IO functions to soc-io.c Lars-Peter Clausen
2014-03-19 11:10   ` Mark Brown
2014-03-19 11:47     ` Lars-Peter Clausen
2014-03-19 11:53       ` Mark Brown
2014-03-19 11:57         ` Lars-Peter Clausen
2014-03-19 12:01           ` Mark Brown
2014-03-19 12:11             ` Lars-Peter Clausen
2014-03-18  8:02 ` [PATCH 05/13] ASoC: Drop ASoC level caching from hw_write/hw_read Lars-Peter Clausen
2014-03-19 12:58   ` Mark Brown
2014-03-19 13:01     ` Lars-Peter Clausen
2014-03-18  8:02 ` [PATCH 06/13] ASoC: Remove IO register modifier callbacks Lars-Peter Clausen
2014-03-18  8:02 ` [PATCH 07/13] ASoC: Add helper function to cast component back to CODEC Lars-Peter Clausen
2014-03-19 13:08   ` Mark Brown
2014-03-18  8:02 ` [PATCH 08/13] ASoC: Track which components have been registered with snd_soc_register_component() Lars-Peter Clausen
2014-03-24 11:18   ` Charles Keepax
2014-03-24 11:33     ` Mark Brown
2014-03-24 11:40     ` Lars-Peter Clausen
2014-03-24 11:48       ` Mark Brown
2014-03-24 12:07         ` Lars-Peter Clausen
2014-03-24 12:26           ` Mark Brown
2014-03-18  8:02 ` [PATCH 09/13] ASoC: Let snd_soc_platform subclass snd_soc_component Lars-Peter Clausen
2014-03-18  8:02 ` [PATCH 10/13] ASoC: Move IO abstraction to the component level Lars-Peter Clausen
2014-04-02 18:23   ` Mark Brown
2014-03-18  8:02 ` [PATCH 11/13] ASoC: Move standard kcontrol helpers " Lars-Peter Clausen
2014-03-18  8:02 ` [PATCH 12/13] ASoC: Remove snd_soc_update_bits_locked() Lars-Peter Clausen
2014-03-18  8:02 ` [PATCH 13/13] ASoC: dapm: Rename soc_widget_update_bits_locked() to soc_widget_update_bits() Lars-Peter Clausen
2014-03-18  8:06 ` [PATCH 00/13] ASoC: Move IO and kcontrols to the component level Takashi Iwai
2014-03-18  8:25   ` Lars-Peter Clausen
2014-03-18 14:17   ` Brian Austin
2014-03-18 14:20     ` Lars-Peter Clausen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1395129736-11938-4-git-send-email-lars@metafoo.de \
    --to=lars@metafoo.de \
    --cc=Paul.Handrigan@cirrus.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=brian.austin@cirrus.com \
    --cc=broonie@kernel.org \
    --cc=ckeepax@opensource.wolfsonmicro.com \
    --cc=kuninori.morimoto.gx@gmail.com \
    --cc=lgirdwood@gmail.com \
    --cc=maxime.ripard@free-electrons.com \
    --cc=patches@opensource.wolfsonmicro.com \
    --cc=peter.ujfalusi@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox