Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 552f0cc7 authored by Maxime Ripard's avatar Maxime Ripard Committed by Linus Torvalds
Browse files

drivers/video/ssd1307fb.c: fix bit order bug in the byte translation function



This was leading to a strange behaviour when using the fbcon driver on
top of this one: the letters were in the right order, but each letter
had a vertical symmetry.

This was because the addressing was right for the byte, but the
addressing of each individual bit was inverted.

Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
Cc: Brian Lilly <brian@crystalfontz.com>
Cc: Greg Kroah-Hartman <gregkh@linux-foundation.org>
Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: Thomas Petazzoni <thomas@free-electrons.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 04fa5d6a
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -145,8 +145,8 @@ static void ssd1307fb_update_display(struct ssd1307fb_par *par)
				u32 page_length = SSD1307FB_WIDTH * i;
				u32 page_length = SSD1307FB_WIDTH * i;
				u32 index = page_length + (SSD1307FB_WIDTH * k + j) / 8;
				u32 index = page_length + (SSD1307FB_WIDTH * k + j) / 8;
				u8 byte = *(vmem + index);
				u8 byte = *(vmem + index);
				u8 bit = byte & (1 << (7 - (j % 8)));
				u8 bit = byte & (1 << (j % 8));
				bit = bit >> (7 - (j % 8));
				bit = bit >> (j % 8);
				buf |= bit << k;
				buf |= bit << k;
			}
			}
			ssd1307fb_write_data(par->client, buf);
			ssd1307fb_write_data(par->client, buf);