2009/1/22 Bob Copeland <me@xxxxxxxxxxxxxxx>: > If gain calibration fails, then ath5k_hw_reset will skip writing some > important registers like the interrupt mask. In legacy_hal, only an > error is emitted in this case but the reset proceeds, so follow suit > here. > > Changes to reset.c > Changes-licensed-under: ISC > > Changes to base.c > Changes-licensed-under: 3-Clause-BSD > > Signed-off-by: Bob Copeland <me@xxxxxxxxxxxxxxx> > --- > drivers/net/wireless/ath5k/reset.c | 1 - > 1 files changed, 0 insertions(+), 1 deletions(-) > > diff --git a/drivers/net/wireless/ath5k/reset.c b/drivers/net/wireless/ath5k/reset.c > index c7cd380..3c8d3d6 100644 > --- a/drivers/net/wireless/ath5k/reset.c > +++ b/drivers/net/wireless/ath5k/reset.c > @@ -829,7 +829,6 @@ int ath5k_hw_reset(struct ath5k_hw *ah, enum nl80211_iftype op_mode, > AR5K_PHY_AGCCTL_CAL, 0, false)) { > ATH5K_ERR(ah->ah_sc, "gain calibration timeout (%uMHz)\n", > channel->center_freq); > - return -EAGAIN; > } > > /* Again i've already fixed that on my local branch (i said i'll update reset code and i did, i just have to make some tests first), it's what both HALs do. Notice that if offset calibration has not completed, i/q calibration can't work (according to patent doc) and noise floor calibration always fails on some chips. IMHO we must check if the bit got cleared while calling phy_calibrate because if it's not cleared there is no meaning to perform i/q and nf calibration. That's why i haven't removed that return yet. I always believe that the best thing to do is to find a sane timeout interval that works on most cases instead of just ignoring the fact that calibration timed out of failed. -- GPG ID: 0xD21DB2DB As you read this post global entropy rises. Have Fun ;-) Nick -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html