lkml.org 
[lkml]   [2022]   [Jan]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v1 1/4] fbtft: Unorphan the driver
On Mon, Jan 31, 2022 at 09:29:33AM +0100, Javier Martinez Canillas wrote:
> On 1/26/22 15:15, Javier Martinez Canillas wrote:
> > On 1/26/22 15:10, Andy Shevchenko wrote:
> >> On Wed, Jan 26, 2022 at 04:08:32PM +0200, Andy Shevchenko wrote:
> >>> On Wed, Jan 26, 2022 at 02:46:08PM +0100, Javier Martinez Canillas wrote:
> >>>> On 1/26/22 14:12, Andy Shevchenko wrote:
> >>
> >> ...
> >>
> >>>> I've just bought a SSD1306 (I2C) based one and will attempt to write a DRM
> >>>> driver using drivers/staging/fbtft/fb_ssd1306.c as a reference.
> >>>
> >>> You should take ssd1307fb.c instead. And basically create a MIPI based driver
> >>> for I2C. Then we won't go same road again for other similar devices.
> >>
> >> For the record it supports your device:
> >>
> >> static const struct i2c_device_id ssd1307fb_i2c_id[] = {
> >> { "ssd1305fb", 0 },
> >> { "ssd1306fb", 0 },
> >> { "ssd1307fb", 0 },
> >> { "ssd1309fb", 0 },
> >>
> >>
> >
> > Thanks a lot for the pointer. I was only looking at drivers/staging
> > and didn't check drivers/video. I'll try to convert that one then
> > once I get the display.
> >
>
> I got some time this weekend and was able to port the ssd1306 fbdev driver
> to DRM [0]. I'm not that familiar with the simple display pipe helpers, so
> there may be some wrong things there. But it does work and all the fbtests
> from https://git.kernel.org/pub/scm/linux/kernel/git/geert/fbtest.git pass.

Thanks! Good news, everybody!

> There are some hacks in the driver though. For example it exposes an XRGB8888
> format even thought the OLED display is monochromatic and has 1 bit per pixel.
>
> The driver then goes and converts the XRGB8888 pixels first to grayscale and
> then to reverse mono. I took that idea from the repaper driver but that gives
> us the multiple copies that Geert was complaining about.
>
> Another hack is that I am just hardcoding the {width, height}_mm, but I don't
> know what DPI could be used for these panels nor how I could calculate the mm.

I think the hacks is the first what should be eliminated, also see below.

...

> +config TINYDRM_SSD130X
> + tristate "DRM support for Solomon SSD130X OLED displays"
> + depends on DRM && OF && I2C

Please, make sure that it does NOT dependent on OF.

...

> +obj-$(CONFIG_TINYDRM_SSD130X) += ssd130x.o

I would keep the original name since we have I2C (fbdev) implementation, SPI
and platform (fbtft), and now i2c (drm). I would like to avoid more confusion
that we already have.

--
With Best Regards,
Andy Shevchenko


\
 
 \ /
  Last update: 2022-01-31 13:09    [W:0.551 / U:0.016 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site