Loading drivers/soc/qcom/hab/hab.c +12 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,9 @@ static struct hab_device hab_devices[] = { HAB_DEVICE_CNSTR(DEVICE_DATA1_NAME, MM_DATA_NETWORK_1, 20), HAB_DEVICE_CNSTR(DEVICE_DATA2_NAME, MM_DATA_NETWORK_2, 21), HAB_DEVICE_CNSTR(DEVICE_HSI2S1_NAME, MM_HSI2S_1, 22), HAB_DEVICE_CNSTR(DEVICE_XVM1_NAME, MM_XVM_1, 23), HAB_DEVICE_CNSTR(DEVICE_XVM2_NAME, MM_XVM_2, 24), HAB_DEVICE_CNSTR(DEVICE_XVM3_NAME, MM_XVM_3, 25), }; struct hab_driver hab_driver = { Loading Loading @@ -962,6 +965,15 @@ static int hab_generate_pchan(struct local_vmid *settings, int i, int j) HABCFG_GET_BE(settings, i, j)); } break; case MM_XVM_START/100: for (k = MM_XVM_START + 1; k < MM_XVM_END; k++) { ret += hab_initialize_pchan_entry( find_hab_device(k), settings->self, HABCFG_GET_VMID(settings, i), HABCFG_GET_BE(settings, i, j)); } break; default: pr_err("failed to find mmid %d, i %d, j %d\n", HABCFG_GET_MMID(settings, i, j), i, j); Loading drivers/soc/qcom/hab/hab.h +3 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,9 @@ enum hab_payload_type { #define DEVICE_DATA1_NAME "hab_data_network1" #define DEVICE_DATA2_NAME "hab_data_network2" #define DEVICE_HSI2S1_NAME "hab_hsi2s1" #define DEVICE_XVM1_NAME "hab_xvm1" #define DEVICE_XVM2_NAME "hab_xvm2" #define DEVICE_XVM3_NAME "hab_xvm3" /* make sure concascaded name is less than this value */ #define MAX_VMID_NAME_SIZE 30 Loading drivers/soc/qcom/hab/hab_qvm.c +3 −1 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2016-2020, The Linux Foundation. All rights reserved. * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved. */ #include "hab.h" #include "hab_qvm.h" Loading Loading @@ -34,6 +34,8 @@ static struct shmem_irq_config pchan_factory_settings[] = { {0x1b015000, 28}, {0x1b016000, 29}, {0x1b017000, 30}, {0x1b018000, 31}, {0x1b019000, 32}, }; struct qvm_plugin_info qvm_priv_info = { Loading include/uapi/linux/habmmid.h +8 −2 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ /* * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. */ #ifndef HABMMID_H #define HABMMID_H Loading Loading @@ -66,6 +66,12 @@ #define MM_HSI2S_1 1201 #define MM_HSI2S_END 1202 #define MM_ID_MAX 1203 #define MM_XVM_START 1300 #define MM_XVM_1 1301 #define MM_XVM_2 1302 #define MM_XVM_3 1303 #define MM_XVM_END 1304 #define MM_ID_MAX 1305 #endif /* HABMMID_H */ Loading
drivers/soc/qcom/hab/hab.c +12 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,9 @@ static struct hab_device hab_devices[] = { HAB_DEVICE_CNSTR(DEVICE_DATA1_NAME, MM_DATA_NETWORK_1, 20), HAB_DEVICE_CNSTR(DEVICE_DATA2_NAME, MM_DATA_NETWORK_2, 21), HAB_DEVICE_CNSTR(DEVICE_HSI2S1_NAME, MM_HSI2S_1, 22), HAB_DEVICE_CNSTR(DEVICE_XVM1_NAME, MM_XVM_1, 23), HAB_DEVICE_CNSTR(DEVICE_XVM2_NAME, MM_XVM_2, 24), HAB_DEVICE_CNSTR(DEVICE_XVM3_NAME, MM_XVM_3, 25), }; struct hab_driver hab_driver = { Loading Loading @@ -962,6 +965,15 @@ static int hab_generate_pchan(struct local_vmid *settings, int i, int j) HABCFG_GET_BE(settings, i, j)); } break; case MM_XVM_START/100: for (k = MM_XVM_START + 1; k < MM_XVM_END; k++) { ret += hab_initialize_pchan_entry( find_hab_device(k), settings->self, HABCFG_GET_VMID(settings, i), HABCFG_GET_BE(settings, i, j)); } break; default: pr_err("failed to find mmid %d, i %d, j %d\n", HABCFG_GET_MMID(settings, i, j), i, j); Loading
drivers/soc/qcom/hab/hab.h +3 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,9 @@ enum hab_payload_type { #define DEVICE_DATA1_NAME "hab_data_network1" #define DEVICE_DATA2_NAME "hab_data_network2" #define DEVICE_HSI2S1_NAME "hab_hsi2s1" #define DEVICE_XVM1_NAME "hab_xvm1" #define DEVICE_XVM2_NAME "hab_xvm2" #define DEVICE_XVM3_NAME "hab_xvm3" /* make sure concascaded name is less than this value */ #define MAX_VMID_NAME_SIZE 30 Loading
drivers/soc/qcom/hab/hab_qvm.c +3 −1 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2016-2020, The Linux Foundation. All rights reserved. * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved. */ #include "hab.h" #include "hab_qvm.h" Loading Loading @@ -34,6 +34,8 @@ static struct shmem_irq_config pchan_factory_settings[] = { {0x1b015000, 28}, {0x1b016000, 29}, {0x1b017000, 30}, {0x1b018000, 31}, {0x1b019000, 32}, }; struct qvm_plugin_info qvm_priv_info = { Loading
include/uapi/linux/habmmid.h +8 −2 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ /* * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. */ #ifndef HABMMID_H #define HABMMID_H Loading Loading @@ -66,6 +66,12 @@ #define MM_HSI2S_1 1201 #define MM_HSI2S_END 1202 #define MM_ID_MAX 1203 #define MM_XVM_START 1300 #define MM_XVM_1 1301 #define MM_XVM_2 1302 #define MM_XVM_3 1303 #define MM_XVM_END 1304 #define MM_ID_MAX 1305 #endif /* HABMMID_H */