348
349
* to bring the device/driver back into the desired state.
350
351
struct delayed_work watchdog_work;
354
* Work structure for scheduling periodic AGC adjustments.
356
struct delayed_work agc_work;
353
359
enum rt2x00_delayed_flags {
564
571
void (*start_queue) (struct data_queue *queue);
565
572
void (*kick_queue) (struct data_queue *queue);
566
573
void (*stop_queue) (struct data_queue *queue);
567
void (*flush_queue) (struct data_queue *queue);
574
void (*flush_queue) (struct data_queue *queue, bool drop);
575
void (*tx_dma_done) (struct queue_entry *entry);
570
578
* TX control handlers
651
659
DEVICE_STATE_SCANNING,
654
* Driver requirements
656
DRIVER_REQUIRE_FIRMWARE,
657
DRIVER_REQUIRE_BEACON_GUARD,
658
DRIVER_REQUIRE_ATIM_QUEUE,
660
DRIVER_REQUIRE_COPY_IV,
661
DRIVER_REQUIRE_L2PAD,
662
DRIVER_REQUIRE_TXSTATUS_FIFO,
663
DRIVER_REQUIRE_TASKLET_CONTEXT,
664
DRIVER_REQUIRE_SW_SEQNO,
665
DRIVER_REQUIRE_HT_TX_DESC,
670
CONFIG_SUPPORT_HW_BUTTON,
671
CONFIG_SUPPORT_HW_CRYPTO,
672
CONFIG_SUPPORT_POWER_LIMIT,
673
DRIVER_SUPPORT_CONTROL_FILTERS,
674
DRIVER_SUPPORT_CONTROL_FILTER_PSPOLL,
675
DRIVER_SUPPORT_PRE_TBTT_INTERRUPT,
676
DRIVER_SUPPORT_LINK_TUNING,
677
DRIVER_SUPPORT_WATCHDOG,
680
662
* Driver configuration
684
CONFIG_EXTERNAL_LNA_A,
685
CONFIG_EXTERNAL_LNA_BG,
686
CONFIG_DOUBLE_ANTENNA,
687
664
CONFIG_CHANNEL_HT40,
669
* rt2x00 capability flags
671
enum rt2x00_capability_flags {
676
REQUIRE_BEACON_GUARD,
681
REQUIRE_TXSTATUS_FIFO,
682
REQUIRE_TASKLET_CONTEXT,
690
CAPABILITY_HW_BUTTON,
691
CAPABILITY_HW_CRYPTO,
692
CAPABILITY_POWER_LIMIT,
693
CAPABILITY_CONTROL_FILTERS,
694
CAPABILITY_CONTROL_FILTER_PSPOLL,
695
CAPABILITY_PRE_TBTT_INTERRUPT,
696
CAPABILITY_LINK_TUNING,
697
CAPABILITY_FRAME_TYPE,
698
CAPABILITY_RF_SEQUENCE,
699
CAPABILITY_EXTERNAL_LNA_A,
700
CAPABILITY_EXTERNAL_LNA_BG,
701
CAPABILITY_DOUBLE_ANTENNA,
702
CAPABILITY_BT_COEXIST,
733
748
#endif /* CONFIG_RT2X00_LIB_LEDS */
737
* In these flags the current status and some
738
* of the device capabilities are stored.
751
* Device state flags.
752
* In these flags the current status is stored.
753
* Access to these flags should occur atomically.
740
755
unsigned long flags;
758
* Device capabiltiy flags.
759
* In these flags the device/driver capabilities are stored.
760
* Access to these flags should occur non-atomically.
762
unsigned long cap_flags;
743
765
* Device information, Bus IRQ and name (PCI, SoC)
887
919
struct work_struct txdone_work;
924
struct delayed_work autowakeup_work;
890
927
* Data queue arrays for RX, TX, Beacon and ATIM.
892
929
unsigned int data_queues;
906
943
DECLARE_KFIFO_PTR(txstatus_fifo, u32);
946
* Timer to ensure tx status reports are read (rt2800usb).
948
struct timer_list txstatus_timer;
909
951
* Tasklet for processing tx status reports (rt2800pci).
911
953
struct tasklet_struct txstatus_tasklet;
1230
1272
const struct ieee80211_tx_queue_params *params);
1231
1273
void rt2x00mac_rfkill_poll(struct ieee80211_hw *hw);
1232
1274
void rt2x00mac_flush(struct ieee80211_hw *hw, bool drop);
1275
int rt2x00mac_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant);
1276
int rt2x00mac_get_antenna(struct ieee80211_hw *hw, u32 *tx_ant, u32 *rx_ant);
1277
void rt2x00mac_get_ringparam(struct ieee80211_hw *hw,
1278
u32 *tx, u32 *tx_max, u32 *rx, u32 *rx_max);
1235
1281
* Driver allocation handlers.