1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __QCOM_MDT_LOADER_H__ 3 #define __QCOM_MDT_LOADER_H__ 4 5 #include <linux/types.h> 6 7 #define QCOM_MDT_TYPE_MASK (7 << 24) 8 #define QCOM_MDT_TYPE_HASH (2 << 24) 9 #define QCOM_MDT_RELOCATABLE BIT(27) 10 11 struct device; 12 struct firmware; 13 struct qcom_scm_pas_metadata; 14 15 #if IS_ENABLED(CONFIG_QCOM_MDT_LOADER) 16 17 ssize_t qcom_mdt_get_size(const struct firmware *fw); 18 int qcom_mdt_pas_init(struct device *dev, const struct firmware *fw, 19 const char *fw_name, int pas_id, phys_addr_t mem_phys, 20 struct qcom_scm_pas_metadata *pas_metadata_ctx); 21 int qcom_mdt_load(struct device *dev, const struct firmware *fw, 22 const char *fw_name, int pas_id, void *mem_region, 23 phys_addr_t mem_phys, size_t mem_size, 24 phys_addr_t *reloc_base); 25 26 int qcom_mdt_load_no_init(struct device *dev, const struct firmware *fw, 27 const char *fw_name, int pas_id, void *mem_region, 28 phys_addr_t mem_phys, size_t mem_size, 29 phys_addr_t *reloc_base); 30 void *qcom_mdt_read_metadata(const struct firmware *fw, size_t *data_len, 31 const char *fw_name, struct device *dev); 32 33 #else /* !IS_ENABLED(CONFIG_QCOM_MDT_LOADER) */ 34 35 static inline ssize_t qcom_mdt_get_size(const struct firmware *fw) 36 { 37 return -ENODEV; 38 } 39 40 static inline int qcom_mdt_pas_init(struct device *dev, const struct firmware *fw, 41 const char *fw_name, int pas_id, phys_addr_t mem_phys, 42 struct qcom_scm_pas_metadata *pas_metadata_ctx) 43 { 44 return -ENODEV; 45 } 46 47 static inline int qcom_mdt_load(struct device *dev, const struct firmware *fw, 48 const char *fw_name, int pas_id, 49 void *mem_region, phys_addr_t mem_phys, 50 size_t mem_size, phys_addr_t *reloc_base) 51 { 52 return -ENODEV; 53 } 54 55 static inline int qcom_mdt_load_no_init(struct device *dev, 56 const struct firmware *fw, 57 const char *fw_name, int pas_id, 58 void *mem_region, phys_addr_t mem_phys, 59 size_t mem_size, 60 phys_addr_t *reloc_base) 61 { 62 return -ENODEV; 63 } 64 65 static inline void *qcom_mdt_read_metadata(const struct firmware *fw, 66 size_t *data_len, const char *fw_name, 67 struct device *dev) 68 { 69 return ERR_PTR(-ENODEV); 70 } 71 72 #endif /* !IS_ENABLED(CONFIG_QCOM_MDT_LOADER) */ 73 74 #endif 75
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.