cfg80211 API for channels/bitrates, mac80211 and driver conversion
[pandora-kernel.git] / drivers / net / wireless / rtl818x.h
index 283de30..4f7d38f 100644 (file)
@@ -58,24 +58,33 @@ struct rtl818x_csr {
 #define RTL818X_INT_TX_FO              (1 << 15)
        __le32  TX_CONF;
 #define RTL818X_TX_CONF_LOOPBACK_MAC   (1 << 17)
+#define RTL818X_TX_CONF_LOOPBACK_CONT  (3 << 17)
 #define RTL818X_TX_CONF_NO_ICV         (1 << 19)
 #define RTL818X_TX_CONF_DISCW          (1 << 20)
+#define RTL818X_TX_CONF_SAT_HWPLCP     (1 << 24)
 #define RTL818X_TX_CONF_R8180_ABCD     (2 << 25)
 #define RTL818X_TX_CONF_R8180_F                (3 << 25)
 #define RTL818X_TX_CONF_R8185_ABC      (4 << 25)
 #define RTL818X_TX_CONF_R8185_D                (5 << 25)
 #define RTL818X_TX_CONF_HWVER_MASK     (7 << 25)
+#define RTL818X_TX_CONF_PROBE_DTS      (1 << 29)
+#define RTL818X_TX_CONF_HW_SEQNUM      (1 << 30)
 #define RTL818X_TX_CONF_CW_MIN         (1 << 31)
        __le32  RX_CONF;
 #define RTL818X_RX_CONF_MONITOR                (1 <<  0)
 #define RTL818X_RX_CONF_NICMAC         (1 <<  1)
 #define RTL818X_RX_CONF_MULTICAST      (1 <<  2)
 #define RTL818X_RX_CONF_BROADCAST      (1 <<  3)
+#define RTL818X_RX_CONF_FCS            (1 <<  5)
 #define RTL818X_RX_CONF_DATA           (1 << 18)
 #define RTL818X_RX_CONF_CTRL           (1 << 19)
 #define RTL818X_RX_CONF_MGMT           (1 << 20)
+#define RTL818X_RX_CONF_ADDR3          (1 << 21)
+#define RTL818X_RX_CONF_PM             (1 << 22)
 #define RTL818X_RX_CONF_BSSID          (1 << 23)
 #define RTL818X_RX_CONF_RX_AUTORESETPHY        (1 << 28)
+#define RTL818X_RX_CONF_CSDM1          (1 << 29)
+#define RTL818X_RX_CONF_CSDM2          (1 << 30)
 #define RTL818X_RX_CONF_ONLYERLPKT     (1 << 31)
        __le32  INT_TIMEOUT;
        __le32  TBDA;
@@ -91,6 +100,7 @@ struct rtl818x_csr {
        u8      CONFIG0;
        u8      CONFIG1;
        u8      CONFIG2;
+#define RTL818X_CONFIG2_ANTENNA_DIV    (1 << 6)
        __le32  ANAPARAM;
        u8      MSR;
 #define RTL818X_MSR_NO_LINK            (0 << 2)
@@ -103,14 +113,17 @@ struct rtl818x_csr {
 #define RTL818X_CONFIG4_VCOOFF         (1 << 7)
        u8      TESTR;
        u8      reserved_9[2];
-       __le16  PGSELECT;
+       u8      PGSELECT;
+       u8      SECURITY;
        __le32  ANAPARAM2;
        u8      reserved_10[12];
        __le16  BEACON_INTERVAL;
        __le16  ATIM_WND;
        __le16  BEACON_INTERVAL_TIME;
        __le16  ATIMTR_INTERVAL;
-       u8      reserved_11[4];
+       u8      PHY_DELAY;
+       u8      CARRIER_SENSE_COUNTER;
+       u8      reserved_11[2];
        u8      PHY[4];
        __le16  RFPinsOutput;
        __le16  RFPinsEnable;
@@ -148,79 +161,18 @@ struct rtl818x_csr {
        u8      RETRY_CTR;
        u8      reserved_18[5];
        __le32  RDSAR;
-       u8      reserved_19[18];
-       u16     TALLY_CNT;
+       u8      reserved_19[12];
+       __le16  FEMR;
+       u8      reserved_20[4];
+       __le16  TALLY_CNT;
        u8      TALLY_SEL;
 } __attribute__((packed));
 
-static const struct ieee80211_rate rtl818x_rates[] = {
-       { .rate = 10,
-         .val = 0,
-         .flags = IEEE80211_RATE_CCK },
-       { .rate = 20,
-         .val = 1,
-         .flags = IEEE80211_RATE_CCK },
-       { .rate = 55,
-         .val = 2,
-         .flags = IEEE80211_RATE_CCK },
-       { .rate = 110,
-         .val = 3,
-         .flags = IEEE80211_RATE_CCK },
-       { .rate = 60,
-         .val = 4,
-         .flags = IEEE80211_RATE_OFDM },
-       { .rate = 90,
-         .val = 5,
-         .flags = IEEE80211_RATE_OFDM },
-       { .rate = 120,
-         .val = 6,
-         .flags = IEEE80211_RATE_OFDM },
-       { .rate = 180,
-         .val = 7,
-         .flags = IEEE80211_RATE_OFDM },
-       { .rate = 240,
-         .val = 8,
-         .flags = IEEE80211_RATE_OFDM },
-       { .rate = 360,
-         .val = 9,
-         .flags = IEEE80211_RATE_OFDM },
-       { .rate = 480,
-         .val = 10,
-         .flags = IEEE80211_RATE_OFDM },
-       { .rate = 540,
-         .val = 11,
-         .flags = IEEE80211_RATE_OFDM },
-};
-
-static const struct ieee80211_channel rtl818x_channels[] = {
-       { .chan = 1,
-         .freq = 2412},
-       { .chan = 2,
-         .freq = 2417},
-       { .chan = 3,
-         .freq = 2422},
-       { .chan = 4,
-         .freq = 2427},
-       { .chan = 5,
-         .freq = 2432},
-       { .chan = 6,
-         .freq = 2437},
-       { .chan = 7,
-         .freq = 2442},
-       { .chan = 8,
-         .freq = 2447},
-       { .chan = 9,
-         .freq = 2452},
-       { .chan = 10,
-         .freq = 2457},
-       { .chan = 11,
-         .freq = 2462},
-       { .chan = 12,
-         .freq = 2467},
-       { .chan = 13,
-         .freq = 2472},
-       { .chan = 14,
-         .freq = 2484}
+struct rtl818x_rf_ops {
+       char *name;
+       void (*init)(struct ieee80211_hw *);
+       void (*stop)(struct ieee80211_hw *);
+       void (*set_chan)(struct ieee80211_hw *, struct ieee80211_conf *);
 };
 
 #endif /* RTL818X_H */