linux_old1/drivers/gpu/drm
Neil Armstrong bbbe775ec5 drm: Add support for Amlogic Meson Graphic Controller
The Amlogic Meson Display controller is composed of several components :

DMC|---------------VPU (Video Processing Unit)----------------|------HHI------|
   | vd1   _______     _____________    _________________     |               |
D  |-------|      |----|            |   |                |    |   HDMI PLL    |
D  | vd2   | VIU  |    | Video Post |   | Video Encoders |<---|-----VCLK      |
R  |-------|      |----| Processing |   |                |    |               |
   | osd2  |      |    |            |---| Enci ----------|----|-----VDAC------|
R  |-------| CSC  |----| Scalers    |   | Encp ----------|----|----HDMI-TX----|
A  | osd1  |      |    | Blenders   |   | Encl ----------|----|---------------|
M  |-------|______|----|____________|   |________________|    |               |
___|__________________________________________________________|_______________|

VIU: Video Input Unit
---------------------

The Video Input Unit is in charge of the pixel scanout from the DDR memory.
It fetches the frames addresses, stride and parameters from the "Canvas" memory.
This part is also in charge of the CSC (Colorspace Conversion).
It can handle 2 OSD Planes and 2 Video Planes.

VPP: Video Post Processing
--------------------------

The Video Post Processing is in charge of the scaling and blending of the
various planes into a single pixel stream.
There is a special "pre-blending" used by the video planes with a dedicated
scaler and a "post-blending" to merge with the OSD Planes.
The OSD planes also have a dedicated scaler for one of the OSD.

VENC: Video Encoders
--------------------

The VENC is composed of the multiple pixel encoders :
 - ENCI : Interlace Video encoder for CVBS and Interlace HDMI
 - ENCP : Progressive Video Encoder for HDMI
 - ENCL : LCD LVDS Encoder
The VENC Unit gets a Pixel Clocks (VCLK) from a dedicated HDMI PLL and clock
tree and provides the scanout clock to the VPP and VIU.
The ENCI is connected to a single VDAC for Composite Output.
The ENCI and ENCP are connected to an on-chip HDMI Transceiver.

This driver is a DRM/KMS driver using the following DRM components :
 - GEM-CMA
 - PRIME-CMA
 - Atomic Modesetting
 - FBDev-CMA

For the following SoCs :
 - GXBB Family (S905)
 - GXL Family (S905X, S905D)
 - GXM Family (S912)

The current driver only supports the CVBS PAL/NTSC output modes, but the
CRTC/Planes management should support bigger modes.
But Advanced Colorspace Conversion, Scaling and HDMI Modes will be added in
a second time.

The Device Tree bindings makes use of the endpoints video interface definitions
to connect to the optional CVBS and in the future the HDMI Connector nodes.

