linux/drivers/staging/rtl8712/drv_types.h
<<
>>
Prefs
   1/******************************************************************************
   2 *
   3 * Copyright(c) 2007 - 2010 Realtek Corporation. All rights reserved.
   4 *
   5 * This program is free software; you can redistribute it and/or modify it
   6 * under the terms of version 2 of the GNU General Public License as
   7 * published by the Free Software Foundation.
   8 *
   9 * This program is distributed in the hope that it will be useful, but WITHOUT
  10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  12 * more details.
  13 *
  14 * You should have received a copy of the GNU General Public License along with
  15 * this program; if not, write to the Free Software Foundation, Inc.,
  16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
  17 *
  18 * Modifications for inclusion into the Linux staging tree are
  19 * Copyright(c) 2010 Larry Finger. All rights reserved.
  20 *
  21 * Contact information:
  22 * WLAN FAE <wlanfae@realtek.com>
  23 * Larry Finger <Larry.Finger@lwfinger.net>
  24 *
  25 ******************************************************************************/
  26/*---------------------------------------------------------------------
  27
  28        For type defines and data structure defines
  29
  30-----------------------------------------------------------------------*/
  31#ifndef __DRV_TYPES_H__
  32#define __DRV_TYPES_H__
  33
  34struct _adapter;
  35
  36#include "osdep_service.h"
  37#include "wlan_bssdef.h"
  38#include "rtl8712_spec.h"
  39#include "rtl8712_hal.h"
  40#include <linux/mutex.h>
  41#include <linux/completion.h>
  42
  43enum _NIC_VERSION {
  44        RTL8711_NIC,
  45        RTL8712_NIC,
  46        RTL8713_NIC,
  47        RTL8716_NIC
  48};
  49
  50struct _adapter;
  51
  52struct  qos_priv        {
  53        /* bit mask option: u-apsd, s-apsd, ts, block ack... */
  54        unsigned int qos_option;
  55};
  56
  57#include "rtl871x_ht.h"
  58#include "rtl871x_cmd.h"
  59#include "rtl871x_xmit.h"
  60#include "rtl871x_recv.h"
  61#include "rtl871x_security.h"
  62#include "rtl871x_pwrctrl.h"
  63#include "rtl871x_io.h"
  64#include "rtl871x_eeprom.h"
  65#include "sta_info.h"
  66#include "rtl871x_mlme.h"
  67#include "rtl871x_mp.h"
  68#include "rtl871x_debug.h"
  69#include "rtl871x_rf.h"
  70#include "rtl871x_event.h"
  71#include "rtl871x_led.h"
  72
  73#define SPEC_DEV_ID_DISABLE_HT BIT(1)
  74
  75struct specific_device_id {
  76        u32             flags;
  77        u16             idVendor;
  78        u16             idProduct;
  79
  80};
  81
  82struct registry_priv {
  83        u8      chip_version;
  84        u8      rfintfs;
  85        u8      lbkmode;
  86        u8      hci;
  87        u8      network_mode;   /*infra, ad-hoc, auto*/
  88        struct ndis_802_11_ssid ssid;
  89        u8      channel;/* ad-hoc support requirement */
  90        u8      wireless_mode;/* A, B, G, auto */
  91        u8      vrtl_carrier_sense; /*Enable, Disable, Auto*/
  92        u8      vcs_type;/*RTS/CTS, CTS-to-self*/
  93        u16     rts_thresh;
  94        u16  frag_thresh;
  95        u8      preamble;/*long, short, auto*/
  96        u8  scan_mode;/*active, passive*/
  97        u8  adhoc_tx_pwr;
  98        u8  soft_ap;
  99        u8  smart_ps;
 100        u8 power_mgnt;
 101        u8 radio_enable;
 102        u8 long_retry_lmt;
 103        u8 short_retry_lmt;
 104        u16 busy_thresh;
 105        u8 ack_policy;
 106        u8 mp_mode;
 107        u8 software_encrypt;
 108        u8 software_decrypt;
 109        /* UAPSD */
 110        u8 wmm_enable;
 111        u8 uapsd_enable;
 112        u8 uapsd_max_sp;
 113        u8 uapsd_acbk_en;
 114        u8 uapsd_acbe_en;
 115        u8 uapsd_acvi_en;
 116        u8 uapsd_acvo_en;
 117
 118        struct wlan_bssid_ex dev_network;
 119
 120        u8 ht_enable;
 121        u8 cbw40_enable;
 122        u8 ampdu_enable;/*for tx*/
 123        u8 rf_config;
 124        u8 low_power;
 125        u8 wifi_test;
 126};
 127
 128struct dvobj_priv {
 129        struct _adapter *padapter;
 130        u32 nr_endpoint;
 131        u8   ishighspeed;
 132        uint(*inirp_init)(struct _adapter *adapter);
 133        uint(*inirp_deinit)(struct _adapter *adapter);
 134        struct usb_device *pusbdev;
 135};
 136
 137/**
 138 * struct _adapter - the main adapter structure for this device.
 139 *
 140 * bup: True indicates that the interface is up.
 141 */
 142struct _adapter {
 143        struct  dvobj_priv dvobjpriv;
 144        struct  mlme_priv mlmepriv;
 145        struct  cmd_priv        cmdpriv;
 146        struct  evt_priv        evtpriv;
 147        struct  io_queue        *pio_queue;
 148        struct  xmit_priv       xmitpriv;
 149        struct  recv_priv       recvpriv;
 150        struct  sta_priv        stapriv;
 151        struct  security_priv   securitypriv;
 152        struct  registry_priv   registrypriv;
 153        struct  wlan_acl_pool   acl_list;
 154        struct  pwrctrl_priv    pwrctrlpriv;
 155        struct  eeprom_priv eeprompriv;
 156        struct  hal_priv        halpriv;
 157        struct  led_priv        ledpriv;
 158        struct mp_priv  mppriv;
 159        s32     bDriverStopped;
 160        s32     bSurpriseRemoved;
 161        u32     IsrContent;
 162        u32     ImrContent;
 163        bool    fw_found;
 164        u8      EepromAddressSize;
 165        u8      hw_init_completed;
 166        struct task_struct *cmdThread;
 167         pid_t evtThread;
 168        struct task_struct *xmitThread;
 169        pid_t recvThread;
 170        uint(*dvobj_init)(struct _adapter *adapter);
 171        void (*dvobj_deinit)(struct _adapter *adapter);
 172        struct net_device *pnetdev;
 173        int bup;
 174        struct net_device_stats stats;
 175        struct iw_statistics iwstats;
 176        int pid; /*process id from UI*/
 177        _workitem wkFilterRxFF0;
 178        u8 blnEnableRxFF0Filter;
 179        spinlock_t lockRxFF0Filter;
 180        const struct firmware *fw;
 181        struct usb_interface *pusb_intf;
 182        struct mutex mutex_start;
 183        struct completion rtl8712_fw_ready;
 184};
 185
 186static inline u8 *myid(struct eeprom_priv *peepriv)
 187{
 188        return peepriv->mac_addr;
 189}
 190
 191u8 r8712_usb_hal_bus_init(struct _adapter *adapter);
 192
 193#endif /*__DRV_TYPES_H__*/
 194
 195