From e09b41010ba33a20a87472ee821fa407a5b8da36 Mon Sep 17 00:00:00 2001 From: José Pekkarinen Date: Mon, 11 Apr 2016 10:41:07 +0300 Subject: These changes are the raw update to linux-4.4.6-rt14. Kernel sources are taken from kernel.org, and rt patch from the rt wiki download page. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit During the rebasing, the following patch collided: Force tick interrupt and get rid of softirq magic(I70131fb85). Collisions have been removed because its logic was found on the source already. Change-Id: I7f57a4081d9deaa0d9ccfc41a6c8daccdee3b769 Signed-off-by: José Pekkarinen --- kernel/drivers/gpu/drm/exynos/Kconfig | 74 +- kernel/drivers/gpu/drm/exynos/Makefile | 12 +- .../drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 689 ++++++++++ kernel/drivers/gpu/drm/exynos/exynos7_drm_decon.c | 321 ++--- kernel/drivers/gpu/drm/exynos/exynos_dp_core.c | 163 +-- kernel/drivers/gpu/drm/exynos/exynos_dp_core.h | 3 +- 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 | 42 - kernel/drivers/gpu/drm/exynos/exynos_drm_crtc.c | 259 +--- kernel/drivers/gpu/drm/exynos/exynos_drm_crtc.h | 10 +- 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 | 137 +- kernel/drivers/gpu/drm/exynos/exynos_drm_drv.c | 651 +++++---- kernel/drivers/gpu/drm/exynos/exynos_drm_drv.h | 186 +-- kernel/drivers/gpu/drm/exynos/exynos_drm_dsi.c | 671 +++++---- 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 | 150 +- kernel/drivers/gpu/drm/exynos/exynos_drm_fb.h | 17 +- kernel/drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 139 +- kernel/drivers/gpu/drm/exynos/exynos_drm_fimc.c | 53 +- kernel/drivers/gpu/drm/exynos/exynos_drm_fimd.c | 516 +++---- kernel/drivers/gpu/drm/exynos/exynos_drm_g2d.c | 157 +-- kernel/drivers/gpu/drm/exynos/exynos_drm_gem.c | 574 ++++---- kernel/drivers/gpu/drm/exynos/exynos_drm_gem.h | 81 +- kernel/drivers/gpu/drm/exynos/exynos_drm_gsc.c | 34 +- kernel/drivers/gpu/drm/exynos/exynos_drm_iommu.c | 16 +- kernel/drivers/gpu/drm/exynos/exynos_drm_iommu.h | 4 - kernel/drivers/gpu/drm/exynos/exynos_drm_ipp.c | 97 +- kernel/drivers/gpu/drm/exynos/exynos_drm_mic.c | 490 +++++++ kernel/drivers/gpu/drm/exynos/exynos_drm_plane.c | 177 +-- kernel/drivers/gpu/drm/exynos/exynos_drm_plane.h | 14 +- kernel/drivers/gpu/drm/exynos/exynos_drm_rotator.c | 2 +- kernel/drivers/gpu/drm/exynos/exynos_drm_vidi.c | 257 ++-- kernel/drivers/gpu/drm/exynos/exynos_hdmi.c | 1453 ++++++-------------- kernel/drivers/gpu/drm/exynos/exynos_mixer.c | 363 +++-- kernel/drivers/gpu/drm/exynos/exynos_mixer.h | 20 - kernel/drivers/gpu/drm/exynos/regs-hdmi.h | 33 +- 40 files changed, 4070 insertions(+), 4540 deletions(-) create mode 100644 kernel/drivers/gpu/drm/exynos/exynos5433_drm_decon.c delete mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_buf.c delete mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_buf.h delete mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c delete mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_dmabuf.h delete mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_encoder.c delete mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_encoder.h create mode 100644 kernel/drivers/gpu/drm/exynos/exynos_drm_mic.c delete mode 100644 kernel/drivers/gpu/drm/exynos/exynos_mixer.h (limited to 'kernel/drivers/gpu/drm/exynos') diff --git a/kernel/drivers/gpu/drm/exynos/Kconfig b/kernel/drivers/gpu/drm/exynos/Kconfig index 0a6780367..96e86cf44 100644 --- a/kernel/drivers/gpu/drm/exynos/Kconfig +++ b/kernel/drivers/gpu/drm/exynos/Kconfig @@ -11,37 +11,59 @@ config DRM_EXYNOS Choose this option if you have a Samsung SoC EXYNOS chipset. If M is selected the module will be called exynosdrm. +if DRM_EXYNOS + config DRM_EXYNOS_IOMMU bool - depends on DRM_EXYNOS && EXYNOS_IOMMU && ARM_DMA_USE_IOMMU + depends on EXYNOS_IOMMU && ARM_DMA_USE_IOMMU default y +comment "CRTCs" + config DRM_EXYNOS_FIMD - bool "Exynos DRM FIMD" - depends on DRM_EXYNOS && !FB_S3C + bool "FIMD" + depends on !FB_S3C select FB_MODE_HELPERS select MFD_SYSCON help Choose this option if you want to use Exynos FIMD for DRM. +config DRM_EXYNOS5433_DECON + bool "DECON on Exynos5433" + help + Choose this option if you want to use Exynos5433 DECON for DRM. + config DRM_EXYNOS7_DECON - bool "Exynos DRM DECON" - depends on DRM_EXYNOS + bool "DECON on Exynos7" + depends on !FB_S3C select FB_MODE_HELPERS help Choose this option if you want to use Exynos DECON for DRM. +config DRM_EXYNOS_MIXER + bool "Mixer" + depends on !VIDEO_SAMSUNG_S5P_TV + help + Choose this option if you want to use Exynos Mixer for DRM. + +config DRM_EXYNOS_VIDI + bool "Virtual Display" + help + Choose this option if you want to use Exynos VIDI for DRM. + +comment "Encoders and Bridges" + config DRM_EXYNOS_DPI - bool "EXYNOS DRM parallel output support" - depends on (DRM_EXYNOS_FIMD || DRM_EXYNOS7_DECON) + bool "Parallel output" + depends on DRM_EXYNOS_FIMD 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) + bool "MIPI-DSI host" + depends on DRM_EXYNOS_FIMD || DRM_EXYNOS5433_DECON || DRM_EXYNOS7_DECON select DRM_MIPI_DSI select DRM_PANEL default n @@ -49,51 +71,55 @@ config DRM_EXYNOS_DSI 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) + bool "Display Port" + depends on DRM_EXYNOS_FIMD || DRM_EXYNOS7_DECON 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 + bool "HDMI" + depends on !VIDEO_SAMSUNG_S5P_TV && (DRM_EXYNOS_MIXER || DRM_EXYNOS5433_DECON) 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 +config DRM_EXYNOS_MIC + bool "Mobile Image Compressor" + depends on DRM_EXYNOS5433_DECON help - Choose this option if you want to use Exynos VIDI for DRM. + Choose this option if you want to use Exynos MIC for DRM. + +comment "Sub-drivers" config DRM_EXYNOS_G2D - bool "Exynos DRM G2D" - depends on DRM_EXYNOS && !VIDEO_SAMSUNG_S5P_G2D + bool "G2D" + depends on !VIDEO_SAMSUNG_S5P_G2D + select FRAME_VECTOR 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 + bool "Image Post Processor" help Choose this option if you want to use IPP feature for DRM. config DRM_EXYNOS_FIMC - bool "Exynos DRM FIMC" + bool "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" + bool "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" + bool "GScaler" depends on DRM_EXYNOS_IPP && ARCH_EXYNOS5 && !ARCH_MULTIPLATFORM help Choose this option if you want to use Exynos GSC for DRM. + +endif diff --git a/kernel/drivers/gpu/drm/exynos/Makefile b/kernel/drivers/gpu/drm/exynos/Makefile index cc90679cf..6496532aa 100644 --- a/kernel/drivers/gpu/drm/exynos/Makefile +++ b/kernel/drivers/gpu/drm/exynos/Makefile @@ -3,23 +3,25 @@ # 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-y := exynos_drm_drv.o exynos_drm_crtc.o exynos_drm_fbdev.o \ + exynos_drm_fb.o exynos_drm_gem.o exynos_drm_core.o \ + exynos_drm_plane.o exynosdrm-$(CONFIG_DRM_EXYNOS_IOMMU) += exynos_drm_iommu.o exynosdrm-$(CONFIG_DRM_EXYNOS_FIMD) += exynos_drm_fimd.o +exynosdrm-$(CONFIG_DRM_EXYNOS5433_DECON) += exynos5433_drm_decon.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_MIXER) += exynos_mixer.o +exynosdrm-$(CONFIG_DRM_EXYNOS_HDMI) += exynos_hdmi.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 +exynosdrm-$(CONFIG_DRM_EXYNOS_MIC) += exynos_drm_mic.o obj-$(CONFIG_DRM_EXYNOS) += exynosdrm.o diff --git a/kernel/drivers/gpu/drm/exynos/exynos5433_drm_decon.c b/kernel/drivers/gpu/drm/exynos/exynos5433_drm_decon.c new file mode 100644 index 000000000..fbe1b3174 --- /dev/null +++ b/kernel/drivers/gpu/drm/exynos/exynos5433_drm_decon.c @@ -0,0 +1,689 @@ +/* drivers/gpu/drm/exynos5433_drm_decon.c + * + * Copyright (C) 2015 Samsung Electronics Co.Ltd + * Authors: + * Joonyoung Shim + * Hyungwon Hwang + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundationr + */ + +#include +#include +#include +#include +#include +#include + +#include