[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120523164203.GA7843@S2100-06.ap.freescale.net>
Date: Thu, 24 May 2012 00:42:04 +0800
From: Shawn Guo <shawn.guo@...escale.com>
To: Mark Brown <broonie@...nsource.wolfsonmicro.com>
CC: Fabio Estevam <festevam@...il.com>, <marc@...esign.com.au>,
Samuel Ortiz <sameo@...ux.intel.com>,
Sascha Hauer <kernel@...gutronix.de>,
Philippe Rétornaz <philippe.retornaz@...l.ch>,
linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: mc13xxx-core: kernel hangs after 'regmap_read'
On Wed, May 23, 2012 at 09:49:46AM +0100, Mark Brown wrote:
> On Tue, May 22, 2012 at 11:05:35PM -0300, Fabio Estevam wrote:
>
> > Should the spi->mode and spi->bits_per_word be passed differently?
>
> > Maybe via "struct regmap_config" ?
>
> You shouldn't be setting bits_per_word at all, that'll corrupt the data
> that regmap has formatted. Does removing that alone resolve the issue?
Removing that alone does not resolve the issue, but with additional
.write_flag_mask setting it does for me.
Regards,
Shawn
diff --git a/drivers/mfd/mc13xxx-spi.c b/drivers/mfd/mc13xxx-spi.c
index 3fcdab3..5d1969f 100644
--- a/drivers/mfd/mc13xxx-spi.c
+++ b/drivers/mfd/mc13xxx-spi.c
@@ -49,6 +49,7 @@ static struct regmap_config mc13xxx_regmap_spi_config = {
.reg_bits = 7,
.pad_bits = 1,
.val_bits = 24,
+ .write_flag_mask = 0x80,
.max_register = MC13XXX_NUMREGS,
@@ -73,7 +74,6 @@ static int mc13xxx_spi_probe(struct spi_device *spi)
dev_set_drvdata(&spi->dev, mc13xxx);
spi->mode = SPI_MODE_0 | SPI_CS_HIGH;
- spi->bits_per_word = 32;
mc13xxx->dev = &spi->dev;
mutex_init(&mc13xxx->lock);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists