summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXianzhong <xianzhong.li@nxp.com>2020-10-16 10:20:28 +0800
committerXianzhong <xianzhong.li@nxp.com>2020-10-18 15:25:50 +0800
commitb82adb38fd58663c88964ebece79a1d10b7e2687 (patch)
treeba109797a6eaa8dd119ff655f9b5ee41fee28a4d
parentd3cc9b105bbc4546ebdcc273063cf34d0602419d (diff)
MGS-6025: sync GPU kernel driver with 20201015 version
include gpu database update, clock debug and kernel fix Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c206
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.h8
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware_async_fe.c28
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h172
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_enum_shared.h2
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_dma.c10
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_gfp.c10
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_reserved_mem.c10
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c25
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c10
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c83
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c21
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c12
13 files changed, 560 insertions, 37 deletions
diff --git a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c
index b7283906f6b2..30fb4a25862a 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c
@@ -8252,6 +8252,8 @@ _PmSetPowerOnDirection(
requireInit = gcvTRUE;
+ /* FALLTHRU */
+
case gcvPOWER_SUSPEND:
/* Clock on. */
gcmkONERROR(_PmClockOn(Hardware, &requireInit));
@@ -8336,6 +8338,8 @@ _PmSetPowerOffDirection(
break;
}
+ /* FALLTHRU */
+
case gcvPOWER_IDLE:
/* Stop. */
gcmkONERROR(gckCOMMAND_Stop(command));
@@ -8350,6 +8354,8 @@ _PmSetPowerOffDirection(
break;
}
+ /* FALLTHRU */
+
case gcvPOWER_SUSPEND:
if(Hardware->kernel->threadInitialized == gcvTRUE)
{
@@ -8446,6 +8452,7 @@ gckHARDWARE_SetPowerState(
case gcvPOWER_IDLE_TIMEOUT:
case gcvPOWER_SUSPEND_TIMEOUT:
timeout = gcvTRUE;
+ /* FALLTHRU */
case gcvPOWER_OFF_BROADCAST:
case gcvPOWER_IDLE_BROADCAST:
case gcvPOWER_SUSPEND_BROADCAST:
@@ -15997,11 +16004,7 @@ gckHARDWARE_QueryFrequency(
mcStart = shStart = 0;
mcClk = shClk = 0;
- status = gckOS_QueryOption(Hardware->os, "powerManagement", &powerManagement);
- if (gcmIS_ERROR(status))
- {
- powerManagement = 0;
- }
+ powerManagement = Hardware->options.powerManagement;
if (powerManagement)
{
@@ -16094,4 +16097,197 @@ OnError:
return status;
}
+/*******************************************************************************
+**
+** Set MC and SH clock
+**
+** Core : which core clock do you want to set
+** mcScale: MC clock scale
+** shScale: SH clock scale
+*/
+gceSTATUS
+gckHARDWARE_SetClock(
+ IN gckHARDWARE Hardware,
+ IN gctUINT32 Core,
+ IN gctUINT32 MCScale,
+ IN gctUINT32 SHScale
+ )
+{
+ gceSTATUS status;
+ gctUINT64 powerManagement = 0;
+ gctBOOL globalAcquired = gcvFALSE;
+ gctUINT32 org;
+ gctUINT32 core = Core;
+ gctUINT32 mcScale = MCScale;
+ gctUINT32 shScale = SHScale;
+
+ gcmkHEADER();
+
+ status = gckOS_QueryOption(Hardware->os, "powerManagement", &powerManagement);
+ if (gcmIS_ERROR(status))
+ {
+ powerManagement = 0;
+ }
+
+ if (powerManagement)
+ {
+ gcmkONERROR(gckHARDWARE_EnablePowerManagement(
+ Hardware, gcvFALSE
+ ));
+
+ gcmkPRINT("Warning: Power management status will be changed forever!\n");
+ }
+
+ gcmkONERROR(gckHARDWARE_SetPowerState(
+ Hardware, gcvPOWER_ON_AUTO
+ ));
+
+ /* Grab the global semaphore. */
+ gcmkONERROR(gckOS_AcquireSemaphore(
+ Hardware->os, Hardware->globalSemaphore
+ ));
+
+ globalAcquired = gcvTRUE;
+
+ if (mcScale > 0 && mcScale <= 64)
+ {
+ gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, core, 0x00000, &org));
+
+ org = ((((gctUINT32) (org)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 8:2) - (0 ?
+ 8:2) + 1) == 32) ?
+ ~0U : (~(~0U << ((1 ?
+ 8:2) - (0 ?
+ 8:2) + 1))))))) << (0 ?
+ 8:2))) | (((gctUINT32) ((gctUINT32) (mcScale) & ((gctUINT32) ((((1 ?
+ 8:2) - (0 ?
+ 8:2) + 1) == 32) ?
+ ~0U : (~(~0U << ((1 ? 8:2) - (0 ? 8:2) + 1))))))) << (0 ? 8:2)));
+
+ /* Write the clock control register. */
+ gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, core,
+ 0x00000,
+ ((((gctUINT32) (org)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 9:9) - (0 ?
+ 9:9) + 1) == 32) ?
+ ~0U : (~(~0U << ((1 ?
+ 9:9) - (0 ?
+ 9:9) + 1))))))) << (0 ?
+ 9:9))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ?
+ 9:9) - (0 ?
+ 9:9) + 1) == 32) ?
+ ~0U : (~(~0U << ((1 ? 9:9) - (0 ? 9:9) + 1))))))) << (0 ? 9:9)))));
+
+ /* Done loading the frequency scaler. */
+ gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, core,
+ 0x00000,
+ ((((gctUINT32) (org)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 9:9) - (0 ?
+ 9:9) + 1) == 32) ?
+ ~0U : (~(~0U << ((1 ?
+ 9:9) - (0 ?
+ 9:9) + 1))))))) << (0 ?
+ 9:9))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ?
+ 9:9) - (0 ?
+ 9:9) + 1) == 32) ?
+ ~0U : (~(~0U << ((1 ? 9:9) - (0 ? 9:9) + 1))))))) << (0 ? 9:9)))));
+
+ /* Need to change 0x0010C when it is introduced. */
+ gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, core, 0x0010C, &org));
+
+ /* Never impact shader clk. */
+ org = 0x01020800 | (org & 0xFF);
+
+ gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, core, 0x0010C, org));
+ }
+
+ /* set SH clock */
+ if (shScale > 0 && shScale <= 64)
+ {
+ gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, core, 0x0010C, &org));
+
+ org = ((((gctUINT32) (org)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 7:1) - (0 ?
+ 7:1) + 1) == 32) ?
+ ~0U : (~(~0U << ((1 ?
+ 7:1) - (0 ?
+ 7:1) + 1))))))) << (0 ?
+ 7:1))) | (((gctUINT32) ((gctUINT32) (shScale) & ((gctUINT32) ((((1 ?
+ 7:1) - (0 ?
+ 7:1) + 1) == 32) ?
+ ~0U : (~(~0U << ((1 ? 7:1) - (0 ? 7:1) + 1))))))) << (0 ? 7:1)));
+ org = ((((gctUINT32) (org)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 16:16) - (0 ?
+ 16:16) + 1) == 32) ?
+ ~0U : (~(~0U << ((1 ?
+ 16:16) - (0 ?
+ 16:16) + 1))))))) << (0 ?
+ 16:16))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ?
+ 16:16) - (0 ?
+ 16:16) + 1) == 32) ?
+ ~0U : (~(~0U << ((1 ? 16:16) - (0 ? 16:16) + 1))))))) << (0 ? 16:16)));
+ org = ((((gctUINT32) (org)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 17:17) - (0 ?
+ 17:17) + 1) == 32) ?
+ ~0U : (~(~0U << ((1 ?
+ 17:17) - (0 ?
+ 17:17) + 1))))))) << (0 ?
+ 17:17))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ?
+ 17:17) - (0 ?
+ 17:17) + 1) == 32) ?
+ ~0U : (~(~0U << ((1 ? 17:17) - (0 ? 17:17) + 1))))))) << (0 ? 17:17)));
+
+ /* Write the clock control register. */
+ gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, core,
+ 0x0010C,
+ ((((gctUINT32) (org)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 0:0) - (0 ?
+ 0:0) + 1) == 32) ?
+ ~0U : (~(~0U << ((1 ?
+ 0:0) - (0 ?
+ 0:0) + 1))))))) << (0 ?
+ 0:0))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ?
+ 0:0) - (0 ?
+ 0:0) + 1) == 32) ?
+ ~0U : (~(~0U << ((1 ? 0:0) - (0 ? 0:0) + 1))))))) << (0 ? 0:0)))));
+
+ /* Done loading the frequency scaler. */
+ gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, core,
+ 0x0010C,
+ ((((gctUINT32) (org)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
+ 0:0) - (0 ?
+ 0:0) + 1) == 32) ?
+ ~0U : (~(~0U << ((1 ?
+ 0:0) - (0 ?
+ 0:0) + 1))))))) << (0 ?
+ 0:0))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ?
+ 0:0) - (0 ?
+ 0:0) + 1) == 32) ?
+ ~0U : (~(~0U << ((1 ? 0:0) - (0 ? 0:0) + 1))))))) << (0 ? 0:0)))));
+ }
+
+ /* Release the global semaphore. */
+ gcmkONERROR(gckOS_ReleaseSemaphore(
+ Hardware->os, Hardware->globalSemaphore
+ ));
+
+ globalAcquired = gcvFALSE;
+
+ gcmkFOOTER_NO();
+
+ return gcvSTATUS_OK;
+
+OnError:
+ if (globalAcquired)
+ {
+ /* Release the global semaphore. */
+ gcmkVERIFY_OK(gckOS_ReleaseSemaphore(
+ Hardware->os, Hardware->globalSemaphore
+ ));
+ }
+
+ gcmkFOOTER_NO();
+
+ return status;
+}
diff --git a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.h b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.h
index bdcf2835a912..30da15a0997c 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.h
@@ -301,6 +301,14 @@ gckHARDWARE_QueryFrequency(
IN gckHARDWARE Hardware
);
+gceSTATUS
+gckHARDWARE_SetClock(
+ IN gckHARDWARE Hardware,
+ IN gctUINT32 Core,
+ IN gctUINT32 MCScale,
+ IN gctUINT32 SHScale
+ );
+
#define gcmkWRITE_MEMORY(logical, data) \
do { \
gcmkVERIFY_OK(gckOS_WriteMemory(os, logical, data)); \
diff --git a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware_async_fe.c b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware_async_fe.c
index a339e5ac8005..79a46dedf6da 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware_async_fe.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware_async_fe.c
@@ -636,35 +636,31 @@ gckASYNC_FE_Execute(
IN gctUINT32 Bytes
)
{
- gceSTATUS status;
+ gceSTATUS status = gcvSTATUS_OK;
+
+ gcmkHEADER_ARG("Hardware=%p Address=%x Bytes=%lu", Hardware, Address, Bytes);
- status = gckOS_WriteRegisterEx(
+ gcmkONERROR(gckOS_WriteRegisterEx(
Hardware->os,
Hardware->core,
0x007DC,
Address
- );
- if (gcmIS_ERROR(status))
- {
- return status;
- }
+ ));
- gckOS_MemoryBarrier(
+ gcmkONERROR(gckOS_MemoryBarrier(
Hardware->os,
gcvNULL
- );
+ ));
- status = gckOS_WriteRegisterEx(
+ gcmkONERROR(gckOS_WriteRegisterEx(
Hardware->os,
Hardware->core,
0x007E0,
Address + Bytes
- );
- if (gcmIS_ERROR(status))
- {
- return status;
- }
+ ));
- return gcvSTATUS_OK;
+OnError:
+ gcmkFOOTER();
+ return status;
}
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 3b413a05e1ff..7d83a0faf760 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-03 15:12*/
+/*Auto created on 2020-09-27 10:38*/
#ifndef _gc_feature_database_h_
#define _gc_feature_database_h_
@@ -117,6 +117,7 @@ typedef struct
gctUINT32 NN_INIMAGE_OFFSET_BITS;
gctUINT32 TP_REORDER_INIMAGE_SIZE;
gctUINT32 TPLite_CoreCount;
+ gctUINT32 NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE;
gctUINT32 NNFP16_XYDP_X;
gctUINT32 NNFP16_XYDP_Y;
gctUINT32 NNFP16_ZDP;
@@ -530,6 +531,7 @@ typedef struct
gctUINT32 ENDIAN_CONTROL:1;
gctUINT32 G2D_RGB_PLANAR:1;
gctUINT32 G2D_DEC400EX:1;
+ gctUINT32 G2D_YUV420_101010:1;
gctUINT32 SH_VX2_FLOATING_MAD_FIX:1;
gctUINT32 TS_FC_VULKAN_SUPPORT:1;
gctUINT32 MSAA_FLOAT_64BIT:1;
@@ -674,6 +676,8 @@ typedef struct
gctUINT32 NN_SUPPORT_DUMMY_TILE:1;
gctUINT32 NN_SUPPORT_KERNEL_1BYTE_ALIGN:1;
gctUINT32 NN_1x1_NON_POOLING_PACKING:1;
+ gctUINT32 NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING:1;
+ gctUINT32 NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2:1;
gctUINT32 NN_MP_INTER_CONNECT_RING:1;
gctUINT32 NN_SUPPORT_BATCH:1;
gctUINT32 NN_2D_AVERAGE_OUTPUT:1;
@@ -737,6 +741,7 @@ typedef struct
gctUINT32 TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX:1;
gctUINT32 NN_KERNEL_1x1_NO_PAD_FIX:1;
gctUINT32 NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX:1;
+ gctUINT32 TP_NOT_FULL_USE_CACHE_LINE_FIX:1;
gctUINT32 SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX:1;
gctUINT32 NN_INTERLEVE8:1;
gctUINT32 NN_FP16_ALU:1;
@@ -813,6 +818,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -1226,6 +1232,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -1370,6 +1377,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -1433,6 +1442,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -1507,6 +1517,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -1920,6 +1931,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -2064,6 +2076,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -2127,6 +2141,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -2201,6 +2216,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -2614,6 +2630,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -2758,6 +2775,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -2821,6 +2840,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -2895,6 +2915,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -3308,6 +3329,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -3452,6 +3474,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -3515,6 +3539,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -3589,6 +3614,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -4002,6 +4028,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -4146,6 +4173,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -4209,6 +4238,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -4283,6 +4313,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -4696,6 +4727,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -4840,6 +4872,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -4903,6 +4937,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -4977,6 +5012,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -5390,6 +5426,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -5534,6 +5571,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -5597,6 +5636,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -5671,6 +5711,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -6084,6 +6125,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -6228,6 +6270,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -6291,6 +6335,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -6365,6 +6410,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -6778,6 +6824,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -6922,6 +6969,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -6985,6 +7034,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -7059,6 +7109,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -7472,6 +7523,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -7616,6 +7668,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -7679,6 +7733,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -7753,6 +7808,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -8166,6 +8222,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -8310,6 +8367,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -8373,6 +8432,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -8447,6 +8507,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -8860,6 +8921,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -9004,6 +9066,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -9067,6 +9131,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -9141,6 +9206,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -9554,6 +9620,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -9698,6 +9765,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -9761,6 +9830,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -9835,6 +9905,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -10248,6 +10319,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -10392,6 +10464,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -10455,6 +10529,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -10529,6 +10604,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -10942,6 +11018,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -11086,6 +11163,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -11149,6 +11228,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -11223,6 +11303,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -11636,6 +11717,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -11780,6 +11862,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -11843,6 +11927,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -11917,6 +12002,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -12330,6 +12416,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -12474,6 +12561,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -12537,6 +12626,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -12611,6 +12701,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -13024,6 +13115,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -13168,6 +13260,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -13231,6 +13325,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -13305,6 +13400,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -13718,6 +13814,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x1, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -13862,6 +13959,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -13925,6 +14024,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -13999,6 +14099,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -14412,6 +14513,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x1, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -14556,6 +14658,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -14619,6 +14723,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -14693,6 +14798,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -15106,6 +15212,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -15250,6 +15357,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -15313,6 +15422,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -15331,7 +15441,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
/* gc7000ULN_v123 */
{
0x7000, /* ChipID */
- 0x6203, /* ChipRevision */
+ 0x6204, /* ChipRevision */
0x70003, /* ProductID */
0x0, /* EcoID */
0x11, /* CustomerID */
@@ -15387,6 +15497,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -15800,6 +15911,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -15944,6 +16056,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -16007,6 +16121,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -16081,6 +16196,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -16494,6 +16610,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -16638,6 +16755,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -16701,6 +16820,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -16775,6 +16895,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -17188,6 +17309,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x1, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -17332,6 +17454,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -17395,6 +17519,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -17469,6 +17594,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -17882,6 +18008,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x1, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -18026,6 +18153,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -18089,6 +18218,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -18163,6 +18293,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -18576,7 +18707,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
- 0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
+ 0x1, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x1, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
0x0, /* gcFEATURE_BIT_INDIRECT_COMPUTE_ZERODIM_FIX */
@@ -18720,6 +18852,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -18783,6 +18917,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -18857,6 +18992,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -19270,7 +19406,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
- 0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
+ 0x1, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x1, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x1, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
0x0, /* gcFEATURE_BIT_INDIRECT_COMPUTE_ZERODIM_FIX */
@@ -19327,13 +19464,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_MIRROR_BORDER */
0x0, /* gcFEATURE_BIT_AI_GPU */
0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
- 0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
- 0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
- 0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
- 0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
- 0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
- 0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
- 0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
+ 0x1, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
+ 0x1, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
+ 0x1, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
+ 0x1, /* gcFEATURE_BIT_EVIS_NO_DP32 */
+ 0x1, /* gcFEATURE_BIT_EVIS_NO_FILTER */
+ 0x1, /* gcFEATURE_BIT_EVIS_NO_IADD */
+ 0x1, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
0x1, /* gcFEATURE_BIT_EVIS_VX2 */
@@ -19414,6 +19551,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -19477,6 +19616,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -19551,6 +19691,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x5, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x200, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x8, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x1, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x1, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x1, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -19964,6 +20105,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -20108,6 +20250,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -20171,6 +20315,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x1, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x0, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@@ -20245,6 +20390,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x5, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x200, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
+ 0x8, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x1, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x1, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x1, /* gcFEATURE_VALUE_NNFP16_ZDP */
@@ -20658,6 +20804,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
+ 0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@@ -20802,6 +20949,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
+ 0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -20865,6 +21014,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x1, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
+ 0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x0, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_enum_shared.h b/drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_enum_shared.h
index a943bf92c971..184591215aac 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_enum_shared.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_enum_shared.h
@@ -693,6 +693,8 @@ typedef enum _gceFEATURE
gcvFEATURE_NN_FLOAT32_IO,
gcvFEATURE_TP_FLOAT32_IO,
+ gcvFEATURE_BIT_USC_INDIVIDUAL_PORT_WRT_EARLY_EVICT_DATA_CORRUPT_FIX,
+ gcvFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX,
/* Insert features above this comment only. */
gcvFEATURE_COUNT /* Not a feature. */
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 7f794d6b5548..a29b696b2a45 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,12 @@ _DmaMapUser(
gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
+ down_write(&current->mm->mmap_lock);
+#else
down_write(&current->mm->mmap_sem);
+#endif
+
do
{
struct vm_area_struct *vma = find_vma(current->mm, (unsigned long)userLogical);
@@ -478,7 +483,12 @@ _DmaMapUser(
MdlMap->vma = vma;
}
while (gcvFALSE);
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
+ up_write(&current->mm->mmap_lock);
+#else
up_write(&current->mm->mmap_sem);
+#endif
OnError:
if (gcmIS_ERROR(status) && userLogical)
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 9c3dd859193d..3f3d6c0f53ba 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,12 @@ _GFPMapUser(
gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
+ down_write(&current->mm->mmap_lock);
+#else
down_write(&current->mm->mmap_sem);
+#endif
+
do
{
struct vm_area_struct *vma = find_vma(current->mm, (unsigned long)userLogical);
@@ -1088,7 +1093,12 @@ _GFPMapUser(
MdlMap->vma = vma;
}
while (gcvFALSE);
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
+ up_write(&current->mm->mmap_lock);
+#else
up_write(&current->mm->mmap_sem);
+#endif
if (gcmIS_SUCCESS(status))
{
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 3364bdf68efe..e22d74d355a5 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,12 @@ reserved_mem_map_user(
gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
+ down_write(&current->mm->mmap_lock);
+#else
down_write(&current->mm->mmap_sem);
+#endif
+
do
{
struct vm_area_struct *vma = find_vma(current->mm, (unsigned long)userLogical);
@@ -370,7 +375,12 @@ reserved_mem_map_user(
MdlMap->vma = vma;
}
while (gcvFALSE);
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
+ up_write(&current->mm->mmap_lock);
+#else
up_write(&current->mm->mmap_sem);
+#endif
OnError:
if (gcmIS_ERROR(status) && userLogical)
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 0f5ac4ade33b..f522655b129a 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,11 @@ static int import_page_map(struct um_desc *um,
if (!pages)
return -ENOMEM;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
+ down_read(&current->mm->mmap_lock);
+#else
down_read(&current->mm->mmap_sem);
+#endif
result = get_user_pages(
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)
@@ -159,7 +163,11 @@ static int import_page_map(struct um_desc *um,
pages,
NULL);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
+ up_read(&current->mm->mmap_lock);
+#else
up_read(&current->mm->mmap_sem);
+#endif
if (result < page_count)
{
@@ -240,9 +248,15 @@ static int import_pfn_map(struct um_desc *um,
if (!current->mm)
return -ENOTTY;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
+ down_read(&current->mm->mmap_lock);
+ vma = find_vma(current->mm, addr);
+ up_read(&current->mm->mmap_lock);
+#else
down_read(&current->mm->mmap_sem);
vma = find_vma(current->mm, addr);
up_read(&current->mm->mmap_sem);
+#endif
if (!vma)
return -ENOTTY;
@@ -264,6 +278,9 @@ static int import_pfn_map(struct um_desc *um,
{
spinlock_t *ptl;
pgd_t *pgd;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
+ p4d_t *p4d;
+#endif
pud_t *pud;
pmd_t *pmd;
pte_t *pte;
@@ -279,8 +296,16 @@ static int import_pfn_map(struct um_desc *um,
&& LINUX_VERSION_CODE >= KERNEL_VERSION (4,11,0)
pud = pud_offset((p4d_t*)pgd, addr);
#else
+#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
+ p4d = p4d_offset(pgd, addr);
+ if (p4d_none(READ_ONCE(*p4d)))
+ goto err;
+
+ pud = pud_offset(p4d, addr);
+#else
pud = pud_offset(pgd, addr);
#endif
+#endif
if (pud_none(*pud) || pud_bad(*pud))
goto err;
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 5ca4fbc276f1..b61df83b460e 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,12 @@ _CMAFSLMapUser(
gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
+ down_write(&current->mm->mmap_lock);
+#else
down_write(&current->mm->mmap_sem);
+#endif
+
do
{
struct vm_area_struct *vma = find_vma(current->mm, (unsigned long)userLogical);
@@ -465,7 +470,12 @@ _CMAFSLMapUser(
MdlMap->vma = vma;
}
while (gcvFALSE);
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
+ up_write(&current->mm->mmap_lock);
+#else
up_write(&current->mm->mmap_sem);
+#endif
OnError:
if (gcmIS_ERROR(status) && userLogical && !IS_ERR(userLogical))
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
index 500296a3de54..608f51f56c8e 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
@@ -1018,7 +1018,6 @@ _DumpState(
** Idle: Time GPU stays in gcvPOWER_IDLE.
** Suspend: Time GPU stays in gcvPOWER_SUSPEND.
*/
-
static int dumpCore = 0;
static int
@@ -1377,6 +1376,80 @@ static int gc_clk_show(struct seq_file* m, void* data)
return 0;
}
+static gctUINT32 clkScale[2] = {0, 0};
+
+static int _set_clk(const char* buf)
+{
+ gckHARDWARE hardware;
+ gckGALDEVICE device = galDevice;
+ gctINT n, j, k;
+ gctBOOL isSpace = gcvFALSE;
+ char data[20];
+
+ memset(data, 0, 20);
+ n = j = k = 0;
+
+ while (gcvTRUE)
+ {
+ if ((buf[k] >= '0') && (buf[k] <= '9'))
+ {
+ if (isSpace)
+ {
+ data[n++] = ' ';
+ isSpace = gcvFALSE;
+ }
+ data[n++] = buf[k];
+ }
+ else if (buf[k] == ' ')
+ {
+ if (n > 0)
+ {
+ isSpace = gcvTRUE;
+ }
+ }
+ else if (buf[k] == '\n')
+ {
+ break;
+ }
+ else
+ {
+ printk("Error: command format must be this: echo \"0 32 32\" > /sys/kernel/debug/gc/clk\n");
+ return 0;
+ }
+
+ k++;
+
+ if (k >= 20)
+ {
+ break;
+ }
+ }
+
+ sscanf(data, "%d %d %d", &dumpCore, &clkScale[0], &clkScale[1]);
+
+ printk("Change core:%d MC scale:%d SH scale:%d\n", dumpCore, clkScale[0], clkScale[1]);
+
+ if (device->kernels[dumpCore])
+ {
+ hardware = device->kernels[dumpCore]->hardware;
+
+ gckHARDWARE_SetClock(hardware, dumpCore, clkScale[0], clkScale[1]);
+ }
+ else
+ {
+ printk("Error: invalid core\n");
+ }
+
+ return 0;
+}
+
+static int gc_clk_write(const char __user *buf, size_t count, void* data)
+{
+ _set_clk(buf);
+
+ return count;
+}
+
static gcsINFO InfoList[] =
{
{"info", gc_info_show},
@@ -1389,7 +1462,7 @@ static gcsINFO InfoList[] =
{"vidmem", gc_vidmem_show_old, gc_vidmem_write},
{"vidmem64x", gc_vidmem_show, gc_vidmem_write},
{"dump_trigger", gc_dump_trigger_show, gc_dump_trigger_write},
- {"clk", gc_clk_show},
+ {"clk", gc_clk_show, gc_clk_write},
};
static gceSTATUS
@@ -2030,7 +2103,9 @@ gckGALDEVICE_Construct(
gcmkONERROR(gcvSTATUS_OUT_OF_RESOURCES);
}
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)
+ device->registerBases[i] = (gctPOINTER)ioremap(physical, device->requestedRegisterMemSizes[i]);
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0)
device->registerBases[i] = (gctPOINTER)memremap(physical, device->requestedRegisterMemSizes[i], MEMREMAP_WT);
#else
device->registerBases[i] = (gctPOINTER)ioremap_nocache(physical, device->requestedRegisterMemSizes[i]);
@@ -2509,7 +2584,7 @@ gckGALDEVICE_Destroy(
/* Unmap register memory. */
if (Device->requestedRegisterMemBases[i] != 0)
{
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0) && LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0)
memunmap(Device->registerBases[i]);
#else
iounmap(Device->registerBases[i]);
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 1e24c229f3cd..55d102258493 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
@@ -441,6 +441,9 @@ _QueryProcessPageTable(
struct vm_area_struct *vma;
spinlock_t *ptl;
pgd_t *pgd;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
+ p4d_t *p4d;
+#endif
pud_t *pud;
pmd_t *pmd;
pte_t *pte;
@@ -448,9 +451,15 @@ _QueryProcessPageTable(
if (!current->mm)
return gcvSTATUS_NOT_FOUND;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
+ down_read(&current->mm->mmap_lock);
+ vma = find_vma(current->mm, logical);
+ up_read(&current->mm->mmap_lock);
+#else
down_read(&current->mm->mmap_sem);
vma = find_vma(current->mm, logical);
up_read(&current->mm->mmap_sem);
+#endif
/* To check if mapped to user. */
if (!vma)
@@ -467,8 +476,16 @@ _QueryProcessPageTable(
&& LINUX_VERSION_CODE >= KERNEL_VERSION (4,11,0)
pud = pud_offset((p4d_t*)pgd, logical);
#else
+#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
+ p4d = p4d_offset(pgd, logical);
+ if (p4d_none(READ_ONCE(*p4d)))
+ return gcvSTATUS_NOT_FOUND;
+
+ pud = pud_offset(p4d, logical);
+#else
pud = pud_offset(pgd, logical);
#endif
+#endif
if (pud_none(*pud) || pud_bad(*pud))
return gcvSTATUS_NOT_FOUND;
@@ -2307,7 +2324,9 @@ gckOS_MapPhysical(
{
/* Map memory as cached memory. */
request_mem_region(physical, Bytes, "MapRegion");
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)
+ logical = ioremap(physical, Bytes);
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0)
logical = (gctPOINTER) memremap(physical, Bytes, MEMREMAP_WT);
#else
logical = (gctPOINTER) ioremap_nocache(physical, Bytes);
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 eedc18a25072..bf714d291ed3 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
@@ -1200,6 +1200,7 @@ free_priv(void)
}
static int set_clock(int gpu, int enable);
+static int set_power(int gpu, int enable);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
static void imx6sx_optimize_qosc_for_GPU(void)
@@ -1214,6 +1215,7 @@ static void imx6sx_optimize_qosc_for_GPU(void)
src_base = of_iomap(np, 0);
WARN_ON(!src_base);
+ set_power(gcvCORE_MAJOR, 1);
set_clock(gcvCORE_MAJOR, 1);
writel_relaxed(0, src_base); /* Disable clkgate & soft_rst */
@@ -1223,6 +1225,8 @@ static void imx6sx_optimize_qosc_for_GPU(void)
writel_relaxed(0x0f000822, src_base+0x1400+0xe0); /* Set Read QoS 8 for gpu */
set_clock(gcvCORE_MAJOR, 0);
+ set_power(gcvCORE_MAJOR, 0);
+
return;
}
#endif
@@ -1474,7 +1478,11 @@ 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)
+ cpu_latency_qos_add_request(&priv->pm_qos, 0);
+#else
pm_qos_add_request(&(priv->pm_qos), PM_QOS_CPU_DMA_LATENCY, 0);
+#endif
}
#endif
@@ -1542,7 +1550,11 @@ 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)
+ cpu_latency_qos_remove_request(&priv->pm_qos);
+#else
pm_qos_remove_request(&(priv->pm_qos));
+#endif
}
#endif