Re: [PATCH v2 0/4] drm/tiny: Add driver for Solomon SSD1307 OLED displays

From: Javier Martinez Canillas
Date: Tue Feb 08 2022 - 10:10:58 EST


Hello Geert,

Thanks a lot for testing!

On 2/8/22 15:19, Geert Uytterhoeven wrote:
> Hi Javier,
>
> On Fri, Feb 4, 2022 at 2:43 PM Javier Martinez Canillas
> <javierm@xxxxxxxxxx> wrote:
>> This patch series adds a DRM driver for the Solomon OLED SSD1305, SSD1306,
>> SSD1307 and SSD1309 displays. It is a port of the ssd1307fb fbdev driver.
>
> I gave it a try on an Adafruit FeatherWing 128x32 OLED, connected to an
> OrangeCrab ECP5 FPGA board running a 64 MHz VexRiscv RISC-V softcore.
>
> Findings:
> - Kernel size increased by 349 KiB,
> - The "Memory:" line reports 412 KiB less memory,
> - On top of that, "free" shows ca. 92 KiB more memory in use after
> bootup.
> - The logo (I have a custom monochrome logo enabled) is no longer shown.

I was able to display your tux monochrome with ./fbtest -f /dev/fb1 test004

> - The screen is empty, with a (very very slow) flashing cursor in the
> middle of the screen, with a bogus long line next to it, which I can
> see being redrawn.
> - Writing text (e.g. hello) to /dev/tty0, I first see the text,
> followed by an enlargement of some of the characters.


So far I was mostly testing using your fbtest repo tests and all of them
(modulo test009 that says "Screen size too small for this test").

But I've tried now using as a VT and I see the same visual artifacts. I
wonder what's the difference between fbcon and the way your tests use
the fbdev API.

> - "time ls" on the serial console (no files in the current directory,
> so nothing to print) increases from 0.86s to 1.92s, so the system is
> more loaded. As ssd1307fb relied on deferred I/O too, the slowdown
> might be (partly) due to redrawing of the visual artefacts
> mentioned above.
>

I was trying to first have the driver and then figure out how to optimize
it. For v3 I'm using regmap to access instead of the I2C layer directly.

I noticed that this is even slower but it makes the driver more clean and
allows to support both I2C and SPI (untested but will include it as a WIP).

> So while the displays seems to be initialized correctly, it looks like
> there are some serious bugs in the conversion from xrgb8888 to
> monochrome.
>

Yes, that's possible. I haven't tried to use it as a console before because
the display resolution is just too small. But will include now in my tests.

> Gr{oetje,eeting}s,
>
Best regards,
--
Javier Martinez Canillas
Linux Engineering
Red Hat