Message ID | 20240207111516.2563218-1-tudor.ambarus@linaro.org |
---|---|
Headers | show |
Series | spi: s3c64xx: add support for google,gs101-spi | expand |
On Wed, Feb 7, 2024 at 5:15 AM Tudor Ambarus <tudor.ambarus@linaro.org> wrote: > > There are SoCs (gs101) that allow only 32 bit register accesses. As the > requirement is rare enough, for those SoCs we'll open code in the driver > some s3c64xx_iowrite{8,16}_32_rep() accessors. Prepare for such addition. > > Suggested-by: Sam Protsenko <semen.protsenko@linaro.org> > Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org> > --- Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org> > drivers/spi/spi-s3c64xx.c | 35 +++++++++++++++++++++-------------- > 1 file changed, 21 insertions(+), 14 deletions(-) > > diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c > index 7f7eb8f742e4..eb79c6e4f509 100644 > --- a/drivers/spi/spi-s3c64xx.c > +++ b/drivers/spi/spi-s3c64xx.c > @@ -414,6 +414,26 @@ static bool s3c64xx_spi_can_dma(struct spi_controller *host, > > } > > +static void s3c64xx_iowrite_rep(const struct s3c64xx_spi_driver_data *sdd, > + struct spi_transfer *xfer) > +{ > + void __iomem *addr = sdd->regs + S3C64XX_SPI_TX_DATA; > + const void *buf = xfer->tx_buf; > + unsigned int len = xfer->len; > + > + switch (sdd->cur_bpw) { > + case 32: > + iowrite32_rep(addr, buf, len / 4); > + break; > + case 16: > + iowrite16_rep(addr, buf, len / 2); > + break; > + default: > + iowrite8_rep(addr, buf, len); > + break; > + } > +} > + > static int s3c64xx_enable_datapath(struct s3c64xx_spi_driver_data *sdd, > struct spi_transfer *xfer, int dma_mode) > { > @@ -447,20 +467,7 @@ static int s3c64xx_enable_datapath(struct s3c64xx_spi_driver_data *sdd, > modecfg |= S3C64XX_SPI_MODE_TXDMA_ON; > ret = prepare_dma(&sdd->tx_dma, &xfer->tx_sg); > } else { > - switch (sdd->cur_bpw) { > - case 32: > - iowrite32_rep(regs + S3C64XX_SPI_TX_DATA, > - xfer->tx_buf, xfer->len / 4); > - break; > - case 16: > - iowrite16_rep(regs + S3C64XX_SPI_TX_DATA, > - xfer->tx_buf, xfer->len / 2); > - break; > - default: > - iowrite8_rep(regs + S3C64XX_SPI_TX_DATA, > - xfer->tx_buf, xfer->len); > - break; > - } > + s3c64xx_iowrite_rep(sdd, xfer); > } > } > > -- > 2.43.0.687.g38aa6559b0-goog >
On Wed, 07 Feb 2024 11:15:12 +0000, Tudor Ambarus wrote: > This applies on Mark's for-next branch. It can be queued before the > simple cleanup patches. > > v2: > - drop the include linux/types.h patch > - patch 2 is a preparation step as per Sam's suggestion > - contrary to Sam's suggestion, I kept the style for the > s3c64xx_iowrite{8,16}_32_rep() methods, to be consistent with the > generic implementations from asm-generic/io.h. > - s/just/only > - collect R-b tags. > > [...] Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next Thanks! [1/4] spi: dt-bindings: samsung: add google,gs101-spi compatible commit: ff690e75d64b0ca119adbfc3bd0b444bc1d0a1c5 [2/4] spi: s3c64xx: prepare for a different flavor of iowrite rep commit: 80d3204a3b1dbef570ed29d4d375e4d6922da82d [3/4] spi: s3c64xx: add s3c64xx_iowrite{8,16}_32_rep accessors commit: b7bafb9f54fc4609ff84ecd633f918f6f973f471 [4/4] spi: s3c64xx: add support for google,gs101-spi commit: 0f0212558bc9e33fad4148d3f44745a367076b20 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