summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2017-10-31 12:32:58 -0700
committerHoegeun Kwon <hoegeun.kwon@samsung.com>2019-02-19 09:07:54 +0900
commit9abf8d83968528a4f615c6ccbb7324b22c35252c (patch)
tree9f9e9088ac70a53603595985da4abe231cea147a
parent000dd4be9ae28113d4242fd710737968b6e46569 (diff)
downloadlinux-rpi3-9abf8d83968528a4f615c6ccbb7324b22c35252c.tar.gz
linux-rpi3-9abf8d83968528a4f615c6ccbb7324b22c35252c.tar.bz2
linux-rpi3-9abf8d83968528a4f615c6ccbb7324b22c35252c.zip
drm/panel: Enable DSI transactions on the RPi panel.
It turns out that I had just mistaken what type of write the register writes were supposed to be, using DCS instead of generic long writes. Switching to transactions instead of using the atmel as a bridge also seems to resolve the sparkling pixels problem I've had. Signed-off-by: Eric Anholt <eric@anholt.net> Fixes: 2f733d6194bd ("drm/panel: Add support for the Raspberry Pi 7" Touchscreen.") Link: https://patchwork.freedesktop.org/patch/msgid/20171031193258.17373-2-eric@anholt.net Reviewed-by: Boris Brezillon <boris.brezillon@bootlin.com> Acked-by: Thierry Reding <treding@nvidia.com> [hoegeun.kwon: backported from mainline - commit: 3481fe768faea There is a problem that the pixel sparking. So use generic writes instead of dsc.] Change-Id: Ie032f351248a2e263e9594db8df71da163ff2e00 Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
-rw-r--r--drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c14
1 files changed, 1 insertions, 13 deletions
diff --git a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
index 186969f148e1..996ef5a02cee 100644
--- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
+++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
@@ -243,12 +243,6 @@ static void rpi_touchscreen_i2c_write(struct rpi_touchscreen *ts,
static int rpi_touchscreen_write(struct rpi_touchscreen *ts, u16 reg, u32 val)
{
-#if 0
- /* The firmware uses LP DSI transactions like this to bring up
- * the hardware, which should be faster than using I2C to then
- * pass to the Toshiba. However, I was unable to get it to
- * work.
- */
u8 msg[] = {
reg,
reg >> 8,
@@ -258,13 +252,7 @@ static int rpi_touchscreen_write(struct rpi_touchscreen *ts, u16 reg, u32 val)
val >> 24,
};
- mipi_dsi_dcs_write_buffer(ts->dsi, msg, sizeof(msg));
-#else
- rpi_touchscreen_i2c_write(ts, REG_WR_ADDRH, reg >> 8);
- rpi_touchscreen_i2c_write(ts, REG_WR_ADDRL, reg);
- rpi_touchscreen_i2c_write(ts, REG_WRITEH, val >> 8);
- rpi_touchscreen_i2c_write(ts, REG_WRITEL, val);
-#endif
+ mipi_dsi_generic_write(ts->dsi, msg, sizeof(msg));
return 0;
}