aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/cxgb3/t3_hw.c
diff options
context:
space:
mode:
authorDivy Le Ray <divy@chelsio.com>2007-09-05 18:58:09 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:51:03 -0400
commita5a3b4601bfa3c7671944067d4e4b04bf647e6d9 (patch)
tree6dc3b626a855bb85fa724041b2fd4369facdada3 /drivers/net/cxgb3/t3_hw.c
parent34c6417b7087a4818e7dca2e5d66c3361cee80a1 (diff)
cxgb3 - Firmware update
Update firmware version. Allow the driver to be up and running with older FW image Signed-off-by: Divy Le Ray <divy@chelsio.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/cxgb3/t3_hw.c')
-rw-r--r--drivers/net/cxgb3/t3_hw.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/drivers/net/cxgb3/t3_hw.c b/drivers/net/cxgb3/t3_hw.c
index e958bbe30623..2b49b96a6fdb 100644
--- a/drivers/net/cxgb3/t3_hw.c
+++ b/drivers/net/cxgb3/t3_hw.c
@@ -960,16 +960,18 @@ int t3_get_fw_version(struct adapter *adapter, u32 *vers)
960/** 960/**
961 * t3_check_fw_version - check if the FW is compatible with this driver 961 * t3_check_fw_version - check if the FW is compatible with this driver
962 * @adapter: the adapter 962 * @adapter: the adapter
963 * 963 * @must_load: set to 1 if loading a new FW image is required
964
964 * Checks if an adapter's FW is compatible with the driver. Returns 0 965 * Checks if an adapter's FW is compatible with the driver. Returns 0
965 * if the versions are compatible, a negative error otherwise. 966 * if the versions are compatible, a negative error otherwise.
966 */ 967 */
967int t3_check_fw_version(struct adapter *adapter) 968int t3_check_fw_version(struct adapter *adapter, int *must_load)
968{ 969{
969 int ret; 970 int ret;
970 u32 vers; 971 u32 vers;
971 unsigned int type, major, minor; 972 unsigned int type, major, minor;
972 973
974 *must_load = 1;
973 ret = t3_get_fw_version(adapter, &vers); 975 ret = t3_get_fw_version(adapter, &vers);
974 if (ret) 976 if (ret)
975 return ret; 977 return ret;
@@ -982,9 +984,17 @@ int t3_check_fw_version(struct adapter *adapter)
982 minor == FW_VERSION_MINOR) 984 minor == FW_VERSION_MINOR)
983 return 0; 985 return 0;
984 986
985 CH_ERR(adapter, "found wrong FW version(%u.%u), " 987 if (major != FW_VERSION_MAJOR)
986 "driver needs version %u.%u\n", major, minor, 988 CH_ERR(adapter, "found wrong FW version(%u.%u), "
987 FW_VERSION_MAJOR, FW_VERSION_MINOR); 989 "driver needs version %u.%u\n", major, minor,
990 FW_VERSION_MAJOR, FW_VERSION_MINOR);
991 else {
992 *must_load = 0;
993 CH_WARN(adapter, "found wrong FW minor version(%u.%u), "
994 "driver compiled for version %u.%u\n", major, minor,
995 FW_VERSION_MAJOR, FW_VERSION_MINOR);
996 }
997
988 return -EINVAL; 998 return -EINVAL;
989} 999}
990 1000