From 9ca8dbcc65cfc63d6f5ef3312a33184e1d726e00 Mon Sep 17 00:00:00 2001 From: Yunhong Jiang Date: Tue, 4 Aug 2015 12:17:53 -0700 Subject: Add the rt linux 4.1.3-rt3 as base Import the rt linux 4.1.3-rt3 as OPNFV kvm base. It's from git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git linux-4.1.y-rt and the base is: commit 0917f823c59692d751951bf5ea699a2d1e2f26a2 Author: Sebastian Andrzej Siewior Date: Sat Jul 25 12:13:34 2015 +0200 Prepare v4.1.3-rt3 Signed-off-by: Sebastian Andrzej Siewior We lose all the git history this way and it's not good. We should apply another opnfv project repo in future. Change-Id: I87543d81c9df70d99c5001fbdf646b202c19f423 Signed-off-by: Yunhong Jiang --- kernel/drivers/gpu/drm/exynos/Kconfig | 99 + kernel/drivers/gpu/drm/exynos/Makefile | 25 + kernel/drivers/gpu/drm/exynos/exynos7_drm_decon.c | 940 ++++++++ kernel/drivers/gpu/drm/exynos/exynos_dp_core.c | 1425 +++++++++++ kernel/drivers/gpu/drm/exynos/exynos_dp_core.h | 282 +++ kernel/drivers/gpu/drm/exynos/exynos_dp_reg.c | 1263 ++++++++++ kernel/drivers/gpu/drm/exynos/exynos_dp_reg.h | 366 +++ kernel/drivers/gpu/drm/exynos/exynos_drm_buf.c | 186 ++ kernel/drivers/gpu/drm/exynos/exynos_drm_buf.h | 33 + kernel/drivers/gpu/drm/exynos/exynos_drm_core.c | 161 ++ kernel/drivers/gpu/drm/exynos/exynos_drm_crtc.c | 376 +++ kernel/drivers/gpu/drm/exynos/exynos_drm_crtc.h | 42 + kernel/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c | 286 +++ kernel/drivers/gpu/drm/exynos/exynos_drm_dmabuf.h | 20 + kernel/drivers/gpu/drm/exynos/exynos_drm_dpi.c | 353 +++ kernel/drivers/gpu/drm/exynos/exynos_drm_drv.c | 707 ++++++ kernel/drivers/gpu/drm/exynos/exynos_drm_drv.h | 349 +++ kernel/drivers/gpu/drm/exynos/exynos_drm_dsi.c | 1795 ++++++++++++++ kernel/drivers/gpu/drm/exynos/exynos_drm_encoder.c | 197 ++ kernel/drivers/gpu/drm/exynos/exynos_drm_encoder.h | 23 + kernel/drivers/gpu/drm/exynos/exynos_drm_fb.c | 287 +++ kernel/drivers/gpu/drm/exynos/exynos_drm_fb.h | 35 + kernel/drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 360 +++ kernel/drivers/gpu/drm/exynos/exynos_drm_fbdev.h | 23 + kernel/drivers/gpu/drm/exynos/exynos_drm_fimc.c | 1852 ++++++++++++++ kernel/drivers/gpu/drm/exynos/exynos_drm_fimc.h | 23 + kernel/drivers/gpu/drm/exynos/exynos_drm_fimd.c | 1216 ++++++++++ kernel/drivers/gpu/drm/exynos/exynos_drm_g2d.c | 1587 ++++++++++++ kernel/drivers/gpu/drm/exynos/exynos_drm_g2d.h | 36 + kernel/drivers/gpu/drm/exynos/exynos_drm_gem.c | 651 +++++ kernel/drivers/gpu/drm/exynos/exynos_drm_gem.h | 182 ++ kernel/drivers/gpu/drm/exynos/exynos_drm_gsc.c | 1795 ++++++++++++++ kernel/drivers/gpu/drm/exynos/exynos_drm_gsc.h | 24 + kernel/drivers/gpu/drm/exynos/exynos_drm_iommu.c | 143 ++ kernel/drivers/gpu/drm/exynos/exynos_drm_iommu.h | 69 + kernel/drivers/gpu/drm/exynos/exynos_drm_ipp.c | 1822 ++++++++++++++ kernel/drivers/gpu/drm/exynos/exynos_drm_ipp.h | 252 ++ kernel/drivers/gpu/drm/exynos/exynos_drm_plane.c | 232 ++ kernel/drivers/gpu/drm/exynos/exynos_drm_plane.h | 26 + kernel/drivers/gpu/drm/exynos/exynos_drm_rotator.c | 856 +++++++ kernel/drivers/gpu/drm/exynos/exynos_drm_rotator.h | 19 + kernel/drivers/gpu/drm/exynos/exynos_drm_vidi.c | 621 +++++ kernel/drivers/gpu/drm/exynos/exynos_drm_vidi.h | 22 + kernel/drivers/gpu/drm/exynos/exynos_hdmi.c | 2528 ++++++++++++++++++++ kernel/drivers/gpu/drm/exynos/exynos_mixer.c | 1318 ++++++++++ kernel/drivers/gpu/drm/exynos/exynos_mixer.h | 20 + kernel/drivers/gpu/drm/exynos/regs-fimc.h | 668 ++++++ kernel/drivers/gpu/drm/exynos/regs-gsc.h | 284 +++ kernel/drivers/gpu/drm/exynos/regs-hdmi.h | 597 +++++ kernel/drivers/gpu/drm/exynos/regs-mixer.h | 152 ++ kernel/drivers/gpu/drm/exynos/regs-rotator.h | 73 + kernel/drivers/gpu/drm/exynos/regs-vp.h | 91 + 52 files changed, 26792 insertions(+) create mode 100644 kernel/drivers/gpu/drm/exynos/Kconfig create mode 100644 kernel/drivers/gpu/drm/exynos/Makefile create mode 100644 kernel/drivers/gpu/drm/exynos/exynos7_drm_decon.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_dp_core.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_dp_core.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_dp_reg.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_dp_reg.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_buf.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_buf.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_core.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_crtc.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_crtc.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_dmabuf.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_dpi.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_drv.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_drv.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_dsi.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_encoder.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_encoder.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_fb.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_fb.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_fbdev.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_fbdev.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_fimc.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_fimc.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_fimd.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_g2d.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_g2d.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_gem.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_gem.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_gsc.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_gsc.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_iommu.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_iommu.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_ipp.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_ipp.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_plane.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_plane.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_rotator.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_rotator.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_vidi.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_vidi.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_hdmi.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_mixer.c create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_mixer.h create mode 100644 kernel/drivers/gpu/drm/exynos/regs-fimc.h create mode 100644 kernel/drivers/gpu/drm/exynos/regs-gsc.h create mode 100644 kernel/drivers/gpu/drm/exynos/regs-hdmi.h create mode 100644 kernel/drivers/gpu/drm/exynos/regs-mixer.h create mode 100644 kernel/drivers/gpu/drm/exynos/regs-rotator.h create mode 100644 kernel/drivers/gpu/drm/exynos/regs-vp.h (limited to 'kernel/drivers/gpu/drm/exynos') diff --git a/kernel/drivers/gpu/drm/exynos/Kconfig b/kernel/drivers/gpu/drm/exynos/Kconfig new file mode 100644 index 000000000..0a6780367 --- /dev/null +++ b/kernel/drivers/gpu/drm/exynos/Kconfig @@ -0,0 +1,99 @@ +config DRM_EXYNOS + tristate "DRM Support for Samsung SoC EXYNOS Series" + depends on OF && DRM && (PLAT_SAMSUNG || ARCH_MULTIPLATFORM) + select DRM_KMS_HELPER + select DRM_KMS_FB_HELPER + select FB_CFB_FILLRECT + select FB_CFB_COPYAREA + select FB_CFB_IMAGEBLIT + select VIDEOMODE_HELPERS + help + Choose this option if you have a Samsung SoC EXYNOS chipset. + If M is selected the module will be called exynosdrm. + +config DRM_EXYNOS_IOMMU + bool + depends on DRM_EXYNOS && EXYNOS_IOMMU && ARM_DMA_USE_IOMMU + default y + +config DRM_EXYNOS_FIMD + bool "Exynos DRM FIMD" + depends on DRM_EXYNOS && !FB_S3C + select FB_MODE_HELPERS + select MFD_SYSCON + help + Choose this option if you want to use Exynos FIMD for DRM. + +config DRM_EXYNOS7_DECON + bool "Exynos DRM DECON" + depends on DRM_EXYNOS + select FB_MODE_HELPERS + help + Choose this option if you want to use Exynos DECON for DRM. + +config DRM_EXYNOS_DPI + bool "EXYNOS DRM parallel output support" + depends on (DRM_EXYNOS_FIMD || DRM_EXYNOS7_DECON) + select DRM_PANEL + default n + help + This enables support for Exynos parallel output. + +config DRM_EXYNOS_DSI + bool "EXYNOS DRM MIPI-DSI driver support" + depends on (DRM_EXYNOS_FIMD || DRM_EXYNOS7_DECON) + select DRM_MIPI_DSI + select DRM_PANEL + default n + help + This enables support for Exynos MIPI-DSI device. + +config DRM_EXYNOS_DP + bool "EXYNOS DRM DP driver support" + depends on (DRM_EXYNOS_FIMD || DRM_EXYNOS7_DECON) && ARCH_EXYNOS && (DRM_PTN3460=n || DRM_PTN3460=y || DRM_PTN3460=DRM_EXYNOS) + default DRM_EXYNOS + select DRM_PANEL + help + This enables support for DP device. + +config DRM_EXYNOS_HDMI + bool "Exynos DRM HDMI" + depends on DRM_EXYNOS && !VIDEO_SAMSUNG_S5P_TV + help + Choose this option if you want to use Exynos HDMI for DRM. + +config DRM_EXYNOS_VIDI + bool "Exynos DRM Virtual Display" + depends on DRM_EXYNOS + help + Choose this option if you want to use Exynos VIDI for DRM. + +config DRM_EXYNOS_G2D + bool "Exynos DRM G2D" + depends on DRM_EXYNOS && !VIDEO_SAMSUNG_S5P_G2D + help + Choose this option if you want to use Exynos G2D for DRM. + +config DRM_EXYNOS_IPP + bool "Exynos DRM IPP" + depends on DRM_EXYNOS + help + Choose this option if you want to use IPP feature for DRM. + +config DRM_EXYNOS_FIMC + bool "Exynos DRM FIMC" + depends on DRM_EXYNOS_IPP && MFD_SYSCON + help + Choose this option if you want to use Exynos FIMC for DRM. + +config DRM_EXYNOS_ROTATOR + bool "Exynos DRM Rotator" + depends on DRM_EXYNOS_IPP + help + Choose this option if you want to use Exynos Rotator for DRM. + +config DRM_EXYNOS_GSC + bool "Exynos DRM GSC" + depends on DRM_EXYNOS_IPP && ARCH_EXYNOS5 && !ARCH_MULTIPLATFORM + help + Choose this option if you want to use Exynos GSC for DRM. diff --git a/kernel/drivers/gpu/drm/exynos/Makefile b/kernel/drivers/gpu/drm/exynos/Makefile new file mode 100644 index 000000000..cc90679cf --- /dev/null +++ b/kernel/drivers/gpu/drm/exynos/Makefile @@ -0,0 +1,25 @@ +# +# Makefile for the drm device driver. This driver provides support for the +# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. + +ccflags-y := -Iinclude/drm -Idrivers/gpu/drm/exynos +exynosdrm-y := exynos_drm_drv.o exynos_drm_encoder.o \ + exynos_drm_crtc.o exynos_drm_fbdev.o exynos_drm_fb.o \ + exynos_drm_buf.o exynos_drm_gem.o exynos_drm_core.o \ + exynos_drm_plane.o exynos_drm_dmabuf.o + +exynosdrm-$(CONFIG_DRM_EXYNOS_IOMMU) += exynos_drm_iommu.o +exynosdrm-$(CONFIG_DRM_EXYNOS_FIMD) += exynos_drm_fimd.o +exynosdrm-$(CONFIG_DRM_EXYNOS7_DECON) += exynos7_drm_decon.o +exynosdrm-$(CONFIG_DRM_EXYNOS_DPI) += exynos_drm_dpi.o +exynosdrm-$(CONFIG_DRM_EXYNOS_DSI) += exynos_drm_dsi.o +exynosdrm-$(CONFIG_DRM_EXYNOS_DP) += exynos_dp_core.o exynos_dp_reg.o +exynosdrm-$(CONFIG_DRM_EXYNOS_HDMI) += exynos_hdmi.o exynos_mixer.o +exynosdrm-$(CONFIG_DRM_EXYNOS_VIDI) += exynos_drm_vidi.o +exynosdrm-$(CONFIG_DRM_EXYNOS_G2D) += exynos_drm_g2d.o +exynosdrm-$(CONFIG_DRM_EXYNOS_IPP) += exynos_drm_ipp.o +exynosdrm-$(CONFIG_DRM_EXYNOS_FIMC) += exynos_drm_fimc.o +exynosdrm-$(CONFIG_DRM_EXYNOS_ROTATOR) += exynos_drm_rotator.o +exynosdrm-$(CONFIG_DRM_EXYNOS_GSC) += exynos_drm_gsc.o + +obj-$(CONFIG_DRM_EXYNOS) += exynosdrm.o diff --git a/kernel/drivers/gpu/drm/exynos/exynos7_drm_decon.c b/kernel/drivers/gpu/drm/exynos/exynos7_drm_decon.c new file mode 100644 index 000000000..6714e5b19 --- /dev/null +++ b/kernel/drivers/gpu/drm/exynos/exynos7_drm_decon.c @@ -0,0 +1,940 @@ +/* drivers/gpu/drm/exynos/exynos7_drm_decon.c + * + * Copyright (C) 2014 Samsung Electronics Co.Ltd + * Authors: + * Akshu Agarwal + * Ajay Kumar + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + */ +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include