spi: fsl-(e)spi: migrate to generic master queueing
PATCH 1/2 spi: fsl-(e)spi: migrate to generic master queueing
Migrates the fsl-(e)spi driver to use the generic master queuing. Avoids the "master is unqueued, this is deprecated" warning.
Signed-off-by Heiner Kallweit <[email protected]>
--- drivers/spi/spi-fsl-espi.c | 13 +++++----- drivers/spi/spi-fsl-lib.c | 59 +--------------------------------------------- drivers/spi/spi-fsl-lib.h | 10 +------- drivers/spi/spi-fsl-spi.c | 14 +++++------ 4 files changed, 14 insertions(+), 82 deletions(-)
drivers/spi/spi-fsl-espi.c +6 -7
@@ -411,7 +411,8 @@ static void fsl_espi_rw_trans(struct spi_message *m,kfree (local_buf); } -static void fsl_espi_do_one_msg (struct spi_message *m) +static int fsl_espi_do_one_msg (struct spi_master *master, +struct spi_message *m) {struct spi_transfer *t;u8 *rx_buf =NULL ;
@@ -441,8 +442,8 @@ static void fsl_espi_do_one_msg(struct spi_message *m) m->actual_length = espi_trans.actual_length; m->status = espi_trans.status; -if (m->complete) - m->complete (m->context); +spi_finalize_current_message (master); +return 0 ; }static int fsl_espi_setup (struct spi_device *spi)
@@ -607,16 +608,14 @@ static struct spi_master * fsl_espi_probe(struct device *dev,dev_set_drvdata (dev, master); - ret =mpc8xxx_spi_probe (dev, mem, irq); -if (ret) - goto err_probe; +mpc8xxx_spi_probe (dev, mem, irq); master->bits_per_word_mask =SPI_BPW_RANGE_MASK (4 ,16 ); master->setup = fsl_espi_setup; master->cleanup = fsl_espi_cleanup; + master->transfer_one_message = fsl_espi_do_one_msg; mpc8xxx_spi =spi_master_get_devdata (master); - mpc8xxx_spi->spi_do_one_msg = fsl_espi_do_one_msg; mpc8xxx_spi->spi_remove = fsl_espi_remove; mpc8xxx_spi->reg_base =ioremap (mem->start,resource_size (mem));
drivers/spi/spi-fsl-lib.c +1 -58
95 lines not on this page · raw message
drivers/spi/spi-fsl-lib.h +1 -9
@@ -55,7 +55,6 @@ struct mpc8xxx_spi {u32 (*get_tx) (struct mpc8xxx_spi *);/* hooks for different controller driver */ -void (*spi_do_one_msg) (struct spi_message *m);void (*spi_remove) (struct mpc8xxx_spi *mspi);unsigned int count;
@@ -78,12 +77,6 @@ struct mpc8xxx_spi { int bits_per_word, int msb_first);#endif -struct workqueue_struct *workqueue; -struct work_struct work; - -struct list_head queue; -spinlock_t lock; -struct completion done; };
@@ -123,9 +116,8 @@ extern struct mpc8xxx_spi_probe_info *to_of_pinfo( struct fsl_spi_platform_data *pdata);extern int mpc8xxx_spi_bufs (struct mpc8xxx_spi *mspi,struct spi_transfer *t,unsigned int len); -extern int mpc8xxx_spi_transfer (struct spi_device *spi,struct spi_message *m);extern const char *mpc8xxx_spi_strmode (unsigned int flags); -extern int mpc8xxx_spi_probe (struct device *dev,struct resource *mem, +extern void mpc8xxx_spi_probe (struct device *dev,struct resource *mem,unsigned int irq);extern int mpc8xxx_spi_remove (struct device *dev);extern int of_mpc8xxx_spi_probe (struct platform_device *ofdev);
drivers/spi/spi-fsl-spi.c +6 -8
@@ -353,7 +353,8 @@ static int fsl_spi_bufs(struct spi_device *spi, struct spi_transfer *t,return mpc8xxx_spi->count; } -static void fsl_spi_do_one_msg (struct spi_message *m) +static int fsl_spi_do_one_msg (struct spi_master *master, +struct spi_message *m) {struct spi_device *spi = m->spi;struct spi_transfer *t, *first;
@@ -408,8 +409,7 @@ static void fsl_spi_do_one_msg(struct spi_message *m) } m->status = status; -if (m->complete) - m->complete (m->context); +spi_finalize_current_message (master);if (status || !cs_change) {ndelay (nsecs);
@@ -417,6 +417,7 @@ static void fsl_spi_do_one_msg(struct spi_message *m) }fsl_spi_setup_transfer (spi,NULL ); +return 0 ; }static int fsl_spi_setup (struct spi_device *spi)
@@ -624,15 +625,13 @@ static struct spi_master * fsl_spi_probe(struct device *dev,dev_set_drvdata (dev, master); - ret =mpc8xxx_spi_probe (dev, mem, irq); -if (ret) - goto err_probe; +mpc8xxx_spi_probe (dev, mem, irq); master->setup = fsl_spi_setup; master->cleanup = fsl_spi_cleanup; + master->transfer_one_message = fsl_spi_do_one_msg; mpc8xxx_spi =spi_master_get_devdata (master); - mpc8xxx_spi->spi_do_one_msg = fsl_spi_do_one_msg; mpc8xxx_spi->spi_remove = fsl_spi_remove; mpc8xxx_spi->max_bits_per_word =32 ; mpc8xxx_spi->type =fsl_spi_get_type (dev);
@@ -704,7 +703,6 @@ free_irq: err_ioremap:fsl_spi_cpm_free (mpc8xxx_spi); err_cpm_init: -err_probe:spi_master_put (master); err:return ERR_PTR (ret);
Signature · 6 lines
2.1.3 -- To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html