drm/panfrost: Add initial panfrost driver
authorRob Herring <robh@kernel.org>
Mon, 10 Sep 2018 19:27:58 +0000 (14:27 -0500)
committerRob Herring <robh@kernel.org>
Fri, 12 Apr 2019 17:56:46 +0000 (12:56 -0500)
commitf3ba91228e8e917e5bd6c4b72bfe846933d17370
treea3018f0b197cd1b6cb0f90e44c28da30219ac18e
parentc117aa4d8701a713e6dee82657291ae26f0c3c7c
drm/panfrost: Add initial panfrost driver

This adds the initial driver for panfrost which supports Arm Mali
Midgard and Bifrost family of GPUs. Currently, only the T860 and
T760 Midgard GPUs have been tested.

v2:
- Add GPU reset on job hangs (Tomeu)
- Add RuntimePM and devfreq support (Tomeu)
- Fix T760 support (Tomeu)
- Add a TODO file (Rob, Tomeu)
- Support multiple in fences (Tomeu)
- Drop support for shared fences (Tomeu)
- Fill in MMU de-init (Rob)
- Move register definitions back to single header (Rob)
- Clean-up hardcoded job submit todos (Rob)
- Implement feature setup based on features/issues (Rob)
- Add remaining Midgard DT compatible strings (Rob)

v3:
- Add support for reset lines (Neil)
- Add a MAINTAINERS entry (Rob)
- Call dma_set_mask_and_coherent (Rob)
- Do MMU invalidate on map and unmap. Restructure to do a single
  operation per map/unmap call. (Rob)
- Add a missing explicit padding to struct drm_panfrost_create_bo (Rob)
- Fix 0-day error: "panfrost_devfreq.c:151:9-16: ERROR: PTR_ERR applied after initialization to constant on line 150"
- Drop HW_FEATURE_AARCH64_MMU conditional (Rob)
- s/DRM_PANFROST_PARAM_GPU_ID/DRM_PANFROST_PARAM_GPU_PROD_ID/ (Rob)
- Check drm_gem_shmem_prime_import_sg_table() error code (Rob)
- Re-order power on sequence (Rob)
- Move panfrost_acquire_object_fences() before scheduling job (Rob)
- Add NULL checks on array pointers in job clean-up (Rob)
- Rework devfreq (Tomeu)
- Fix devfreq init with no regulator (Rob)
- Various WS and comments clean-up (Rob)

Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Sean Paul <sean@poorly.run>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Lyude Paul <lyude@redhat.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Steven Price <steven.price@arm.com>
Signed-off-by: Marty E. Plummer <hanetzer@startmail.com>
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20190409205427.6943-4-robh@kernel.org
23 files changed:
MAINTAINERS
drivers/gpu/drm/Kconfig
drivers/gpu/drm/Makefile
drivers/gpu/drm/panfrost/Kconfig [new file with mode: 0644]
drivers/gpu/drm/panfrost/Makefile [new file with mode: 0644]
drivers/gpu/drm/panfrost/TODO [new file with mode: 0644]
drivers/gpu/drm/panfrost/panfrost_devfreq.c [new file with mode: 0644]
drivers/gpu/drm/panfrost/panfrost_devfreq.h [new file with mode: 0644]
drivers/gpu/drm/panfrost/panfrost_device.c [new file with mode: 0644]
drivers/gpu/drm/panfrost/panfrost_device.h [new file with mode: 0644]
drivers/gpu/drm/panfrost/panfrost_drv.c [new file with mode: 0644]
drivers/gpu/drm/panfrost/panfrost_features.h [new file with mode: 0644]
drivers/gpu/drm/panfrost/panfrost_gem.c [new file with mode: 0644]
drivers/gpu/drm/panfrost/panfrost_gem.h [new file with mode: 0644]
drivers/gpu/drm/panfrost/panfrost_gpu.c [new file with mode: 0644]
drivers/gpu/drm/panfrost/panfrost_gpu.h [new file with mode: 0644]
drivers/gpu/drm/panfrost/panfrost_issues.h [new file with mode: 0644]
drivers/gpu/drm/panfrost/panfrost_job.c [new file with mode: 0644]
drivers/gpu/drm/panfrost/panfrost_job.h [new file with mode: 0644]
drivers/gpu/drm/panfrost/panfrost_mmu.c [new file with mode: 0644]
drivers/gpu/drm/panfrost/panfrost_mmu.h [new file with mode: 0644]
drivers/gpu/drm/panfrost/panfrost_regs.h [new file with mode: 0644]
include/uapi/drm/panfrost_drm.h [new file with mode: 0644]