93 mfilt[0] = mfilt[1] = ~0;
109 DBG2(
"ath9k: cachelsz %d rxbufsize %d\n",
118 "failed to allocate rx descriptors: %d\n",
181 #define RX_FILTER_PRESERVE (ATH9K_RX_FILTER_PHYERR | ATH9K_RX_FILTER_PHYRADAR) 191 #undef RX_FILTER_PRESERVE 225 int stopped, reset = 0;
236 "Could not stop RX, we could be " 237 "confusing the DMA engine when we start RX up\n");
239 return stopped && !reset;
282 memset(&trs, 0,
sizeof(trs));
319 u8 rx_status_len =
ah->caps.rx_status_len;
354 if (
ah->is_monitoring) {
396 "unsupported hw bitrate detected 0x%02x using 1 Mbit\n",
443 int decrypt_error = 0;
452 memset(&rs, 0,
sizeof(rs));
467 goto requeue_drop_frag;
470 &rix, &decrypt_error);
472 goto requeue_drop_frag;
484 goto requeue_drop_frag;
487 if (
ah->caps.rx_status_len)
505 DBGIO(
"ath9k: rx %d bytes, signal %d, bitrate %d, hw_value %d\n", rs.
rs_datalen,
#define iob_pull(iobuf, len)
#define EINVAL
Invalid argument.
void ath_descdma_cleanup(struct ath_softc *sc, struct ath_descdma *dd, struct list_head *head)
struct io_buffer * bf_mpdu
#define iob_put(iobuf, len)
u8 channel
The channel currently in use, as an index into the channels array.
static int ath9k_rx_accept(struct ath_common *common, struct ath_rx_status *rx_stats, int *decrypt_error)
struct list_head * next
Next list entry.
int ath9k_hw_stopdmarecv(struct ath_hw *ah, int *reset)
static void ath_opmode_init(struct ath_softc *sc)
int ath_rx_init(struct ath_softc *sc, int nbufs)
void free_iob(struct io_buffer *iobuf)
Free I/O buffer.
struct io_buffer * alloc_iob_raw(size_t len, size_t align, size_t offset)
Allocate I/O buffer with specified alignment and offset.
void net80211_rx(struct net80211_device *dev, struct io_buffer *iob, int signal, u16 rate)
Handle receipt of 802.11 frame.
struct arbelprm_completion_with_error error
void ath_hw_setbssidmask(struct ath_common *common)
ath_hw_set_bssid_mask - filter out bssids we listen
static void ath9k_hw_rxena(struct ath_hw *ah)
int ath_rx_tasklet(struct ath_softc *sc, int flush, int hp __unused)
static void ath_rx_buf_link(struct ath_softc *sc, struct ath_buf *bf)
void ath9k_hw_abortpcurecv(struct ath_hw *ah)
void ath9k_hw_setopmode(struct ath_hw *ah)
void ath_flushrecv(struct ath_softc *sc)
int ath_descdma_setup(struct ath_softc *sc, struct ath_descdma *dd, struct list_head *head, const char *name, int nbuf, int ndesc, int is_tx)
#define list_empty(list)
Test whether a list is empty.
#define list_first_entry(list, type, member)
Get the container of the first entry in a list.
struct net80211_device * dev
#define list_del(list)
Delete an entry from a list.
#define ENOMEM
Not enough space.
int ath9k_hw_rxprocdesc(struct ath_hw *ah, struct ath_desc *ds, struct ath_rx_status *rs, u64 tsf __unused)
#define __unused
Declare a variable or data structure as unused.
static __always_inline unsigned long virt_to_bus(volatile const void *addr)
Convert virtual address to a bus address.
void ath_rx_cleanup(struct ath_softc *sc)
void ath9k_hw_setuprxdesc(struct ath_hw *ah, struct ath_desc *ds, u32 size, u32 flags)
void ath9k_hw_setantenna(struct ath_hw *ah, u32 antenna)
#define list_for_each_entry(pos, head, member)
Iterate over entries in a list.
#define list_add_tail(new, head)
Add a new entry to the tail of a list.
int nr_rates[NET80211_NR_BANDS]
Number of supported rates, indexed by band.
#define list_for_each_entry_safe(pos, tmp, head, member)
Iterate over entries in a list, safe against deletion of the current entry.
void * priv
Driver private data.
#define EINPROGRESS
Operation in progress.
void ath9k_hw_putrxbuf(struct ath_hw *ah, u32 rxdp)
#define IEEE80211_MAX_MPDU_LEN
Structure encapsulating the complete state of an 802.11 device.
static int ath9k_process_rate(struct ath_common *common __unused, struct net80211_device *dev, struct ath_rx_status *rx_stats, int *rix)
static struct ath_common * ath9k_hw_common(struct ath_hw *ah)
int ath_startrecv(struct ath_softc *sc)
struct net80211_hw_info * hwinfo
#define RX_FILTER_PRESERVE
struct ib_cm_common common
struct net80211_device * dev
static void ath_setdefantenna(struct ath_softc *sc, u32 antenna)
void ath9k_hw_setrxfilter(struct ath_hw *ah, u32 bits)
#define ATH9K_RXERR_DECRYPT
struct ath9k_hw_capabilities caps
void * data
Start of data.
struct net80211_channel channels[NET80211_MAX_CHANNELS]
A list of all possible channels we might use.
static int ath9k_rx_iob_preprocess(struct ath_common *common, struct net80211_device *dev, struct ath_rx_status *rx_stats, int *rix, int *decrypt_error)
struct ath9k_legacy_rate rates[NET80211_MAX_RATES]
#define DBG(...)
Print a debugging message.
#define ATH_RXBUF_RESET(_bf)
static struct ath_buf * ath_get_next_rx_buf(struct ath_softc *sc, struct ath_rx_status *rs)
void ath9k_hw_startpcureceive(struct ath_hw *ah, int is_scanning)
#define list_entry(list, type, member)
Get the container of a list entry.
int ath_stoprecv(struct ath_softc *sc)
#define NULL
NULL pointer (VOID *)
u32 ath_calcrxfilter(struct ath_softc *sc)
u32 ath9k_hw_getrxfilter(struct ath_hw *ah)
void ath9k_hw_setmcastfilter(struct ath_hw *ah, u32 filter0, u32 filter1)
void * memset(void *dest, int character, size_t len) __nonnull