diff options
author | Xianzhong <xianzhong.li@nxp.com> | 2020-10-16 10:20:28 +0800 |
---|---|---|
committer | Xianzhong <xianzhong.li@nxp.com> | 2020-10-18 15:25:50 +0800 |
commit | b82adb38fd58663c88964ebece79a1d10b7e2687 (patch) | |
tree | ba109797a6eaa8dd119ff655f9b5ee41fee28a4d | |
parent | d3cc9b105bbc4546ebdcc273063cf34d0602419d (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>
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(¤t->mm->mmap_lock); +#else down_write(¤t->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(¤t->mm->mmap_lock); +#else up_write(¤t->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(¤t->mm->mmap_lock); +#else down_write(¤t->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(¤t->mm->mmap_lock); +#else up_write(¤t->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(¤t->mm->mmap_lock); +#else down_write(¤t->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(¤t->mm->mmap_lock); +#else up_write(¤t->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(¤t->mm->mmap_lock); +#else down_read(¤t->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(¤t->mm->mmap_lock); +#else up_read(¤t->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(¤t->mm->mmap_lock); + vma = find_vma(current->mm, addr); + up_read(¤t->mm->mmap_lock); +#else down_read(¤t->mm->mmap_sem); vma = find_vma(current->mm, addr); up_read(¤t->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(¤t->mm->mmap_lock); +#else down_write(¤t->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(¤t->mm->mmap_lock); +#else up_write(¤t->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(¤t->mm->mmap_lock); + vma = find_vma(current->mm, logical); + up_read(¤t->mm->mmap_lock); +#else down_read(¤t->mm->mmap_sem); vma = find_vma(current->mm, logical); up_read(¤t->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 |