cxgb3 - Firmware update
Subsystems (2)
PATCH RESEND 1/7 cxgb3 - Firmware update
From: Divy Le Ray <[email protected]>
Update firmware version.
Allow the driver to be up and running with older FW image
Signed-off-by Divy Le Ray <[email protected]>
---
drivers/net/cxgb3/common.h | 2 +- drivers/net/cxgb3/cxgb3_main.c | 9 +++++---- drivers/net/cxgb3/t3_hw.c | 20 +++++++++++++++----- drivers/net/cxgb3/version.h | 2 +- 4 files changed, 22 insertions(+), 11 deletions(-)
drivers/net/cxgb3/common.h +1 -1
@@ -690,7 +690,7 @@ int t3_read_flash(struct adapter *adapter, unsigned int addr, unsigned int nwords, u32 *data, int byte_oriented);int t3_load_fw (struct adapter *adapter,const u8 * fw_data,unsigned int size);int t3_get_fw_version (struct adapter *adapter,u32 *vers); -int t3_check_fw_version (struct adapter *adapter); +int t3_check_fw_version (struct adapter *adapter,int *must_load);int t3_init_hw (struct adapter *adapter,u32 fw_params);void mac_prep (struct cmac *mac,struct adapter *adapter,int index);void early_hw_init (struct adapter *adapter,const struct adapter_info *ai);
drivers/net/cxgb3/cxgb3_main.c +5 -4
@@ -832,11 +832,12 @@ static int cxgb_up(struct adapter *adap)int must_load;if (!(adap->flags &FULL_INIT_DONE )) { - err =t3_check_fw_version (adap); -if (err == -EINVAL ) + err =t3_check_fw_version (adap, &must_load); +if (err == -EINVAL ) { err =upgrade_fw (adap); -if (err) - goto out; +if (err && must_load) + goto out; + } err =t3_check_tpsram_version (adap, &must_load);if (err == -EINVAL ) {
drivers/net/cxgb3/t3_hw.c +15 -5
@@ -960,16 +960,18 @@ int t3_get_fw_version(struct adapter *adapter, u32 *vers)/** * t3_check_fw_version - check if the FW is compatible with this driver * @adapter: the adapter -* +* @must_load: set to 1 if loading a new FW image is required +* Checks if an adapter's FW is compatible with the driver. Returns 0 * if the versions are compatible, a negative error otherwise. */ -int t3_check_fw_version (struct adapter *adapter) +int t3_check_fw_version (struct adapter *adapter,int *must_load) {int ret;u32 vers;unsigned int type, major, minor; + *must_load =1 ; ret =t3_get_fw_version (adapter, &vers);if (ret)return ret;
@@ -982,9 +984,17 @@ int t3_check_fw_version(struct adapter *adapter) minor == FW_VERSION_MINOR)return 0 ; -CH_ERR (adapter,"found wrong FW version(%u.%u), " -"driver needs version %u.%u\n" , major, minor, -FW_VERSION_MAJOR ,FW_VERSION_MINOR ); +if (major !=FW_VERSION_MAJOR ) +CH_ERR (adapter,"found wrong FW version(%u.%u), " +"driver needs version %u.%u\n" , major, minor, +FW_VERSION_MAJOR ,FW_VERSION_MINOR ); +else { + *must_load =0 ; +CH_WARN (adapter,"found wrong FW minor version(%u.%u), " +"driver compiled for version %u.%u\n" , major, minor, +FW_VERSION_MAJOR ,FW_VERSION_MINOR ); + } +return -EINVAL ; }
drivers/net/cxgb3/version.h +1 -1
@@ -39,6 +39,6 @@/* Firmware version */ #define FW_VERSION_MAJOR 4 -#define FW_VERSION_MINOR 3 +#define FW_VERSION_MINOR 6#define FW_VERSION_MICRO 0#endif /* __CHELSIO_VERSION_H */
Quoted 6 lines · Divy Le Ray
From: Divy Le Ray <[email protected]>
Update firmware version.
Allow the driver to be up and running with older FW imageSigned-off-by Divy Le Ray <[email protected]>
applied 1-7