[PATCH RFCv2 0/4] Etnaviv DRM driver again

Lucas Stach l.stach at pengutronix.de
Fri Sep 11 07:10:10 PDT 2015


Hey all,

this is a new posting of the Etnaviv DRM driver for Vivante embedded GPUs.
This time I've squashed all patches to the DRM driver itself into a single commit
to make it easier for people to look at and review this stuff.

Aside from squashing of some of the trivial bugfixes I intend to keep all the
individual commits around to retain the authorship of people working on this
driver. If you want to look at the stream of commits please fetch

git://git.pengutronix.de/git/lst/linux.git etnaviv-for-upstream

I've kept things in staging for now, as that's the place where Christian started
this driver, but would really like to move it to DRM proper _before_ merging. So
please review stuff with that in mind.

Since the last posting a lot of cleanups and bugfixes have landed, but also a major
rewrite of the userspace interface. The UAPI is now considerably simpler as a lot
of things that turned out to be not useful have been cut out. Also a pretty big
security issue has been fixed where the userspace could abuse the still mapped
command buffer to change the command stream after the kernel validated and patched
it up, but before actual GPU execution.

Thanks to Russell King GPU power management with proper state reinitialization is
now in place, which allows the GPU to be completely power gated when not in use,
but is also the foundation for GPU recovery after a hanging submit.

A modified version of Russell Kings xf86-video-armada driver driver that works on
top of the new UAPI is available at

git://git.pengutronix.de/git/lst/xf86-video-armada.git for-rmk

Regards,
Lucas

Christian Gmeiner (1):
  staging: etnaviv: add drm driver

Lucas Stach (2):
  staging: etnaviv: add devicetree bindings
  ARM: imx6: add Vivante GPU nodes

Philipp Zabel (1):
  of: Add vendor prefix for Vivante Corporation

 .../bindings/drm/etnaviv/etnaviv-drm.txt           |   44 +
 .../devicetree/bindings/vendor-prefixes.txt        |    1 +
 arch/arm/boot/dts/imx6dl.dtsi                      |    5 +
 arch/arm/boot/dts/imx6q.dtsi                       |   15 +
 arch/arm/boot/dts/imx6qdl.dtsi                     |   21 +
 drivers/staging/Kconfig                            |    2 +
 drivers/staging/Makefile                           |    1 +
 drivers/staging/etnaviv/Kconfig                    |   20 +
 drivers/staging/etnaviv/Makefile                   |   18 +
 drivers/staging/etnaviv/cmdstream.xml.h            |  218 +++
 drivers/staging/etnaviv/common.xml.h               |  249 ++++
 drivers/staging/etnaviv/etnaviv_buffer.c           |  271 ++++
 drivers/staging/etnaviv/etnaviv_cmd_parser.c       |  119 ++
 drivers/staging/etnaviv/etnaviv_drv.c              |  705 ++++++++++
 drivers/staging/etnaviv/etnaviv_drv.h              |  138 ++
 drivers/staging/etnaviv/etnaviv_gem.c              |  887 ++++++++++++
 drivers/staging/etnaviv/etnaviv_gem.h              |  141 ++
 drivers/staging/etnaviv/etnaviv_gem_prime.c        |  121 ++
 drivers/staging/etnaviv/etnaviv_gem_submit.c       |  421 ++++++
 drivers/staging/etnaviv/etnaviv_gpu.c              | 1468 ++++++++++++++++++++
 drivers/staging/etnaviv/etnaviv_gpu.h              |  198 +++
 drivers/staging/etnaviv/etnaviv_iommu.c            |  221 +++
 drivers/staging/etnaviv/etnaviv_iommu.h            |   28 +
 drivers/staging/etnaviv/etnaviv_iommu_v2.c         |   33 +
 drivers/staging/etnaviv/etnaviv_iommu_v2.h         |   25 +
 drivers/staging/etnaviv/etnaviv_mmu.c              |  282 ++++
 drivers/staging/etnaviv/etnaviv_mmu.h              |   58 +
 drivers/staging/etnaviv/state.xml.h                |  351 +++++
 drivers/staging/etnaviv/state_hi.xml.h             |  407 ++++++
 include/uapi/drm/etnaviv_drm.h                     |  215 +++
 30 files changed, 6683 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/drm/etnaviv/etnaviv-drm.txt
 create mode 100644 drivers/staging/etnaviv/Kconfig
 create mode 100644 drivers/staging/etnaviv/Makefile
 create mode 100644 drivers/staging/etnaviv/cmdstream.xml.h
 create mode 100644 drivers/staging/etnaviv/common.xml.h
 create mode 100644 drivers/staging/etnaviv/etnaviv_buffer.c
 create mode 100644 drivers/staging/etnaviv/etnaviv_cmd_parser.c
 create mode 100644 drivers/staging/etnaviv/etnaviv_drv.c
 create mode 100644 drivers/staging/etnaviv/etnaviv_drv.h
 create mode 100644 drivers/staging/etnaviv/etnaviv_gem.c
 create mode 100644 drivers/staging/etnaviv/etnaviv_gem.h
 create mode 100644 drivers/staging/etnaviv/etnaviv_gem_prime.c
 create mode 100644 drivers/staging/etnaviv/etnaviv_gem_submit.c
 create mode 100644 drivers/staging/etnaviv/etnaviv_gpu.c
 create mode 100644 drivers/staging/etnaviv/etnaviv_gpu.h
 create mode 100644 drivers/staging/etnaviv/etnaviv_iommu.c
 create mode 100644 drivers/staging/etnaviv/etnaviv_iommu.h
 create mode 100644 drivers/staging/etnaviv/etnaviv_iommu_v2.c
 create mode 100644 drivers/staging/etnaviv/etnaviv_iommu_v2.h
 create mode 100644 drivers/staging/etnaviv/etnaviv_mmu.c
 create mode 100644 drivers/staging/etnaviv/etnaviv_mmu.h
 create mode 100644 drivers/staging/etnaviv/state.xml.h
 create mode 100644 drivers/staging/etnaviv/state_hi.xml.h
 create mode 100644 include/uapi/drm/etnaviv_drm.h

-- 
2.5.0



More information about the dri-devel mailing list