linux/drivers/net/wireless/libertas/cmd.h
<<
>>
Prefs
   1/* Copyright (C) 2007, Red Hat, Inc. */
   2
   3#ifndef _LBS_CMD_H_
   4#define _LBS_CMD_H_
   5
   6#include "hostcmd.h"
   7#include "dev.h"
   8
   9/* lbs_cmd() infers the size of the buffer to copy data back into, from
  10   the size of the target of the pointer. Since the command to be sent 
  11   may often be smaller, that size is set in cmd->size by the caller.*/
  12#define lbs_cmd(priv, cmdnr, cmd, cb, cb_arg)   ({              \
  13        uint16_t __sz = le16_to_cpu((cmd)->hdr.size);           \
  14        (cmd)->hdr.size = cpu_to_le16(sizeof(*(cmd)));          \
  15        __lbs_cmd(priv, cmdnr, &(cmd)->hdr, __sz, cb, cb_arg);  \
  16})
  17
  18#define lbs_cmd_with_response(priv, cmdnr, cmd) \
  19        lbs_cmd(priv, cmdnr, cmd, lbs_cmd_copyback, (unsigned long) (cmd))
  20
  21void lbs_cmd_async(struct lbs_private *priv, uint16_t command,
  22        struct cmd_header *in_cmd, int in_cmd_size);
  23
  24int __lbs_cmd(struct lbs_private *priv, uint16_t command,
  25              struct cmd_header *in_cmd, int in_cmd_size,
  26              int (*callback)(struct lbs_private *, unsigned long, struct cmd_header *),
  27              unsigned long callback_arg);
  28
  29int lbs_set_power_adapt_cfg(struct lbs_private *priv, int enable, int8_t p0,
  30                int8_t p1, int8_t p2);
  31
  32int lbs_set_tpc_cfg(struct lbs_private *priv, int enable, int8_t p0, int8_t p1,
  33                int8_t p2, int usesnr);
  34
  35int lbs_set_power_adapt_cfg(struct lbs_private *priv, int enable, int8_t p0,
  36                int8_t p1, int8_t p2);
  37
  38int lbs_set_tpc_cfg(struct lbs_private *priv, int enable, int8_t p0, int8_t p1,
  39                int8_t p2, int usesnr);
  40
  41int lbs_cmd_copyback(struct lbs_private *priv, unsigned long extra,
  42                     struct cmd_header *resp);
  43
  44int lbs_update_hw_spec(struct lbs_private *priv);
  45
  46int lbs_mesh_access(struct lbs_private *priv, uint16_t cmd_action,
  47                    struct cmd_ds_mesh_access *cmd);
  48
  49int lbs_set_data_rate(struct lbs_private *priv, u8 rate);
  50
  51int lbs_get_channel(struct lbs_private *priv);
  52int lbs_set_channel(struct lbs_private *priv, u8 channel);
  53
  54int lbs_mesh_config_send(struct lbs_private *priv,
  55                         struct cmd_ds_mesh_config *cmd,
  56                         uint16_t action, uint16_t type);
  57int lbs_mesh_config(struct lbs_private *priv, uint16_t enable, uint16_t chan);
  58
  59int lbs_host_sleep_cfg(struct lbs_private *priv, uint32_t criteria,
  60                struct wol_config *p_wol_config);
  61int lbs_suspend(struct lbs_private *priv);
  62void lbs_resume(struct lbs_private *priv);
  63
  64int lbs_cmd_802_11_rate_adapt_rateset(struct lbs_private *priv,
  65                                      uint16_t cmd_action);
  66int lbs_cmd_802_11_inactivity_timeout(struct lbs_private *priv,
  67                                      uint16_t cmd_action, uint16_t *timeout);
  68int lbs_cmd_802_11_sleep_params(struct lbs_private *priv, uint16_t cmd_action,
  69                                struct sleep_params *sp);
  70int lbs_cmd_802_11_set_wep(struct lbs_private *priv, uint16_t cmd_action,
  71                           struct assoc_request *assoc);
  72int lbs_cmd_802_11_enable_rsn(struct lbs_private *priv, uint16_t cmd_action,
  73                              uint16_t *enable);
  74int lbs_cmd_802_11_key_material(struct lbs_private *priv, uint16_t cmd_action,
  75                                struct assoc_request *assoc);
  76
  77int lbs_get_tx_power(struct lbs_private *priv, s16 *curlevel, s16 *minlevel,
  78                     s16 *maxlevel);
  79int lbs_set_tx_power(struct lbs_private *priv, s16 dbm);
  80
  81int lbs_set_radio(struct lbs_private *priv, u8 preamble, u8 radio_on);
  82
  83int lbs_set_snmp_mib(struct lbs_private *priv, u32 oid, u16 val);
  84
  85int lbs_get_snmp_mib(struct lbs_private *priv, u32 oid, u16 *out_val);
  86
  87#endif /* _LBS_CMD_H */
  88