Do you suitably tickle the clock rate definitions for some of the registers?
IIRC (having looked into this stuff in FreeBSD), enabling turbo mode sets the clock to double-rate, needing changes to some of the registers like ACK timeout, slot time, SIFS, etc., which operate on clock-ticks rather than microseconds. HTH, Adrian On 26 February 2011 15:26, Pat Erley <pat-l...@erley.org> wrote: > d'oh, dropped an = sign somehow. It's in my code > > > On 02/26/11 15:15, Pat Erley wrote: > > This updates the bwmode set operation to actually set bwmode, > > rather than just returning not supported > > > > Signed-off-by: Pat Erley<pat-l...@erley.org> > > --- > > drivers/net/wireless/ath/ath5k/debug.c | 39 > ++++++++++++++++++++++++++++++- > > 1 files changed, 37 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/net/wireless/ath/ath5k/debug.c > b/drivers/net/wireless/ath/ath5k/debug.c > > index 335eebb..197fa59 100644 > > --- a/drivers/net/wireless/ath/ath5k/debug.c > > +++ b/drivers/net/wireless/ath/ath5k/debug.c > > @@ -847,12 +847,47 @@ static ssize_t write_file_bwmode(struct file *file, > > size_t count, loff_t *ppos) > > { > > struct ath5k_softc *sc = file->private_data; > > - char buf[20]; > > + struct ath5k_hw *ah = sc->ah; > > + char buf[3]; > > + int ret = 0; > > + int bw 20; > ---------here ^ > > + int tobwmode = AR5K_BWMODE_DEFAULT; > > > > if (copy_from_user(buf, userbuf, min(count, sizeof(buf)))) > > return -EFAULT; > > > > - return -EOPNOTSUPP; > > + /* TODO: Add check for active interface */ > > + > > + if(strncmp(buf, "5", 1) == 0 ) { > > + tobwmode = AR5K_BWMODE_5MHZ; > > + bw = 5; > > + } else if ( strncmp(buf, "10", 2) == 0 ) { > > + tobwmode = AR5K_BWMODE_10MHZ; > > + bw = 10; > > + } else if ( strncmp(buf, "20", 8) == 0 ) { > > + tobwmode = AR5K_BWMODE_DEFAULT; > > + bw = 20; > > + } else if ( strncmp(buf, "40", 8) == 0 ) { > > + tobwmode = AR5K_BWMODE_40MHZ; > > + bw = 40; > > + } else > > + return -EINVAL; > > + > > + ATH5K_INFO(sc, "Changing to %imhz channel width[%i]\n", > > + bw, tobwmode); > > + > > + switch (ah->ah_radio) { > > + case AR5K_RF5413: > > + ah->ah_bwmode = tobwmode; > > + mutex_lock(&sc->lock); > > + ret = ath5k_hw_reset(ah, sc->opmode, sc->curchan, > > + NULL, false); > > + mutex_unlock(&sc->lock); > > + break; > > + default: > > + return -EOPNOTSUPP; > > + } > > + return count; > > } > > > > static const struct file_operations fops_bwmode = { > > _______________________________________________ > ath5k-devel mailing list > ath5k-devel@lists.ath5k.org > https://lists.ath5k.org/mailman/listinfo/ath5k-devel >
_______________________________________________ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel