All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/4] drm/tiny: Add driver for Solomon SSD1307 OLED displays
@ 2022-02-04 13:43 ` Javier Martinez Canillas
  0 siblings, 0 replies; 66+ messages in thread
From: Javier Martinez Canillas @ 2022-02-04 13:43 UTC (permalink / raw)
  To: linux-kernel
  Cc: Andy Shevchenko, Daniel Vetter, Geert Uytterhoeven, linux-fbdev,
	Sam Ravnborg, dri-devel, Noralf Trønnes, Thomas Zimmermann,
	Maxime Ripard, Javier Martinez Canillas, Daniel Vetter,
	David Airlie, Lee Jones, Liam Girdwood, Maarten Lankhorst,
	Mark Brown, Maxime Ripard, Rob Herring, Thierry Reding,
	Uwe Kleine-König, devicetree, linux-pwm

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.

Using the DRM fb emulation, all the tests from Geert Uytterhoeven's fbtest
(https://git.kernel.org/pub/scm/linux/kernel/git/geert/fbtest.git) passes:

    ./fbtest -f /dev/fb1
    Using drawops cfb32 (32 bpp packed pixels)
    Available visuals:
      Monochrome
      Grayscale 256
      Truecolor 8:8:8:0
    Using visops truecolor
    Running all tests
    test001: PASSED
    test002: PASSED
    test003: PASSED
    test004: PASSED
    test005: PASSED
    test006: PASSED
    test008: PASSED
    Screen size too small for this test
    test010: PASSED
    Benchmarking... 10x10 squares: 414.41 Mpixels/s
    Benchmarking... 20x20 squares: 858.31 Mpixels/s
    Benchmarking... 50x50 squares: 1586.33 Mpixels/s
    test012: PASSED
    Benchmarking... R5 circles: 234.68 Mpixels/s
    Benchmarking... R10 circles: 498.24 Mpixels/s
    Benchmarking... R25 circles: 942.34 Mpixels/s
    test013: PASSED

This is a v2 that addresses all the issues pointed in v1, thanks a lot
to everyone that gave me feedback and reviews. I tried to not miss any
comment, but there were a lot so forgive me if something is not there.

Patch #1 adds two new helpers, drm_fb_gray8_to_mono_reversed() to convert
from grayscale to monochrome and a drm_fb_xrgb8888_to_mono_reversed() to
convert from XR24 to monochrome. The latter internally use thes former.

Patch #2 adds the driver. The name ssd130x was used instead of ssd1307fb
to denote that this driver is not only for SSD1307, but also for other
displays from the same chip family.

Patch #3 just adds a MAINTAINERS entry for the DRM driver and patch #4
adds myself as a co-maintainer of the existing Device Tree binding for
ssd1307fb, since the same is shared between the fbdev and DRM drivers.

Best regards,
Javier

Changes in v2:
- Drop patch that was adding a DRM_MODE_CONNECTOR_I2C type.
- Invert order of backlight {en,dis}able and display {on,off} (Sam Ravnborg)
- Don't clear the screen and turn on display on probe (Sam Ravnborg)
- Use backlight_get_brightness() macro to get BL brightness (Sam Ravnborg)
- Use dev managed version of devm_backlight_device_register() (Sam Ravnborg)
- Use dev_name(dev) for backlight name instead of an array (Sam Ravnborg)
- Drop the .get_brightness callback since isn't needed  (Sam Ravnborg)
- Add myself as co-maintainer of the ssd1370fb DT binding (Sam Ravnborg)
- Add Sam Ravnborg's acked-by tag to patch 3/4.
- Rename driver to ssd130x since supports a display family (Thomas Zimmermann)
- Drop the TINY prefix from the Kconfig symbol (Thomas Zimmermann)
- Sort the Kconfig symbol dependencies alphabetically (Thomas Zimmermann)
- Rename struct ssd130x_array to struct ssd130x_i2c_msg (Thomas Zimmermann)
- Rename struct ssd130x_i2c_msg .type member to .cmd (Thomas Zimmermann)
- Use sizeof(*foo) instead of sizeof(struct foo) (Thomas Zimmermann)
- Use struct_size() macro to calculate sizeof(*foo) + len (Thomas Zimmermann)
- Use kcalloc() instead of kmalloc_array() + memset() (Thomas Zimmermann)
- Use shadow plane helpers virtual screen support (Thomas Zimmermann)
- Remove unused goto label in ssd1307_fb_blit_rect() (Thomas Zimmermann)
- Use drm_set_preferred_mode() inset of manually set (Thomas Zimmermann)
- Use shadow plane helpers virtual screen support (Thomas Zimmermann)
- Remove unused goto label in ssd1307_fb_blit_rect() (Thomas Zimmermann)
- Use drm_set_preferred_mode() inset of manually set (Thomas Zimmermann)
- Reorganize code in probe to make it more legible (Thomas Zimmermann)
- ssd130x_write_cmd() uses varargs to simplify I2C code (Thomas Zimmermann)
- Move regulator/pwm init logic to display pipe enable callback.
- Also add a drm_fb_xrgb8888_to_mono_reversed() helper (Thomas Zimmermann)
- Add a drm_fb_gray8_to_mono_reversed_line() helper (Thomas Zimmermann)

Javier Martinez Canillas (4):
  drm/format-helper: Add drm_fb_{xrgb8888,gray8}_to_mono_reversed()
  drm/tiny: Add driver for Solomon SSD130X OLED displays
  MAINTAINERS: Add entry for Solomon SSD130X OLED displays DRM driver
  dt-bindings: display: ssd1307fb: Add myself as binding co-maintainer

 .../bindings/display/solomon,ssd1307fb.yaml   |   1 +
 MAINTAINERS                                   |   7 +
 drivers/gpu/drm/drm_format_helper.c           |  80 ++
 drivers/gpu/drm/tiny/Kconfig                  |  12 +
 drivers/gpu/drm/tiny/Makefile                 |   1 +
 drivers/gpu/drm/tiny/ssd130x.c                | 971 ++++++++++++++++++
 include/drm/drm_format_helper.h               |   7 +
 7 files changed, 1079 insertions(+)
 create mode 100644 drivers/gpu/drm/tiny/ssd130x.c

-- 
2.34.1


^ permalink raw reply	[flat|nested] 66+ messages in thread

end of thread, other threads:[~2022-02-10  8:32 UTC | newest]

Thread overview: 66+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-04 13:43 [PATCH v2 0/4] drm/tiny: Add driver for Solomon SSD1307 OLED displays Javier Martinez Canillas
2022-02-04 13:43 ` Javier Martinez Canillas
2022-02-04 13:43 ` [PATCH v2 1/4] drm/format-helper: Add drm_fb_{xrgb8888,gray8}_to_mono_reversed() Javier Martinez Canillas
2022-02-04 13:43   ` [PATCH v2 1/4] drm/format-helper: Add drm_fb_{xrgb8888, gray8}_to_mono_reversed() Javier Martinez Canillas
2022-02-04 15:52   ` [PATCH v2 1/4] drm/format-helper: Add drm_fb_{xrgb8888,gray8}_to_mono_reversed() Thomas Zimmermann
2022-02-04 15:52     ` Thomas Zimmermann
2022-02-04 16:00     ` Thomas Zimmermann
2022-02-04 19:31     ` Javier Martinez Canillas
2022-02-04 19:31       ` Javier Martinez Canillas
2022-02-04 20:35       ` Thomas Zimmermann
2022-02-04 20:35         ` Thomas Zimmermann
2022-02-04 21:02     ` Ilia Mirkin
2022-02-04 21:02       ` [PATCH v2 1/4] drm/format-helper: Add drm_fb_{xrgb8888, gray8}_to_mono_reversed() Ilia Mirkin
2022-02-07 12:44       ` Thomas Zimmermann
2022-02-04 13:43 ` [PATCH v2 2/4] drm/tiny: Add driver for Solomon SSD130X OLED displays Javier Martinez Canillas
2022-02-04 13:43   ` Javier Martinez Canillas
2022-02-04 14:26   ` Andy Shevchenko
2022-02-04 14:26     ` Andy Shevchenko
2022-02-04 19:19     ` Javier Martinez Canillas
2022-02-04 19:19       ` Javier Martinez Canillas
2022-02-05 13:04       ` Andy Shevchenko
2022-02-05 13:04         ` Andy Shevchenko
2022-02-05 17:40         ` Javier Martinez Canillas
2022-02-05 17:40           ` Javier Martinez Canillas
2022-02-04 13:43 ` [PATCH v2 3/4] MAINTAINERS: Add entry for Solomon SSD130X OLED displays DRM driver Javier Martinez Canillas
2022-02-04 13:43   ` Javier Martinez Canillas
2022-02-04 13:57   ` Andy Shevchenko
2022-02-04 13:57     ` Andy Shevchenko
2022-02-04 14:12     ` Javier Martinez Canillas
2022-02-04 14:12       ` Javier Martinez Canillas
2022-02-04 14:28       ` Andy Shevchenko
2022-02-04 14:28         ` Andy Shevchenko
2022-02-04 14:33         ` Javier Martinez Canillas
2022-02-04 14:33           ` Javier Martinez Canillas
2022-02-04 13:43 ` [PATCH v2 4/4] dt-bindings: display: ssd1307fb: Add myself as binding co-maintainer Javier Martinez Canillas
2022-02-04 13:43   ` Javier Martinez Canillas
2022-02-09 22:14   ` Rob Herring
2022-02-09 22:14     ` Rob Herring
2022-02-04 14:31 ` [PATCH v2 0/4] drm/tiny: Add driver for Solomon SSD1307 OLED displays Geert Uytterhoeven
2022-02-04 14:31   ` Geert Uytterhoeven
2022-02-04 14:37   ` Javier Martinez Canillas
2022-02-04 14:37     ` Javier Martinez Canillas
2022-02-08 14:19 ` Geert Uytterhoeven
2022-02-08 14:19   ` Geert Uytterhoeven
2022-02-08 15:10   ` Javier Martinez Canillas
2022-02-08 15:10     ` Javier Martinez Canillas
2022-02-08 15:18     ` Mark Brown
2022-02-08 15:18       ` Mark Brown
2022-02-08 15:32       ` Javier Martinez Canillas
2022-02-08 15:32         ` Javier Martinez Canillas
2022-02-08 15:23     ` Geert Uytterhoeven
2022-02-08 15:23       ` Geert Uytterhoeven
2022-02-08 15:40       ` Javier Martinez Canillas
2022-02-08 15:40         ` Javier Martinez Canillas
2022-02-08 17:19         ` Javier Martinez Canillas
2022-02-08 17:19           ` Javier Martinez Canillas
2022-02-09 13:47     ` Andy Shevchenko
2022-02-09 13:47       ` Andy Shevchenko
2022-02-09 14:27       ` Geert Uytterhoeven
2022-02-09 14:27         ` Geert Uytterhoeven
2022-02-09 14:42         ` Javier Martinez Canillas
2022-02-09 14:42           ` Javier Martinez Canillas
2022-02-09 15:32           ` Andy Shevchenko
2022-02-09 15:32             ` Andy Shevchenko
2022-02-10  8:32             ` Maxime Ripard
2022-02-10  8:32               ` Maxime Ripard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.