|
@@ -635,59 +635,6 @@ static void brcmf_fw_get_full_name(char fw_name[BRCMF_FW_NAME_LEN],
|
|
|
strlcat(fw_name, extension, BRCMF_FW_NAME_LEN);
|
|
|
}
|
|
|
|
|
|
-int brcmf_fw_map_chip_to_name(u32 chip, u32 chiprev,
|
|
|
- struct brcmf_firmware_mapping mapping_table[],
|
|
|
- u32 table_size, char fw_name[BRCMF_FW_NAME_LEN],
|
|
|
- char nvram_name[BRCMF_FW_NAME_LEN])
|
|
|
-{
|
|
|
- char chipname[12];
|
|
|
- u32 i;
|
|
|
- char end;
|
|
|
-
|
|
|
- for (i = 0; i < table_size; i++) {
|
|
|
- if (mapping_table[i].chipid == chip &&
|
|
|
- mapping_table[i].revmask & BIT(chiprev))
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- if (i == table_size) {
|
|
|
- brcmf_err("Unknown chipid %d [%d]\n", chip, chiprev);
|
|
|
- return -ENODEV;
|
|
|
- }
|
|
|
-
|
|
|
- brcmf_chip_name(chip, chiprev, chipname, sizeof(chipname));
|
|
|
-
|
|
|
- /* check if firmware path is provided by module parameter */
|
|
|
- if (brcmf_mp_global.firmware_path[0] != '\0') {
|
|
|
- if (fw_name)
|
|
|
- strlcpy(fw_name, brcmf_mp_global.firmware_path,
|
|
|
- BRCMF_FW_NAME_LEN);
|
|
|
- if (nvram_name)
|
|
|
- strlcpy(nvram_name, brcmf_mp_global.firmware_path,
|
|
|
- BRCMF_FW_NAME_LEN);
|
|
|
-
|
|
|
- end = brcmf_mp_global.firmware_path[
|
|
|
- strlen(brcmf_mp_global.firmware_path) - 1];
|
|
|
- if (end != '/') {
|
|
|
- if (fw_name)
|
|
|
- strlcat(fw_name, "/", BRCMF_FW_NAME_LEN);
|
|
|
- if (nvram_name)
|
|
|
- strlcat(nvram_name, "/", BRCMF_FW_NAME_LEN);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- brcmf_info("using %s for chip %s\n",
|
|
|
- mapping_table[i].fw_base, chipname);
|
|
|
- if (fw_name)
|
|
|
- brcmf_fw_get_full_name(fw_name,
|
|
|
- mapping_table[i].fw_base, ".bin");
|
|
|
- if (nvram_name)
|
|
|
- brcmf_fw_get_full_name(nvram_name,
|
|
|
- mapping_table[i].fw_base, ".txt");
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
struct brcmf_fw_request *
|
|
|
brcmf_fw_alloc_request(u32 chip, u32 chiprev,
|
|
|
struct brcmf_firmware_mapping mapping_table[],
|