Re: mwifiex: PCIe8997 chip specific handling

From: Brian Norris
Date: Tue Aug 09 2016 - 14:44:18 EST


Hi,

On Fri, Jul 29, 2016 at 04:08:51PM +0530, Amitkumar Karwar wrote:
> The patch corrects the revision id register and uses it along with
> magic value and chip version registers to download appropriate firmware
> image.
>
> PCIe8997 Z chipset variant code has been removed, as it won't be used in
> production.
>
> Signed-off-by: Amitkumar Karwar <akarwar@xxxxxxxxxxx>
> ---
> drivers/net/wireless/marvell/mwifiex/pcie.c | 35 ++++++++++-------------------
> drivers/net/wireless/marvell/mwifiex/pcie.h | 14 +++++-------
> 2 files changed, 18 insertions(+), 31 deletions(-)

[...]

> diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.h b/drivers/net/wireless/marvell/mwifiex/pcie.h
> index f6992f0..46f99ca 100644
> --- a/drivers/net/wireless/marvell/mwifiex/pcie.h
> +++ b/drivers/net/wireless/marvell/mwifiex/pcie.h
> @@ -32,12 +32,9 @@
> #define PCIE8897_DEFAULT_FW_NAME "mrvl/pcie8897_uapsta.bin"
> #define PCIE8897_A0_FW_NAME "mrvl/pcie8897_uapsta_a0.bin"
> #define PCIE8897_B0_FW_NAME "mrvl/pcie8897_uapsta.bin"
> -#define PCIE8997_DEFAULT_FW_NAME "mrvl/pcieusb8997_combo_v2.bin"
> -#define PCIEUART8997_FW_NAME_Z "mrvl/pcieuart8997_combo.bin"
> -#define PCIEUART8997_FW_NAME_V2 "mrvl/pcieuart8997_combo_v2.bin"
> -#define PCIEUSB8997_FW_NAME_Z "mrvl/pcieusb8997_combo.bin"
> -#define PCIEUSB8997_FW_NAME_V2 "mrvl/pcieusb8997_combo_v2.bin"
> -#define PCIE8997_DEFAULT_WIFIFW_NAME "mrvl/pcie8997_wlan.bin"
> +#define PCIEUART8997_FW_NAME_V4 "mrvl/pcieuart8997_combo_v4.bin"
> +#define PCIEUSB8997_FW_NAME_V4 "mrvl/pcieusb8997_combo_v4.bin"
> +#define PCIE8997_DEFAULT_WIFIFW_NAME "mrvl/pcie8997_wlan_v4.bin"

Why do version bumps require firmware renames? Is this just to make sure
you don't load the new firmware on old chip revs that you don't plan to
support for production (i.e., only early revs like the _Z you're
dropping)? This doesn't seems like a good long-term solution, at least
once you start getting this silicon out in the wild. At some point, I'd
expect to see a stable file name.

Brian

>
> #define PCIE_VENDOR_ID_MARVELL (0x11ab)
> #define PCIE_VENDOR_ID_V2_MARVELL (0x1b4b)
> @@ -47,9 +44,10 @@
>
> #define PCIE8897_A0 0x1100
> #define PCIE8897_B0 0x1200
> -#define PCIE8997_Z 0x0
> -#define PCIE8997_V2 0x471
> +#define PCIE8997_A0 0x10
> +#define PCIE8997_A1 0x11
> #define CHIP_VER_PCIEUART 0x3
> +#define CHIP_MAGIC_VALUE 0x24
>
> /* Constants for Buffer Descriptor (BD) rings */
> #define MWIFIEX_MAX_TXRX_BD 0x20