diff options
| author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-05-06 11:48:50 +0100 | 
|---|---|---|
| committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-05-06 11:48:50 +0100 | 
| commit | 3086c9f6482101b3c06935cdfb4d4b56adb60097 (patch) | |
| tree | 30b40b82f5f6d26982886a2aea5585cfdb4ac9ef | |
| parent | c1be5a5b1b355d40e6cf79cc979eb66dafa24ad1 (diff) | |
| parent | 0d2d0cc5216db678070efc911ef47f4cb53b4aad (diff) | |
| download | olio-linux-3.10-3086c9f6482101b3c06935cdfb4d4b56adb60097.tar.xz olio-linux-3.10-3086c9f6482101b3c06935cdfb4d4b56adb60097.zip  | |
Merge branch 'spi/merge' of git://git.secretlab.ca/git/linux into spi-fix-grant
| -rw-r--r-- | drivers/spi/spi-atmel.c | 4 | ||||
| -rw-r--r-- | drivers/spi/spi-davinci.c | 2 | ||||
| -rw-r--r-- | drivers/spi/spi.c | 9 | ||||
| -rw-r--r-- | include/linux/spi/spi.h | 4 | 
4 files changed, 11 insertions, 8 deletions
diff --git a/drivers/spi/spi-atmel.c b/drivers/spi/spi-atmel.c index 656d137db25..80f5867c088 100644 --- a/drivers/spi/spi-atmel.c +++ b/drivers/spi/spi-atmel.c @@ -847,8 +847,8 @@ static int atmel_spi_transfer(struct spi_device *spi, struct spi_message *msg)  		}  		/* FIXME implement these protocol options!! */ -		if (xfer->speed_hz) { -			dev_dbg(&spi->dev, "no protocol options yet\n"); +		if (xfer->speed_hz < spi->max_speed_hz) { +			dev_dbg(&spi->dev, "can't change speed in transfer\n");  			return -ENOPROTOOPT;  		} diff --git a/drivers/spi/spi-davinci.c b/drivers/spi/spi-davinci.c index 8234d225972..6287c8315d0 100644 --- a/drivers/spi/spi-davinci.c +++ b/drivers/spi/spi-davinci.c @@ -784,7 +784,7 @@ static const struct of_device_id davinci_spi_of_match[] = {  	},  	{ },  }; -MODULE_DEVICE_TABLE(of, davini_spi_of_match); +MODULE_DEVICE_TABLE(of, davinci_spi_of_match);  /**   * spi_davinci_get_pdata - Get platform data from DTS binding diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 004b10f184d..3738e7cbff3 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -334,7 +334,7 @@ struct spi_device *spi_alloc_device(struct spi_master *master)  	spi->dev.parent = &master->dev;  	spi->dev.bus = &spi_bus_type;  	spi->dev.release = spidev_release; -	spi->cs_gpio = -EINVAL; +	spi->cs_gpio = -ENOENT;  	device_initialize(&spi->dev);  	return spi;  } @@ -1067,8 +1067,11 @@ static int of_spi_register_master(struct spi_master *master)  	nb = of_gpio_named_count(np, "cs-gpios");  	master->num_chipselect = max(nb, (int)master->num_chipselect); -	if (nb < 1) +	/* Return error only for an incorrectly formed cs-gpios property */ +	if (nb == 0 || nb == -ENOENT)  		return 0; +	else if (nb < 0) +		return nb;  	cs = devm_kzalloc(&master->dev,  			  sizeof(int) * master->num_chipselect, @@ -1079,7 +1082,7 @@ static int of_spi_register_master(struct spi_master *master)  		return -ENOMEM;  	for (i = 0; i < master->num_chipselect; i++) -		cs[i] = -EINVAL; +		cs[i] = -ENOENT;  	for (i = 0; i < nb; i++)  		cs[i] = of_get_named_gpio(np, "cs-gpios", i); diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h index 38c2b925923..c395f32b53b 100644 --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h @@ -57,7 +57,7 @@ extern struct bus_type spi_bus_type;   * @modalias: Name of the driver to use with this device, or an alias   *	for that name.  This appears in the sysfs "modalias" attribute   *	for driver coldplugging, and in uevents used for hotplugging - * @cs_gpio: gpio number of the chipselect line (optional, -EINVAL when + * @cs_gpio: gpio number of the chipselect line (optional, -ENOENT when   *	when not using a GPIO line)   *   * A @spi_device is used to interchange data between an SPI slave @@ -261,7 +261,7 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv)   *	queue so the subsystem notifies the driver that it may relax the   *	hardware by issuing this call   * @cs_gpios: Array of GPIOs to use as chip select lines; one per CS - *	number. Any individual value may be -EINVAL for CS lines that + *	number. Any individual value may be -ENOENT for CS lines that   *	are not GPIOs (driven by the SPI controller itself).   *   * Each SPI master controller can communicate with one or more @spi_device  |