Signed-off-by: Martin Sperl <kernel@xxxxxxxxxxxxxxxx> Tested-by: Martin Sperl <kernel@xxxxxxxxxxxxxxxx> --- drivers/spi/spi-bcm2835.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) Applies against spi - topic/bcm2835 Could get replaced by something similar to this. if (!gpio_is_valid(spi->gpio_cs)) { if (spi->chip_select == 0) { spi->gpio_cs = 8; gpio_set_output(spi->gpio_cs); } if (spi->chip_select == 1) { spi->gpio_cs = 7; gpio_set_output(spi->gpio_cs); } } But I do not know what is the correct call to use. diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c index adf157b..601fc5e 100644 --- a/drivers/spi/spi-bcm2835.c +++ b/drivers/spi/spi-bcm2835.c @@ -82,6 +82,7 @@ struct bcm2835_spi { u8 *rx_buf; int tx_len; int rx_len; + bool native_cs_use_warning_done; }; static inline u32 bcm2835_rd(struct bcm2835_spi *bs, unsigned reg) @@ -287,6 +288,9 @@ static void bcm2835_spi_set_cs(struct spi_device *spi, bool gpio_level) static int bcm2835_spi_setup(struct spi_device *spi) { + struct spi_master *master = spi->master; + struct bcm2835_spi *bs = spi_master_get_devdata(master); + /* * sanity checking the native-chipselects */ @@ -294,6 +298,14 @@ static int bcm2835_spi_setup(struct spi_device *spi) return 0; if (gpio_is_valid(spi->cs_gpio)) return 0; + /* we are in the native chipselect case now, + * so warn about the fact that some things may not work as well + */ + if (!bs->native_cs_use_warning_done) { + dev_warn(&spi->dev, + "setup: native chipselect is used - some driver functions/optimizations are not applied\n"); + bs->native_cs_use_warning_done = 1; + } if (spi->chip_select < 3) return 0; -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html