I'd likely slide it in somewhere after ath9k_hw_process_ini() in
ath9k_hw_reset().

Good luck!


Adrian

On 9 June 2011 21:54, Liang <leonc...@gmail.com> wrote:
> 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