aw_bin
static void aw96103_parsing_bin_file(struct aw_bin *bin)
struct aw_bin *aw_bin)
if ((fw_ver != AW96103A) || (aw_bin->chip_type[7] != '\0'))
struct aw_bin *aw_bin_data_s)
struct aw_bin *aw_bin __free(kfree) =
kzalloc(cont->size + sizeof(*aw_bin), GFP_KERNEL);
if (!aw_bin)
aw_bin->len = cont->size;
memcpy(aw_bin->data, cont->data, cont->size);
aw96103_parsing_bin_file(aw_bin);
return aw96103_bin_valid_loaded(aw96103, aw_bin);
static int aw_check_soc_app_num(struct aw_device *aw_dev, struct aw_bin *bin, int bin_num)
static void aw_get_single_bin_header(struct aw_bin *bin)
int bin_serial_num, struct aw_bin *bin)
static int aw_get_multi_bin_header(struct aw_device *aw_dev, struct aw_bin *bin)
static int aw_parse_bin_header(struct aw_device *aw_dev, struct aw_bin *bin)
static int aw_check_bin_header_version(struct aw_device *aw_dev, struct aw_bin *bin)
static int aw_parse_bin_header(struct aw_device *aw_dev, struct aw_bin *bin);
static int aw_parsing_bin_file(struct aw_device *aw_dev, struct aw_bin *bin)
static int aw_check_sum(struct aw_device *aw_dev, struct aw_bin *bin, int bin_num)
struct aw_bin *aw_bin __free(kfree) = kzalloc(data_len + sizeof(struct aw_bin),
if (!aw_bin)
aw_bin->info.len = data_len;
memcpy(aw_bin->info.data, data, data_len);
ret = aw_parsing_bin_file(aw_dev, aw_bin);
for (i = 0; i < aw_bin->all_bin_parse_num; i++) {
switch (aw_bin->header_info[i].bin_data_type) {
aw_bin->header_info[i].valid_data_len;
data + aw_bin->header_info[i].valid_data_addr;
if (aw_bin->header_info[i].valid_data_len & 0x01)
swab16_array((u16 *)(data + aw_bin->header_info[i].valid_data_addr),
aw_bin->header_info[i].valid_data_len >> 1);
aw_bin->header_info[i].valid_data_len;
data + aw_bin->header_info[i].valid_data_addr;
if (aw_bin->header_info[i].valid_data_len & 0x01)
swab16_array((u16 *)(data + aw_bin->header_info[i].valid_data_addr),
aw_bin->header_info[i].valid_data_len >> 1);
prof_desc->fw_ver = aw_bin->header_info[i].app_version;
aw_bin->header_info[i].valid_data_len;
data + aw_bin->header_info[i].valid_data_addr;
struct aw_bin *aw_bin __free(kfree) = kzalloc(data_len + sizeof(*aw_bin),
if (!aw_bin)
aw_bin->info.len = data_len;
memcpy(aw_bin->info.data, data, data_len);
ret = aw_parsing_bin_file(aw_dev, aw_bin);
if ((aw_bin->all_bin_parse_num != 1) ||
(aw_bin->header_info[0].bin_data_type != DATA_TYPE_REGISTER)) {
data + aw_bin->header_info[0].valid_data_addr;
aw_bin->header_info[0].valid_data_len;
static int aw_check_data_version(struct aw_device *aw_dev, struct aw_bin *bin, int bin_num)
static int aw_check_register_num(struct aw_device *aw_dev, struct aw_bin *bin, int bin_num)
static int aw_check_dsp_reg_num(struct aw_device *aw_dev, struct aw_bin *bin, int bin_num)