Hi,

There are three functions where AR_DIAG_SW is set with REG_SET_BIT(), but
I'm not sure in which function I should add REG_SET_BIT(ah,
AR_DIAG_SW, AR_DIAG_ACK_DIS). Do you have any suggestions?

function1: ath9k_hw_abort_tx_dma()
  REG_SET_BIT(ah, AR_DIAG_SW, AR_DIAG_FORCE_CH_IDLE_HIGH);

function2: ath9k_hw_setrxabort()
  REG_SET_BIT(ah, AR_DIAG_SW, (AR_DIAG_RX_DIS | AR_DIAG_RX_ABORT));

function3: ath9k_hw_abortpcurecv()
  REG_SET_BIT(ah, AR_DIAG_SW, AR_DIAG_RX_ABORT | AR_DIAG_RX_DIS);

Thank you.

Best,
Liang


On Thu, Jun 9, 2011 at 4:07 PM, Adrian Chadd <adr...@freebsd.org> wrote:

> Best thing to do is look at the code that disables ACK in the TX
> descriptor and set that.
>
> There's also the DIAG register, as mentioned. For ath9k:
>
> reg.h:#define AR_DIAG_SW                  0x8048
> reg.h:#define AR_DIAG_ACK_DIS             0x00000002
>
> Find where AR_DIAG_SW is set in the ath9k code (it's fiddled with in a
> few places) and call the REG_SET_BIT() appropriately.
>
> Do the same for ath5k once you find the right register/field definition.
>
> HTH,
>
>
>
> Adrian
>
> On 9 June 2011 15:03, Liang <leonc...@gmail.com> wrote:
> > Hi Adrian,
> > Thank you. May I ask how to set these registers to disable the ACK in the
> > ath5k/ath9k driver?
> > Best,
> > Leon
> >
> > On Thu, Jun 9, 2011 at 2:32 PM, Adrian Chadd <adr...@freebsd.org> wrote:
> >>
> >> No, retry doesn't stop ack's, it just stops the hardware from retrying
> >> a packet if it hasn't heard an ACK.
> >>
> >> You can fiddle with the diag register, or you can just ensure that the
> >> relevant bit in the TX descriptor isn't set.
> >>
> >> fgrep NOACK ath9k/*.h
> >> mac.h:#define ATH9K_TXDESC_NOACK                0x0002
> >>
> >> fgrep NOACK ath5k/*.h
> >>
> >> fgrep NOACK *h
> >> desc.h:#define AR5K_2W_TX_DESC_CTL1_NOACK_5211          0x00800000 /*
> >> [5211] no ACK */
> >> desc.h:#define AR5K_4W_TX_DESC_CTL1_NOACK               0x01000000 /* no
> >> ACK */
> >> desc.h:#define AR5K_TXDESC_NOACK        0x0002  /*[5211+]*/
> >>
> >> There's likely some API you can use at a higher level to signify to
> >> the TX code that no, you don't want an ACK for the packet.
> >>
> >> Eg, look at ath9k/setup_tx_flags():
> >>
> >>        struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb);
> >> ...
> >>        if (tx_info->flags & IEEE80211_TX_CTL_NO_ACK)
> >>                flags |= ATH9K_TXDESC_NOACK;
> >>
> >> HTH,
> >>
> >>
> >> Adrian
> >>
> >> On 9 June 2011 13:55, Liang <leonc...@gmail.com> wrote:
> >> > Hi,
> >> > I want to know if the ACK at 802.11 MAC layer can be turned off in the
> >> > ath5k/ath9k, and how can it be done?
> >> > On the other hand, does the command "iwconfig wlan0 retry 0" disable
> the
> >> > MAC
> >> > retransmission? Is it the same to turnoff the ACK?
> >> > Thank you!
> >> > Best,
> >> > Leon
> >> > _______________________________________________
> >> > 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

Reply via email to