summaryrefslogtreecommitdiff
path: root/drivers/video
diff options
context:
space:
mode:
authorPhilipp Zabel <p.zabel@pengutronix.de>2023-04-03 13:53:39 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2023-04-11 13:58:09 +0200
commit18ba95d982733ab123e93debeea58a29ba993896 (patch)
tree9498619035d7375f101f315b19011edca699039c /drivers/video
parent44acfda59830afeadcd59ac0ec6d19da4b1c23b9 (diff)
downloadbarebox-18ba95d982733ab123e93debeea58a29ba993896.tar.gz
video: mipi_dbi: disable byte swapping if 16-bit SPI transfers are supported
If the SPI controller supports switching to 16-bit transfers, there is no need to swap bytes on little-endian architectures. This also allows to transfer directly from the 16-bit framebuffer. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Link: https://lore.barebox.org/20230403115340.3416720-3-p.zabel@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/mipi_dbi.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/video/mipi_dbi.c b/drivers/video/mipi_dbi.c
index 61b0fbcc49..aab6b12439 100644
--- a/drivers/video/mipi_dbi.c
+++ b/drivers/video/mipi_dbi.c
@@ -632,8 +632,7 @@ int mipi_dbi_spi_init(struct spi_device *spi, struct mipi_dbi *dbi,
dbi->command = mipi_dbi_typec3_command;
dbi->dc = dc;
- // TODO: can we just force 16 bit?
- if (mipi_dbi_machine_little_endian() && spi->bits_per_word != 16)
+ if (mipi_dbi_machine_little_endian() && !spi_is_bpw_supported(spi, 16))
dbi->swap_bytes = true;
dev_dbg(dev, "SPI speed: %uMHz\n", spi->max_speed_hz / 1000000);