public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/3] drm: add SimpleDRM driver
@ 2016-08-14 16:52 Noralf Trønnes
  2016-08-14 16:52 ` [PATCH v3 1/3] " Noralf Trønnes
                   ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: Noralf Trønnes @ 2016-08-14 16:52 UTC (permalink / raw)
  To: dri-devel; +Cc: dh.herrmann, linux-kernel, Noralf Trønnes

This patchset adds the simpledrm driver by David Herrmann based on a
patchset[1] from 2014. That patchset also included patches for kicking
out simpledrm by real drivers. I have stayed away from that since it
involves another subsystem and I would probably be unable to answer any
questions about the implementation.

Two main changes in this third version:

Paul Gortmaker pointed out that module.h pulls in 750k and is best
avoided when not necessary. All the source files included it, but only
one needed it. I the same spirit I moved the includes I could from the
header file to the respective source files.

The panic handling I'm working on requires an enabled pipeline to work,
so I have switched the fbdev code to use the drm fb helper. Maybe not
strictly necessary since fbcon can output panic messages, but it gave
me an excuse to do it, making the fbdev code "drm standard".

I have tested simpledrm on a Raspberry Pi B+ with U-boot setting up the
framebuffer and producing this node (legacy, not under /chosen):

/ {
        framebuffer@1e887000 {
                compatible = "simple-framebuffer";
                reg = <0x1e887000 0x36c600>;
                format = "r5g6b5";
                width = <1824>;
                height = <984>;
                stride = <3648>;
                status = "okay";
        };

I have only tested with fbcon and modetest (XR24,RG16).


Noralf.


Changes from version 2:
- Remove superfluos module.h includes
- Move includes from header to source files
- Set plane.fb before flushing in pipe update, or else the previous one
  gets flushed
- Added check for vblank event in sdrm_display_pipe_update()
fbdev:
- Switch to using drm_fb_helper in preparation for future panic handling
  which needs an enabled pipeline.
- Don't forget to free fb_info when kicked out.

Changes from version 1:
- Move platform_set_drvdata() before drm_dev_register()
- Remove drm_legacy_mmap() call.
- Set mode_config.{min,max}_{width,height} to the actual dimensions
  of the native framebuffer
- Remove plane positioning since it won't work with the simple display pipe,
  meaning sdrm_display_pipe_check() isn't necessary either
- Support the additions to the Device Tree binding document, including
  clocks, regulators and having the node under /chosen
fbdev:
- Honour remove_conflicting_framebuffers()

Changes from previous version[2]:
- Remove FB_SIMPLE=n dependency to avoid kconfig recursive error
- Changed module name to match kconfig help text: sdrm -> simpledrm
- Use drm_simple_display_pipe
- Replace deprecated drm_platform_init()
- sdrm_dumb_create(): drm_gem_object_unreference() -> *_unlocked()
- sdrm_dumb_map_offset(): drm_gem_object_lookup() remove drm_device parameter
- sdrm_drm_mmap() changes:
  Remove struct_mutex locking
  Add drm_vma_offset_{lock,unlock}_lookup()
  drm_mmap() -> drm_legacy_mmap()
- dma_buf_begin_cpu_access() doesn't require start and length anymore
- Use drm_cvt_mode() instead of open coding a mode
- Fix format conversion. In the intermediate step, store the 8/6/5 bit color
  value in the upper part of the 16-bit color variable, not the lower.
- Support clips == NULL in sdrm_dirty()
- Set mode_config.preferred_depth
- Attach mode_config.dirty_info_property to connector
fbdev:
- Remove the DRM_SIMPLEDRM_FBDEV kconfig option and use DRM_FBDEV_EMULATION
- Suspend fbcon/fbdev when the pipeline is enabled, resume in lastclose
- Add FBINFO_CAN_FORCE_OUTPUT flag so we get oops'es on the console

[1] https://lists.freedesktop.org/archives/dri-devel/2014-January/052584.html
[2] https://lists.freedesktop.org/archives/dri-devel/2014-January/052594.html


Further history:

[PATCH v4 0/6] SimpleDRM Driver
https://lists.freedesktop.org/archives/dri-devel/2013-September/044638.html

[PATCH v2 00/14] Platform Framebuffers and SimpleDRM
https://lists.freedesktop.org/archives/dri-devel/2013-July/041090.html

[RFC 0/6] SimpleDRM Driver (was: dvbe driver)
https://lists.freedesktop.org/archives/dri-devel/2013-June/040386.html

[PATCH 0/9] System Framebuffer Bus (sysfb)
https://lists.freedesktop.org/archives/dri-devel/2013-February/035013.html


Noralf Trønnes (3):
  drm: add SimpleDRM driver
  drm: simpledrm: add fbdev fallback support
  drm: simpledrm: honour remove_conflicting_framebuffers()

 drivers/gpu/drm/Kconfig                      |   2 +
 drivers/gpu/drm/Makefile                     |   1 +
 drivers/gpu/drm/simpledrm/Kconfig            |  27 ++
 drivers/gpu/drm/simpledrm/Makefile           |   5 +
 drivers/gpu/drm/simpledrm/simpledrm.h        | 129 +++++++
 drivers/gpu/drm/simpledrm/simpledrm_damage.c | 302 +++++++++++++++
 drivers/gpu/drm/simpledrm/simpledrm_drv.c    | 546 +++++++++++++++++++++++++++
 drivers/gpu/drm/simpledrm/simpledrm_fbdev.c  | 252 +++++++++++++
 drivers/gpu/drm/simpledrm/simpledrm_gem.c    | 274 ++++++++++++++
 drivers/gpu/drm/simpledrm/simpledrm_kms.c    | 266 +++++++++++++
 10 files changed, 1804 insertions(+)
 create mode 100644 drivers/gpu/drm/simpledrm/Kconfig
 create mode 100644 drivers/gpu/drm/simpledrm/Makefile
 create mode 100644 drivers/gpu/drm/simpledrm/simpledrm.h
 create mode 100644 drivers/gpu/drm/simpledrm/simpledrm_damage.c
 create mode 100644 drivers/gpu/drm/simpledrm/simpledrm_drv.c
 create mode 100644 drivers/gpu/drm/simpledrm/simpledrm_fbdev.c
 create mode 100644 drivers/gpu/drm/simpledrm/simpledrm_gem.c
 create mode 100644 drivers/gpu/drm/simpledrm/simpledrm_kms.c

--
2.8.2

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

end of thread, other threads:[~2016-08-17 11:17 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-14 16:52 [PATCH v3 0/3] drm: add SimpleDRM driver Noralf Trønnes
2016-08-14 16:52 ` [PATCH v3 1/3] " Noralf Trønnes
2016-08-15  6:59   ` Daniel Vetter
2016-08-16 12:58     ` Noralf Trønnes
2016-08-16 15:25       ` Daniel Vetter
2016-08-16 19:38         ` Noralf Trønnes
2016-08-17  9:30           ` Daniel Vetter
2016-08-17 10:19             ` Noralf Trønnes
2016-08-17 10:58               ` Daniel Vetter
2016-08-14 16:52 ` [PATCH v3 2/3] drm: simpledrm: add fbdev fallback support Noralf Trønnes
2016-08-15  6:48   ` Daniel Vetter
2016-08-16 13:10     ` Noralf Trønnes
2016-08-16 15:31       ` Daniel Vetter
2016-08-14 16:52 ` [PATCH v3 3/3] drm: simpledrm: honour remove_conflicting_framebuffers() Noralf Trønnes
2016-08-15  7:12   ` Daniel Vetter
2016-08-15  7:14 ` [PATCH v3 0/3] drm: add SimpleDRM driver Daniel Vetter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox