[Mesa-dev] [PATCH 0/5] NVIDIA Tegra support

From: Thierry Reding <treding at nvidia.com> This series of patches implements initial support for Tegra. The first two patches import DRM UAPI from v4.16-rc1 that provide framebuffer modifiers that can be used to specify buffers shared between Nouveau and the Tegra DRM driver. Patches 3 and 4 add support for framebuffer modifiers to Nouveau and patch 5 build on top of those to provide initial Tegra support in Mesa. The current patches allow running common use-cases such as Wayland, kmscube, etc. Some people have been using earlier versions of these patches to run a completely open-source graphics stack on various Tegra210 devices. I've Cc'ed some of them so that they can provide feedback. This series is also available in a git repository here: https://cgit.freedesktop.org/~tagr/mesa #master though that also contains the Nouveau syncfd patches that are still work in progress and which require new kernel/userspace ABI. The patches here work on top of a vanilla recent (v4.16-rc1) Linux kernel. Thierry Thierry Reding (5): drm/fourcc: Fix fourcc_mod_code() definition drm/tegra: Sanitize format modifiers nouveau/nvc0: Extract common tile mode macro nouveau: Add framebuffer modifier support tegra: Initial support configure.ac | 11 +- include/drm-uapi/drm_fourcc.h | 38 +- include/drm-uapi/tegra_drm.h | 225 ++++ meson.build | 7 +- src/gallium/Makefile.am | 5 + .../auxiliary/pipe-loader/pipe_loader_drm.c | 7 +- src/gallium/auxiliary/target-helpers/drm_helper.h | 23 + .../auxiliary/target-helpers/drm_helper_public.h | 3 + src/gallium/drivers/nouveau/Android.mk | 3 + src/gallium/drivers/nouveau/Makefile.am | 1 + src/gallium/drivers/nouveau/nouveau_buffer.c | 3 +- src/gallium/drivers/nouveau/nouveau_buffer.h | 3 +- src/gallium/drivers/nouveau/nouveau_screen.c | 14 + src/gallium/drivers/nouveau/nv30/nv30_resource.c | 6 +- src/gallium/drivers/nouveau/nv50/nv50_resource.c | 5 +- src/gallium/drivers/nouveau/nvc0/nvc0_miptree.c | 8 +- src/gallium/drivers/nouveau/nvc0/nvc0_resource.c | 80 +- src/gallium/drivers/nouveau/nvc0/nvc0_resource.h | 20 +- src/gallium/drivers/tegra/Automake.inc | 11 + src/gallium/drivers/tegra/Makefile.am | 18 + src/gallium/drivers/tegra/Makefile.sources | 3 + src/gallium/drivers/tegra/meson.build | 41 + src/gallium/drivers/tegra/tegra_context.c | 1294 ++++++++++++++++++++ src/gallium/drivers/tegra/tegra_context.h | 81 ++ src/gallium/drivers/tegra/tegra_resource.h | 76 ++ src/gallium/drivers/tegra/tegra_screen.c | 674 ++++++++++ src/gallium/drivers/tegra/tegra_screen.h | 45 + src/gallium/meson.build | 6 + src/gallium/targets/dri/Makefile.am | 2 + src/gallium/targets/dri/meson.build | 4 +- src/gallium/targets/dri/target.c | 4 + src/gallium/targets/vdpau/Makefile.am | 2 + src/gallium/winsys/tegra/drm/Makefile.am | 11 + src/gallium/winsys/tegra/drm/Makefile.sources | 2 + src/gallium/winsys/tegra/drm/meson.build | 33 + src/gallium/winsys/tegra/drm/tegra_drm_public.h | 31 + src/gallium/winsys/tegra/drm/tegra_drm_winsys.c | 33 + 37 files changed, 2797 insertions(+), 36 deletions(-) create mode 100644 include/drm-uapi/tegra_drm.h create mode 100644 src/gallium/drivers/tegra/Automake.inc create mode 100644 src/gallium/drivers/tegra/Makefile.am create mode 100644 src/gallium/drivers/tegra/Makefile.sources create mode 100644 src/gallium/drivers/tegra/meson.build create mode 100644 src/gallium/drivers/tegra/tegra_context.c create mode 100644 src/gallium/drivers/tegra/tegra_context.h create mode 100644 src/gallium/drivers/tegra/tegra_resource.h create mode 100644 src/gallium/drivers/tegra/tegra_screen.c create mode 100644 src/gallium/drivers/tegra/tegra_screen.h create mode 100644 src/gallium/winsys/tegra/drm/Makefile.am create mode 100644 src/gallium/winsys/tegra/drm/Makefile.sources create mode 100644 src/gallium/winsys/tegra/drm/meson.build create mode 100644 src/gallium/winsys/tegra/drm/tegra_drm_public.h create mode 100644 src/gallium/winsys/tegra/drm/tegra_drm_winsys.c -- 2.16.2