wil6210: enlarge FW mac_rgf_ext section for Sparrow D0
Sparrow D0 chips have slightly larger mac_rgf_ext section in order to support extra features such as multiple virtual interfaces. Signed-off-by: Lior David <liord@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
70bcc658c0
commit
54fca595d1
|
@ -43,7 +43,7 @@ int wil_set_capabilities(struct wil6210_priv *wil)
|
||||||
u8 chip_revision = (wil_r(wil, RGF_USER_REVISION_ID) &
|
u8 chip_revision = (wil_r(wil, RGF_USER_REVISION_ID) &
|
||||||
RGF_USER_REVISION_ID_MASK);
|
RGF_USER_REVISION_ID_MASK);
|
||||||
int platform_capa;
|
int platform_capa;
|
||||||
struct fw_map *iccm_section;
|
struct fw_map *iccm_section, *sct;
|
||||||
|
|
||||||
bitmap_zero(wil->hw_capa, hw_capa_last);
|
bitmap_zero(wil->hw_capa, hw_capa_last);
|
||||||
bitmap_zero(wil->fw_capabilities, WMI_FW_CAPABILITY_MAX);
|
bitmap_zero(wil->fw_capabilities, WMI_FW_CAPABILITY_MAX);
|
||||||
|
@ -54,6 +54,8 @@ int wil_set_capabilities(struct wil6210_priv *wil)
|
||||||
|
|
||||||
switch (jtag_id) {
|
switch (jtag_id) {
|
||||||
case JTAG_DEV_ID_SPARROW:
|
case JTAG_DEV_ID_SPARROW:
|
||||||
|
memcpy(fw_mapping, sparrow_fw_mapping,
|
||||||
|
sizeof(sparrow_fw_mapping));
|
||||||
switch (chip_revision) {
|
switch (chip_revision) {
|
||||||
case REVISION_ID_SPARROW_D0:
|
case REVISION_ID_SPARROW_D0:
|
||||||
wil->hw_name = "Sparrow D0";
|
wil->hw_name = "Sparrow D0";
|
||||||
|
@ -63,6 +65,12 @@ int wil_set_capabilities(struct wil6210_priv *wil)
|
||||||
|
|
||||||
if (wil_fw_verify_file_exists(wil, wil_fw_name))
|
if (wil_fw_verify_file_exists(wil, wil_fw_name))
|
||||||
wil->wil_fw_name = wil_fw_name;
|
wil->wil_fw_name = wil_fw_name;
|
||||||
|
sct = wil_find_fw_mapping("mac_rgf_ext");
|
||||||
|
if (!sct) {
|
||||||
|
wil_err(wil, "mac_rgf_ext section not found in fw_mapping\n");
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
memcpy(sct, &sparrow_d0_mac_rgf_ext, sizeof(*sct));
|
||||||
break;
|
break;
|
||||||
case REVISION_ID_SPARROW_B0:
|
case REVISION_ID_SPARROW_B0:
|
||||||
wil->hw_name = "Sparrow B0";
|
wil->hw_name = "Sparrow B0";
|
||||||
|
@ -73,8 +81,6 @@ int wil_set_capabilities(struct wil6210_priv *wil)
|
||||||
wil->hw_version = HW_VER_UNKNOWN;
|
wil->hw_version = HW_VER_UNKNOWN;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
memcpy(fw_mapping, sparrow_fw_mapping,
|
|
||||||
sizeof(sparrow_fw_mapping));
|
|
||||||
wil->rgf_fw_assert_code_addr = SPARROW_RGF_FW_ASSERT_CODE;
|
wil->rgf_fw_assert_code_addr = SPARROW_RGF_FW_ASSERT_CODE;
|
||||||
wil->rgf_ucode_assert_code_addr = SPARROW_RGF_UCODE_ASSERT_CODE;
|
wil->rgf_ucode_assert_code_addr = SPARROW_RGF_UCODE_ASSERT_CODE;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -355,6 +355,7 @@ struct fw_map {
|
||||||
|
|
||||||
/* array size should be in sync with actual definition in the wmi.c */
|
/* array size should be in sync with actual definition in the wmi.c */
|
||||||
extern const struct fw_map sparrow_fw_mapping[SPARROW_FW_MAPPING_TABLE_SIZE];
|
extern const struct fw_map sparrow_fw_mapping[SPARROW_FW_MAPPING_TABLE_SIZE];
|
||||||
|
extern const struct fw_map sparrow_d0_mac_rgf_ext;
|
||||||
extern const struct fw_map talyn_fw_mapping[TALYN_FW_MAPPING_TABLE_SIZE];
|
extern const struct fw_map talyn_fw_mapping[TALYN_FW_MAPPING_TABLE_SIZE];
|
||||||
extern struct fw_map fw_mapping[MAX_FW_MAPPING_TABLE_SIZE];
|
extern struct fw_map fw_mapping[MAX_FW_MAPPING_TABLE_SIZE];
|
||||||
|
|
||||||
|
|
|
@ -113,6 +113,14 @@ const struct fw_map sparrow_fw_mapping[] = {
|
||||||
{0x800000, 0x804000, 0x940000, "uc_data", false},
|
{0x800000, 0x804000, 0x940000, "uc_data", false},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @sparrow_d0_mac_rgf_ext - mac_rgf_ext section for Sparrow D0
|
||||||
|
* it is a bit larger to support extra features
|
||||||
|
*/
|
||||||
|
const struct fw_map sparrow_d0_mac_rgf_ext = {
|
||||||
|
0x88c000, 0x88c500, 0x88c000, "mac_rgf_ext", true
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @talyn_fw_mapping provides memory remapping table for Talyn
|
* @talyn_fw_mapping provides memory remapping table for Talyn
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue