~ubuntu-branches/ubuntu/quantal/linux-linaro-mx51/quantal

« back to all changes in this revision

Viewing changes to drivers/net/wireless/rt2x00/rt2x00.h

  • Committer: Package Import Robot
  • Author(s): John Rigby, John Rigby
  • Date: 2011-09-26 10:44:23 UTC
  • Revision ID: package-import@ubuntu.com-20110926104423-3o58a3c1bj7x00rs
Tags: 3.0.0-1007.9
[ John Rigby ]

Enable crypto modules and remove crypto-modules from
exclude-module files
LP: #826021

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
#include <linux/etherdevice.h>
38
38
#include <linux/input-polldev.h>
39
39
#include <linux/kfifo.h>
 
40
#include <linux/timer.h>
40
41
 
41
42
#include <net/mac80211.h>
42
43
 
348
349
         * to bring the device/driver back into the desired state.
349
350
         */
350
351
        struct delayed_work watchdog_work;
 
352
 
 
353
        /*
 
354
         * Work structure for scheduling periodic AGC adjustments.
 
355
         */
 
356
        struct delayed_work agc_work;
351
357
};
352
358
 
353
359
enum rt2x00_delayed_flags {
556
562
                             struct link_qual *qual);
557
563
        void (*link_tuner) (struct rt2x00_dev *rt2x00dev,
558
564
                            struct link_qual *qual, const u32 count);
 
565
        void (*gain_calibration) (struct rt2x00_dev *rt2x00dev);
559
566
 
560
567
        /*
561
568
         * Data queue handlers.
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);
568
576
 
569
577
        /*
570
578
         * TX control handlers
637
645
};
638
646
 
639
647
/*
640
 
 * rt2x00 device flags
 
648
 * rt2x00 state flags
641
649
 */
642
 
enum rt2x00_flags {
 
650
enum rt2x00_state_flags {
643
651
        /*
644
 
         * Device state flags
 
652
         * Device flags
645
653
         */
646
654
        DEVICE_STATE_PRESENT,
647
655
        DEVICE_STATE_REGISTERED_HW,
651
659
        DEVICE_STATE_SCANNING,
652
660
 
653
661
        /*
654
 
         * Driver requirements
655
 
         */
656
 
        DRIVER_REQUIRE_FIRMWARE,
657
 
        DRIVER_REQUIRE_BEACON_GUARD,
658
 
        DRIVER_REQUIRE_ATIM_QUEUE,
659
 
        DRIVER_REQUIRE_DMA,
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,
666
 
 
667
 
        /*
668
 
         * Driver features
669
 
         */
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,
678
 
 
679
 
        /*
680
662
         * Driver configuration
681
663
         */
682
 
        CONFIG_FRAME_TYPE,
683
 
        CONFIG_RF_SEQUENCE,
684
 
        CONFIG_EXTERNAL_LNA_A,
685
 
        CONFIG_EXTERNAL_LNA_BG,
686
 
        CONFIG_DOUBLE_ANTENNA,
687
664
        CONFIG_CHANNEL_HT40,
 
665
        CONFIG_POWERSAVING,
 
666
};
 
667
 
 
668
/*
 
669
 * rt2x00 capability flags
 
670
 */
 
671
enum rt2x00_capability_flags {
 
672
        /*
 
673
         * Requirements
 
674
         */
 
675
        REQUIRE_FIRMWARE,
 
676
        REQUIRE_BEACON_GUARD,
 
677
        REQUIRE_ATIM_QUEUE,
 
678
        REQUIRE_DMA,
 
679
        REQUIRE_COPY_IV,
 
680
        REQUIRE_L2PAD,
 
681
        REQUIRE_TXSTATUS_FIFO,
 
682
        REQUIRE_TASKLET_CONTEXT,
 
683
        REQUIRE_SW_SEQNO,
 
684
        REQUIRE_HT_TX_DESC,
 
685
        REQUIRE_PS_AUTOWAKE,
 
686
 
 
687
        /*
 
688
         * Capabilities
 
689
         */
 
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,
688
703
};
689
704
 
690
705
/*
733
748
#endif /* CONFIG_RT2X00_LIB_LEDS */
734
749
 
735
750
        /*
736
 
         * Device flags.
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.
739
754
         */
740
755
        unsigned long flags;
741
756
 
742
757
        /*
 
758
         * Device capabiltiy flags.
 
759
         * In these flags the device/driver capabilities are stored.
 
760
         * Access to these flags should occur non-atomically.
 
761
         */
 
762
        unsigned long cap_flags;
 
763
 
 
764
        /*
743
765
         * Device information, Bus IRQ and name (PCI, SoC)
744
766
         */
745
767
        int irq;
855
877
        u8 calibration[2];
856
878
 
857
879
        /*
 
880
         * Association id.
 
881
         */
 
882
        u16 aid;
 
883
 
 
884
        /*
858
885
         * Beacon interval.
859
886
         */
860
887
        u16 beacon_int;
861
888
 
 
889
        /**
 
890
         * Timestamp of last received beacon
 
891
         */
 
892
        unsigned long last_beacon;
 
893
 
862
894
        /*
863
895
         * Low level statistics which will have
864
896
         * to be kept up to date while device is running.
887
919
        struct work_struct txdone_work;
888
920
 
889
921
        /*
 
922
         * Powersaving work
 
923
         */
 
924
        struct delayed_work autowakeup_work;
 
925
 
 
926
        /*
890
927
         * Data queue arrays for RX, TX, Beacon and ATIM.
891
928
         */
892
929
        unsigned int data_queues;
906
943
        DECLARE_KFIFO_PTR(txstatus_fifo, u32);
907
944
 
908
945
        /*
 
946
         * Timer to ensure tx status reports are read (rt2800usb).
 
947
         */
 
948
        struct timer_list txstatus_timer;
 
949
 
 
950
        /*
909
951
         * Tasklet for processing tx status reports (rt2800pci).
910
952
         */
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);
1233
1279
 
1234
1280
/*
1235
1281
 * Driver allocation handlers.