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