summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Keeping <jkeeping@inmusicbrands.com>2025-01-15 11:01:37 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-04-10 14:39:13 +0200
commit5a3461ca54db8d9f337c9c6af4a415de28b4b595 (patch)
tree3fb522f665a28ff4cb152c9ef7b3c0a803767a4d
parenta9c4366566e6f8f4b434bd62ce940cfcb07d0a54 (diff)
drm/ssd130x: fix ssd132x encoding
[ Upstream commit 1e14484677c8e87548f5f0d4eb8800e408004404 ] The ssd132x buffer is encoded one pixel per nibble, with two pixels in each byte. When encoding an 8-bit greyscale input, take the top 4-bits as the value and ensure the two pixels are distinct and do not overwrite each other. Fixes: fdd591e00a9c ("drm/ssd130x: Add support for the SSD132x OLED controller family") Signed-off-by: John Keeping <jkeeping@inmusicbrands.com> Reviewed-by: Javier Martinez Canillas <javierm@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20250115110139.1672488-2-jkeeping@inmusicbrands.com Signed-off-by: Javier Martinez Canillas <javierm@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/gpu/drm/solomon/ssd130x.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/solomon/ssd130x.c b/drivers/gpu/drm/solomon/ssd130x.c
index 6f51bcf774e2..7d071a2f7a46 100644
--- a/drivers/gpu/drm/solomon/ssd130x.c
+++ b/drivers/gpu/drm/solomon/ssd130x.c
@@ -880,7 +880,7 @@ static int ssd132x_update_rect(struct ssd130x_device *ssd130x,
u8 n1 = buf[i * width + j];
u8 n2 = buf[i * width + j + 1];
- data_array[array_idx++] = (n2 << 4) | n1;
+ data_array[array_idx++] = (n2 & 0xf0) | (n1 >> 4);
}
}