ath5k: enable EEPROM checksum check
Without this we have no gaurantee of the integrity of the EEPROM and are likely to encounter a lot of bogus bug reports due to actual issues on the EEPROM. With the EEPROM checksum check in place we can easily rule those issues out. If you run patch during a revert *you* have a card with a busted EEPROM and only older kernel will support that concoction. This patch is a trade off between not accepitng bogus EEPROMs and avoiding bogus bug reports allowing developers to focus instead on real concrete issues. If stable keeps bogus bug reports because of a possibly busted EEPROM feel free to apply this there too. Tested on an AR5414 Cc: stable@kernel.org Cc: jirislaby@gmail.com Cc: akpm@linux-foundation.org Cc: rjw@sisk.pl Cc: me@bobcopeland.com Cc: david.quan@atheros.com Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
19deffbeba
commit
512414b0be
|
@ -97,6 +97,7 @@ ath5k_eeprom_init_header(struct ath5k_hw *ah)
|
||||||
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
|
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
|
||||||
int ret;
|
int ret;
|
||||||
u16 val;
|
u16 val;
|
||||||
|
u32 cksum, offset;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Read values from EEPROM and store them in the capability structure
|
* Read values from EEPROM and store them in the capability structure
|
||||||
|
@ -111,7 +112,6 @@ ath5k_eeprom_init_header(struct ath5k_hw *ah)
|
||||||
if (ah->ah_ee_version < AR5K_EEPROM_VERSION_3_0)
|
if (ah->ah_ee_version < AR5K_EEPROM_VERSION_3_0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
#ifdef notyet
|
|
||||||
/*
|
/*
|
||||||
* Validate the checksum of the EEPROM date. There are some
|
* Validate the checksum of the EEPROM date. There are some
|
||||||
* devices with invalid EEPROMs.
|
* devices with invalid EEPROMs.
|
||||||
|
@ -124,7 +124,6 @@ ath5k_eeprom_init_header(struct ath5k_hw *ah)
|
||||||
ATH5K_ERR(ah->ah_sc, "Invalid EEPROM checksum 0x%04x\n", cksum);
|
ATH5K_ERR(ah->ah_sc, "Invalid EEPROM checksum 0x%04x\n", cksum);
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
AR5K_EEPROM_READ_HDR(AR5K_EEPROM_ANT_GAIN(ah->ah_ee_version),
|
AR5K_EEPROM_READ_HDR(AR5K_EEPROM_ANT_GAIN(ah->ah_ee_version),
|
||||||
ee_ant_gain);
|
ee_ant_gain);
|
||||||
|
|
Loading…
Reference in New Issue