diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-08-15 08:59:49 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2013-10-12 05:13:40 -0400 |
commit | 96f60e37dc66091bde8d5de136ff6fda09f2d799 (patch) | |
tree | 2c2cc30a5ac7339730430369e27d33d4a8dd21ef /drivers/gpu/drm/armada/armada_fb.h | |
parent | 15c03dd4859ab16f9212238f29dd315654aa94f6 (diff) |
DRM: Armada: Add Armada DRM driver
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.
Tested-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/gpu/drm/armada/armada_fb.h')
-rw-r--r-- | drivers/gpu/drm/armada/armada_fb.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/gpu/drm/armada/armada_fb.h b/drivers/gpu/drm/armada/armada_fb.h new file mode 100644 index 000000000000..ce3f12ebfc53 --- /dev/null +++ b/drivers/gpu/drm/armada/armada_fb.h | |||
@@ -0,0 +1,24 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2012 Russell King | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | */ | ||
8 | #ifndef ARMADA_FB_H | ||
9 | #define ARMADA_FB_H | ||
10 | |||
11 | struct armada_framebuffer { | ||
12 | struct drm_framebuffer fb; | ||
13 | struct armada_gem_object *obj; | ||
14 | uint8_t fmt; | ||
15 | uint8_t mod; | ||
16 | }; | ||
17 | #define drm_fb_to_armada_fb(dfb) \ | ||
18 | container_of(dfb, struct armada_framebuffer, fb) | ||
19 | #define drm_fb_obj(fb) drm_fb_to_armada_fb(fb)->obj | ||
20 | |||
21 | struct armada_framebuffer *armada_framebuffer_create(struct drm_device *, | ||
22 | struct drm_mode_fb_cmd2 *, struct armada_gem_object *); | ||
23 | |||
24 | #endif | ||