summaryrefslogtreecommitdiff
path: root/drivers/mxc
diff options
context:
space:
mode:
authorXianzhong <xianzhong.li@nxp.com>2020-10-20 17:26:31 +0800
committerXianzhong <xianzhong.li@nxp.com>2020-10-20 17:50:19 +0800
commit0e2540cf5e713a90de4bbb1907221eaf082518d5 (patch)
treed1f68eedb299ec7d522f4859d4c8184824dc1bac /drivers/mxc
parent66d55a65726e154830abf5c1e0771d8e31737906 (diff)
MGS-6026 mxc/gpu-viv: integrate 6.4.3.p1 kernel
add new feature for openvx 1.3 and vulkan 1.2.1 Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
Diffstat (limited to 'drivers/mxc')
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h1
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c6
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h2
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_drm.h7
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h1
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h4
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_dma.c4
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_gfp.c4
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_reserved_mem.c4
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c12
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c4
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c14
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c2
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c4
14 files changed, 42 insertions, 27 deletions
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
index f1087f166cc6..98dd98adff70 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
@@ -1337,6 +1337,7 @@ typedef struct _gcsVIDMEM_NODE
gckVIDMEM_NODE tsNode;
gctUINT32 tilingMode;
gctUINT32 tsMode;
+ gctUINT32 tsCacheMode;
gctUINT64 clearValue;
#if gcdCAPTURE_ONLY_MODE
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
index ee66dc1a498b..b6e9aea48e4b 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
@@ -61,7 +61,6 @@
#include <stdlib.h>
#include <sys/slogcodes.h>
#include <time.h>
-#include "gc_hal_kernel_os.h"
extern unsigned int slogUsageInterval;
extern const uint64_t slogLowWaterFPC;
@@ -809,9 +808,8 @@ gckVIDMEM_AllocateLinear(
if (do_slog_now) {
last_slog_time = this_slog_time;
- slogf(_SLOGC_GRAPHICS_GL, _SLOG_INFO, "%s: Memory->freeBytes = %u, lowest Memory->freeBytes = %u. "
- "Handling message from pid: %u. Requested bytes: %zu",
- __FUNCTION__, (unsigned) Memory->freeBytes, (unsigned) lowwaterFPC, drv_get_user_pid(), Bytes);
+ slogf(_SLOGC_GRAPHICS_GL, _SLOG_INFO, "%s: Memory->freeBytes = %u, lowest Memory->freeBytes = %u",
+ __FUNCTION__, (unsigned) Memory->freeBytes, (unsigned) lowwaterFPC);
}
}
#endif
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h
index 7d83a0faf760..ec0615d9534d 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h
@@ -53,7 +53,7 @@
*****************************************************************************/
-/*Auto created on 2020-09-27 10:38*/
+/*Auto created on 2020-10-13 23:50*/
#ifndef _gc_feature_database_h_
#define _gc_feature_database_h_
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_drm.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_drm.h
index d24e95d4584b..6699ea39c9f6 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_drm.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_drm.h
@@ -135,11 +135,17 @@ struct drm_viv_gem_timestamp {
#define DRM_VIV_GEM_TS_NORMAL 0x02
#define DRM_VIV_GEM_TS_COMPRESSED 0x03
+/* ts cache mode. */
+#define DRM_VIV_GEM_TS_CACHE_MODE_64B 0x00
+#define DRM_VIV_GEM_TS_CACHE_MODE_128B 0x01
+#define DRM_VIV_GEM_TS_CACHE_MODE_256B 0x02
+
struct drm_viv_gem_set_tiling {
__u32 handle;
__u32 tiling_mode;
__u32 ts_mode;
+ __u32 ts_cache_mode;
__u64 clear_value;
};
@@ -148,6 +154,7 @@ struct drm_viv_gem_get_tiling {
__u32 tiling_mode;
__u32 ts_mode;
+ __u32 ts_cache_mode;
__u64 clear_value;
};
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h
index b510691ea360..455355e2b096 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h
@@ -52,6 +52,7 @@
*
*****************************************************************************/
+
#include "gc_hal_version.h"
#include "gc_hal_options.h"
#include "shared/gc_hal_types_shared.h"
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
index 0a2546548d78..3557882b5ae0 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
@@ -62,9 +62,9 @@
#define gcvVERSION_PATCH 3
-#define gcvVERSION_BUILD 286725
+#define gcvVERSION_BUILD 305572
-#define gcvVERSION_STRING "6.4.3.p0.286725"
+#define gcvVERSION_STRING "6.4.3.p1.305572"
#endif /* __gc_hal_version_h_ */
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_dma.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_dma.c
index a29b696b2a45..823e712c3679 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_dma.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_dma.c
@@ -456,7 +456,7 @@ _DmaMapUser(
gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
}
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)
down_write(&current->mm->mmap_lock);
#else
down_write(&current->mm->mmap_sem);
@@ -484,7 +484,7 @@ _DmaMapUser(
}
while (gcvFALSE);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)
up_write(&current->mm->mmap_lock);
#else
up_write(&current->mm->mmap_sem);
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_gfp.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_gfp.c
index 3f3d6c0f53ba..2f18712918fb 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_gfp.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_gfp.c
@@ -1068,7 +1068,7 @@ _GFPMapUser(
gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
}
-#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,8,0)
down_write(&current->mm->mmap_lock);
#else
down_write(&current->mm->mmap_sem);
@@ -1094,7 +1094,7 @@ _GFPMapUser(
}
while (gcvFALSE);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,8,0)
up_write(&current->mm->mmap_lock);
#else
up_write(&current->mm->mmap_sem);
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_reserved_mem.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_reserved_mem.c
index e22d74d355a5..bbb9096331a7 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_reserved_mem.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_reserved_mem.c
@@ -348,7 +348,7 @@ reserved_mem_map_user(
gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
}
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)
down_write(&current->mm->mmap_lock);
#else
down_write(&current->mm->mmap_sem);
@@ -376,7 +376,7 @@ reserved_mem_map_user(
}
while (gcvFALSE);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)
up_write(&current->mm->mmap_lock);
#else
up_write(&current->mm->mmap_sem);
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c
index f522655b129a..d7f47c772071 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c
@@ -141,7 +141,7 @@ static int import_page_map(struct um_desc *um,
if (!pages)
return -ENOMEM;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)
down_read(&current->mm->mmap_lock);
#else
down_read(&current->mm->mmap_sem);
@@ -163,7 +163,7 @@ static int import_page_map(struct um_desc *um,
pages,
NULL);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)
up_read(&current->mm->mmap_lock);
#else
up_read(&current->mm->mmap_sem);
@@ -248,7 +248,7 @@ static int import_pfn_map(struct um_desc *um,
if (!current->mm)
return -ENOTTY;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,8,0)
down_read(&current->mm->mmap_lock);
vma = find_vma(current->mm, addr);
up_read(&current->mm->mmap_lock);
@@ -438,7 +438,9 @@ _Import(
}
}
+ down_read(&current->mm->mmap_sem);
vma = find_vma(current->mm, memory);
+ up_read(&current->mm->mmap_sem);
if (!vma)
{
@@ -454,6 +456,7 @@ _Import(
vm_flags = vma->vm_flags;
vaddr = vma->vm_end;
+ down_read(&current->mm->mmap_sem);
while (vaddr < memory + Size)
{
vma = find_vma(current->mm, vaddr);
@@ -461,17 +464,20 @@ _Import(
if (!vma)
{
/* No such memory. */
+ up_read(&current->mm->mmap_sem);
gcmkONERROR(gcvSTATUS_INVALID_ARGUMENT);
}
if ((vma->vm_flags & VM_PFNMAP) != (vm_flags & VM_PFNMAP))
{
/* Can not support different map type: both PFN and PAGE detected. */
+ up_read(&current->mm->mmap_sem);
gcmkONERROR(gcvSTATUS_NOT_SUPPORTED);
}
vaddr = vma->vm_end;
}
+ up_read(&current->mm->mmap_sem);
}
if (Physical != gcvINVALID_PHYSICAL_ADDRESS)
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c
index b61df83b460e..f1e87be26ea7 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c
@@ -444,7 +444,7 @@ _CMAFSLMapUser(
gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
}
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)
down_write(&current->mm->mmap_lock);
#else
down_write(&current->mm->mmap_sem);
@@ -471,7 +471,7 @@ _CMAFSLMapUser(
}
while (gcvFALSE);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)
up_write(&current->mm->mmap_lock);
#else
up_write(&current->mm->mmap_sem);
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c
index befe086a9f75..795a0e1866b8 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c
@@ -478,9 +478,10 @@ static int viv_ioctl_gem_set_tiling(struct drm_device *drm, void *data,
}
viv_obj = container_of(gem_obj, struct viv_gem_object, base);
- viv_obj->node_object->tilingMode = args->tiling_mode;
- viv_obj->node_object->tsMode = args->ts_mode;
- viv_obj->node_object->clearValue = args->clear_value;
+ viv_obj->node_object->tilingMode = args->tiling_mode;
+ viv_obj->node_object->tsMode = args->ts_mode;
+ viv_obj->node_object->tsCacheMode = args->ts_cache_mode;
+ viv_obj->node_object->clearValue = args->clear_value;
OnError:
if (gem_obj)
@@ -513,9 +514,10 @@ static int viv_ioctl_gem_get_tiling(struct drm_device *drm, void *data,
}
viv_obj = container_of(gem_obj, struct viv_gem_object, base);
- args->tiling_mode = viv_obj->node_object->tilingMode;
- args->ts_mode = viv_obj->node_object->tsMode;
- args->clear_value = viv_obj->node_object->clearValue;
+ args->tiling_mode = viv_obj->node_object->tilingMode;
+ args->ts_mode = viv_obj->node_object->tsMode;
+ args->ts_cache_mode = viv_obj->node_object->tsCacheMode;
+ args->clear_value = viv_obj->node_object->clearValue;
OnError:
if (gem_obj)
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
index 55d102258493..edc279c60c02 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
@@ -451,7 +451,7 @@ _QueryProcessPageTable(
if (!current->mm)
return gcvSTATUS_NOT_FOUND;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,8,0)
down_read(&current->mm->mmap_lock);
vma = find_vma(current->mm, logical);
up_read(&current->mm->mmap_lock);
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c
index bf714d291ed3..3e6c75ae75a0 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c
@@ -1478,7 +1478,7 @@ static inline int set_power(int gpu, int enable)
#ifdef CONFIG_PM
pm_runtime_get_sync(priv->pmdev[gpu]);
if(priv->pm_qos_core == gpu) {
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)
cpu_latency_qos_add_request(&priv->pm_qos, 0);
#else
pm_qos_add_request(&(priv->pm_qos), PM_QOS_CPU_DMA_LATENCY, 0);
@@ -1550,7 +1550,7 @@ static inline int set_power(int gpu, int enable)
#ifdef CONFIG_PM
pm_runtime_put_sync(priv->pmdev[gpu]);
if(priv->pm_qos_core == gpu) {
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)
cpu_latency_qos_remove_request(&priv->pm_qos);
#else
pm_qos_remove_request(&(priv->pm_qos));