diff mbox series

spi: davinci: invoke chipselect callback

Message ID 735fb7b0-82aa-5b9b-85e4-53f0c348cc0e@nokia.com (mailing list archive)
State Accepted
Commit ea4ab99cb58cc9f8d64c0961ff9a059825f304cf
Headers show
Series spi: davinci: invoke chipselect callback | expand

Commit Message

Matija Glavinic Pecotic Aug. 24, 2021, 9:25 a.m. UTC
Davinci needs to configure chipselect on transfer.

Fixes: 4a07b8bcd503 ("spi: bitbang: Make chipselect callback optional")

Signed-off-by: Matija Glavinic Pecotic <matija.glavinic-pecotic.ext@nokia.com>
---
 drivers/spi/spi-davinci.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

Comments

Alexander Sverdlin Aug. 24, 2021, 7:49 p.m. UTC | #1
Hi!

On 24/08/2021 11:25, Matija Glavinic Pecotic wrote:
> Davinci needs to configure chipselect on transfer.
> 
> Fixes: 4a07b8bcd503 ("spi: bitbang: Make chipselect callback optional")
> 
> Signed-off-by: Matija Glavinic Pecotic <matija.glavinic-pecotic.ext@nokia.com>

Reviewed-by: Alexander Sverdlin <alexander.sverdlin@nokia.com>

> ---
>  drivers/spi/spi-davinci.c | 8 +-------
>  1 file changed, 1 insertion(+), 7 deletions(-)
> 
> diff --git a/drivers/spi/spi-davinci.c b/drivers/spi/spi-davinci.c
> index f71c497393a6..c3974d996cb8 100644
> --- a/drivers/spi/spi-davinci.c
> +++ b/drivers/spi/spi-davinci.c
> @@ -213,12 +213,6 @@ static void davinci_spi_chipselect(struct spi_device *spi, int value)
>  	 * line for the controller
>  	 */
>  	if (spi->cs_gpiod) {
> -		/*
> -		 * FIXME: is this code ever executed? This host does not
> -		 * set SPI_MASTER_GPIO_SS so this chipselect callback should
> -		 * not get called from the SPI core when we are using
> -		 * GPIOs for chip select.
> -		 */
>  		if (value == BITBANG_CS_ACTIVE)
>  			gpiod_set_value(spi->cs_gpiod, 1);
>  		else
> @@ -950,7 +944,7 @@ static int davinci_spi_probe(struct platform_device *pdev)
>  	master->bus_num = pdev->id;
>  	master->num_chipselect = pdata->num_chipselect;
>  	master->bits_per_word_mask = SPI_BPW_RANGE_MASK(2, 16);
> -	master->flags = SPI_MASTER_MUST_RX;
> +	master->flags = SPI_MASTER_MUST_RX | SPI_MASTER_GPIO_SS;
>  	master->setup = davinci_spi_setup;
>  	master->cleanup = davinci_spi_cleanup;
>  	master->can_dma = davinci_spi_can_dma;
Mark Brown Aug. 25, 2021, 10:22 a.m. UTC | #2
On Tue, 24 Aug 2021 11:25:56 +0200, Matija Glavinic Pecotic wrote:
> Davinci needs to configure chipselect on transfer.
> 
> Fixes: 4a07b8bcd503 ("spi: bitbang: Make chipselect callback optional")
> 
> 
> 
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next

Thanks!

[1/1] spi: davinci: invoke chipselect callback
      commit: ea4ab99cb58cc9f8d64c0961ff9a059825f304cf

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark
diff mbox series

Patch

diff --git a/drivers/spi/spi-davinci.c b/drivers/spi/spi-davinci.c
index f71c497393a6..c3974d996cb8 100644
--- a/drivers/spi/spi-davinci.c
+++ b/drivers/spi/spi-davinci.c
@@ -213,12 +213,6 @@  static void davinci_spi_chipselect(struct spi_device *spi, int value)
 	 * line for the controller
 	 */
 	if (spi->cs_gpiod) {
-		/*
-		 * FIXME: is this code ever executed? This host does not
-		 * set SPI_MASTER_GPIO_SS so this chipselect callback should
-		 * not get called from the SPI core when we are using
-		 * GPIOs for chip select.
-		 */
 		if (value == BITBANG_CS_ACTIVE)
 			gpiod_set_value(spi->cs_gpiod, 1);
 		else
@@ -950,7 +944,7 @@  static int davinci_spi_probe(struct platform_device *pdev)
 	master->bus_num = pdev->id;
 	master->num_chipselect = pdata->num_chipselect;
 	master->bits_per_word_mask = SPI_BPW_RANGE_MASK(2, 16);
-	master->flags = SPI_MASTER_MUST_RX;
+	master->flags = SPI_MASTER_MUST_RX | SPI_MASTER_GPIO_SS;
 	master->setup = davinci_spi_setup;
 	master->cleanup = davinci_spi_cleanup;
 	master->can_dma = davinci_spi_can_dma;