From 8238c5678cd89da115a935099d452fbf747e60b0 Mon Sep 17 00:00:00 2001 From: John Dowdal Date: Thu, 29 May 2014 14:15:55 -0400 Subject: [PATCH] sdocm00106374: add missing qpend queues for k2l and k2e --- device/k2e/global-resource-list-arm-dsp.c | 204 ++--- device/k2e/global-resource-list-arm-dsp.dtb | Bin 1809 -> 1905 bytes device/k2e/global-resource-list-arm-dsp.dts | 8 +- device/k2e/global-resource-list.c | 140 +++- device/k2e/global-resource-list.dtb | Bin 1759 -> 1855 bytes device/k2e/global-resource-list.dts | 8 +- device/k2e/policy_dsp-only.c | 252 +++--- device/k2e/policy_dsp-only.dtb | Bin 2304 -> 2424 bytes device/k2e/policy_dsp-only.dts | 8 +- device/k2e/policy_dsp_arm.c | 146 +++- device/k2e/policy_dsp_arm.dtb | Bin 2840 -> 2960 bytes device/k2e/policy_dsp_arm.dts | 16 +- device/k2l/global-resource-list-arm-dsp.c | 526 ++++++++++++- device/k2l/global-resource-list-arm-dsp.dtb | Bin 2277 -> 2733 bytes device/k2l/global-resource-list-arm-dsp.dts | 29 +- device/k2l/global-resource-list.c | 706 +++++++++++++---- device/k2l/global-resource-list.dtb | Bin 2227 -> 2683 bytes device/k2l/global-resource-list.dts | 29 +- device/k2l/policy_dsp-only.c | 818 +++++++++++++++++--- device/k2l/policy_dsp-only.dtb | Bin 2904 -> 3468 bytes device/k2l/policy_dsp-only.dts | 29 +- device/k2l/policy_dsp_arm.c | 818 +++++++++++++++++--- device/k2l/policy_dsp_arm.dtb | Bin 3440 -> 4004 bytes device/k2l/policy_dsp_arm.dts | 33 +- docs/ReleaseNotes_RM.doc | Bin 125952 -> 127488 bytes docs/ReleaseNotes_RM.pdf | Bin 273930 -> 274526 bytes 26 files changed, 3167 insertions(+), 603 deletions(-) diff --git a/device/k2e/global-resource-list-arm-dsp.c b/device/k2e/global-resource-list-arm-dsp.c index 6cac073..5cca5b5 100644 --- a/device/k2e/global-resource-list-arm-dsp.c +++ b/device/k2e/global-resource-list-arm-dsp.c @@ -8,15 +8,15 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x07, -0x11, +0x71, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, -0x06, -0xf4, +0x07, +0x54, 0x00, 0x00, 0x00, @@ -39,8 +39,8 @@ const char rmGlobalResourceList[] = { 0x1d, 0x00, 0x00, -0x06, -0xbc, +0x07, +0x1c, 0x00, 0x00, 0x00, @@ -725,6 +725,102 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x01, +0x53, +0x4f, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x30, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x0e, +0x00, +0x00, +0x02, +0x92, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x32, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x0e, +0x00, +0x00, +0x02, +0x9a, +0x00, +0x00, +0x00, +0x1a, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, 0x58, 0x47, 0x45, @@ -972,7 +1068,7 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x00, -0x80, +0x15, 0x00, 0x00, 0x00, @@ -1825,100 +1921,4 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, }; diff --git a/device/k2e/global-resource-list-arm-dsp.dtb b/device/k2e/global-resource-list-arm-dsp.dtb index 12ddfd3d6b61562cd450f5d8ada7dc71368c88fd..c14027b4abc69f8bbfc270ba35fb93cc332a0fe4 100644 GIT binary patch delta 89 zcmbQp_mNNF0`I@K3=Hgr3=9kwKsscifEW|I%tnnhOdP@f&hf#nAqJBZ7^TFSCIMA& k05KB~GkW@kfaQ!P^D;}Z&H@TaO+Lf)pHX!48D>{z0IbFoasU7T delta 42 ycmey!H<3@^0`I@K3=Hgo3=9kw3=C{vCJKl#vF+KYv4&}~3G;WxhRr%GuFL=py9_V@ diff --git a/device/k2e/global-resource-list-arm-dsp.dts b/device/k2e/global-resource-list-arm-dsp.dts index 0fc7e81..f17df76 100644 --- a/device/k2e/global-resource-list-arm-dsp.dts +++ b/device/k2e/global-resource-list-arm-dsp.dts @@ -58,6 +58,12 @@ INTC_QUEUE-qm1 { resource-range = <652 6>; }; + SOC_SET0_QUEUE-qm1 { + resource-range = <658 8>; + }; + INTC_SET2_QUEUE-qm1 { + resource-range = <666 26>; + }; XGE_QUEUE-qm1 { resource-range = <692 8>; }; @@ -71,7 +77,7 @@ resource-range = <800 32>; }; PASS_QUEUE-qm1 { - resource-range = <896 128>; + resource-range = <896 21>; }; GENERAL_PURPOSE_QUEUE-qm1 { resource-range = <1024 7168>; diff --git a/device/k2e/global-resource-list.c b/device/k2e/global-resource-list.c index a8d2ea7..a709b7a 100644 --- a/device/k2e/global-resource-list.c +++ b/device/k2e/global-resource-list.c @@ -7,16 +7,16 @@ const char rmGlobalResourceList[] = { 0xed, 0x00, 0x00, -0x06, -0xdf, +0x07, +0x3f, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, -0x06, -0xd0, +0x07, +0x30, 0x00, 0x00, 0x00, @@ -40,7 +40,7 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x06, -0x98, +0xf8, 0x00, 0x00, 0x00, @@ -689,6 +689,102 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x01, +0x53, +0x4f, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x30, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x92, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x32, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x9a, +0x00, +0x00, +0x00, +0x1a, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, 0x58, 0x47, 0x45, @@ -936,7 +1032,7 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x00, -0x80, +0x15, 0x00, 0x00, 0x00, @@ -1793,4 +1889,36 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, }; diff --git a/device/k2e/global-resource-list.dtb b/device/k2e/global-resource-list.dtb index 7c10ce51861af29b2722a39fffd845ba4eb9fc0a..5b2e90e91992688559ce974541b009e35f551085 100644 GIT binary patch delta 109 zcmcc5yPr?s0`I@K3=Hh{3=9kwK-yrUfH>oijT#+H9Krt1@xiVk29s?VrOcQn0Tpln yF%u9odisTc<&5G3LtR5%bqjM1fx-;TKnzj?1WdDlgw*5}O#c~0H?LqeX9fUfcNX{n delta 41 wcmdnbcb`|_0`I@K3=C}d85kHWfb@ll0^*D_HfnS*O%`DO&e*V-gT; }; + SOC_SET0_QUEUE-qm1 { + resource-range = <658 8>; + }; + INTC_SET2_QUEUE-qm1 { + resource-range = <666 26>; + }; XGE_QUEUE-qm1 { resource-range = <692 8>; }; @@ -68,7 +74,7 @@ resource-range = <800 32>; }; PASS_QUEUE-qm1 { - resource-range = <896 128>; + resource-range = <896 21>; }; GENERAL_PURPOSE_QUEUE-qm1 { resource-range = <1024 7168>; diff --git a/device/k2e/policy_dsp-only.c b/device/k2e/policy_dsp-only.c index c33312c..d920305 100644 --- a/device/k2e/policy_dsp-only.c +++ b/device/k2e/policy_dsp-only.c @@ -8,15 +8,15 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x09, -0x00, +0x78, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, -0x08, -0xe4, +0x09, +0x5c, 0x00, 0x00, 0x00, @@ -39,8 +39,8 @@ const char rmDspOnlyPolicy[] = { 0x1c, 0x00, 0x00, -0x08, -0xac, +0x09, +0x24, 0x00, 0x00, 0x00, @@ -957,6 +957,126 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x01, +0x53, +0x4f, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x30, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x11, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x02, +0x92, +0x00, +0x00, +0x00, +0x08, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x32, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x11, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x02, +0x9a, +0x00, +0x00, +0x00, +0x1a, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, 0x58, 0x47, 0x45, @@ -1252,7 +1372,7 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x00, -0x80, +0x15, 0x69, 0x75, 0x20, @@ -2313,124 +2433,4 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, }; diff --git a/device/k2e/policy_dsp-only.dtb b/device/k2e/policy_dsp-only.dtb index 0fad06b02e85a129c7fe11fd2edd2bbaadedab93..db752299e3fb5825d5ca1d2fcc174962204de4b3 100644 GIT binary patch delta 110 zcmZn=`XMB6f%o5A1_sUw1_lNTARRMNK#Yk~WuwLvW|d%n=lEdP5QF%@P}fjb-NIZ$ zpdtnaW*`;>VgUvQrb&|(I3zed{X)PhjV3d)NU_cW%1KRpAhLN6vpOTAD2Vlgg@XkE Dkk1*c delta 46 zcmew%)F32qf%o5A1_n+BAh2Ly;CM1oK#YlF%|?wW%$rSE)EOBYCO#0^T)@h~0suDh B49oxk diff --git a/device/k2e/policy_dsp-only.dts b/device/k2e/policy_dsp-only.dts index 017c74d..3b7e278 100644 --- a/device/k2e/policy_dsp-only.dts +++ b/device/k2e/policy_dsp-only.dts @@ -63,6 +63,12 @@ INTC_QUEUE-qm1 { assignments = <652 6>, "iu = (*)"; }; + SOC_SET0_QUEUE-qm1 { + assignments = <658 8>, "iu = (*)"; + }; + INTC_SET2_QUEUE-qm1 { + assignments = <666 26>, "iu = (*)"; + }; XGE_QUEUE-qm1 { assignments = <692 8>, "iu = (*)"; }; @@ -76,7 +82,7 @@ assignments = <800 32>, "iu = (*)"; }; PASS_QUEUE-qm1 { - assignments = <896 128>, "iu = (*)"; + assignments = <896 21>, "iu = (*)"; }; GENERAL_PURPOSE_QUEUE-qm1 { assignments = <1024 7168>, "iu = (*)"; diff --git a/device/k2e/policy_dsp_arm.c b/device/k2e/policy_dsp_arm.c index 45b4168..5be3ba6 100644 --- a/device/k2e/policy_dsp_arm.c +++ b/device/k2e/policy_dsp_arm.c @@ -8,15 +8,15 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x0b, -0x18, +0x90, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, -0x0a, -0xfc, +0x0b, +0x74, 0x00, 0x00, 0x00, @@ -39,8 +39,8 @@ const char rmDspPlusArmPolicy[] = { 0x1c, 0x00, 0x00, -0x0a, -0xc4, +0x0b, +0x3c, 0x00, 0x00, 0x00, @@ -1013,6 +1013,126 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x01, +0x53, +0x4f, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x30, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x11, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x02, +0x92, +0x00, +0x00, +0x00, +0x08, +0x20, +0x20, +0x20, +0x20, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x32, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x11, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x02, +0x9a, +0x00, +0x00, +0x00, +0x1a, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, 0x58, 0x47, 0x45, @@ -1284,7 +1404,7 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x00, -0x0c, +0x02, 0x28, 0x2a, 0x29, @@ -1292,11 +1412,11 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x03, -0x2c, +0x22, 0x00, 0x00, 0x00, -0x14, +0x1e, 0x69, 0x75, 0x20, @@ -1352,7 +1472,7 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x00, -0x80, +0x15, 0x69, 0x75, 0x20, @@ -2945,4 +3065,12 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, }; diff --git a/device/k2e/policy_dsp_arm.dtb b/device/k2e/policy_dsp_arm.dtb index 7aeca58cc68b591a1d436a78be39875effea5183..934bf5b5f1f87c7d2a6b7c4327714839ca13f7e7 100644 GIT binary patch delta 143 zcmbOsHbGqA0`I@K3=G^87#J8VfON@30Wl_Sn~fT0m^p&|o#TUDLkuP#V3u~A1XRGG z00J6Xnm{%PFaa^6r(XzInNfUTsB5UJZegw=NRAnZ1%X%qsB9LHmfHM)S(%ZS38I@> W2`D5tS%B4?QFP)1k}G;4y!U_!{!657gzxnHV|?E diff --git a/device/k2e/policy_dsp_arm.dts b/device/k2e/policy_dsp_arm.dts index 56678b0..9ee8827 100644 --- a/device/k2e/policy_dsp_arm.dts +++ b/device/k2e/policy_dsp_arm.dts @@ -71,8 +71,14 @@ INTC_QUEUE-qm1 { assignments = <652 6>, "iu = (*)"; /* Used by Kernel and DSP */ }; - XGE_QUEUE-qm1 { - assignments = <692 8>, "iu = (*)"; + SOC_SET0_QUEUE-qm1 { + assignments = <658 8>, " (*)"; /* Used by Kernel */ + }; + INTC_SET2_QUEUE-qm1 { + assignments = <666 26>, "iu = (*)"; + }; + XGE_QUEUE-qm1 { + assignments = <692 8>, "iu = (*)"; /* Used by Kernel and DSP */ }; HIGH_PRIORITY_QUEUE-qm1 { /* this is loosely coupled with accumulator-ch channels 0-15. These queues are @@ -86,11 +92,11 @@ assignments = <736 64>, "iu = (*)"; }; INFRASTRUCTURE_QUEUE-qm1 { - assignments = <800 12>, "(*)", /* Used by Kernel */ - <812 20>, "iu = (*)"; + assignments = <800 2>, "(*)", /* Used by Kernel */ + <802 30>, "iu = (*)"; }; PASS_QUEUE-qm1 { - assignments = <896 128>, "iu = (*)"; /* used by both kernel and DSP */ + assignments = <896 21>, "iu = (*)"; /* used by both kernel and DSP */ }; GENERAL_PURPOSE_QUEUE-qm1 { assignments = <1024 2976>, "iu = (*)", diff --git a/device/k2l/global-resource-list-arm-dsp.c b/device/k2l/global-resource-list-arm-dsp.c index 3cff519..4bf1733 100644 --- a/device/k2l/global-resource-list-arm-dsp.c +++ b/device/k2l/global-resource-list-arm-dsp.c @@ -7,16 +7,16 @@ const char rmGlobalResourceList[] = { 0xed, 0x00, 0x00, -0x08, -0xe5, +0x0a, +0xad, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, -0x08, -0xc8, +0x0a, +0x90, 0x00, 0x00, 0x00, @@ -39,8 +39,8 @@ const char rmGlobalResourceList[] = { 0x1d, 0x00, 0x00, -0x08, -0x90, +0x0a, +0x58, 0x00, 0x00, 0x00, @@ -533,6 +533,462 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x45, +0x44, +0x4d, +0x41, +0x5f, +0x53, +0x45, +0x54, +0x30, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x0e, +0x00, +0x00, +0x02, +0x4d, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x45, +0x44, +0x4d, +0x41, +0x5f, +0x53, +0x45, +0x54, +0x31, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x0e, +0x00, +0x00, +0x02, +0x4f, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x35, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x0e, +0x00, +0x00, +0x02, +0x57, +0x00, +0x00, +0x00, +0x04, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x45, +0x44, +0x4d, +0x41, +0x5f, +0x53, +0x45, +0x54, +0x32, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x0e, +0x00, +0x00, +0x02, +0x5b, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x32, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x0e, +0x00, +0x00, +0x02, +0x5d, +0x00, +0x00, +0x00, +0x20, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x53, +0x4f, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x30, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x0e, +0x00, +0x00, +0x02, +0x7d, +0x00, +0x00, +0x00, +0x0f, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x33, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x0e, +0x00, +0x00, +0x02, +0x8c, +0x00, +0x00, +0x00, +0x06, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x53, +0x4f, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x31, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x0e, +0x00, +0x00, +0x02, +0x92, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x34, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x0e, +0x00, +0x00, +0x02, +0x9a, +0x00, +0x00, +0x00, +0x16, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, 0x46, 0x46, 0x54, @@ -920,7 +1376,7 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x00, -0x80, +0x15, 0x00, 0x00, 0x00, @@ -2305,4 +2761,60 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, }; diff --git a/device/k2l/global-resource-list-arm-dsp.dtb b/device/k2l/global-resource-list-arm-dsp.dtb index 45896e7778f061dc693590f7ff3ebe1f37927085..abe355a2e8424f1a31caeef4bc8401478d0586a6 100644 GIT binary patch delta 293 zcmaDVxK>o)0`I@K3=CXr85kHWfb@ik0%A;D5gRq$F!Fl(g*eB%y7)TA2fKz$?q!sd z_64e9f?`G#X~W5VjIv_>KsgQ+d7w_y$!nRUq{D&2EGSYila0VyqoHyj;~_=^wHkr6 zipBzk6rj?K!T!!5=NL>*V3ZPPss#%3!=%6t0?HYKb@c#+*; }; + INTC_EDMA_SET0_QUEUE-qm1 { + resource-range = <589 2>; + }; + INTC_EDMA_SET1_QUEUE-qm1 { + resource-range = <591 8>; + }; + INTC_SET5_QUEUE-qm1 { + resource-range = <599 4>; + }; + INTC_EDMA_SET2_QUEUE-qm1 { + resource-range = <603 2>; + }; + INTC_SET2_QUEUE-qm1 { + resource-range = <605 32>; + }; + SOC_SET0_QUEUE-qm1 { + resource-range = <637 15>; + }; + INTC_SET3_QUEUE-qm1 { + resource-range = <652 6>; + }; + SOC_SET1_QUEUE-qm1 { + resource-range = <658 8>; + }; + INTC_SET4_QUEUE-qm1 { + resource-range = <666 22>; + }; FFTC_A_QUEUE-qm1 { resource-range = <688 4>; }; @@ -68,7 +95,7 @@ resource-range = <832 48>; }; PASS_QUEUE-qm1 { - resource-range = <896 128>; + resource-range = <896 21>; }; GENERAL_PURPOSE_QUEUE-qm1 { resource-range = <1024 7168>; diff --git a/device/k2l/global-resource-list.c b/device/k2l/global-resource-list.c index dab37b8..938765d 100644 --- a/device/k2l/global-resource-list.c +++ b/device/k2l/global-resource-list.c @@ -7,16 +7,16 @@ const char rmGlobalResourceList[] = { 0xed, 0x00, 0x00, -0x08, -0xb3, +0x0a, +0x7b, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, -0x08, -0xa4, +0x0a, +0x6c, 0x00, 0x00, 0x00, @@ -39,8 +39,8 @@ const char rmGlobalResourceList[] = { 0x0f, 0x00, 0x00, -0x08, -0x6c, +0x0a, +0x34, 0x00, 0x00, 0x00, @@ -144,23 +144,463 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x00, -0x03, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x01, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x6c, +0x69, +0x6e, +0x6b, +0x72, +0x61, +0x6d, +0x2d, +0x69, +0x6e, +0x74, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x40, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x6c, +0x69, +0x6e, +0x6b, +0x72, +0x61, +0x6d, +0x2d, +0x65, +0x78, +0x74, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x40, +0x00, +0x00, +0x07, +0xc0, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x6d, +0x65, +0x6d, +0x6f, +0x72, +0x79, +0x2d, +0x72, +0x65, +0x67, +0x69, +0x6f, +0x6e, +0x73, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x40, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x4c, +0x4f, +0x57, +0x5f, +0x50, +0x52, +0x49, +0x4f, +0x52, +0x49, +0x54, +0x59, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x47, +0x49, +0x43, +0x34, +0x30, +0x30, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x10, +0x00, +0x00, +0x00, +0x20, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x45, +0x44, +0x4d, +0x41, +0x5f, +0x30, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x30, +0x00, +0x00, +0x00, +0x06, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x3a, +0x00, +0x00, +0x00, +0x12, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x45, +0x44, +0x4d, +0x41, +0x5f, +0x53, +0x45, +0x54, +0x30, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x08, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x4d, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x45, +0x44, +0x4d, +0x41, +0x5f, +0x53, +0x45, +0x54, +0x31, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, 0x00, 0x00, 0x00, -0x08, +0x03, +0x00, 0x00, 0x00, +0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x02, +0x4f, 0x00, 0x00, 0x00, -0x01, +0x08, 0x00, 0x00, 0x00, @@ -169,17 +609,21 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x01, -0x6c, -0x69, -0x6e, -0x6b, -0x72, -0x61, -0x6d, -0x2d, -0x69, -0x6e, -0x74, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x35, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, 0x2d, 0x71, 0x6d, @@ -199,12 +643,12 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x00, +0x02, +0x57, 0x00, 0x00, 0x00, -0x00, -0x40, -0x00, +0x04, 0x00, 0x00, 0x00, @@ -213,17 +657,26 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x01, -0x6c, -0x69, -0x6e, -0x6b, -0x72, -0x61, -0x6d, -0x2d, -0x65, -0x78, -0x74, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x45, +0x44, +0x4d, +0x41, +0x5f, +0x53, +0x45, +0x54, +0x32, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, 0x2d, 0x71, 0x6d, @@ -232,6 +685,9 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x00, +0x00, +0x00, +0x00, 0x03, 0x00, 0x00, @@ -243,12 +699,12 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x00, -0x40, +0x02, +0x5b, 0x00, 0x00, -0x07, -0xc0, 0x00, +0x02, 0x00, 0x00, 0x00, @@ -257,20 +713,21 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x01, -0x6d, -0x65, -0x6d, -0x6f, -0x72, -0x79, -0x2d, -0x72, -0x65, -0x67, -0x69, -0x6f, -0x6e, -0x73, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x32, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, 0x2d, 0x71, 0x6d, @@ -279,7 +736,6 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x00, -0x00, 0x03, 0x00, 0x00, @@ -291,12 +747,12 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x00, +0x02, +0x5d, 0x00, 0x00, 0x00, -0x00, -0x00, -0x40, +0x20, 0x00, 0x00, 0x00, @@ -305,18 +761,14 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x01, -0x4c, +0x53, 0x4f, -0x57, +0x43, 0x5f, -0x50, -0x52, -0x49, -0x4f, -0x52, -0x49, +0x53, +0x45, 0x54, -0x59, +0x30, 0x5f, 0x51, 0x55, @@ -343,12 +795,12 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x00, +0x02, +0x7d, 0x00, 0x00, 0x00, -0x00, -0x02, -0x00, +0x0f, 0x00, 0x00, 0x00, @@ -357,12 +809,15 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x01, -0x47, 0x49, +0x4e, +0x54, 0x43, -0x34, -0x30, -0x30, +0x5f, +0x53, +0x45, +0x54, +0x33, 0x5f, 0x51, 0x55, @@ -377,9 +832,6 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x00, -0x00, -0x00, -0x00, 0x03, 0x00, 0x00, @@ -392,11 +844,11 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x02, -0x10, +0x8c, 0x00, 0x00, 0x00, -0x20, +0x06, 0x00, 0x00, 0x00, @@ -405,12 +857,14 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x01, -0x45, -0x44, -0x4d, -0x41, +0x53, +0x4f, +0x43, 0x5f, -0x30, +0x53, +0x45, +0x54, +0x31, 0x5f, 0x51, 0x55, @@ -426,8 +880,6 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x00, -0x00, -0x00, 0x03, 0x00, 0x00, @@ -440,11 +892,11 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x02, -0x30, +0x92, 0x00, 0x00, 0x00, -0x06, +0x08, 0x00, 0x00, 0x00, @@ -458,6 +910,11 @@ const char rmGlobalResourceList[] = { 0x54, 0x43, 0x5f, +0x53, +0x45, +0x54, +0x34, +0x5f, 0x51, 0x55, 0x45, @@ -471,7 +928,6 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x00, -0x00, 0x03, 0x00, 0x00, @@ -484,11 +940,11 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x02, -0x3a, +0x9a, 0x00, 0x00, 0x00, -0x12, +0x16, 0x00, 0x00, 0x00, @@ -884,7 +1340,7 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x00, -0x80, +0x15, 0x00, 0x00, 0x00, @@ -2233,76 +2689,4 @@ const char rmGlobalResourceList[] = { 0x00, 0x00, 0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, }; diff --git a/device/k2l/global-resource-list.dtb b/device/k2l/global-resource-list.dtb index 4fee545d2dbb87f6ca6c5c31eb335e488ccfbd5d..195b40985de921b88eefc7b65b774d4b8c59364a 100644 GIT binary patch delta 377 zcmdli_*+Ea0`I@K3=CY=3=9kwKssllfEW{($wrM6jJ%$HAusd9;nkaJ}}fZ)K#}I*AOVhzzkIbQWg#*SU?OQMm5g} zWS(m@R1P5zG|vdPd9gtC3Q#?a!T!!5hZ{_`VU%)Xss#%3!=%7Y2g(`aHmV1xmJOyJ kYLp?!C^M!>Kw%7Dn&38S7Ery|<`<0JjEth2OPK9h0bYtfGXMYp delta 43 ycmew@vRP2z0`I@K3=ABb85kHWfb^1y0%A-YIU6-jFmB$#+|0<>u-S&yo)rKsISj=B diff --git a/device/k2l/global-resource-list.dts b/device/k2l/global-resource-list.dts index aa4f793..d146d7f 100644 --- a/device/k2l/global-resource-list.dts +++ b/device/k2l/global-resource-list.dts @@ -43,6 +43,33 @@ INTC_QUEUE-qm1 { resource-range = <570 18>; }; + INTC_EDMA_SET0_QUEUE-qm1 { + resource-range = <589 2>; + }; + INTC_EDMA_SET1_QUEUE-qm1 { + resource-range = <591 8>; + }; + INTC_SET5_QUEUE-qm1 { + resource-range = <599 4>; + }; + INTC_EDMA_SET2_QUEUE-qm1 { + resource-range = <603 2>; + }; + INTC_SET2_QUEUE-qm1 { + resource-range = <605 32>; + }; + SOC_SET0_QUEUE-qm1 { + resource-range = <637 15>; + }; + INTC_SET3_QUEUE-qm1 { + resource-range = <652 6>; + }; + SOC_SET1_QUEUE-qm1 { + resource-range = <658 8>; + }; + INTC_SET4_QUEUE-qm1 { + resource-range = <666 22>; + }; FFTC_A_QUEUE-qm1 { resource-range = <688 4>; }; @@ -65,7 +92,7 @@ resource-range = <832 48>; }; PASS_QUEUE-qm1 { - resource-range = <896 128>; + resource-range = <896 21>; }; GENERAL_PURPOSE_QUEUE-qm1 { resource-range = <1024 7168>; diff --git a/device/k2l/policy_dsp-only.c b/device/k2l/policy_dsp-only.c index ee3ea1e..c6bb028 100644 --- a/device/k2l/policy_dsp-only.c +++ b/device/k2l/policy_dsp-only.c @@ -7,16 +7,16 @@ const char rmDspOnlyPolicy[] = { 0xed, 0x00, 0x00, -0x0b, -0x58, +0x0d, +0x8c, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, -0x0b, -0x3c, +0x0d, +0x70, 0x00, 0x00, 0x00, @@ -39,8 +39,8 @@ const char rmDspOnlyPolicy[] = { 0x1c, 0x00, 0x00, -0x0b, -0x04, +0x0d, +0x38, 0x00, 0x00, 0x00, @@ -282,9 +282,557 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x00, -0x00, -0x00, -0x01, +0x00, +0x00, +0x01, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x6c, +0x69, +0x6e, +0x6b, +0x72, +0x61, +0x6d, +0x2d, +0x69, +0x6e, +0x74, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x11, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x40, +0x00, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x6c, +0x69, +0x6e, +0x6b, +0x72, +0x61, +0x6d, +0x2d, +0x65, +0x78, +0x74, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x11, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x40, +0x00, +0x00, +0x07, +0xc0, +0x00, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x6d, +0x65, +0x6d, +0x6f, +0x72, +0x79, +0x2d, +0x72, +0x65, +0x67, +0x69, +0x6f, +0x6e, +0x73, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x11, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x40, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x4c, +0x4f, +0x57, +0x5f, +0x50, +0x52, +0x49, +0x4f, +0x52, +0x49, +0x54, +0x59, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x11, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x47, +0x49, +0x43, +0x34, +0x30, +0x30, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x11, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x02, +0x10, +0x00, +0x00, +0x00, +0x20, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x45, +0x44, +0x4d, +0x41, +0x5f, +0x30, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x11, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x02, +0x30, +0x00, +0x00, +0x00, +0x06, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x11, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x02, +0x3a, +0x00, +0x00, +0x00, +0x12, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x45, +0x44, +0x4d, +0x41, +0x5f, +0x53, +0x45, +0x54, +0x30, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x11, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x02, +0x4d, +0x00, +0x00, +0x00, +0x02, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x45, +0x44, +0x4d, +0x41, +0x5f, +0x53, +0x45, +0x54, +0x31, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x11, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x02, +0x4f, +0x00, +0x00, +0x00, +0x08, 0x69, 0x75, 0x20, @@ -305,17 +853,21 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x01, -0x6c, -0x69, -0x6e, -0x6b, -0x72, -0x61, -0x6d, -0x2d, -0x69, -0x6e, -0x74, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x35, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, 0x2d, 0x71, 0x6d, @@ -335,12 +887,12 @@ const char rmDspOnlyPolicy[] = { 0x10, 0x00, 0x00, +0x02, +0x57, 0x00, 0x00, 0x00, -0x00, -0x40, -0x00, +0x04, 0x69, 0x75, 0x20, @@ -361,17 +913,26 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x01, -0x6c, -0x69, -0x6e, -0x6b, -0x72, -0x61, -0x6d, -0x2d, -0x65, -0x78, -0x74, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x45, +0x44, +0x4d, +0x41, +0x5f, +0x53, +0x45, +0x54, +0x32, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, 0x2d, 0x71, 0x6d, @@ -380,6 +941,9 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x00, +0x00, +0x00, +0x00, 0x03, 0x00, 0x00, @@ -391,12 +955,12 @@ const char rmDspOnlyPolicy[] = { 0x10, 0x00, 0x00, -0x40, +0x02, +0x5b, 0x00, 0x00, -0x07, -0xc0, 0x00, +0x02, 0x69, 0x75, 0x20, @@ -417,20 +981,21 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x01, -0x6d, -0x65, -0x6d, -0x6f, -0x72, -0x79, -0x2d, -0x72, -0x65, -0x67, -0x69, -0x6f, -0x6e, -0x73, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x32, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, 0x2d, 0x71, 0x6d, @@ -439,7 +1004,6 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x00, -0x00, 0x03, 0x00, 0x00, @@ -451,12 +1015,12 @@ const char rmDspOnlyPolicy[] = { 0x10, 0x00, 0x00, +0x02, +0x5d, 0x00, 0x00, 0x00, -0x00, -0x00, -0x40, +0x20, 0x69, 0x75, 0x20, @@ -477,18 +1041,14 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x01, -0x4c, +0x53, 0x4f, -0x57, +0x43, 0x5f, -0x50, -0x52, -0x49, -0x4f, -0x52, -0x49, +0x53, +0x45, 0x54, -0x59, +0x30, 0x5f, 0x51, 0x55, @@ -515,12 +1075,12 @@ const char rmDspOnlyPolicy[] = { 0x10, 0x00, 0x00, +0x02, +0x7d, 0x00, 0x00, 0x00, -0x00, -0x02, -0x00, +0x0f, 0x69, 0x75, 0x20, @@ -541,12 +1101,15 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x01, -0x47, 0x49, +0x4e, +0x54, 0x43, -0x34, -0x30, -0x30, +0x5f, +0x53, +0x45, +0x54, +0x33, 0x5f, 0x51, 0x55, @@ -561,9 +1124,6 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x00, -0x00, -0x00, -0x00, 0x03, 0x00, 0x00, @@ -576,11 +1136,11 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x02, -0x10, +0x8c, 0x00, 0x00, 0x00, -0x20, +0x06, 0x69, 0x75, 0x20, @@ -601,12 +1161,14 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x01, -0x45, -0x44, -0x4d, -0x41, +0x53, +0x4f, +0x43, 0x5f, -0x30, +0x53, +0x45, +0x54, +0x31, 0x5f, 0x51, 0x55, @@ -622,8 +1184,6 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x00, -0x00, -0x00, 0x03, 0x00, 0x00, @@ -636,11 +1196,11 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x02, -0x30, +0x92, 0x00, 0x00, 0x00, -0x06, +0x08, 0x69, 0x75, 0x20, @@ -666,6 +1226,11 @@ const char rmDspOnlyPolicy[] = { 0x54, 0x43, 0x5f, +0x53, +0x45, +0x54, +0x34, +0x5f, 0x51, 0x55, 0x45, @@ -679,7 +1244,6 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x00, -0x00, 0x03, 0x00, 0x00, @@ -692,11 +1256,11 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x02, -0x3a, +0x9a, 0x00, 0x00, 0x00, -0x12, +0x16, 0x69, 0x75, 0x20, @@ -1188,7 +1752,7 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x00, -0x80, +0x15, 0x69, 0x75, 0x20, @@ -2945,4 +3509,80 @@ const char rmDspOnlyPolicy[] = { 0x00, 0x00, 0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, }; diff --git a/device/k2l/policy_dsp-only.dtb b/device/k2l/policy_dsp-only.dtb index a0a26b1941bfd643e23a47ffa73a125df0745d86..a97d9045fc5dccaf2bb6ba9d4d4c1491d3860968 100644 GIT binary patch delta 287 zcmca1)*~%&f%o5A1_s_91_lNTAYCv~K#YmkVxz_qCSFg!5a)PT7hlKtVAqhzicE5> zzCcw>lN*>MIbp(vljE3VS^a_H93XKPpi0xpzATbVOyQG1FiG&Cm|+A~91SxBq}T|e zICioFlY~aFzca`xgZRKu*HBm8!dye3QU(TQAQl8-0iflzK$;(BlQBp$8xzRwY!e@d m!1Np9(LV{O7Vc6Li2hkXF)^V2&1aadGct;TSUXr2umJ$W1wY&X delta 45 zcmeB?z9A-Xf%o5A1_tg31_lNTAZ;^IK#Yl-WuwLtrcJEZ85tWUJ`mabhHU{G03?GA AcK`qY diff --git a/device/k2l/policy_dsp-only.dts b/device/k2l/policy_dsp-only.dts index bf13791..d125650 100644 --- a/device/k2l/policy_dsp-only.dts +++ b/device/k2l/policy_dsp-only.dts @@ -51,6 +51,33 @@ INTC_QUEUE-qm1 { assignments = <570 18>, "iu = (*)"; }; + INTC_EDMA_SET0_QUEUE-qm1 { + assignments = <589 2>, "iu = (*)"; + }; + INTC_EDMA_SET1_QUEUE-qm1 { + assignments = <591 8>, "iu = (*)"; + }; + INTC_SET5_QUEUE-qm1 { + assignments = <599 4>, "iu = (*)"; + }; + INTC_EDMA_SET2_QUEUE-qm1 { + assignments = <603 2>, "iu = (*)"; + }; + INTC_SET2_QUEUE-qm1 { + assignments = <605 32>, "iu = (*)"; + }; + SOC_SET0_QUEUE-qm1 { + assignments = <637 15>, "iu = (*)"; + }; + INTC_SET3_QUEUE-qm1 { + assignments = <652 6>, "iu = (*)"; + }; + SOC_SET1_QUEUE-qm1 { + assignments = <658 8>, "iu = (*)"; + }; + INTC_SET4_QUEUE-qm1 { + assignments = <666 22>, "iu = (*)"; + }; FFTC_A_QUEUE-qm1 { assignments = <688 4>, "iu = (*)"; }; @@ -73,7 +100,7 @@ assignments = <832 48>, "iu = (*)"; }; PASS_QUEUE-qm1 { - assignments = <896 128>, "iu = (*)"; + assignments = <896 21>, "iu = (*)"; }; GENERAL_PURPOSE_QUEUE-qm1 { assignments = <1024 7168>, "iu = (*)"; diff --git a/device/k2l/policy_dsp_arm.c b/device/k2l/policy_dsp_arm.c index 955edd9..182a68c 100644 --- a/device/k2l/policy_dsp_arm.c +++ b/device/k2l/policy_dsp_arm.c @@ -7,16 +7,16 @@ const char rmDspPlusArmPolicy[] = { 0xed, 0x00, 0x00, -0x0d, -0x70, +0x0f, +0xa4, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, -0x0d, -0x54, +0x0f, +0x88, 0x00, 0x00, 0x00, @@ -39,8 +39,8 @@ const char rmDspPlusArmPolicy[] = { 0x1c, 0x00, 0x00, -0x0d, -0x1c, +0x0f, +0x50, 0x00, 0x00, 0x00, @@ -444,23 +444,579 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x00, -0x03, +0x03, +0x00, +0x00, +0x00, +0x2e, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x0c, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x0c, +0x00, +0x00, +0x00, +0x03, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x0f, +0x00, +0x00, +0x00, +0x31, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x4c, +0x4f, +0x57, +0x5f, +0x50, +0x52, +0x49, +0x4f, +0x52, +0x49, +0x54, +0x59, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x33, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x80, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x80, +0x00, +0x00, +0x00, +0x80, +0x20, +0x20, +0x20, +0x20, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x01, +0x00, +0x00, +0x00, +0x01, +0x00, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x47, +0x49, +0x43, +0x34, +0x30, +0x30, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x0c, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x02, +0x10, +0x00, +0x00, +0x00, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x45, +0x44, +0x4d, +0x41, +0x5f, +0x30, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x11, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x02, +0x30, +0x00, +0x00, +0x00, +0x06, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x11, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x02, +0x3a, +0x00, +0x00, +0x00, +0x12, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x45, +0x44, +0x4d, +0x41, +0x5f, +0x53, +0x45, +0x54, +0x30, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x11, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x02, +0x4d, +0x00, +0x00, +0x00, +0x02, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x45, +0x44, +0x4d, +0x41, +0x5f, +0x53, +0x45, +0x54, +0x31, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x11, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x02, +0x4f, +0x00, +0x00, +0x00, +0x08, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x35, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x03, +0x00, +0x00, +0x00, +0x11, +0x00, +0x00, +0x00, +0x10, +0x00, +0x00, +0x02, +0x57, +0x00, +0x00, +0x00, +0x04, +0x69, +0x75, +0x20, +0x3d, +0x20, +0x28, +0x2a, +0x29, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x45, +0x44, +0x4d, +0x41, +0x5f, +0x53, +0x45, +0x54, +0x32, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, +0x00, +0x00, +0x00, +0x00, 0x00, 0x00, +0x03, 0x00, -0x2e, 0x00, 0x00, +0x11, 0x00, -0x10, 0x00, 0x00, +0x10, 0x00, 0x00, +0x02, +0x5b, 0x00, 0x00, 0x00, -0x0c, +0x02, 0x69, 0x75, 0x20, @@ -473,23 +1029,54 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x00, -0x0c, +0x00, +0x00, +0x00, +0x02, +0x00, +0x00, +0x00, +0x01, +0x49, +0x4e, +0x54, +0x43, +0x5f, +0x53, +0x45, +0x54, +0x32, +0x5f, +0x51, +0x55, +0x45, +0x55, +0x45, +0x2d, +0x71, +0x6d, +0x31, +0x00, 0x00, 0x00, 0x00, 0x03, -0x28, -0x2a, -0x29, 0x00, 0x00, 0x00, +0x11, +0x00, 0x00, -0x0f, 0x00, +0x10, 0x00, 0x00, -0x31, +0x02, +0x5d, +0x00, +0x00, +0x00, +0x20, 0x69, 0x75, 0x20, @@ -504,23 +1091,20 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x00, +0x00, 0x02, 0x00, 0x00, 0x00, 0x01, -0x4c, +0x53, 0x4f, -0x57, +0x43, 0x5f, -0x50, -0x52, -0x49, -0x4f, -0x52, -0x49, +0x53, +0x45, 0x54, -0x59, +0x30, 0x5f, 0x51, 0x55, @@ -540,19 +1124,19 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x00, -0x33, +0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, +0x02, +0x7d, 0x00, 0x00, 0x00, -0x00, -0x00, -0x80, +0x0f, 0x69, 0x75, 0x20, @@ -565,38 +1149,6 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x00, -0x80, -0x00, -0x00, -0x00, -0x80, -0x20, -0x20, -0x20, -0x20, -0x20, -0x28, -0x2a, -0x29, -0x00, -0x00, -0x00, -0x01, -0x00, -0x00, -0x00, -0x01, -0x00, -0x69, -0x75, -0x20, -0x3d, -0x20, -0x28, -0x2a, -0x29, -0x00, -0x00, 0x00, 0x00, 0x00, @@ -605,12 +1157,15 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x01, -0x47, 0x49, +0x4e, +0x54, 0x43, -0x34, -0x30, -0x30, +0x5f, +0x53, +0x45, +0x54, +0x33, 0x5f, 0x51, 0x55, @@ -625,14 +1180,11 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x00, -0x00, -0x00, -0x00, 0x03, 0x00, 0x00, 0x00, -0x0c, +0x11, 0x00, 0x00, 0x00, @@ -640,10 +1192,15 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x02, -0x10, +0x8c, 0x00, 0x00, 0x00, +0x06, +0x69, +0x75, +0x20, +0x3d, 0x20, 0x28, 0x2a, @@ -652,17 +1209,22 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x00, +0x00, +0x00, +0x00, 0x02, 0x00, 0x00, 0x00, 0x01, -0x45, -0x44, -0x4d, -0x41, +0x53, +0x4f, +0x43, 0x5f, -0x30, +0x53, +0x45, +0x54, +0x31, 0x5f, 0x51, 0x55, @@ -678,8 +1240,6 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x00, -0x00, -0x00, 0x03, 0x00, 0x00, @@ -692,15 +1252,15 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x02, -0x30, +0x92, 0x00, 0x00, 0x00, -0x06, -0x69, -0x75, +0x08, +0x20, +0x20, +0x20, 0x20, -0x3d, 0x20, 0x28, 0x2a, @@ -722,6 +1282,11 @@ const char rmDspPlusArmPolicy[] = { 0x54, 0x43, 0x5f, +0x53, +0x45, +0x54, +0x34, +0x5f, 0x51, 0x55, 0x45, @@ -735,7 +1300,6 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x00, -0x00, 0x03, 0x00, 0x00, @@ -748,11 +1312,11 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x02, -0x3a, +0x9a, 0x00, 0x00, 0x00, -0x12, +0x16, 0x69, 0x75, 0x20, @@ -1164,7 +1728,7 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x00, -0x0c, +0x08, 0x28, 0x2a, 0x29, @@ -1172,11 +1736,11 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x03, -0x2c, +0x28, 0x00, 0x00, 0x00, -0x14, +0x18, 0x69, 0x75, 0x20, @@ -1288,7 +1852,7 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x00, -0x80, +0x15, 0x69, 0x75, 0x20, @@ -3457,4 +4021,80 @@ const char rmDspPlusArmPolicy[] = { 0x00, 0x00, 0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, +0x00, }; diff --git a/device/k2l/policy_dsp_arm.dtb b/device/k2l/policy_dsp_arm.dtb index 5a631dde3d88dc3f9571199930023a253c0c3c5d..5d666bdf19a40bd8e479390ca0ac1782d8fc1f3a 100644 GIT binary patch delta 301 zcmew$wM1Uv0`I@K3=I5B7#J8VfON-10Wl{2fQ=e=n0P(?LY(7WU3?wmgIz-=Co+jm zmS^T*^#!VAn)pD34@KH=G8eNfqyOX&>=K+{37{6!$s1WDnV7;SCvZrhsx|_tW{rlL z1lM2$(!j VCeg_c*`gR5CO#0^9KasJ0RUio5q, "iu = (*)"; /* Used by Kernel and DSP */ }; + INTC_EDMA_SET0_QUEUE-qm1 { + assignments = <589 2>, "iu = (*)"; + }; + INTC_EDMA_SET1_QUEUE-qm1 { + assignments = <591 8>, "iu = (*)"; + }; + INTC_SET5_QUEUE-qm1 { + assignments = <599 4>, "iu = (*)"; + }; + INTC_EDMA_SET2_QUEUE-qm1 { + assignments = <603 2>, "iu = (*)"; + }; + INTC_SET2_QUEUE-qm1 { + assignments = <605 32>, "iu = (*)"; + }; + SOC_SET0_QUEUE-qm1 { + assignments = <637 15>, "iu = (*)"; + }; + INTC_SET3_QUEUE-qm1 { + assignments = <652 6>, "iu = (*)"; + }; + SOC_SET1_QUEUE-qm1 { + assignments = <658 8>, " (*)"; /* used by linux */ + }; + INTC_SET4_QUEUE-qm1 { + assignments = <666 22>, "iu = (*)"; + }; FFTC_A_QUEUE-qm1 { assignments = <688 4>, "iu = (*)"; }; @@ -80,14 +107,14 @@ assignments = <736 64>, "iu = (*)"; }; INFRASTRUCTURE_QUEUE-qm1 { - assignments = <800 12>, "(*)", /* Used by Kernel */ - <812 20>, "iu = (*)"; + assignments = <800 8>, "(*)", /* Used by Kernel */ + <808 24>, "iu = (*)"; }; IQNET_QUEUE-qm1 { assignments = <832 48>, "iu = (*)"; }; PASS_QUEUE-qm1 { - assignments = <896 128>, "iu = (*)"; /* used by both kernel and DSP */ + assignments = <896 21>, "iu = (*)"; /* used by both kernel and DSP */ }; GENERAL_PURPOSE_QUEUE-qm1 { assignments = <1024 2976>, "iu = (*)", diff --git a/docs/ReleaseNotes_RM.doc b/docs/ReleaseNotes_RM.doc index 1b1d0374ac50c0947cf6f6c3a5f6b2139c98fa6c..84e1128c74817da6961157453e2f15268ea8f460 100644 GIT binary patch delta 6433 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 XNr>;A)VXs)mp<*fxU+8PCANP8bKh&X diff --git a/docs/ReleaseNotes_RM.pdf b/docs/ReleaseNotes_RM.pdf index 6717b60b31d9b574b026efa8133088f1c7e860cc..1023c15319058fcd6155ade8e58f869f082d0b21 100644 GIT binary patch delta 26895 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 MWW+o?@@fkI2cSo7y#N3J delta 26186 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 -- 2.39.2