root/drivers/staging/rtl8712/rtl871x_cmd.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /******************************************************************************
   3  *
   4  * Copyright(c) 2007 - 2010 Realtek Corporation. All rights reserved.
   5  *
   6  * Modifications for inclusion into the Linux staging tree are
   7  * Copyright(c) 2010 Larry Finger. All rights reserved.
   8  *
   9  * Contact information:
  10  * WLAN FAE <wlanfae@realtek.com>
  11  * Larry Finger <Larry.Finger@lwfinger.net>
  12  *
  13  ******************************************************************************/
  14 #ifndef __RTL871X_CMD_H_
  15 #define __RTL871X_CMD_H_
  16 
  17 #include "wlan_bssdef.h"
  18 #include "rtl871x_rf.h"
  19 #define C2H_MEM_SZ (16*1024)
  20 
  21 #include "osdep_service.h"
  22 #include "ieee80211.h"
  23 
  24 #define FREE_CMDOBJ_SZ  128
  25 #define MAX_CMDSZ       512
  26 #define MAX_RSPSZ       512
  27 #define MAX_EVTSZ       1024
  28 #define CMDBUFF_ALIGN_SZ 512
  29 
  30 struct cmd_obj {
  31         u16     cmdcode;
  32         u8      res;
  33         u8      *parmbuf;
  34         u32     cmdsz;
  35         u8      *rsp;
  36         u32     rspsz;
  37         struct list_head list;
  38 };
  39 
  40 struct cmd_priv {
  41         struct completion cmd_queue_comp;
  42         struct completion terminate_cmdthread_comp;
  43         struct  __queue cmd_queue;
  44         u8 cmd_seq;
  45         u8 *cmd_buf;    /*shall be non-paged, and 4 bytes aligned*/
  46         u8 *cmd_allocated_buf;
  47         u8 *rsp_buf;    /*shall be non-paged, and 4 bytes aligned*/
  48         u8 *rsp_allocated_buf;
  49         u32 cmd_issued_cnt;
  50         u32 cmd_done_cnt;
  51         u32 rsp_cnt;
  52         struct _adapter *padapter;
  53 };
  54 
  55 struct evt_obj {
  56         u16 evtcode;
  57         u8 res;
  58         u8 *parmbuf;
  59         u32 evtsz;
  60         struct list_head list;
  61 };
  62 
  63 struct  evt_priv {
  64         struct  __queue evt_queue;
  65         u8      event_seq;
  66         u8      *evt_buf;       /*shall be non-paged, and 4 bytes aligned*/
  67         u8      *evt_allocated_buf;
  68         u32     evt_done_cnt;
  69         struct tasklet_struct event_tasklet;
  70 };
  71 
  72 #define init_h2fwcmd_w_parm_no_rsp(pcmd, pparm, code) \
  73 do {\
  74         INIT_LIST_HEAD(&pcmd->list);\
  75         pcmd->cmdcode = code;\
  76         pcmd->parmbuf = (u8 *)(pparm);\
  77         pcmd->cmdsz = sizeof(*pparm);\
  78         pcmd->rsp = NULL;\
  79         pcmd->rspsz = 0;\
  80 } while (0)
  81 
  82 void r8712_enqueue_cmd(struct cmd_priv *pcmdpriv, struct cmd_obj *obj);
  83 void r8712_enqueue_cmd_ex(struct cmd_priv *pcmdpriv, struct cmd_obj *obj);
  84 struct cmd_obj *r8712_dequeue_cmd(struct  __queue *queue);
  85 void r8712_free_cmd_obj(struct cmd_obj *pcmd);
  86 int r8712_cmd_thread(void *context);
  87 int r8712_init_cmd_priv(struct cmd_priv *pcmdpriv);
  88 void r8712_free_cmd_priv(struct cmd_priv *pcmdpriv);
  89 int r8712_init_evt_priv(struct evt_priv *pevtpriv);
  90 void r8712_free_evt_priv(struct evt_priv *pevtpriv);
  91 
  92 enum rtl871x_drvint_cid {
  93         NONE_WK_CID,
  94         WDG_WK_CID,
  95         MAX_WK_CID
  96 };
  97 
  98 enum RFINTFS {
  99         SWSI,
 100         HWSI,
 101         HWPI,
 102 };
 103 
 104 /*
 105  * Caller Mode: Infra, Ad-HoC(C)
 106  * Notes: To enter USB suspend mode
 107  * Command Mode
 108  */
 109 struct usb_suspend_parm {
 110         u32 action; /* 1: sleep, 0:resume */
 111 };
 112 
 113 /*
 114  * Caller Mode: Infra, Ad-HoC(C)
 115  * Notes: To disconnect the current associated BSS
 116  * Command Mode
 117  */
 118 struct disconnect_parm {
 119         u32 rsvd;
 120 };
 121 
 122 /*
 123  * Caller Mode: AP, Ad-HoC, Infra
 124  * Notes: To set the NIC mode of RTL8711
 125  * Command Mode
 126  * The definition of mode:
 127  *
 128  * #define IW_MODE_AUTO 0       // Let the driver decides which AP to join
 129  * #define IW_MODE_ADHOC        1       // Single cell network (Ad-Hoc Clients)
 130  * #define IW_MODE_INFRA        2       // Multi cell network, roaming, ..
 131  * #define IW_MODE_MASTER       3       // Synchronisation master or AP
 132  * #define IW_MODE_REPEAT       4       // Wireless Repeater (forwarder)
 133  * #define IW_MODE_SECOND       5       // Secondary master/repeater (backup)
 134  * #define IW_MODE_MONITOR      6       // Passive monitor (listen only)
 135  */
 136 struct  setopmode_parm {
 137         u8      mode;
 138         u8      rsvd[3];
 139 };
 140 
 141 /*
 142  * Caller Mode: AP, Ad-HoC, Infra
 143  * Notes: To ask RTL8711 performing site-survey
 144  * Command-Event Mode
 145  */
 146 struct sitesurvey_parm {
 147         __le32  passive_mode;   /*active: 1, passive: 0 */
 148         __le32  bsslimit;       /* 1 ~ 48 */
 149         __le32  ss_ssidlen;
 150         u8      ss_ssid[IW_ESSID_MAX_SIZE + 1];
 151 };
 152 
 153 /*
 154  * Caller Mode: Any
 155  * Notes: To set the auth type of RTL8711. open/shared/802.1x
 156  * Command Mode
 157  */
 158 struct setauth_parm {
 159         u8 mode;  /*0: legacy open, 1: legacy shared 2: 802.1x*/
 160         u8 _1x;   /*0: PSK, 1: TLS*/
 161         u8 rsvd[2];
 162 };
 163 
 164 /*
 165  * Caller Mode: Infra
 166  * a. algorithm: wep40, wep104, tkip & aes
 167  * b. keytype: grp key/unicast key
 168  * c. key contents
 169  *
 170  * when shared key ==> keyid is the camid
 171  * when 802.1x ==> keyid [0:1] ==> grp key
 172  * when 802.1x ==> keyid > 2 ==> unicast key
 173  */
 174 struct setkey_parm {
 175         u8      algorithm;      /* encryption algorithm, could be none, wep40,
 176                                  * TKIP, CCMP, wep104
 177                                  */
 178         u8      keyid;
 179         u8      grpkey;         /* 1: this is the grpkey for 802.1x.
 180                                  * 0: this is the unicast key for 802.1x
 181                                  */
 182         u8      key[16];        /* this could be 40 or 104 */
 183 };
 184 
 185 /*
 186  * When in AP or Ad-Hoc mode, this is used to
 187  * allocate an sw/hw entry for a newly associated sta.
 188  * Command
 189  * when shared key ==> algorithm/keyid
 190  */
 191 struct set_stakey_parm {
 192         u8      addr[ETH_ALEN];
 193         u8      algorithm;
 194         u8      key[16];
 195 };
 196 
 197 struct set_stakey_rsp {
 198         u8      addr[ETH_ALEN];
 199         u8      keyid;
 200         u8      rsvd;
 201 };
 202 
 203 struct SetMacAddr_param {
 204         u8      MacAddr[ETH_ALEN];
 205 };
 206 
 207 /*
 208  *      Caller Ad-Hoc/AP
 209  *
 210  *      Command -Rsp(AID == CAMID) mode
 211  *
 212  *      This is to force fw to add an sta_data entry per driver's request.
 213  *
 214  *      FW will write an cam entry associated with it.
 215  *
 216  */
 217 struct set_assocsta_parm {
 218         u8      addr[ETH_ALEN];
 219 };
 220 
 221 struct set_assocsta_rsp {
 222         u8      cam_id;
 223         u8      rsvd[3];
 224 };
 225 
 226 /*
 227  *      Caller Ad-Hoc/AP
 228  *
 229  *      Command mode
 230  *
 231  *      This is to force fw to del an sta_data entry per driver's request
 232  *
 233  *      FW will invalidate the cam entry associated with it.
 234  *
 235  */
 236 struct del_assocsta_parm {
 237         u8      addr[ETH_ALEN];
 238 };
 239 
 240 /*
 241  *      Caller Mode: AP/Ad-HoC(M)
 242  *
 243  *      Notes: To notify fw that given staid has changed its power state
 244  *
 245  *      Command Mode
 246  *
 247  */
 248 struct setstapwrstate_parm {
 249         u8      staid;
 250         u8      status;
 251         u8      hwaddr[6];
 252 };
 253 
 254 /*
 255  *      Caller Mode: Any
 256  *
 257  *      Notes: To setup the basic rate of RTL8711
 258  *
 259  *      Command Mode
 260  *
 261  */
 262 struct  setbasicrate_parm {
 263         u8      basicrates[NumRates];
 264 };
 265 
 266 /*
 267  *      Caller Mode: Any
 268  *
 269  *      Notes: To read the current basic rate
 270  *
 271  *      Command-Rsp Mode
 272  *
 273  */
 274 struct getbasicrate_parm {
 275         u32 rsvd;
 276 };
 277 
 278 struct getbasicrate_rsp {
 279         u8 basicrates[NumRates];
 280 };
 281 
 282 /*
 283  *      Caller Mode: Any
 284  *
 285  *      Notes: To setup the data rate of RTL8711
 286  *
 287  *      Command Mode
 288  *
 289  */
 290 struct setdatarate_parm {
 291         u8      mac_id;
 292         u8      datarates[NumRates];
 293 };
 294 
 295 enum _RT_CHANNEL_DOMAIN {
 296         RT_CHANNEL_DOMAIN_FCC = 0,
 297         RT_CHANNEL_DOMAIN_IC = 1,
 298         RT_CHANNEL_DOMAIN_ETSI = 2,
 299         RT_CHANNEL_DOMAIN_SPAIN = 3,
 300         RT_CHANNEL_DOMAIN_FRANCE = 4,
 301         RT_CHANNEL_DOMAIN_MKK = 5,
 302         RT_CHANNEL_DOMAIN_MKK1 = 6,
 303         RT_CHANNEL_DOMAIN_ISRAEL = 7,
 304         RT_CHANNEL_DOMAIN_TELEC = 8,
 305 
 306         /* Be compatible with old channel plan. No good! */
 307         RT_CHANNEL_DOMAIN_MIC = 9,
 308         RT_CHANNEL_DOMAIN_GLOBAL_DOAMIN = 10,
 309         RT_CHANNEL_DOMAIN_WORLD_WIDE_13 = 11,
 310         RT_CHANNEL_DOMAIN_TELEC_NETGEAR = 12,
 311 
 312         RT_CHANNEL_DOMAIN_NCC = 13,
 313         RT_CHANNEL_DOMAIN_5G = 14,
 314         RT_CHANNEL_DOMAIN_5G_40M = 15,
 315  /*===== Add new channel plan above this line===============*/
 316         RT_CHANNEL_DOMAIN_MAX,
 317 };
 318 
 319 
 320 struct SetChannelPlan_param {
 321         enum _RT_CHANNEL_DOMAIN ChannelPlan;
 322 };
 323 
 324 /*
 325  *      Caller Mode: Any
 326  *
 327  *      Notes: To read the current data rate
 328  *
 329  *      Command-Rsp Mode
 330  *
 331  */
 332 struct getdatarate_parm {
 333         u32 rsvd;
 334 
 335 };
 336 struct getdatarate_rsp {
 337         u8 datarates[NumRates];
 338 };
 339 
 340 
 341 /*
 342  *      Caller Mode: Any
 343  *      AP: AP can use the info for the contents of beacon frame
 344  *      Infra: STA can use the info when sitesurveying
 345  *      Ad-HoC(M): Like AP
 346  *      Ad-HoC(C): Like STA
 347  *
 348  *
 349  *      Notes: To set the phy capability of the NIC
 350  *
 351  *      Command Mode
 352  *
 353  */
 354 
 355 /*
 356  *      Caller Mode: Any
 357  *
 358  *      Notes: To set the channel/modem/band
 359  *      This command will be used when channel/modem/band is changed.
 360  *
 361  *      Command Mode
 362  *
 363  */
 364 /*
 365  *      Caller Mode: Any
 366  *
 367  *      Notes: To get the current setting of channel/modem/band
 368  *
 369  *      Command-Rsp Mode
 370  *
 371  */
 372 struct  getphy_rsp {
 373         u8      rfchannel;
 374         u8      modem;
 375 };
 376 
 377 struct readBB_parm {
 378         u8      offset;
 379 };
 380 struct readBB_rsp {
 381         u8      value;
 382 };
 383 
 384 struct readTSSI_parm {
 385         u8      offset;
 386 };
 387 struct readTSSI_rsp {
 388         u8      value;
 389 };
 390 
 391 struct writeBB_parm {
 392         u8      offset;
 393         u8      value;
 394 };
 395 
 396 struct writePTM_parm {
 397         u8      type;
 398 };
 399 
 400 struct readRF_parm {
 401         u8      offset;
 402 };
 403 struct readRF_rsp {
 404         u32     value;
 405 };
 406 
 407 struct writeRF_parm {
 408         u32     offset;
 409         u32     value;
 410 };
 411 
 412 struct setrfintfs_parm {
 413         u8      rfintfs;
 414 };
 415 
 416 struct getrfintfs_parm {
 417         u8      rfintfs;
 418 };
 419 
 420 /*
 421  *      Notes: This command is used for H2C/C2H loopback testing
 422  *
 423  *      mac[0] == 0
 424  *      ==> CMD mode, return H2C_SUCCESS.
 425  *      The following condition must be true under CMD mode
 426  *              mac[1] == mac[4], mac[2] == mac[3], mac[0]=mac[5]= 0;
 427  *              s0 == 0x1234, s1 == 0xabcd, w0 == 0x78563412, w1 == 0x5aa5def7;
 428  *              s2 == (b1 << 8 | b0);
 429  *
 430  *      mac[0] == 1
 431  *      ==> CMD_RSP mode, return H2C_SUCCESS_RSP
 432  *
 433  *      The rsp layout shall be:
 434  *      rsp:                    parm:
 435  *              mac[0]  =   mac[5];
 436  *              mac[1]  =   mac[4];
 437  *              mac[2]  =   mac[3];
 438  *              mac[3]  =   mac[2];
 439  *              mac[4]  =   mac[1];
 440  *              mac[5]  =   mac[0];
 441  *              s0              =   s1;
 442  *              s1              =   swap16(s0);
 443  *              w0              =       swap32(w1);
 444  *              b0              =       b1
 445  *              s2              =       s0 + s1
 446  *              b1              =       b0
 447  *              w1              =       w0
 448  *
 449  *      mac[0] ==       2
 450  *      ==> CMD_EVENT mode, return      H2C_SUCCESS
 451  *      The event layout shall be:
 452  *      event:       parm:
 453  *      mac[0]  =   mac[5];
 454  *      mac[1]  =   mac[4];
 455  *      mac[2]  =   event's sequence number, starting from 1 to parm's marc[3]
 456  *      mac[3]  =   mac[2];
 457  *      mac[4]  =   mac[1];
 458  *      mac[5]  =   mac[0];
 459  *      s0              =   swap16(s0) - event.mac[2];
 460  *      s1              =   s1 + event.mac[2];
 461  *      w0              =       swap32(w0);
 462  *      b0              =       b1
 463  *      s2              =       s0 + event.mac[2]
 464  *      b1              =       b0
 465  *      w1              =       swap32(w1) - event.mac[2];
 466  *
 467  *      parm->mac[3] is the total event counts that host requested.
 468  *
 469  *
 470  *      event will be the same with the cmd's param.
 471  *
 472  */
 473 
 474 /* CMD param Formart for DRV INTERNAL CMD HDL*/
 475 struct drvint_cmd_parm {
 476         int i_cid; /*internal cmd id*/
 477         int sz; /* buf sz*/
 478         unsigned char *pbuf;
 479 };
 480 
 481 /*------------------- Below are used for RF/BB tunning ---------------------*/
 482 
 483 struct  setantenna_parm {
 484         u8      tx_antset;
 485         u8      rx_antset;
 486         u8      tx_antenna;
 487         u8      rx_antenna;
 488 };
 489 
 490 struct  enrateadaptive_parm {
 491         u32     en;
 492 };
 493 
 494 struct settxagctbl_parm {
 495         u32     txagc[MAX_RATES_LENGTH];
 496 };
 497 
 498 struct gettxagctbl_parm {
 499         u32 rsvd;
 500 };
 501 struct gettxagctbl_rsp {
 502         u32     txagc[MAX_RATES_LENGTH];
 503 };
 504 
 505 struct setagcctrl_parm {
 506         u32     agcctrl;        /* 0: pure hw, 1: fw */
 507 };
 508 
 509 struct setssup_parm     {
 510         u32     ss_ForceUp[MAX_RATES_LENGTH];
 511 };
 512 
 513 struct getssup_parm     {
 514         u32 rsvd;
 515 };
 516 struct getssup_rsp      {
 517         u8      ss_ForceUp[MAX_RATES_LENGTH];
 518 };
 519 
 520 struct setssdlevel_parm {
 521         u8      ss_DLevel[MAX_RATES_LENGTH];
 522 };
 523 
 524 struct getssdlevel_parm {
 525         u32 rsvd;
 526 };
 527 struct getssdlevel_rsp  {
 528         u8      ss_DLevel[MAX_RATES_LENGTH];
 529 };
 530 
 531 struct setssulevel_parm {
 532         u8      ss_ULevel[MAX_RATES_LENGTH];
 533 };
 534 
 535 struct getssulevel_parm {
 536         u32 rsvd;
 537 };
 538 struct getssulevel_rsp  {
 539         u8      ss_ULevel[MAX_RATES_LENGTH];
 540 };
 541 
 542 struct  setcountjudge_parm {
 543         u8      count_judge[MAX_RATES_LENGTH];
 544 };
 545 
 546 struct  getcountjudge_parm {
 547         u32 rsvd;
 548 };
 549 
 550 struct  getcountjudge_rsp {
 551         u8      count_judge[MAX_RATES_LENGTH];
 552 };
 553 
 554 struct setpwrmode_parm  {
 555         u8      mode;
 556         u8      flag_low_traffic_en;
 557         u8      flag_lpnav_en;
 558         u8      flag_rf_low_snr_en;
 559         u8      flag_dps_en; /* 1: dps, 0: 32k */
 560         u8      bcn_rx_en;
 561         u8      bcn_pass_cnt;     /* fw report one beacon information to
 562                                    * driver  when it receives bcn_pass_cnt
 563                                    * beacons.
 564                                    */
 565         u8      bcn_to;           /* beacon TO (ms). ¡§=0¡¨ no limit.*/
 566         u16     bcn_itv;
 567         u8      app_itv; /* only for VOIP mode. */
 568         u8      awake_bcn_itv;
 569         u8      smart_ps;
 570         u8      bcn_pass_time;  /* unit: 100ms */
 571 };
 572 
 573 struct setatim_parm {
 574         u8 op;   /*0: add, 1:del*/
 575         u8 txid; /* id of dest station.*/
 576 };
 577 
 578 struct setratable_parm {
 579         u8 ss_ForceUp[NumRates];
 580         u8 ss_ULevel[NumRates];
 581         u8 ss_DLevel[NumRates];
 582         u8 count_judge[NumRates];
 583 };
 584 
 585 struct getratable_parm {
 586         uint rsvd;
 587 };
 588 struct getratable_rsp {
 589         u8 ss_ForceUp[NumRates];
 590         u8 ss_ULevel[NumRates];
 591         u8 ss_DLevel[NumRates];
 592         u8 count_judge[NumRates];
 593 };
 594 
 595 /*to get TX,RX retry count*/
 596 struct gettxretrycnt_parm {
 597         unsigned int rsvd;
 598 };
 599 
 600 struct gettxretrycnt_rsp {
 601         unsigned long tx_retrycnt;
 602 };
 603 
 604 struct getrxretrycnt_parm {
 605         unsigned int rsvd;
 606 };
 607 
 608 struct getrxretrycnt_rsp {
 609         unsigned long rx_retrycnt;
 610 };
 611 
 612 /*to get BCNOK,BCNERR count*/
 613 struct getbcnokcnt_parm {
 614         unsigned int rsvd;
 615 };
 616 
 617 struct getbcnokcnt_rsp {
 618         unsigned long bcnokcnt;
 619 };
 620 
 621 struct getbcnerrcnt_parm {
 622         unsigned int rsvd;
 623 };
 624 struct getbcnerrcnt_rsp {
 625         unsigned long bcnerrcnt;
 626 };
 627 
 628 /* to get current TX power level*/
 629 struct getcurtxpwrlevel_parm {
 630         unsigned int rsvd;
 631 };
 632 
 633 struct getcurtxpwrlevel_rsp {
 634         unsigned short tx_power;
 635 };
 636 
 637 /*dynamic on/off DIG*/
 638 struct setdig_parm {
 639         unsigned char dig_on;   /* 1:on , 0:off */
 640 };
 641 
 642 /*dynamic on/off RA*/
 643 struct setra_parm {
 644         unsigned char ra_on;    /* 1:on , 0:off */
 645 };
 646 
 647 struct setprobereqextraie_parm {
 648         unsigned char e_id;
 649         unsigned char ie_len;
 650         unsigned char ie[0];
 651 };
 652 
 653 struct setassocreqextraie_parm {
 654         unsigned char e_id;
 655         unsigned char ie_len;
 656         unsigned char ie[0];
 657 };
 658 
 659 struct setproberspextraie_parm {
 660         unsigned char e_id;
 661         unsigned char ie_len;
 662         unsigned char ie[0];
 663 };
 664 
 665 struct setassocrspextraie_parm {
 666         unsigned char e_id;
 667         unsigned char ie_len;
 668         unsigned char ie[0];
 669 };
 670 
 671 struct addBaReq_parm {
 672         unsigned int tid;
 673 };
 674 
 675 /*H2C Handler index: 46 */
 676 struct SetChannel_parm {
 677         u32 curr_ch;
 678 };
 679 
 680 /*H2C Handler index: 61 */
 681 struct DisconnectCtrlEx_param {
 682         /* MAXTIME = (2 * FirstStageTO) + (TryPktCnt * TryPktInterval) */
 683         unsigned char EnableDrvCtrl;
 684         unsigned char TryPktCnt;
 685         unsigned char TryPktInterval; /* Unit: ms */
 686         unsigned char rsvd;
 687         unsigned int  FirstStageTO; /* Unit: ms */
 688 };
 689 
 690 #define GEN_CMD_CODE(cmd)       cmd ## _CMD_
 691 
 692 /*
 693  * Result:
 694  * 0x00: success
 695  * 0x01: success, and check Response.
 696  * 0x02: cmd ignored due to duplicated sequence number
 697  * 0x03: cmd dropped due to invalid cmd code
 698  * 0x04: reserved.
 699  */
 700 
 701 #define H2C_RSP_OFFSET                  512
 702 #define H2C_SUCCESS                     0x00
 703 #define H2C_SUCCESS_RSP                 0x01
 704 #define H2C_DUPLICATED                  0x02
 705 #define H2C_DROPPED                     0x03
 706 #define H2C_PARAMETERS_ERROR            0x04
 707 #define H2C_REJECTED                    0x05
 708 #define H2C_CMD_OVERFLOW                0x06
 709 #define H2C_RESERVED                    0x07
 710 
 711 void r8712_setMacAddr_cmd(struct _adapter *padapter, u8 *mac_addr);
 712 u8 r8712_sitesurvey_cmd(struct _adapter *padapter,
 713                         struct ndis_802_11_ssid *pssid);
 714 int r8712_createbss_cmd(struct _adapter *padapter);
 715 void r8712_setstakey_cmd(struct _adapter *padapter, u8 *psta, u8 unicast_key);
 716 int r8712_joinbss_cmd(struct _adapter *padapter,
 717                       struct wlan_network *pnetwork);
 718 void r8712_disassoc_cmd(struct _adapter *padapter);
 719 void r8712_setopmode_cmd(struct _adapter *padapter,
 720                  enum NDIS_802_11_NETWORK_INFRASTRUCTURE networktype);
 721 int r8712_setdatarate_cmd(struct _adapter *padapter, u8 *rateset);
 722 void r8712_set_chplan_cmd(struct _adapter  *padapter, int chplan);
 723 int r8712_getrfreg_cmd(struct _adapter *padapter, u8 offset, u8 *pval);
 724 int r8712_setrfreg_cmd(struct _adapter  *padapter, u8 offset, u32 val);
 725 void r8712_addbareq_cmd(struct _adapter *padapter, u8 tid);
 726 void r8712_wdg_wk_cmd(struct _adapter *padapter);
 727 void r8712_survey_cmd_callback(struct _adapter  *padapter,
 728                                struct cmd_obj *pcmd);
 729 void r8712_disassoc_cmd_callback(struct _adapter  *padapter,
 730                                  struct cmd_obj *pcmd);
 731 void r8712_joinbss_cmd_callback(struct _adapter  *padapter,
 732                                 struct cmd_obj *pcmd);
 733 void r8712_createbss_cmd_callback(struct _adapter *padapter,
 734                                   struct cmd_obj *pcmd);
 735 void r8712_getbbrfreg_cmdrsp_callback(struct _adapter *padapter,
 736                                       struct cmd_obj *pcmd);
 737 void r8712_readtssi_cmdrsp_callback(struct _adapter *padapter,
 738                                 struct cmd_obj *pcmd);
 739 void r8712_setstaKey_cmdrsp_callback(struct _adapter  *padapter,
 740                                      struct cmd_obj *pcmd);
 741 void r8712_setassocsta_cmdrsp_callback(struct _adapter  *padapter,
 742                                        struct cmd_obj *pcmd);
 743 void r8712_disconnectCtrlEx_cmd(struct _adapter *adapter, u32 enableDrvCtrl,
 744                         u32 tryPktCnt, u32 tryPktInterval, u32 firstStageTO);
 745 
 746 struct _cmd_callback {
 747         u32     cmd_code;
 748         void (*callback)(struct _adapter  *padapter, struct cmd_obj *cmd);
 749 };
 750 
 751 #include "rtl8712_cmd.h"
 752 
 753 #endif /* _CMD_H_ */
 754 

/* [<][>][^][v][top][bottom][index][help] */