mdt_loader.h (2179B)
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 11struct device; 12struct firmware; 13struct qcom_scm_pas_metadata; 14 15#if IS_ENABLED(CONFIG_QCOM_MDT_LOADER) 16 17ssize_t qcom_mdt_get_size(const struct firmware *fw); 18int 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); 21int 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 26int 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); 30void *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 35static inline ssize_t qcom_mdt_get_size(const struct firmware *fw) 36{ 37 return -ENODEV; 38} 39 40static 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 47static 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 55static 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 65static 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