On Wed, Oct 14, 2020 at 11:02:30AM +0200, Martin Hundebøll wrote: > The work on improving gpio chip-select in spi core, and the following > fixes, has caused the bcm2835 spi driver to use wrong levels. Fix this > by simply removing level handling in the bcm2835 driver, and let the > core do its work. > > Fixes: 3e5ec1db8bfe ("spi: Fix SPI_CS_HIGH setting when using native and GPIO CS") > Cc: <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Martin Hundebøll <martin@xxxxxxxxxx> > --- > drivers/spi/spi-bcm2835.c | 12 ------------ > 1 file changed, 12 deletions(-) > > diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c > index b87116e9b413..9b6ba94fe878 100644 > --- a/drivers/spi/spi-bcm2835.c > +++ b/drivers/spi/spi-bcm2835.c > @@ -1259,18 +1259,6 @@ static int bcm2835_spi_setup(struct spi_device *spi) > if (!chip) > return 0; > > - /* > - * Retrieve the corresponding GPIO line used for CS. > - * The inversion semantics will be handled by the GPIO core > - * code, so we pass GPIOD_OUT_LOW for "unasserted" and > - * the correct flag for inversion semantics. The SPI_CS_HIGH > - * on spi->mode cannot be checked for polarity in this case > - * as the flag use_gpio_descriptors enforces SPI_CS_HIGH. > - */ > - if (of_property_read_bool(spi->dev.of_node, "spi-cs-high")) > - lflags = GPIO_ACTIVE_HIGH; > - else > - lflags = GPIO_ACTIVE_LOW; > spi->cs_gpiod = gpiochip_request_own_desc(chip, 8 - spi->chip_select, > DRV_NAME, > lflags, > -- > 2.28.0 > > Clang now warns: drivers/spi/spi-bcm2835.c:1264:9: warning: variable 'lflags' is uninitialized when used here [-Wuninitialized] lflags, ^~~~~~ drivers/spi/spi-bcm2835.c:1196:2: note: variable 'lflags' is declared here enum gpio_lookup_flags lflags; ^ 1 warning generated. Cheers, Nathan