MiQi DEV kernel configuration and patches update
This commit is contained in:
parent
c07cdf075d
commit
7e34e51921
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 4.10.0 Kernel Configuration
|
||||
# Linux/arm 4.11.0 Kernel Configuration
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARM_HAS_SG_CHAIN=y
|
||||
@ -126,6 +126,7 @@ CONFIG_FAIR_GROUP_SCHED=y
|
||||
CONFIG_CFS_BANDWIDTH=y
|
||||
CONFIG_RT_GROUP_SCHED=y
|
||||
CONFIG_CGROUP_PIDS=y
|
||||
CONFIG_CGROUP_RDMA=y
|
||||
CONFIG_CGROUP_FREEZER=y
|
||||
CONFIG_CPUSETS=y
|
||||
CONFIG_PROC_PID_CPUSET=y
|
||||
@ -335,13 +336,6 @@ CONFIG_DEFAULT_CFQ=y
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="cfq"
|
||||
CONFIG_MQ_IOSCHED_DEADLINE=y
|
||||
CONFIG_MQ_IOSCHED_NONE=y
|
||||
# CONFIG_DEFAULT_SQ_DEADLINE is not set
|
||||
CONFIG_DEFAULT_SQ_NONE=y
|
||||
CONFIG_DEFAULT_SQ_IOSCHED="none"
|
||||
# CONFIG_DEFAULT_MQ_DEADLINE is not set
|
||||
CONFIG_DEFAULT_MQ_NONE=y
|
||||
CONFIG_DEFAULT_MQ_IOSCHED="none"
|
||||
CONFIG_ASN1=y
|
||||
CONFIG_UNINLINE_SPIN_UNLOCK=y
|
||||
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
|
||||
@ -435,6 +429,7 @@ CONFIG_ARCH_ROCKCHIP=y
|
||||
# Processor Type
|
||||
#
|
||||
CONFIG_CPU_V7=y
|
||||
CONFIG_CPU_THUMB_CAPABLE=y
|
||||
CONFIG_CPU_32v6K=y
|
||||
CONFIG_CPU_32v7=y
|
||||
CONFIG_CPU_ABRT_EV7=y
|
||||
@ -496,6 +491,10 @@ CONFIG_ARM_ERRATA_825619=y
|
||||
# CONFIG_PCI is not set
|
||||
# CONFIG_PCI_DOMAINS_GENERIC is not set
|
||||
# CONFIG_PCI_SYSCALL is not set
|
||||
|
||||
#
|
||||
# DesignWare PCI Core Support
|
||||
#
|
||||
# CONFIG_PCCARD is not set
|
||||
|
||||
#
|
||||
@ -1786,6 +1785,7 @@ CONFIG_KEYBOARD_GPIO_POLLED=y
|
||||
# CONFIG_KEYBOARD_STOWAWAY is not set
|
||||
CONFIG_KEYBOARD_SUNKBD=y
|
||||
# CONFIG_KEYBOARD_OMAP4 is not set
|
||||
CONFIG_KEYBOARD_TM2_TOUCHKEY=m
|
||||
# CONFIG_KEYBOARD_XTKBD is not set
|
||||
CONFIG_KEYBOARD_CROS_EC=y
|
||||
# CONFIG_KEYBOARD_CAP11XX is not set
|
||||
@ -1912,6 +1912,7 @@ CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
|
||||
# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set
|
||||
# CONFIG_TOUCHSCREEN_SX8654 is not set
|
||||
# CONFIG_TOUCHSCREEN_TPS6507X is not set
|
||||
CONFIG_TOUCHSCREEN_ZET6223=m
|
||||
# CONFIG_TOUCHSCREEN_ZFORCE is not set
|
||||
# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set
|
||||
CONFIG_INPUT_MISC=y
|
||||
@ -1920,7 +1921,6 @@ CONFIG_INPUT_MISC=y
|
||||
# CONFIG_INPUT_BMA150 is not set
|
||||
# CONFIG_INPUT_E3X0_BUTTON is not set
|
||||
# CONFIG_INPUT_MMA8450 is not set
|
||||
# CONFIG_INPUT_MPU3050 is not set
|
||||
# CONFIG_INPUT_GP2A is not set
|
||||
# CONFIG_INPUT_GPIO_BEEPER is not set
|
||||
# CONFIG_INPUT_GPIO_TILT_POLLED is not set
|
||||
@ -2490,6 +2490,7 @@ CONFIG_MFD_CROS_EC_SPI=y
|
||||
# CONFIG_MFD_MT6397 is not set
|
||||
# CONFIG_MFD_MENF21BMC is not set
|
||||
# CONFIG_EZX_PCAP is not set
|
||||
CONFIG_MFD_CPCAP=m
|
||||
# CONFIG_MFD_VIPERBOARD is not set
|
||||
# CONFIG_MFD_RETU is not set
|
||||
# CONFIG_MFD_PCF50633 is not set
|
||||
@ -2548,6 +2549,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
||||
CONFIG_REGULATOR_ACT8865=y
|
||||
# CONFIG_REGULATOR_AD5398 is not set
|
||||
# CONFIG_REGULATOR_ANATOP is not set
|
||||
CONFIG_REGULATOR_CPCAP=m
|
||||
# CONFIG_REGULATOR_DA9210 is not set
|
||||
# CONFIG_REGULATOR_DA9211 is not set
|
||||
CONFIG_REGULATOR_FAN53555=y
|
||||
@ -2703,11 +2705,13 @@ CONFIG_MALI_GATOR_SUPPORT=y
|
||||
CONFIG_DRM=y
|
||||
# CONFIG_DRM_DP_AUX_CHARDEV is not set
|
||||
CONFIG_DRM_DEBUG_MM=y
|
||||
CONFIG_DRM_DEBUG_MM_SELFTEST=m
|
||||
CONFIG_DRM_KMS_HELPER=y
|
||||
CONFIG_DRM_KMS_FB_HELPER=y
|
||||
CONFIG_DRM_FBDEV_EMULATION=y
|
||||
# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
|
||||
CONFIG_DRM_GEM_CMA_HELPER=y
|
||||
CONFIG_DRM_KMS_CMA_HELPER=y
|
||||
|
||||
#
|
||||
# I2C encoder or helper chips
|
||||
@ -2762,7 +2766,11 @@ CONFIG_DRM_SIL_SII8620=m
|
||||
# CONFIG_DRM_STI is not set
|
||||
# CONFIG_DRM_ARCPGU is not set
|
||||
# CONFIG_DRM_MXSFB is not set
|
||||
CONFIG_DRM_TINYDRM=m
|
||||
CONFIG_TINYDRM_MIPI_DBI=m
|
||||
CONFIG_TINYDRM_MI0283QT=m
|
||||
# CONFIG_DRM_LEGACY is not set
|
||||
CONFIG_DRM_LIB_RANDOM=y
|
||||
|
||||
#
|
||||
# Frame buffer Devices
|
||||
@ -2780,6 +2788,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y
|
||||
CONFIG_FB_SYS_FILLRECT=y
|
||||
CONFIG_FB_SYS_COPYAREA=y
|
||||
CONFIG_FB_SYS_IMAGEBLIT=y
|
||||
# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set
|
||||
# CONFIG_FB_FOREIGN_ENDIAN is not set
|
||||
CONFIG_FB_SYS_FOPS=y
|
||||
CONFIG_FB_DEFERRED_IO=y
|
||||
@ -2914,6 +2923,7 @@ CONFIG_SND_SOC_ROCKCHIP_I2S=y
|
||||
CONFIG_SND_SOC_ROCKCHIP_SPDIF=y
|
||||
CONFIG_SND_SOC_ROCKCHIP_MAX98090=y
|
||||
CONFIG_SND_SOC_ROCKCHIP_RT5645=y
|
||||
CONFIG_SND_SOC_RK3288_HDMI_ANALOG=m
|
||||
# CONFIG_SND_SOC_RK3399_GRU_SOUND is not set
|
||||
# CONFIG_SND_SOC_XTFPGA_I2S is not set
|
||||
CONFIG_SND_SOC_I2C_AND_SPI=y
|
||||
@ -2947,7 +2957,9 @@ CONFIG_SND_SOC_I2C_AND_SPI=y
|
||||
# CONFIG_SND_SOC_CS4349 is not set
|
||||
# CONFIG_SND_SOC_CS53L30 is not set
|
||||
CONFIG_SND_SOC_HDMI_CODEC=m
|
||||
# CONFIG_SND_SOC_ES8328 is not set
|
||||
CONFIG_SND_SOC_ES8328=m
|
||||
CONFIG_SND_SOC_ES8328_I2C=m
|
||||
CONFIG_SND_SOC_ES8328_SPI=m
|
||||
# CONFIG_SND_SOC_GTM601 is not set
|
||||
# CONFIG_SND_SOC_INNO_RK3036 is not set
|
||||
CONFIG_SND_SOC_MAX98090=y
|
||||
@ -3005,6 +3017,7 @@ CONFIG_SND_SOC_TS3A227E=y
|
||||
# CONFIG_SND_SOC_WM8974 is not set
|
||||
# CONFIG_SND_SOC_WM8978 is not set
|
||||
# CONFIG_SND_SOC_WM8985 is not set
|
||||
CONFIG_SND_SOC_NAU8540=m
|
||||
# CONFIG_SND_SOC_NAU8810 is not set
|
||||
# CONFIG_SND_SOC_TPA6130A2 is not set
|
||||
CONFIG_SND_SIMPLE_CARD_UTILS=y
|
||||
@ -3751,13 +3764,7 @@ CONFIG_COMMON_CLK_RK808=y
|
||||
# CONFIG_COMMON_CLK_PWM is not set
|
||||
# CONFIG_COMMON_CLK_PXA is not set
|
||||
# CONFIG_COMMON_CLK_PIC32 is not set
|
||||
# CONFIG_COMMON_CLK_MT2701 is not set
|
||||
# CONFIG_COMMON_CLK_MT2701_MMSYS is not set
|
||||
# CONFIG_COMMON_CLK_MT2701_IMGSYS is not set
|
||||
# CONFIG_COMMON_CLK_MT2701_VDECSYS is not set
|
||||
# CONFIG_COMMON_CLK_MT2701_HIFSYS is not set
|
||||
# CONFIG_COMMON_CLK_MT2701_ETHSYS is not set
|
||||
# CONFIG_COMMON_CLK_MT2701_BDPSYS is not set
|
||||
CONFIG_COMMON_CLK_VC5=m
|
||||
|
||||
#
|
||||
# Hardware Spinlock drivers
|
||||
@ -3811,9 +3818,11 @@ CONFIG_ROCKCHIP_IOMMU=y
|
||||
# Broadcom SoC drivers
|
||||
#
|
||||
# CONFIG_SOC_BRCMSTB is not set
|
||||
CONFIG_ROCKCHIP_GRF=y
|
||||
CONFIG_ROCKCHIP_PM_DOMAINS=y
|
||||
# CONFIG_SUNXI_SRAM is not set
|
||||
# CONFIG_SOC_TI is not set
|
||||
# CONFIG_SOC_ZTE is not set
|
||||
CONFIG_PM_DEVFREQ=y
|
||||
|
||||
#
|
||||
@ -4518,6 +4527,7 @@ CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||
# CONFIG_PAGE_POISONING is not set
|
||||
# CONFIG_DEBUG_PAGE_REF is not set
|
||||
# CONFIG_DEBUG_RODATA_TEST is not set
|
||||
# CONFIG_DEBUG_OBJECTS is not set
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
# CONFIG_SLUB_STATS is not set
|
||||
@ -4525,10 +4535,11 @@ CONFIG_HAVE_DEBUG_KMEMLEAK=y
|
||||
# CONFIG_DEBUG_KMEMLEAK is not set
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
|
||||
# CONFIG_DEBUG_VIRTUAL is not set
|
||||
# CONFIG_DEBUG_MEMORY_INIT is not set
|
||||
# CONFIG_DEBUG_PER_CPU_MAPS is not set
|
||||
# CONFIG_DEBUG_HIGHMEM is not set
|
||||
# CONFIG_DEBUG_REFCOUNT is not set
|
||||
# CONFIG_DEBUG_SHIRQ is not set
|
||||
|
||||
#
|
||||
@ -4620,7 +4631,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
|
||||
# CONFIG_PROFILE_ALL_BRANCHES is not set
|
||||
# CONFIG_STACK_TRACER is not set
|
||||
CONFIG_BLK_DEV_IO_TRACE=y
|
||||
# CONFIG_UPROBE_EVENT is not set
|
||||
# CONFIG_UPROBE_EVENTS is not set
|
||||
# CONFIG_PROBE_EVENTS is not set
|
||||
CONFIG_DYNAMIC_FTRACE=y
|
||||
# CONFIG_FUNCTION_PROFILER is not set
|
||||
@ -4637,6 +4648,7 @@ CONFIG_TRACING_EVENTS_GPIO=y
|
||||
#
|
||||
CONFIG_LKDTM=y
|
||||
# CONFIG_TEST_LIST_SORT is not set
|
||||
# CONFIG_TEST_SORT is not set
|
||||
# CONFIG_BACKTRACE_SELF_TEST is not set
|
||||
# CONFIG_RBTREE_TEST is not set
|
||||
# CONFIG_INTERVAL_TREE_TEST is not set
|
||||
@ -4801,6 +4813,7 @@ CONFIG_CRYPTO_SHA512=y
|
||||
# Ciphers
|
||||
#
|
||||
CONFIG_CRYPTO_AES=y
|
||||
CONFIG_CRYPTO_AES_TI=m
|
||||
# CONFIG_CRYPTO_ANUBIS is not set
|
||||
CONFIG_CRYPTO_ARC4=y
|
||||
# CONFIG_CRYPTO_BLOWFISH is not set
|
||||
@ -4915,6 +4928,8 @@ CONFIG_ASSOCIATIVE_ARRAY=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT_MAP=y
|
||||
CONFIG_HAS_DMA=y
|
||||
# CONFIG_DMA_NOOP_OPS is not set
|
||||
# CONFIG_DMA_VIRT_OPS is not set
|
||||
CONFIG_CPU_RMAP=y
|
||||
CONFIG_DQL=y
|
||||
CONFIG_GLOB=y
|
||||
@ -4936,5 +4951,5 @@ CONFIG_SG_POOL=y
|
||||
CONFIG_ARCH_HAS_SG_CHAIN=y
|
||||
CONFIG_STACKDEPOT=y
|
||||
CONFIG_SBITMAP=y
|
||||
# CONFIG_PARMAN is not set
|
||||
CONFIG_PRIME_NUMBERS=m
|
||||
# CONFIG_VIRTUALIZATION is not set
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 5bb5d6eb30a5aefaca07f13897ede815591d1499 Mon Sep 17 00:00:00 2001
|
||||
From 24e524279e625a64210165fad83e3a64e8d2f2d7 Mon Sep 17 00:00:00 2001
|
||||
From: Myy <myy@miouyouyou.fr>
|
||||
Date: Sun, 8 Jan 2017 11:13:57 +0000
|
||||
Subject: [PATCH 1/2] Readaptation of Rockchip DRM patches provided by ARM
|
||||
Date: Sun, 12 Mar 2017 17:49:55 +0000
|
||||
Subject: [PATCH 01/12] Readaptation of Rockchip DRM patches provided by ARM
|
||||
engineers
|
||||
|
||||
These patches aim to add some of the GEM API that is completely
|
||||
@ -17,30 +17,30 @@ https://www.community.arm.com/graphics/b/blog/posts/improving-arm-mali-drivers-o
|
||||
|
||||
Signed-off-by: Myy <myy@miouyouyou.fr>
|
||||
---
|
||||
drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 9 +++++
|
||||
drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 20 ++++++++++
|
||||
drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 52 ++++++++++++++++++++++--
|
||||
drivers/gpu/drm/rockchip/rockchip_drm_gem.h | 13 ++++--
|
||||
drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 10 +++++
|
||||
drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 21 ++++++++++
|
||||
drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 51 ++++++++++++++++++++++--
|
||||
drivers/gpu/drm/rockchip/rockchip_drm_gem.h | 9 ++++-
|
||||
drivers/video/fbdev/core/fbmem.c | 31 +++++++++++++++
|
||||
include/linux/fb.h | 2 +
|
||||
include/uapi/drm/rockchip_drm.h | 57 +++++++++++++++++++++++++++
|
||||
include/uapi/linux/fb.h | 6 +++
|
||||
8 files changed, 182 insertions(+), 8 deletions(-)
|
||||
8 files changed, 182 insertions(+), 5 deletions(-)
|
||||
create mode 100644 include/uapi/drm/rockchip_drm.h
|
||||
|
||||
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
|
||||
index 2390c85..325669b 100644
|
||||
index b360e62..0f4ba05 100644
|
||||
--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
|
||||
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
|
||||
@@ -21,6 +21,7 @@
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <drm/drm_fb_helper.h>
|
||||
#include <drm/drm_gem_cma_helper.h>
|
||||
#include <drm/drm_of.h>
|
||||
+#include <drm/rockchip_drm.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/dma-iommu.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/module.h>
|
||||
@@ -268,6 +269,11 @@ static void rockchip_drm_lastclose(struct drm_device *dev)
|
||||
@@ -262,6 +263,12 @@ static void rockchip_drm_lastclose(struct drm_device *dev)
|
||||
drm_fb_helper_restore_fbdev_mode_unlocked(&priv->fbdev_helper);
|
||||
}
|
||||
|
||||
@ -48,11 +48,12 @@ index 2390c85..325669b 100644
|
||||
+ DRM_IOCTL_DEF_DRV(ROCKCHIP_GEM_CREATE, rockchip_gem_create_ioctl,
|
||||
+ DRM_UNLOCKED | DRM_AUTH),
|
||||
+};
|
||||
+
|
||||
+
|
||||
static const struct file_operations rockchip_drm_driver_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = drm_open,
|
||||
@@ -293,12 +299,15 @@ static struct drm_driver rockchip_drm_driver = {
|
||||
@@ -287,12 +294,15 @@ static struct drm_driver rockchip_drm_driver = {
|
||||
.dumb_destroy = drm_gem_dumb_destroy,
|
||||
.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
|
||||
.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
|
||||
@ -63,16 +64,16 @@ index 2390c85..325669b 100644
|
||||
.gem_prime_vmap = rockchip_gem_prime_vmap,
|
||||
.gem_prime_vunmap = rockchip_gem_prime_vunmap,
|
||||
.gem_prime_mmap = rockchip_gem_mmap_buf,
|
||||
+ .ioctls = rockchip_ioctls,
|
||||
+ .ioctls = rockchip_ioctls,
|
||||
+ .num_ioctls = ARRAY_SIZE(rockchip_ioctls),
|
||||
.fops = &rockchip_drm_driver_fops,
|
||||
.name = DRIVER_NAME,
|
||||
.desc = DRIVER_DESC,
|
||||
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
|
||||
index 8f639c8..69a688d 100644
|
||||
index 70ad50d..5578958 100644
|
||||
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
|
||||
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
|
||||
@@ -35,6 +35,25 @@ static int rockchip_fbdev_mmap(struct fb_info *info,
|
||||
@@ -35,6 +35,26 @@ static int rockchip_fbdev_mmap(struct fb_info *info,
|
||||
return rockchip_gem_mmap_buf(private->fbdev_bo, vma);
|
||||
}
|
||||
|
||||
@ -81,88 +82,88 @@ index 8f639c8..69a688d 100644
|
||||
+ I wonder if this problem isn't already solved in another way...
|
||||
+ */
|
||||
+static struct dma_buf *rockchip_fbdev_get_dma_buf(struct fb_info *info) {
|
||||
+ struct dma_buf *buf = NULL;
|
||||
+ struct drm_fb_helper *helper = info->par;
|
||||
+ struct rockchip_drm_private *private = to_drm_private(helper);
|
||||
+ struct drm_device *dev = helper->dev;
|
||||
+ struct dma_buf *buf = NULL;
|
||||
+ struct drm_fb_helper *helper = info->par;
|
||||
+ struct rockchip_drm_private *private = to_drm_private(helper);
|
||||
+ struct drm_device *dev = helper->dev;
|
||||
+
|
||||
+ if (dev->driver->gem_prime_export) {
|
||||
+ buf = dev->driver->gem_prime_export(dev, private->fbdev_bo, O_RDWR);
|
||||
+ if (buf)
|
||||
+ drm_gem_object_reference(private->fbdev_bo);
|
||||
+ }
|
||||
+ if (dev->driver->gem_prime_export) {
|
||||
+ buf = dev->driver->gem_prime_export(dev, private->fbdev_bo, O_RDWR);
|
||||
+ if (buf)
|
||||
+ drm_gem_object_reference(private->fbdev_bo);
|
||||
+ }
|
||||
+
|
||||
+ return buf;
|
||||
+ return buf;
|
||||
+}
|
||||
+
|
||||
+
|
||||
static struct fb_ops rockchip_drm_fbdev_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
DRM_FB_HELPER_DEFAULT_OPS,
|
||||
@@ -42,6 +61,7 @@ static struct fb_ops rockchip_drm_fbdev_ops = {
|
||||
@@ -42,6 +62,7 @@ static struct fb_ops rockchip_drm_fbdev_ops = {
|
||||
.fb_fillrect = drm_fb_helper_cfb_fillrect,
|
||||
.fb_copyarea = drm_fb_helper_cfb_copyarea,
|
||||
.fb_imageblit = drm_fb_helper_cfb_imageblit,
|
||||
+ .fb_dmabuf_export = rockchip_fbdev_get_dma_buf,
|
||||
+ .fb_dmabuf_export = rockchip_fbdev_get_dma_buf
|
||||
};
|
||||
|
||||
static int rockchip_drm_fbdev_create(struct drm_fb_helper *helper,
|
||||
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
|
||||
index b70f942..df8b69a 100644
|
||||
index df9e570..e018e59 100644
|
||||
--- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
|
||||
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
|
||||
@@ -17,6 +17,11 @@
|
||||
@@ -16,7 +16,12 @@
|
||||
#include <drm/drmP.h>
|
||||
#include <drm/drm_gem.h>
|
||||
#include <drm/drm_vma_manager.h>
|
||||
|
||||
+#include <drm/rockchip_drm.h>
|
||||
+
|
||||
#include <linux/iommu.h>
|
||||
+#include <linux/dma-mapping.h>
|
||||
+#include <linux/dma-buf.h>
|
||||
+
|
||||
|
||||
#include "rockchip_drm_drv.h"
|
||||
#include "rockchip_drm_gem.h"
|
||||
|
||||
@@ -101,6 +106,31 @@ int rockchip_gem_mmap(struct file *filp, struct vm_area_struct *vma)
|
||||
return rockchip_drm_gem_object_mmap(obj, vma);
|
||||
@@ -307,6 +312,31 @@ static void rockchip_gem_release_object(struct rockchip_gem_object *rk_obj)
|
||||
kfree(rk_obj);
|
||||
}
|
||||
|
||||
+struct drm_gem_object *
|
||||
+rockchip_gem_prime_import_sg_table(struct drm_device *drm,
|
||||
+ struct dma_buf_attachment *attach,
|
||||
+ struct sg_table *sgt) {
|
||||
+ struct rockchip_gem_object *rk_obj;
|
||||
+ struct drm_gem_object *obj;
|
||||
+ struct rockchip_gem_object *rk_obj;
|
||||
+ struct drm_gem_object *obj;
|
||||
+
|
||||
+ if (sgt->nents != 1)
|
||||
+ return ERR_PTR(-EINVAL);
|
||||
+ if (sgt->nents != 1)
|
||||
+ return ERR_PTR(-EINVAL);
|
||||
+
|
||||
+ rk_obj = kzalloc(sizeof(*rk_obj), GFP_KERNEL);
|
||||
+ if (!rk_obj)
|
||||
+ return ERR_PTR(-ENOMEM);
|
||||
+ rk_obj = kzalloc(sizeof(*rk_obj), GFP_KERNEL);
|
||||
+ if (!rk_obj)
|
||||
+ return ERR_PTR(-ENOMEM);
|
||||
+
|
||||
+ obj = &rk_obj->base;
|
||||
+ obj = &rk_obj->base;
|
||||
+
|
||||
+ drm_gem_private_object_init(drm, obj, attach->dmabuf->size);
|
||||
+ drm_gem_private_object_init(drm, obj, attach->dmabuf->size);
|
||||
+
|
||||
+ rk_obj->dma_addr = sg_dma_address(sgt->sgl);
|
||||
+ rk_obj->sgt = sgt;
|
||||
+ obj->size = sg_dma_len(sgt->sgl);
|
||||
+ rk_obj->dma_addr = sg_dma_address(sgt->sgl);
|
||||
+ rk_obj->sgt = sgt;
|
||||
+ obj->size = sg_dma_len(sgt->sgl);
|
||||
+
|
||||
+ return obj;
|
||||
+ return obj;
|
||||
+}
|
||||
+
|
||||
struct rockchip_gem_object *
|
||||
rockchip_gem_create_object(struct drm_device *drm, unsigned int size,
|
||||
bool alloc_kmap)
|
||||
@@ -137,14 +167,18 @@ struct rockchip_gem_object *
|
||||
@@ -343,12 +373,17 @@ struct rockchip_gem_object *
|
||||
void rockchip_gem_free_object(struct drm_gem_object *obj)
|
||||
{
|
||||
struct rockchip_gem_object *rk_obj;
|
||||
+ if (obj->import_attach)
|
||||
+ drm_prime_gem_destroy(obj, rk_obj->sgt);
|
||||
+ else {
|
||||
|
||||
- drm_gem_free_mmap_offset(obj);
|
||||
+ drm_gem_free_mmap_offset(obj);
|
||||
|
||||
- rk_obj = to_rockchip_obj(obj);
|
||||
@ -171,44 +172,34 @@ index b70f942..df8b69a 100644
|
||||
- rockchip_gem_free_buf(rk_obj);
|
||||
+ rockchip_gem_free_buf(rk_obj);
|
||||
|
||||
- kfree(rk_obj);
|
||||
+ kfree(rk_obj);
|
||||
- rockchip_gem_release_object(rk_obj);
|
||||
+ rockchip_gem_release_object(rk_obj);
|
||||
+ }
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -240,6 +274,16 @@ int rockchip_gem_dumb_create(struct drm_file *file_priv,
|
||||
@@ -444,6 +479,16 @@ int rockchip_gem_dumb_create(struct drm_file *file_priv,
|
||||
return PTR_ERR_OR_ZERO(rk_obj);
|
||||
}
|
||||
|
||||
+int rockchip_gem_create_ioctl(struct drm_device *dev, void *data,
|
||||
+ struct drm_file *file_priv) {
|
||||
+ struct drm_rockchip_gem_create *args = data;
|
||||
+ struct rockchip_gem_object *rk_obj;
|
||||
+ struct drm_rockchip_gem_create *args = data;
|
||||
+ struct rockchip_gem_object *rk_obj;
|
||||
+
|
||||
+ rk_obj = rockchip_gem_create_with_handle(file_priv, dev, args->size,
|
||||
+ rk_obj = rockchip_gem_create_with_handle(file_priv, dev, args->size,
|
||||
+ &args->handle);
|
||||
+ return PTR_ERR_OR_ZERO(rk_obj);
|
||||
+ return PTR_ERR_OR_ZERO(rk_obj);
|
||||
+}
|
||||
+
|
||||
/*
|
||||
* Allocate a sg_table for this GEM object.
|
||||
* Note: Both the table's contents, and the sg_table itself must be freed by
|
||||
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.h b/drivers/gpu/drm/rockchip/rockchip_drm_gem.h
|
||||
index 18b3488..bfdce3f 100644
|
||||
index 3f6ea4d..b8fed4d 100644
|
||||
--- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.h
|
||||
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.h
|
||||
@@ -20,16 +20,17 @@
|
||||
struct rockchip_gem_object {
|
||||
struct drm_gem_object base;
|
||||
unsigned int flags;
|
||||
-
|
||||
- void *kvaddr;
|
||||
+ struct sg_table *sgt;
|
||||
dma_addr_t dma_addr;
|
||||
+ void *kvaddr;
|
||||
unsigned long dma_attrs;
|
||||
};
|
||||
@@ -36,8 +36,9 @@ struct rockchip_gem_object {
|
||||
|
||||
struct sg_table *rockchip_gem_prime_get_sg_table(struct drm_gem_object *obj);
|
||||
struct drm_gem_object *
|
||||
@ -216,21 +207,23 @@ index 18b3488..bfdce3f 100644
|
||||
- struct sg_table *sgt);
|
||||
+rockchip_gem_prime_import_sg_table(struct drm_device *dev,
|
||||
+ struct dma_buf_attachment *attach,
|
||||
+ struct sg_table *sgt);
|
||||
+ struct sg_table *sgt);
|
||||
void *rockchip_gem_prime_vmap(struct drm_gem_object *obj);
|
||||
void rockchip_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr);
|
||||
|
||||
@@ -52,4 +53,8 @@ int rockchip_gem_dumb_create(struct drm_file *file_priv,
|
||||
int rockchip_gem_dumb_map_offset(struct drm_file *file_priv,
|
||||
struct drm_device *dev, uint32_t handle,
|
||||
uint64_t *offset);
|
||||
@@ -57,6 +58,10 @@ void rockchip_gem_free_object(struct drm_gem_object *obj);
|
||||
int rockchip_gem_dumb_create(struct drm_file *file_priv,
|
||||
struct drm_device *dev,
|
||||
struct drm_mode_create_dumb *args);
|
||||
+int rockchip_gem_create_ioctl(struct drm_device *dev, void *data,
|
||||
+ struct drm_file *file_priv);
|
||||
+int rockchip_gem_map_offset_ioctl(struct drm_device *dev, void *data,
|
||||
+ struct drm_file *file_priv);
|
||||
#endif /* _ROCKCHIP_DRM_GEM_H */
|
||||
int rockchip_gem_dumb_map_offset(struct drm_file *file_priv,
|
||||
struct drm_device *dev, uint32_t handle,
|
||||
uint64_t *offset);
|
||||
diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
|
||||
index 76c1ad9..46959b1 100644
|
||||
index 069fe79..d19e98a 100644
|
||||
--- a/drivers/video/fbdev/core/fbmem.c
|
||||
+++ b/drivers/video/fbdev/core/fbmem.c
|
||||
@@ -31,6 +31,7 @@
|
||||
@ -293,14 +286,14 @@ index 76c1ad9..46959b1 100644
|
||||
console_lock();
|
||||
if (!lock_fb_info(info)) {
|
||||
diff --git a/include/linux/fb.h b/include/linux/fb.h
|
||||
index a964d07..37a52db 100644
|
||||
index a964d07..58c9d08 100644
|
||||
--- a/include/linux/fb.h
|
||||
+++ b/include/linux/fb.h
|
||||
@@ -320,6 +320,8 @@ struct fb_ops {
|
||||
/* called at KDB enter and leave time to prepare the console */
|
||||
int (*fb_debug_enter)(struct fb_info *info);
|
||||
int (*fb_debug_leave)(struct fb_info *info);
|
||||
+
|
||||
+
|
||||
+ struct dma_buf *(*fb_dmabuf_export)(struct fb_info *info);
|
||||
};
|
||||
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
From ddcb39d4c8efa4bedf645c0ba5aba74a0cd2dcf0 Mon Sep 17 00:00:00 2001
|
||||
From: Willy Tarreau <w@1wt.eu>
|
||||
Date: Fri, 30 Dec 2016 19:06:59 +0100
|
||||
Subject: ARM: dts: rockchip: fix the MiQi board's LED definition
|
||||
From 8e69c52d77837dbd6c5ee8fda2af97ee5c1eacb0 Mon Sep 17 00:00:00 2001
|
||||
From: Myy <myy@miouyouyou.fr>
|
||||
Date: Sun, 12 Mar 2017 19:15:12 +0000
|
||||
Subject: [PATCH 06/12] [Adaptation] ARM: dts: rockchip: fix the MiQi board's
|
||||
LED definition
|
||||
|
||||
The MiQi board's green LED doesn't work at all with the mainline kernel.
|
||||
There are multiple reasons to this. First, the gpio number is wrong, it
|
||||
@ -22,20 +23,21 @@ the name will still not work until they're fixed.
|
||||
Fixes: 162718c (v4.7)
|
||||
Cc: Heiko Stuebner <heiko@sntech.de>
|
||||
Signed-off-by: Willy Tarreau <w@1wt.eu>
|
||||
Signed-off-by: Myy <myy@miouyouyou.fr>
|
||||
---
|
||||
arch/arm/boot/dts/rk3288-miqi.dts | 12 ++----------
|
||||
1 file changed, 2 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/rk3288-miqi.dts b/arch/arm/boot/dts/rk3288-miqi.dts
|
||||
index f751372..2f4c635 100644
|
||||
index 43728c9..7a42069 100644
|
||||
--- a/arch/arm/boot/dts/rk3288-miqi.dts
|
||||
+++ b/arch/arm/boot/dts/rk3288-miqi.dts
|
||||
@@ -68,11 +68,9 @@
|
||||
compatible = "gpio-leds";
|
||||
|
||||
work {
|
||||
- gpios = <&gpio7 4 GPIO_ACTIVE_LOW>;
|
||||
+ gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>;
|
||||
- gpios = <&gpio7 RK_PA4 GPIO_ACTIVE_LOW>;
|
||||
+ gpios = <&gpio7 RK_PA2 GPIO_ACTIVE_HIGH>;
|
||||
label = "miqi:green:user";
|
||||
- linux,default-trigger = "default-on";
|
||||
- pinctrl-names = "default";
|
||||
@ -58,5 +60,5 @@ index f751372..2f4c635 100644
|
||||
/*
|
||||
* Default drive strength isn't enough to achieve even
|
||||
--
|
||||
2.8.0.rc2.1.gbe9624a
|
||||
2.10.2
|
||||
|
||||
@ -1,41 +0,0 @@
|
||||
From bbe8d9e34604f323406723a07fffe789c8dd83a5 Mon Sep 17 00:00:00 2001
|
||||
From: Myy <myy@miouyouyou.fr>
|
||||
Date: Mon, 30 Jan 2017 23:06:28 +0000
|
||||
Subject: [PATCH] [PATCH] Adaptation of Shawn Lin's patch muting the MMC driver
|
||||
|
||||
This avoid spam from the MMC driver in the kernel logs. However, I'm
|
||||
wondering if that doesn't hide a real configuration problem...
|
||||
|
||||
Original patch URI:
|
||||
http://lists.infradead.org/pipermail/linux-rockchip/2017-January/013621.html
|
||||
|
||||
Signed-off-by: Myy <myy@miouyouyou.fr>
|
||||
---
|
||||
drivers/mmc/host/dw_mmc.c | 11 ++++++-----
|
||||
1 file changed, 6 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
|
||||
index 73db085..590bb44 100644
|
||||
--- a/drivers/mmc/host/dw_mmc.c
|
||||
+++ b/drivers/mmc/host/dw_mmc.c
|
||||
@@ -1179,11 +1179,12 @@ static void dw_mci_setup_bus(struct dw_mci_slot *slot, bool force_clkinit)
|
||||
if ((clock != slot->__clk_old &&
|
||||
!test_bit(DW_MMC_CARD_NEEDS_POLL, &slot->flags)) ||
|
||||
force_clkinit) {
|
||||
- dev_info(&slot->mmc->class_dev,
|
||||
- "Bus speed (slot %d) = %dHz (slot req %dHz, actual %dHZ div = %d)\n",
|
||||
- slot->id, host->bus_hz, clock,
|
||||
- div ? ((host->bus_hz / div) >> 1) :
|
||||
- host->bus_hz, div);
|
||||
+ if (!force_clkinit)
|
||||
+ dev_info(&slot->mmc->class_dev,
|
||||
+ "Bus speed (slot %d) = %dHz (slot req %dHz, actual %dHZ div = %d)\n",
|
||||
+ slot->id, host->bus_hz, clock,
|
||||
+ div ? ((host->bus_hz / div) >> 1) :
|
||||
+ host->bus_hz, div);
|
||||
|
||||
/*
|
||||
* If card is polling, display the message only
|
||||
--
|
||||
2.10.2
|
||||
|
||||
@ -0,0 +1,61 @@
|
||||
From ee8623e8e56fa7e07f39da97f6f1a48ae25328d2 Mon Sep 17 00:00:00 2001
|
||||
From: Myy <myy@miouyouyou.fr>
|
||||
Date: Sun, 12 Mar 2017 21:18:20 +0000
|
||||
Subject: [PATCH] Few modifications after v4.11 headers and signatures changes
|
||||
|
||||
This patch is due to the following main kernel changes :
|
||||
|
||||
* 11bac80004499ea59f361ef2a5516c84b6eab675
|
||||
mm, fs: reduce fault, page_mkwrite, and pfn_mkwrite to take only vmf
|
||||
|
||||
* 68e21be2916b359fd8afb536c1911dc014cfd03e
|
||||
sched/headers: Move task->mm handling methods to <linux/sched/mm.h>
|
||||
|
||||
* f3ac60671954c8d413532627b1be13a76f394c49
|
||||
sched/headers: Move task-stack related APIs from <linux/sched.h> to
|
||||
<linux/sched/task_stack.h>
|
||||
|
||||
Signed-off-by: Myy <myy@miouyouyou.fr>
|
||||
---
|
||||
drivers/gpu/arm/midgard/mali_kbase.h | 4 ++++
|
||||
drivers/gpu/arm/midgard/mali_kbase_mem_linux.c | 7 ++++++-
|
||||
2 files changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/gpu/arm/midgard/mali_kbase.h b/drivers/gpu/arm/midgard/mali_kbase.h
|
||||
index b5a771f..c4946fe 100644
|
||||
--- a/drivers/gpu/arm/midgard/mali_kbase.h
|
||||
+++ b/drivers/gpu/arm/midgard/mali_kbase.h
|
||||
@@ -35,6 +35,10 @@
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/rwsem.h>
|
||||
#include <linux/sched.h>
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
|
||||
+#include <linux/sched/task_stack.h>
|
||||
+#include <linux/sched/mm.h>
|
||||
+#endif
|
||||
#include <linux/slab.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/vmalloc.h>
|
||||
diff --git a/drivers/gpu/arm/midgard/mali_kbase_mem_linux.c b/drivers/gpu/arm/midgard/mali_kbase_mem_linux.c
|
||||
index b5b138b..3cc6229 100644
|
||||
--- a/drivers/gpu/arm/midgard/mali_kbase_mem_linux.c
|
||||
+++ b/drivers/gpu/arm/midgard/mali_kbase_mem_linux.c
|
||||
@@ -1710,9 +1710,14 @@ static void kbase_cpu_vm_close(struct vm_area_struct *vma)
|
||||
|
||||
KBASE_EXPORT_TEST_API(kbase_cpu_vm_close);
|
||||
|
||||
-
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0))
|
||||
static int kbase_cpu_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
|
||||
{
|
||||
+#else
|
||||
+static int kbase_cpu_vm_fault(struct vm_fault *vmf)
|
||||
+{
|
||||
+ struct vm_area_struct *vma = vmf->vma;
|
||||
+#endif
|
||||
struct kbase_cpu_mapping *map = vma->vm_private_data;
|
||||
pgoff_t rel_pgoff;
|
||||
size_t i;
|
||||
--
|
||||
2.10.2
|
||||
|
||||
Loading…
Reference in New Issue
Block a user