Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Jun 2011 13:53:24 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/dev/ath if_ath.c
Message-ID:  <201106261353.p5QDrduC025993@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help

adrian      2011-06-26 13:53:24 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/ath          if_ath.c 
  Log:
  SVN rev 223568 on 2011-06-26 13:53:24Z by adrian
  
  Fix beacon transmission after a channel set.
  
  The DFS code was tickling the channel set directly whilst going
  through the state RUN -> CSA -> RUN. This only changed the channel;
  it didn't go via ath_reset(). However in this driver, a channel
  change always causes a chip reset, which resets the beacon timer
  configuration and interrupt setup. This meant that data would go
  out but as the beacon timers never fired, beacons would never
  be queued.
  
  The confusing part is that sometimes the state transition was
  RUN -> SCAN -> CAC -> RUN (with CSA being in there sometimes);
  going via SCAN would clear sc_beacons and thus the transition
  to RUN would reprogram beacon transmission.
  
  In case someone tries debugging why suspending a device currently
  beaconing (versus just RX'ing beacons which is what occurs in STA
  mode), add a silly comment which should hopefully land them at
  this commit message. The call to ath_hal_reset() will be clearing
  the beacon config and it may not be always reset.
  
  Revision  Changes    Path
  1.328     +21 -0     src/sys/dev/ath/if_ath.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106261353.p5QDrduC025993>