From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: [PATCH] ASoC: core: Fix check before defaulting to regmap Date: Thu, 02 Aug 2012 09:47:38 +0200 Message-ID: References: <1343847985-23712-1-git-send-email-broonie@opensource.wolfsonmicro.com> <501A2FE9.50706@ti.com> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by alsa0.perex.cz (Postfix) with ESMTP id C55C426030D for ; Thu, 2 Aug 2012 09:47:36 +0200 (CEST) In-Reply-To: <501A2FE9.50706@ti.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: Peter Ujfalusi Cc: alsa-devel@alsa-project.org, Mark Brown , Liam Girdwood List-Id: alsa-devel@alsa-project.org At Thu, 02 Aug 2012 10:44:41 +0300, Peter Ujfalusi wrote: > > Hi Mark, > > On 08/01/2012 10:06 PM, Mark Brown wrote: > > Check if the chip has provided a write operation (which is mandatory for > > I/O) rather than looking for control data as some of the MFDs use a global > > for this. Also skip the attempt if there's no regmap available by device > > in case things get confused by the attempt to default. > > > > Signed-off-by: Mark Brown > > --- > > sound/soc/soc-core.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c > > index b1fd043..5359623 100644 > > --- a/sound/soc/soc-core.c > > +++ b/sound/soc/soc-core.c > > @@ -1096,7 +1096,7 @@ static int soc_probe_codec(struct snd_soc_card *card, > > } > > > > /* If the driver didn't set I/O up try regmap */ > > - if (!codec->control_data) > > + if (!codec->write && dev_get_regmap(codec->dev, NULL)) > > snd_soc_codec_set_cache_io(codec, 0, 0, SND_SOC_REGMAP); > > > > if (driver->controls) > > I have a slightly different implementation of this, but this looks better. > > Boards using the following machine drivers are affected by this issue: > zoom2, overo, omap3pandora, omap3beagle, sdp3430, omap-abe-twl6040, omap3evm, > igep0020. > > All boards using these machine drivers will have kernel crash at the first > time we try to write a register in the codec. > > Could you send this patch (if the patch OK with you) to be included in 3.6-rc1 > to avoid boards booting to kernel crash (if they restore the mixers at boot > time). > > Thank you. > > Tested-by: Peter Ujfalusi Mark, if this fix (and other for-3.6 patches) are to be included in 3.6-rc1, give a pull request in today or tomorrow, so that I can merge and pass to Linus in time. thanks, Takashi