Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e640a3c6 authored by Lior David's avatar Lior David Committed by Maya Erez
Browse files

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.

Change-Id: I314b240498388a83ebf13d852ff53092abad6e2a
Signed-off-by: default avatarLior David <liord@codeaurora.org>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
Git-commit: 54fca595d1eec3d7d008b322a53a1ebed7f78193
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git


Signed-off-by: default avatarMaya Erez <merez@codeaurora.org>
parent c955e16f
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -47,7 +47,7 @@ int wil_set_capabilities(struct wil6210_priv *wil)
	u8 chip_revision = (wil_r(wil, RGF_USER_REVISION_ID) &
			    RGF_USER_REVISION_ID_MASK);
	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->fw_capabilities, WMI_FW_CAPABILITY_MAX);
@@ -58,6 +58,8 @@ int wil_set_capabilities(struct wil6210_priv *wil)

	switch (jtag_id) {
	case JTAG_DEV_ID_SPARROW:
		memcpy(fw_mapping, sparrow_fw_mapping,
		       sizeof(sparrow_fw_mapping));
		switch (chip_revision) {
		case REVISION_ID_SPARROW_D0:
			wil->hw_name = "Sparrow D0";
@@ -67,6 +69,12 @@ int wil_set_capabilities(struct wil6210_priv *wil)

			if (wil_fw_verify_file_exists(wil, 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;
		case REVISION_ID_SPARROW_B0:
			wil->hw_name = "Sparrow B0";
@@ -77,8 +85,6 @@ int wil_set_capabilities(struct wil6210_priv *wil)
			wil->hw_version = HW_VER_UNKNOWN;
			break;
		}
		memcpy(fw_mapping, sparrow_fw_mapping,
		       sizeof(sparrow_fw_mapping));
		wil->rgf_fw_assert_code_addr = SPARROW_RGF_FW_ASSERT_CODE;
		wil->rgf_ucode_assert_code_addr = SPARROW_RGF_UCODE_ASSERT_CODE;
		break;
+1 −0
Original line number Diff line number Diff line
@@ -356,6 +356,7 @@ struct fw_map {

/* 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_d0_mac_rgf_ext;
extern const struct fw_map talyn_fw_mapping[TALYN_FW_MAPPING_TABLE_SIZE];
extern struct fw_map fw_mapping[MAX_FW_MAPPING_TABLE_SIZE];

+8 −0
Original line number Diff line number Diff line
@@ -114,6 +114,14 @@ const struct fw_map sparrow_fw_mapping[] = {
	{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
 *