Lines Matching refs:fw
78 ssize_t qcom_mdt_get_size(const struct firmware *fw) in qcom_mdt_get_size() argument
87 ehdr = (struct elf32_hdr *)fw->data; in qcom_mdt_get_size()
126 void *qcom_mdt_read_metadata(const struct firmware *fw, size_t *data_len, in qcom_mdt_read_metadata() argument
139 ehdr = (struct elf32_hdr *)fw->data; in qcom_mdt_read_metadata()
168 memcpy(data, fw->data, ehdr_size); in qcom_mdt_read_metadata()
170 if (ehdr_size + hash_size == fw->size) { in qcom_mdt_read_metadata()
173 memcpy(data + ehdr_size, fw->data + hash_offset, hash_size); in qcom_mdt_read_metadata()
174 } else if (phdrs[hash_segment].p_offset + hash_size <= fw->size) { in qcom_mdt_read_metadata()
177 memcpy(data + ehdr_size, fw->data + hash_offset, hash_size); in qcom_mdt_read_metadata()
204 int qcom_mdt_pas_init(struct device *dev, const struct firmware *fw, in qcom_mdt_pas_init() argument
218 ehdr = (struct elf32_hdr *)fw->data; in qcom_mdt_pas_init()
234 metadata = qcom_mdt_read_metadata(fw, &metadata_len, fw_name, dev); in qcom_mdt_pas_init()
261 static int __qcom_mdt_load(struct device *dev, const struct firmware *fw, in __qcom_mdt_load() argument
277 if (!fw || !mem_region || !mem_phys || !mem_size) in __qcom_mdt_load()
280 ehdr = (struct elf32_hdr *)fw->data; in __qcom_mdt_load()
333 if (phdr->p_filesz && phdr->p_offset < fw->size && in __qcom_mdt_load()
334 phdr->p_offset + phdr->p_filesz <= fw->size) { in __qcom_mdt_load()
336 if (phdr->p_offset + phdr->p_filesz > fw->size) { in __qcom_mdt_load()
343 memcpy(ptr, fw->data + phdr->p_offset, phdr->p_filesz); in __qcom_mdt_load()
374 int qcom_mdt_load(struct device *dev, const struct firmware *fw, in qcom_mdt_load() argument
381 ret = qcom_mdt_pas_init(dev, fw, firmware, pas_id, mem_phys, NULL); in qcom_mdt_load()
385 return __qcom_mdt_load(dev, fw, firmware, pas_id, mem_region, mem_phys, in qcom_mdt_load()
403 int qcom_mdt_load_no_init(struct device *dev, const struct firmware *fw, in qcom_mdt_load_no_init() argument
408 return __qcom_mdt_load(dev, fw, firmware, pas_id, mem_region, mem_phys, in qcom_mdt_load_no_init()