spi: omap3: Fix multiple definition of 'priv'
PATCH 1/1 spi: omap3: Fix multiple definition of 'priv'
Global definition of priv seems no-sense to use it for non-dm case and pass the pointer to functions which are common to both dm and non-dm.
So, fix this by removing omap3_spi_slave from non-dm and make visible to omap3_spi_priv for both dm and non-dm.
--- drivers/spi/omap3_spi.c | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-)
drivers/spi/omap3_spi.c +21 -19
@@ -103,6 +103,9 @@ struct mcspi { };struct omap3_spi_priv { +#ifndef CONFIG_DM_SPI +struct spi_slave slave; +#endif struct mcspi *regs;unsigned int cs;unsigned int freq;
@@ -454,16 +457,9 @@ static void _omap3_spi_claim_bus(struct omap3_spi_priv *priv)#ifndef CONFIG_DM_SPI -struct omap3_spi_slave { -struct spi_slave slave; -struct omap3_spi_priv spi_priv; -}; - -struct omap3_spi_priv *priv; - -static inline struct omap3_spi_slave *to_omap3_spi (struct spi_slave *slave) +static inline struct omap3_spi_priv *to_omap3_spi (struct spi_slave *slave) { - return container_of(slave, struct omap3_spi_slave, slave); + return container_of(slave, struct omap3_spi_priv, slave); }void spi_init (void )
@@ -473,13 +469,15 @@ void spi_init(void)void spi_free_slave (struct spi_slave *slave) { -struct omap3_spi_slave *ds =to_omap3_spi (slave); +struct omap3_spi_priv *priv =to_omap3_spi (slave); -free (ds); +free (priv); }int spi_claim_bus (struct spi_slave *slave) { +struct omap3_spi_priv *priv =to_omap3_spi (slave); +_omap3_spi_claim_bus (priv);_omap3_spi_set_wordlen (priv);_omap3_spi_set_mode (priv);
@@ -490,6 +488,8 @@ int spi_claim_bus(struct spi_slave *slave)void spi_release_bus (struct spi_slave *slave) { +struct omap3_spi_priv *priv =to_omap3_spi (slave); +/* Reset the SPI hardware */ spi_reset (priv->regs); }
@@ -497,7 +497,7 @@ void spi_release_bus(struct spi_slave *slave)struct spi_slave *spi_setup_slave (unsigned int bus,unsigned int cs,unsigned int max_hz,unsigned int mode) { -struct omap3_spi_slave *ds; +struct omap3_spi_priv *priv;struct mcspi *regs;/*
@@ -551,29 +551,31 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,return NULL ; } - ds = spi_alloc_slave(struct omap3_spi_slave, bus, cs); -if (!ds) { + priv = spi_alloc_slave(struct omap3_spi_priv, bus, cs); +if (!priv) {printf ("SPI error: malloc of SPI structure failed\n" );return NULL ; } - priv = &ds->spi_priv; - priv->regs = regs; priv->cs = cs; priv->freq = max_hz; priv->mode = mode; - priv->wordlen = ds->slave.wordlen; + priv->wordlen = priv->slave.wordlen;#ifdef CONFIG_OMAP3_SPI_D0_D1_SWAPPED priv->pin_dir =MCSPI_PINDIR_D0_OUT_D1_IN ;#endif - return &ds->slave; + return &priv->slave; }int spi_xfer (struct spi_slave *slave,unsigned int bitlen,const void *dout,void *din,unsigned long flags) -{return _spi_xfer (priv, bitlen, dout, din, flags); } +{ +struct omap3_spi_priv *priv =to_omap3_spi (slave); + +return _spi_xfer (priv, bitlen, dout, din, flags); +}#else
Signature · 1 line
1.9.1
PATCH 1/1 spi: omap3: Fix multiple definition of 'priv'
Quoted 10 lines · Jagan Teki
Global definition of priv seems no-sense to use it for non-dm case and pass the pointer to functions which are common to both dm and non-dm.
So, fix this by removing
omap3_spi_slavefrom non-dm and make visible toomap3_spi_privfor both dm and non-dm.Cc Christophe Ricard <[email protected]>Reported-by Tom Rini <[email protected]>Signed-off-by Jagan Teki <[email protected]>
Buildman look fine on the respective boards.
$> ./tools/buildman/buildman -b master -c 1 -s boards.cfg is up to date. Nothing to do.
Summary of 1 commit for 1104 boards (32 threads, 1 job per thread) 01: spi: omap3: Fix multiple definition of 'priv'
m68k: + M5329AFEE M5249EVB M5208EVBE astro_mcf5373l
M54455EVB_intel M5282EVB M54455EVB_i66 M54455EVB_a66 M5253DEMO M54455EVB_stm33 M54455EVB M5272C3 M5329BFEE cobra5272 M5275EVB M5253EVBE M5235EVB_Flash32 M5373EVB M5235EVB
Signature · 1 line
Jagan.
PATCH 1/1 spi: omap3: Fix multiple definition of 'priv'
In reply to Jagan TekiQuoted 10 lines · Jagan Teki
Global definition of priv seems no-sense to use it for non-dm case and pass the pointer to functions which are common to both dm and non-dm.
So, fix this by removing
omap3_spi_slavefrom non-dm and make visible toomap3_spi_privfor both dm and non-dm.Cc Christophe Ricard <[email protected]>Reported-by Tom Rini <[email protected]>Signed-off-by Jagan Teki <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160315/b536c7af/attachment.sig>