HDMI Support is planned for a next release.

Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
2016-12-01 10:07:20 +01:00
..
amd Merge branch 'drm-fixes-staging' of ssh://people.freedesktop.org/~/linux into drm-fixes 2016-11-01 09:05:54 +10:00
arc drm: Don't swallow error codes in drm_dev_alloc() 2016-09-22 04:03:48 -07:00
arm drm: Don't swallow error codes in drm_dev_alloc() 2016-09-22 04:03:48 -07:00
armada Merge branch 'drm-armada-fixes' of git://git.armlinux.org.uk/~rmk/linux-arm into drm-fixes 2016-10-21 13:26:15 +10:00
ast drm/drivers: add support for using the arch wc mapping API. 2016-10-26 16:48:01 +10:00
atmel-hlcdc Linux 4.8-rc8 2016-09-28 12:08:49 +10:00
bochs bugfixes for qemu (bochs, qxl and virtio-gpu) drm drivers 2016-09-28 13:23:07 +10:00
bridge drm/bridge: Drop drm_connector_unregister and call drm_connector_cleanup directly 2016-10-10 11:19:42 +02:00
cirrus drm/drivers: add support for using the arch wc mapping API. 2016-10-26 16:48:01 +10:00
etnaviv Merge branch 'drm-etnaviv-fixes' of git://git.pengutronix.de/lst/linux into drm-fixes 2016-10-21 13:27:55 +10:00
exynos drm: Don't force all planes to be added to the state due to zpos 2016-10-26 18:48:05 +02:00
fsl-dcu drm/fsl-dcu: enable pixel clock when enabling CRTC 2016-10-19 17:03:02 -07:00
gma500 drm/gma500: remove unnecessary config_enabled() guard 2016-08-24 07:43:42 +02:00
hisilicon drm: Don't swallow error codes in drm_dev_alloc() 2016-09-22 04:03:48 -07:00
i2c Revert "drm/i2c: tda998x: don't register the connector" 2016-09-23 03:29:50 -07:00
i810 drm: Mark up legacy/dri1 drivers with DRM_LEGACY 2016-08-08 10:05:22 +02:00
i915 drm/i915: Fix SKL+ 90/270 degree rotated plane coordinate computation 2016-10-28 15:24:30 +03:00
imx drm/imx: ipuv3-plane: disable local alpha for planes without alpha channel 2016-10-20 14:39:51 +02:00
mediatek drm/mediatek: mark symbols static where possible 2016-10-04 08:23:01 +02:00
meson drm: Add support for Amlogic Meson Graphic Controller 2016-12-01 10:07:20 +01:00
mga drm: Mark up legacy/dri1 drivers with DRM_LEGACY 2016-08-08 10:05:22 +02:00
mgag200 drm/drivers: add support for using the arch wc mapping API. 2016-10-26 16:48:01 +10:00
msm Merge tag 'drm-for-v4.9' of git://people.freedesktop.org/~airlied/linux 2016-10-11 18:12:22 -07:00
nouveau drm/nouveau/acpi: fix check for power resources support 2016-11-01 14:52:03 +10:00
omapdrm drm/atomic-helper: Add NO_DISABLE_AFTER_MODESET flag support for plane commit 2016-08-29 11:29:37 +02:00
panel drm/panel: Add JDI LT070ME05000 WUXGA DSI Panel 2016-09-16 17:32:48 +02:00
qxl bugfixes for qemu (bochs, qxl and virtio-gpu) drm drivers 2016-09-28 13:23:07 +10:00
r128 drm: Mark up legacy/dri1 drivers with DRM_LEGACY 2016-08-08 10:05:22 +02:00
radeon Merge branch 'drm-fixes-staging' of ssh://people.freedesktop.org/~/linux into drm-fixes 2016-11-01 09:05:54 +10:00
rcar-du drm: Don't force all planes to be added to the state due to zpos 2016-10-26 18:48:05 +02:00
rockchip drm/rockchip: analogix_dp: Refuse to enable PSR if panel doesn't support it 2016-10-04 08:23:17 +02:00
savage GPU-DRM-Savage: Use memdup_user() rather than duplicating 2016-08-19 10:58:55 +02:00
shmobile
sis drm: Mark up legacy/dri1 drivers with DRM_LEGACY 2016-08-08 10:05:22 +02:00
sti drm: Don't force all planes to be added to the state due to zpos 2016-10-26 18:48:05 +02:00
sun4i Allwinner sun4i DRM fixes for 4.9 2016-09-28 11:23:15 +10:00
tdfx drm: Mark up legacy/dri1 drivers with DRM_LEGACY 2016-08-08 10:05:22 +02:00
tegra drm/prime: Take a ref on the drm_dev when exporting a dma_buf 2016-10-05 15:30:32 +02:00
tilcdc Second attempt for 3rd drm/tilcdc pull request for v4.9. 2016-09-28 11:17:26 +10:00
ttm drm/ttm: remove cpu_address member from ttm_tt 2016-09-16 15:53:05 -04:00
udl Merge tag 'drm-for-v4.9' of git://people.freedesktop.org/~airlied/linux 2016-10-11 18:12:22 -07:00
vc4 drm/vc4: Add support for double-clocked modes. 2016-10-06 11:58:28 -07:00
vgem drm: Don't swallow error codes in drm_dev_alloc() 2016-09-22 04:03:48 -07:00
via mm: replace get_user_pages() write/force parameters with gup_flags 2016-10-19 08:11:43 -07:00
virtio virtio-gpu: fix vblank events 2016-11-03 10:14:19 +10:00
vmwgfx Merge branch 'drm-vmwgfx-fixes' of ssh://people.freedesktop.org/~syeh/repos_linux into drm-fixes 2016-10-21 13:26:58 +10:00
Kconfig drm: Add support for Amlogic Meson Graphic Controller 2016-12-01 10:07:20 +01:00
Makefile drm: Add support for Amlogic Meson Graphic Controller 2016-12-01 10:07:20 +01:00
ati_pcigart.c
drm_agpsupport.c drm: Used DRM_LEGACY for all legacy functions 2016-08-08 10:05:23 +02:00
drm_atomic.c drm: Release reference from blob lookup after replacing property 2016-10-26 10:28:10 +02:00
drm_atomic_helper.c drm: Don't force all planes to be added to the state due to zpos 2016-10-26 18:48:05 +02:00
drm_auth.c drm: Used DRM_LEGACY for all legacy functions 2016-08-08 10:05:23 +02:00
drm_blend.c drm/doc: Polish plane composition property docs 2016-09-22 00:04:02 -07:00
drm_bridge.c drm: Extract drm_bridge.h 2016-09-19 15:04:15 +02:00
drm_bufs.c GPU-DRM: Replace a kzalloc() call by kcalloc() in drm_legacy_addbufs_sg() 2016-09-21 13:24:27 +02:00
drm_cache.c
drm_color_mgmt.c drm/doc: Document color space handling 2016-09-22 00:04:03 -07:00
drm_connector.c drm: Release resources with a safer function 2016-10-10 11:20:48 +02:00
drm_context.c drm: Used DRM_LEGACY for all legacy functions 2016-08-08 10:05:23 +02:00
drm_crtc.c drm: Extract drm_color_mgmt.[hc] 2016-09-22 00:04:02 -07:00
drm_crtc_helper.c drm/kms-helpers: Extract drm_modeset_helper.[hc] 2016-08-16 16:10:19 +02:00
drm_crtc_helper_internal.h drm/fb-helper: Fix sparse warnings 2016-09-19 16:45:15 +02:00
drm_crtc_internal.h drm: Extract drm_color_mgmt.[hc] 2016-09-22 00:04:02 -07:00
drm_debugfs.c gpu: use %pd 2016-08-07 23:38:48 -04:00
drm_dma.c drm: Used DRM_LEGACY for all legacy functions 2016-08-08 10:05:23 +02:00
drm_dp_aux_dev.c drm: Don't export dp-aux devnode functions 2016-08-16 18:49:26 +02:00
drm_dp_dual_mode_helper.c
drm_dp_helper.c Merge tag 'drm-for-v4.9' of git://people.freedesktop.org/~airlied/linux 2016-10-11 18:12:22 -07:00
drm_dp_mst_topology.c drm/dp/mst: Check peer device type before attempting EDID read 2016-10-26 18:53:44 +02:00
drm_drv.c drm: Simplify drm_printk to reduce object size quite a bit 2016-10-04 08:23:14 +02:00
drm_edid.c drm/edid: Move dvi_dual/max_tmds_clock parsing out from drm_edid_to_eld() 2016-10-04 08:23:12 +02:00
drm_edid_load.c
drm_encoder.c drm: Fix typo in encoder docs 2016-09-21 13:33:50 +02:00
drm_encoder_slave.c
drm_fb_cma_helper.c
drm_fb_helper.c drm/fb-helper: Keep references for the current set of used connectors 2016-10-26 18:52:42 +02:00
drm_flip_work.c
drm_fops.c drm: remove redundant drm_file->uid 2016-09-19 11:21:42 +02:00
drm_fourcc.c drm: move drm_mode_legacy_fb_format to drm_fourcc.c 2016-08-29 15:37:28 +02:00
drm_framebuffer.c drm: Extract drm_plane.[hc] 2016-09-22 00:01:56 -07:00
drm_gem.c drm: use drm_file to tag vm-bos 2016-09-19 11:22:08 +02:00
drm_gem_cma_helper.c
drm_global.c drm: modify drm_global_item_ref to avoid two times of writing ref->object 2016-09-14 15:10:29 -04:00
drm_hashtab.c drm: fix signed integer overflow 2016-09-06 13:56:41 -04:00
drm_info.c drm: Print device information again in debugfs 2016-10-17 16:20:53 +10:00
drm_internal.h drm: drop obsolete drm_core.h 2016-09-19 13:57:38 +02:00
drm_ioc32.c drm: drop obsolete drm_core.h 2016-09-19 13:57:38 +02:00
drm_ioctl.c drm: drop obsolete drm_core.h 2016-09-19 13:57:38 +02:00
drm_irq.c drm: Document caveats around atomic event handling 2016-10-04 08:23:15 +02:00
drm_kms_helper_common.c drm: Don't export dp-aux devnode functions 2016-08-16 18:49:26 +02:00
drm_legacy.h
drm_lock.c drm: Used DRM_LEGACY for all legacy functions 2016-08-08 10:05:23 +02:00
drm_memory.c
drm_mipi_dsi.c drm/dsi: Implement DCS set/get display brightness 2016-08-24 13:34:00 +02:00
drm_mm.c drm: Declare that create drm_mm nodes with size 0 is illegal 2016-08-08 10:05:21 +02:00
drm_mode_object.c drm: Move property validation to a helper, v2. 2016-09-12 10:32:49 -04:00
drm_modes.c drm: update kerneldoc for changes introduced by commits "16fadc2568e9" and "9671e228fb78" 2016-08-16 17:32:08 +02:00
drm_modeset_helper.c drm/kms-helpers: Extract drm_modeset_helper.[hc] 2016-08-16 16:10:19 +02:00
drm_modeset_lock.c
drm_of.c
drm_panel.c
drm_pci.c drm: Don't swallow error codes in drm_dev_alloc() 2016-09-22 04:03:48 -07:00
drm_plane.c drm: Undo damage to page_flip_ioctl 2016-10-04 12:53:12 +10:00
drm_plane_helper.c drm: Fix kerneldoc in drm_plane_helper.c 2016-08-16 18:50:04 +02:00
drm_platform.c drm: Don't swallow error codes in drm_dev_alloc() 2016-09-22 04:03:48 -07:00
drm_prime.c drm: Fix up kerneldoc for new drm_gem_dmabuf_export() 2016-10-10 11:19:42 +02:00
drm_probe_helper.c drm: drm_probe_helper: Fix output_poll_work scheduling 2016-08-31 13:23:30 +02:00
drm_property.c Revert "drm: Unify handling of blob and object properties" 2016-09-07 13:24:22 +03:00
drm_rect.c drm: Warn about negative sizes when calculating scale factor 2016-08-08 14:17:56 -04:00
drm_scatter.c drm: Used DRM_LEGACY for all legacy functions 2016-08-08 10:05:23 +02:00
drm_simple_kms_helper.c drm: simple_kms_helper: Add prepare_fb and cleanup_fb hooks 2016-10-05 15:18:02 +02:00
drm_sysfs.c drm: drop obsolete drm_core.h 2016-09-19 13:57:38 +02:00
drm_trace.h
drm_trace_points.c
drm_vm.c
drm_vma_manager.c drm: use drm_file to tag vm-bos 2016-09-19 11:22:08 +02:00