All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jagan Teki <jteki@openedev.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] spi: omap3: Fix multiple definition of 'priv'
Date: Tue, 15 Mar 2016 23:56:33 +0530	[thread overview]
Message-ID: <1458066393-3606-1-git-send-email-jteki@openedev.com> (raw)

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.

Cc: Christophe Ricard <christophe-h.ricard@st.com>
Reported-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Jagan Teki <jteki@openedev.com>
---
 drivers/spi/omap3_spi.c | 40 +++++++++++++++++++++-------------------
 1 file changed, 21 insertions(+), 19 deletions(-)

diff --git a/drivers/spi/omap3_spi.c b/drivers/spi/omap3_spi.c
index 98ee6d3..2fe34c9 100644
--- a/drivers/spi/omap3_spi.c
+++ b/drivers/spi/omap3_spi.c
@@ -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
 
-- 
1.9.1

             reply	other threads:[~2016-03-15 18:26 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-15 18:26 Jagan Teki [this message]
2016-03-15 18:33 ` [U-Boot] [PATCH] spi: omap3: Fix multiple definition of 'priv' Jagan Teki
2016-03-15 18:50 ` Tom Rini

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=1458066393-3606-1-git-send-email-jteki@openedev.com \
    --to=jteki@openedev.com \
    --cc=u-boot@lists.denx.de \
    /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 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.