This is v5 of the GlandaGPU DRM driver series [1][2][3][4]. It
addresses review feedback from Thomas Zimmermann and the automated
review bot on v4.

GlandaGPU is a small VHDL soft-IP 2D display controller, currently
targeting a Terasic DE10-Standard (Cyclone V SoC). This series has
been tested against a QEMU digital twin and on real hardware.

Hardware/VHDL:   https://github.com/stiangglanda/GlandaGPU
QEMU fork:       https://github.com/stiangglanda/qemu-glandagpu
Userspace tests: https://github.com/stiangglanda/GlandaGPU-userspace-tests

Changes since v4:

dt-bindings:
- Mark "interrupts" as required in kieweg,gpu.yaml, now that the IRQ
  is a hard requirement for the driver.

driver core:
- Replace iosys_map_rd() in glanda_blit_rect() with
  iosys_map_memcpy_from() into a per-row scratch buffer allocated
  via drm_format_conv_state_reserve() (solves the unaligned-pitch
  problem without breaking uAPI) (Thomas Zimmermann).
- Add drm_atomic_helper_shutdown() to glanda_drm_fini(), after
  drm_dev_unplug() (Thomas Zimmermann).
- Add an all-ones check in glanda_irq_handler() to guard against a
  disconnected/floating ISR register (Sashiko bot).
- Add .shutdown for both the platform driver and the PCI driver
  (Sashiko bot).

The Sashiko bot also flagged drm_gem_fb_begin_cpu_access() and
drm_gem_fb_end_cpu_access() as potentially sleeping in atomic
context. I'm keeping these as they are, since they were added on
Thomas' recommendation in the first place.

Regarding IRQ handling: as Thomas suggested, I made the IRQ a hard
requirement and removed the polling fallback entirely. That fallback
was legacy from an earlier hardware revision that didn't support
IRQs at all. Since current hardware always has one, keeping two code
paths around wasn't worth the maintenance cost.

Because of this, I also had to mark "interrupts" as required in the
kieweg,gpu.yaml dt-binding again. That patch already carried a
Reviewed-by from Krzysztof Kozlowski in v4, but since the binding
changed, I'm not carrying that tag forward this time.

[1] v1: 
https://lore.kernel.org/dri-devel/[email protected]/T/#t
[2] v2: 
https://lore.kernel.org/dri-devel/[email protected]/T/#t
[3] v3: 
https://lore.kernel.org/dri-devel/[email protected]/T/#t
[4] v4: 
https://lore.kernel.org/dri-devel/[email protected]/T/#t

Leander Kieweg (2):
  dt-bindings: display: Add GlandaGPU binding
  drm/glanda: Add initial DRM driver for GlandaGPU

 .../bindings/display/kieweg,gpu.yaml          |  56 ++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 MAINTAINERS                                   |   6 +
 drivers/gpu/drm/tiny/Kconfig                  |  11 +
 drivers/gpu/drm/tiny/Makefile                 |   1 +
 drivers/gpu/drm/tiny/glandagpu.c              | 655 ++++++++++++++++++
 6 files changed, 731 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/kieweg,gpu.yaml
 create mode 100644 drivers/gpu/drm/tiny/glandagpu.c

-- 
2.43.0

Reply via email to