This patch adds support for the pair of LCD controllers on the Marvell Armada 510 SoCs. This driver supports: - multiple contiguous scanout buffers for video and graphics - shm backed cacheable buffer objects for X pixmaps for Vivante GPU acceleration - dual lcd0 and lcd1 crt operation - video overlay on each LCD crt via DRM planes - page flipping of the main scanout buffers - DRM prime for buffer export/import This driver is trivial to extend to other Armada SoCs. Included in this commit is the core driver with no output support; output support is platform and encoder driver dependent.
Showing the changes to include/uapi (1 of 24 files). Show all
Unified · Split
| @@ -0,0 +1,45 @@ | ||
| 1 | +/* | |
| 2 | + * Copyright (C) 2012 Russell King | |
| 3 | + * With inspiration from the i915 driver | |
| 4 | + * | |
| 5 | + * This program is free software; you can redistribute it and/or modify | |
| 6 | + * it under the terms of the GNU General Public License version 2 as | |
| 7 | + * published by the Free Software Foundation. | |
| 8 | + */ | |
| 9 | +#ifndef DRM_ARMADA_IOCTL_H | |
| 10 | +#define DRM_ARMADA_IOCTL_H | |
| 11 | + | |
| 12 | +#define DRM_ARMADA_GEM_CREATE 0x00 | |
| 13 | +#define DRM_ARMADA_GEM_MMAP 0x02 | |
| 14 | +#define DRM_ARMADA_GEM_PWRITE 0x03 | |
| 15 | + | |
| 16 | +#define ARMADA_IOCTL(dir, name, str) \ | |
| 17 | + DRM_##dir(DRM_COMMAND_BASE + DRM_ARMADA_##name, struct drm_armada_##str) | |
| 18 | + | |
| 19 | +struct drm_armada_gem_create { | |
| 20 | + uint32_t handle; | |
| 21 | + uint32_t size; | |
| 22 | +}; | |
| 23 | +#define DRM_IOCTL_ARMADA_GEM_CREATE \ | |
| 24 | + ARMADA_IOCTL(IOWR, GEM_CREATE, gem_create) | |
| 25 | + | |
| 26 | +struct drm_armada_gem_mmap { | |
| 27 | + uint32_t handle; | |
| 28 | + uint32_t pad; | |
| 29 | + uint64_t offset; | |
| 30 | + uint64_t size; | |
| 31 | + uint64_t addr; | |
| 32 | +}; | |
| 33 | +#define DRM_IOCTL_ARMADA_GEM_MMAP \ | |
| 34 | + ARMADA_IOCTL(IOWR, GEM_MMAP, gem_mmap) | |
| 35 | + | |
| 36 | +struct drm_armada_gem_pwrite { | |
| 37 | + uint64_t ptr; | |
| 38 | + uint32_t handle; | |
| 39 | + uint32_t offset; | |
| 40 | + uint32_t size; | |
| 41 | +}; | |
| 42 | +#define DRM_IOCTL_ARMADA_GEM_PWRITE \ | |
| 43 | + ARMADA_IOCTL(IOW, GEM_PWRITE, gem_pwrite) | |
| 44 | + | |
| 45 | +#endif | |