diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2010-05-10 11:59:37 +0200 | 
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2010-05-10 14:20:42 +0200 | 
| commit | dbb6be6d5e974c42bbecd183effaa0df69e1dd8b (patch) | |
| tree | 5735cb47e70853d057a9881dd0ce44b83e88fa63 /drivers/spi | |
| parent | 6a867a395558a7f882d041783e4cdea6744ca2bf (diff) | |
| parent | b57f95a38233a2e73b679bea4a5453a1cc2a1cc9 (diff) | |
| download | olio-linux-3.10-dbb6be6d5e974c42bbecd183effaa0df69e1dd8b.tar.xz olio-linux-3.10-dbb6be6d5e974c42bbecd183effaa0df69e1dd8b.zip  | |
Merge branch 'linus' into timers/core
Reason: Further posix_cpu_timer patches depend on mainline changes
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers/spi')
| -rw-r--r-- | drivers/spi/amba-pl022.c | 1 | ||||
| -rw-r--r-- | drivers/spi/atmel_spi.c | 1 | ||||
| -rw-r--r-- | drivers/spi/au1550_spi.c | 1 | ||||
| -rw-r--r-- | drivers/spi/davinci_spi.c | 1 | ||||
| -rw-r--r-- | drivers/spi/dw_spi.c | 1 | ||||
| -rw-r--r-- | drivers/spi/dw_spi_mmio.c | 1 | ||||
| -rw-r--r-- | drivers/spi/dw_spi_pci.c | 1 | ||||
| -rw-r--r-- | drivers/spi/mpc52xx_psc_spi.c | 1 | ||||
| -rw-r--r-- | drivers/spi/mpc52xx_spi.c | 1 | ||||
| -rw-r--r-- | drivers/spi/omap2_mcspi.c | 24 | ||||
| -rw-r--r-- | drivers/spi/omap_spi_100k.c | 1 | ||||
| -rw-r--r-- | drivers/spi/omap_uwire.c | 1 | ||||
| -rw-r--r-- | drivers/spi/pxa2xx_spi.c | 1 | ||||
| -rw-r--r-- | drivers/spi/spi.c | 9 | ||||
| -rw-r--r-- | drivers/spi/spi_bfin5xx.c | 1 | ||||
| -rw-r--r-- | drivers/spi/spi_bitbang.c | 1 | ||||
| -rw-r--r-- | drivers/spi/spi_imx.c | 1 | ||||
| -rw-r--r-- | drivers/spi/spi_mpc8xxx.c | 1 | ||||
| -rw-r--r-- | drivers/spi/spi_nuc900.c | 1 | ||||
| -rw-r--r-- | drivers/spi/spi_ppc4xx.c | 1 | ||||
| -rw-r--r-- | drivers/spi/spi_s3c24xx.c | 1 | ||||
| -rw-r--r-- | drivers/spi/tle62x0.c | 1 | ||||
| -rw-r--r-- | drivers/spi/xilinx_spi_of.c | 1 | 
23 files changed, 43 insertions, 11 deletions
diff --git a/drivers/spi/amba-pl022.c b/drivers/spi/amba-pl022.c index 9aeb6811310..e9aeee16d92 100644 --- a/drivers/spi/amba-pl022.c +++ b/drivers/spi/amba-pl022.c @@ -44,6 +44,7 @@  #include <linux/amba/bus.h>  #include <linux/amba/pl022.h>  #include <linux/io.h> +#include <linux/slab.h>  /*   * This macro is used to define some register default values. diff --git a/drivers/spi/atmel_spi.c b/drivers/spi/atmel_spi.c index d21c24eaf0a..c4e04428992 100644 --- a/drivers/spi/atmel_spi.c +++ b/drivers/spi/atmel_spi.c @@ -18,6 +18,7 @@  #include <linux/err.h>  #include <linux/interrupt.h>  #include <linux/spi/spi.h> +#include <linux/slab.h>  #include <asm/io.h>  #include <mach/board.h> diff --git a/drivers/spi/au1550_spi.c b/drivers/spi/au1550_spi.c index ba8ac4f599d..3c9ade69643 100644 --- a/drivers/spi/au1550_spi.c +++ b/drivers/spi/au1550_spi.c @@ -23,6 +23,7 @@  #include <linux/init.h>  #include <linux/interrupt.h> +#include <linux/slab.h>  #include <linux/errno.h>  #include <linux/device.h>  #include <linux/platform_device.h> diff --git a/drivers/spi/davinci_spi.c b/drivers/spi/davinci_spi.c index 225ab60b02c..95afb6b7739 100644 --- a/drivers/spi/davinci_spi.c +++ b/drivers/spi/davinci_spi.c @@ -27,6 +27,7 @@  #include <linux/dma-mapping.h>  #include <linux/spi/spi.h>  #include <linux/spi/spi_bitbang.h> +#include <linux/slab.h>  #include <mach/spi.h>  #include <mach/edma.h> diff --git a/drivers/spi/dw_spi.c b/drivers/spi/dw_spi.c index 8ed38f1d6c1..d256cb00604 100644 --- a/drivers/spi/dw_spi.c +++ b/drivers/spi/dw_spi.c @@ -21,6 +21,7 @@  #include <linux/interrupt.h>  #include <linux/highmem.h>  #include <linux/delay.h> +#include <linux/slab.h>  #include <linux/spi/dw_spi.h>  #include <linux/spi/spi.h> diff --git a/drivers/spi/dw_spi_mmio.c b/drivers/spi/dw_spi_mmio.c index e35b45ac517..db35bd9c1b2 100644 --- a/drivers/spi/dw_spi_mmio.c +++ b/drivers/spi/dw_spi_mmio.c @@ -11,6 +11,7 @@  #include <linux/clk.h>  #include <linux/interrupt.h>  #include <linux/platform_device.h> +#include <linux/slab.h>  #include <linux/spi/dw_spi.h>  #include <linux/spi/spi.h> diff --git a/drivers/spi/dw_spi_pci.c b/drivers/spi/dw_spi_pci.c index 1f0735f9cc7..1f52755dc87 100644 --- a/drivers/spi/dw_spi_pci.c +++ b/drivers/spi/dw_spi_pci.c @@ -19,6 +19,7 @@  #include <linux/interrupt.h>  #include <linux/pci.h> +#include <linux/slab.h>  #include <linux/spi/dw_spi.h>  #include <linux/spi/spi.h> diff --git a/drivers/spi/mpc52xx_psc_spi.c b/drivers/spi/mpc52xx_psc_spi.c index 04747868d6c..77d4cc88ede 100644 --- a/drivers/spi/mpc52xx_psc_spi.c +++ b/drivers/spi/mpc52xx_psc_spi.c @@ -24,6 +24,7 @@  #include <linux/delay.h>  #include <linux/spi/spi.h>  #include <linux/fsl_devices.h> +#include <linux/slab.h>  #include <asm/mpc52xx.h>  #include <asm/mpc52xx_psc.h> diff --git a/drivers/spi/mpc52xx_spi.c b/drivers/spi/mpc52xx_spi.c index 6eab46537a0..cd68f1ce5cc 100644 --- a/drivers/spi/mpc52xx_spi.c +++ b/drivers/spi/mpc52xx_spi.c @@ -21,6 +21,7 @@  #include <linux/of_spi.h>  #include <linux/io.h>  #include <linux/of_gpio.h> +#include <linux/slab.h>  #include <asm/time.h>  #include <asm/mpc52xx.h> diff --git a/drivers/spi/omap2_mcspi.c b/drivers/spi/omap2_mcspi.c index 715c518b1b6..e0de0d0eede 100644 --- a/drivers/spi/omap2_mcspi.c +++ b/drivers/spi/omap2_mcspi.c @@ -32,6 +32,7 @@  #include <linux/err.h>  #include <linux/clk.h>  #include <linux/io.h> +#include <linux/slab.h>  #include <linux/spi/spi.h> @@ -203,6 +204,7 @@ static inline void mcspi_write_chconf0(const struct spi_device *spi, u32 val)  	cs->chconf0 = val;  	mcspi_write_cs_reg(spi, OMAP2_MCSPI_CHCONF0, val); +	mcspi_read_cs_reg(spi, OMAP2_MCSPI_CHCONF0);  }  static void omap2_mcspi_set_dma_req(const struct spi_device *spi, @@ -531,7 +533,7 @@ omap2_mcspi_txrx_pio(struct spi_device *spi, struct spi_transfer *xfer)  					goto out;  				}  #ifdef VERBOSE -				dev_dbg(&spi->dev, "write-%d %04x\n", +				dev_dbg(&spi->dev, "write-%d %08x\n",  						word_len, *tx);  #endif  				__raw_writel(*tx++, tx_reg); @@ -549,7 +551,7 @@ omap2_mcspi_txrx_pio(struct spi_device *spi, struct spi_transfer *xfer)  					mcspi_write_chconf0(spi, l);  				*rx++ = __raw_readl(rx_reg);  #ifdef VERBOSE -				dev_dbg(&spi->dev, "read-%d %04x\n", +				dev_dbg(&spi->dev, "read-%d %08x\n",  						word_len, *(rx - 1));  #endif  			} @@ -578,6 +580,7 @@ static int omap2_mcspi_setup_transfer(struct spi_device *spi,  	struct spi_master *spi_cntrl;  	u32 l = 0, div = 0;  	u8 word_len = spi->bits_per_word; +	u32 speed_hz = spi->max_speed_hz;  	mcspi = spi_master_get_devdata(spi->master);  	spi_cntrl = mcspi->master; @@ -587,9 +590,12 @@ static int omap2_mcspi_setup_transfer(struct spi_device *spi,  	cs->word_len = word_len; -	if (spi->max_speed_hz) { +	if (t && t->speed_hz) +		speed_hz = t->speed_hz; + +	if (speed_hz) {  		while (div <= 15 && (OMAP2_MCSPI_MAX_FREQ / (1 << div)) -					> spi->max_speed_hz) +					> speed_hz)  			div++;  	} else  		div = 15; @@ -751,11 +757,13 @@ static void omap2_mcspi_cleanup(struct spi_device *spi)  	mcspi = spi_master_get_devdata(spi->master);  	mcspi_dma = &mcspi->dma_channels[spi->chip_select]; -	/* Unlink controller state from context save list */ -	cs = spi->controller_state; -	list_del(&cs->node); +	if (spi->controller_state) { +		/* Unlink controller state from context save list */ +		cs = spi->controller_state; +		list_del(&cs->node); -	kfree(spi->controller_state); +		kfree(spi->controller_state); +	}  	if (mcspi_dma->dma_rx_channel != -1) {  		omap_free_dma(mcspi_dma->dma_rx_channel); diff --git a/drivers/spi/omap_spi_100k.c b/drivers/spi/omap_spi_100k.c index 5355d90d1be..24668b30a52 100644 --- a/drivers/spi/omap_spi_100k.c +++ b/drivers/spi/omap_spi_100k.c @@ -33,6 +33,7 @@  #include <linux/clk.h>  #include <linux/io.h>  #include <linux/gpio.h> +#include <linux/slab.h>  #include <linux/spi/spi.h> diff --git a/drivers/spi/omap_uwire.c b/drivers/spi/omap_uwire.c index 6c3a8557db2..160d3266205 100644 --- a/drivers/spi/omap_uwire.c +++ b/drivers/spi/omap_uwire.c @@ -41,6 +41,7 @@  #include <linux/interrupt.h>  #include <linux/err.h>  #include <linux/clk.h> +#include <linux/slab.h>  #include <linux/spi/spi.h>  #include <linux/spi/spi_bitbang.h> diff --git a/drivers/spi/pxa2xx_spi.c b/drivers/spi/pxa2xx_spi.c index c2f707e5ce7..36828358a4d 100644 --- a/drivers/spi/pxa2xx_spi.c +++ b/drivers/spi/pxa2xx_spi.c @@ -29,6 +29,7 @@  #include <linux/delay.h>  #include <linux/clk.h>  #include <linux/gpio.h> +#include <linux/slab.h>  #include <asm/io.h>  #include <asm/irq.h> diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index b76f2468a84..b3a1f9259b6 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -23,6 +23,7 @@  #include <linux/init.h>  #include <linux/cache.h>  #include <linux/mutex.h> +#include <linux/slab.h>  #include <linux/mod_devicetable.h>  #include <linux/spi/spi.h> @@ -40,7 +41,7 @@ static void spidev_release(struct device *dev)  		spi->master->cleanup(spi);  	spi_master_put(spi->master); -	kfree(dev); +	kfree(spi);  }  static ssize_t @@ -256,6 +257,7 @@ int spi_add_device(struct spi_device *spi)  {  	static DEFINE_MUTEX(spi_add_lock);  	struct device *dev = spi->master->dev.parent; +	struct device *d;  	int status;  	/* Chipselects are numbered 0..max; validate. */ @@ -277,10 +279,11 @@ int spi_add_device(struct spi_device *spi)  	 */  	mutex_lock(&spi_add_lock); -	if (bus_find_device_by_name(&spi_bus_type, NULL, dev_name(&spi->dev)) -			!= NULL) { +	d = bus_find_device_by_name(&spi_bus_type, NULL, dev_name(&spi->dev)); +	if (d != NULL) {  		dev_err(dev, "chipselect %d already in use\n",  				spi->chip_select); +		put_device(d);  		status = -EBUSY;  		goto done;  	} diff --git a/drivers/spi/spi_bfin5xx.c b/drivers/spi/spi_bfin5xx.c index 1d41058bbab..10a6dc3d37a 100644 --- a/drivers/spi/spi_bfin5xx.c +++ b/drivers/spi/spi_bfin5xx.c @@ -12,6 +12,7 @@  #include <linux/module.h>  #include <linux/delay.h>  #include <linux/device.h> +#include <linux/slab.h>  #include <linux/io.h>  #include <linux/ioport.h>  #include <linux/irq.h> diff --git a/drivers/spi/spi_bitbang.c b/drivers/spi/spi_bitbang.c index f1db395dd88..5265330a528 100644 --- a/drivers/spi/spi_bitbang.c +++ b/drivers/spi/spi_bitbang.c @@ -23,6 +23,7 @@  #include <linux/delay.h>  #include <linux/errno.h>  #include <linux/platform_device.h> +#include <linux/slab.h>  #include <linux/spi/spi.h>  #include <linux/spi/spi_bitbang.h> diff --git a/drivers/spi/spi_imx.c b/drivers/spi/spi_imx.c index 0ddbbe45e83..7972e907747 100644 --- a/drivers/spi/spi_imx.c +++ b/drivers/spi/spi_imx.c @@ -30,6 +30,7 @@  #include <linux/kernel.h>  #include <linux/module.h>  #include <linux/platform_device.h> +#include <linux/slab.h>  #include <linux/spi/spi.h>  #include <linux/spi/spi_bitbang.h>  #include <linux/types.h> diff --git a/drivers/spi/spi_mpc8xxx.c b/drivers/spi/spi_mpc8xxx.c index 4f0cc9d457e..14d05231650 100644 --- a/drivers/spi/spi_mpc8xxx.c +++ b/drivers/spi/spi_mpc8xxx.c @@ -39,6 +39,7 @@  #include <linux/gpio.h>  #include <linux/of_gpio.h>  #include <linux/of_spi.h> +#include <linux/slab.h>  #include <sysdev/fsl_soc.h>  #include <asm/cpm.h> diff --git a/drivers/spi/spi_nuc900.c b/drivers/spi/spi_nuc900.c index b319f9bf9b9..dff63be0d0a 100644 --- a/drivers/spi/spi_nuc900.c +++ b/drivers/spi/spi_nuc900.c @@ -21,6 +21,7 @@  #include <linux/platform_device.h>  #include <linux/gpio.h>  #include <linux/io.h> +#include <linux/slab.h>  #include <linux/spi/spi.h>  #include <linux/spi/spi_bitbang.h> diff --git a/drivers/spi/spi_ppc4xx.c b/drivers/spi/spi_ppc4xx.c index 6d8d4026a07..7cb5ff37f6e 100644 --- a/drivers/spi/spi_ppc4xx.c +++ b/drivers/spi/spi_ppc4xx.c @@ -26,6 +26,7 @@  #include <linux/module.h>  #include <linux/init.h>  #include <linux/sched.h> +#include <linux/slab.h>  #include <linux/errno.h>  #include <linux/wait.h>  #include <linux/of_platform.h> diff --git a/drivers/spi/spi_s3c24xx.c b/drivers/spi/spi_s3c24xx.c index 1fabede9e06..151a95e4065 100644 --- a/drivers/spi/spi_s3c24xx.c +++ b/drivers/spi/spi_s3c24xx.c @@ -21,6 +21,7 @@  #include <linux/platform_device.h>  #include <linux/gpio.h>  #include <linux/io.h> +#include <linux/slab.h>  #include <linux/spi/spi.h>  #include <linux/spi/spi_bitbang.h> diff --git a/drivers/spi/tle62x0.c b/drivers/spi/tle62x0.c index bf9540f5fb9..a3938958147 100644 --- a/drivers/spi/tle62x0.c +++ b/drivers/spi/tle62x0.c @@ -11,6 +11,7 @@  #include <linux/device.h>  #include <linux/kernel.h> +#include <linux/slab.h>  #include <linux/spi/spi.h>  #include <linux/spi/tle62x0.h> diff --git a/drivers/spi/xilinx_spi_of.c b/drivers/spi/xilinx_spi_of.c index ed34a8d419c..748d33a76d2 100644 --- a/drivers/spi/xilinx_spi_of.c +++ b/drivers/spi/xilinx_spi_of.c @@ -27,6 +27,7 @@  #include <linux/init.h>  #include <linux/interrupt.h>  #include <linux/io.h> +#include <linux/slab.h>  #include <linux/of_platform.h>  #include <linux/of_device.h>  |