libertas: remove unused lbs_cmd_802_11_inactivity_timeout()
[safe/jmp/linux-2.6] / drivers / net / wireless / libertas / cmd.h
1 /* Copyright (C) 2007, Red Hat, Inc. */
2
3 #ifndef _LBS_CMD_H_
4 #define _LBS_CMD_H_
5
6 #include "host.h"
7 #include "dev.h"
8
9
10 /* Command & response transfer between host and card */
11
12 struct cmd_ctrl_node {
13         struct list_head list;
14         int result;
15         /* command response */
16         int (*callback)(struct lbs_private *,
17                         unsigned long,
18                         struct cmd_header *);
19         unsigned long callback_arg;
20         /* command data */
21         struct cmd_header *cmdbuf;
22         /* wait queue */
23         u16 cmdwaitqwoken;
24         wait_queue_head_t cmdwait_q;
25 };
26
27
28 /* lbs_cmd() infers the size of the buffer to copy data back into, from
29    the size of the target of the pointer. Since the command to be sent
30    may often be smaller, that size is set in cmd->size by the caller.*/
31 #define lbs_cmd(priv, cmdnr, cmd, cb, cb_arg)   ({              \
32         uint16_t __sz = le16_to_cpu((cmd)->hdr.size);           \
33         (cmd)->hdr.size = cpu_to_le16(sizeof(*(cmd)));          \
34         __lbs_cmd(priv, cmdnr, &(cmd)->hdr, __sz, cb, cb_arg);  \
35 })
36
37 #define lbs_cmd_with_response(priv, cmdnr, cmd) \
38         lbs_cmd(priv, cmdnr, cmd, lbs_cmd_copyback, (unsigned long) (cmd))
39
40 int lbs_prepare_and_send_command(struct lbs_private *priv,
41         u16 cmd_no,
42         u16 cmd_action,
43         u16 wait_option, u32 cmd_oid, void *pdata_buf);
44
45 void lbs_cmd_async(struct lbs_private *priv, uint16_t command,
46         struct cmd_header *in_cmd, int in_cmd_size);
47
48 int __lbs_cmd(struct lbs_private *priv, uint16_t command,
49               struct cmd_header *in_cmd, int in_cmd_size,
50               int (*callback)(struct lbs_private *, unsigned long, struct cmd_header *),
51               unsigned long callback_arg);
52
53 struct cmd_ctrl_node *__lbs_cmd_async(struct lbs_private *priv,
54         uint16_t command, struct cmd_header *in_cmd, int in_cmd_size,
55         int (*callback)(struct lbs_private *, unsigned long, struct cmd_header *),
56         unsigned long callback_arg);
57
58 int lbs_cmd_copyback(struct lbs_private *priv, unsigned long extra,
59                      struct cmd_header *resp);
60
61 int lbs_allocate_cmd_buffer(struct lbs_private *priv);
62 int lbs_free_cmd_buffer(struct lbs_private *priv);
63
64 int lbs_execute_next_command(struct lbs_private *priv);
65 void lbs_complete_command(struct lbs_private *priv, struct cmd_ctrl_node *cmd,
66                           int result);
67 int lbs_process_command_response(struct lbs_private *priv, u8 *data, u32 len);
68
69
70 /* From cmdresp.c */
71
72 void lbs_mac_event_disconnected(struct lbs_private *priv);
73
74
75
76 /* Events */
77
78 int lbs_process_event(struct lbs_private *priv, u32 event);
79
80
81 /* Actual commands */
82
83 int lbs_update_hw_spec(struct lbs_private *priv);
84
85 int lbs_set_channel(struct lbs_private *priv, u8 channel);
86
87 int lbs_update_channel(struct lbs_private *priv);
88
89 int lbs_host_sleep_cfg(struct lbs_private *priv, uint32_t criteria,
90                 struct wol_config *p_wol_config);
91
92 int lbs_cmd_802_11_sleep_params(struct lbs_private *priv, uint16_t cmd_action,
93                                 struct sleep_params *sp);
94
95 void lbs_ps_sleep(struct lbs_private *priv, int wait_option);
96
97 void lbs_ps_wakeup(struct lbs_private *priv, int wait_option);
98
99 void lbs_ps_confirm_sleep(struct lbs_private *priv);
100
101 int lbs_set_radio(struct lbs_private *priv, u8 preamble, u8 radio_on);
102
103 void lbs_set_mac_control(struct lbs_private *priv);
104
105 int lbs_get_tx_power(struct lbs_private *priv, s16 *curlevel, s16 *minlevel,
106                      s16 *maxlevel);
107
108 int lbs_set_snmp_mib(struct lbs_private *priv, u32 oid, u16 val);
109
110 int lbs_get_snmp_mib(struct lbs_private *priv, u32 oid, u16 *out_val);
111
112
113 /* Mesh related */
114
115 int lbs_mesh_access(struct lbs_private *priv, uint16_t cmd_action,
116                     struct cmd_ds_mesh_access *cmd);
117
118 int lbs_mesh_config_send(struct lbs_private *priv,
119                          struct cmd_ds_mesh_config *cmd,
120                          uint16_t action, uint16_t type);
121
122 int lbs_mesh_config(struct lbs_private *priv, uint16_t enable, uint16_t chan);
123
124
125 /* Commands only used in wext.c, assoc. and scan.c */
126
127 int lbs_set_power_adapt_cfg(struct lbs_private *priv, int enable, int8_t p0,
128                 int8_t p1, int8_t p2);
129
130 int lbs_set_tpc_cfg(struct lbs_private *priv, int enable, int8_t p0, int8_t p1,
131                 int8_t p2, int usesnr);
132
133 int lbs_set_data_rate(struct lbs_private *priv, u8 rate);
134
135 int lbs_cmd_802_11_rate_adapt_rateset(struct lbs_private *priv,
136                                       uint16_t cmd_action);
137
138 int lbs_cmd_802_11_set_wep(struct lbs_private *priv, uint16_t cmd_action,
139                            struct assoc_request *assoc);
140
141 int lbs_cmd_802_11_enable_rsn(struct lbs_private *priv, uint16_t cmd_action,
142                               uint16_t *enable);
143
144 int lbs_cmd_802_11_key_material(struct lbs_private *priv, uint16_t cmd_action,
145                                 struct assoc_request *assoc);
146
147 int lbs_set_tx_power(struct lbs_private *priv, s16 dbm);
148
149 int lbs_set_deep_sleep(struct lbs_private *priv, int deep_sleep);
150
151 #endif /* _LBS_CMD_H */