libertas: Extend MESH_CONFIG command to access non-volatile configuration
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / net / wireless / libertas / cmd.h
CommitLineData
14e865ba
DW
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
f15ebb63
DW
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})
14e865ba 17
689442dc
DW
18#define lbs_cmd_with_response(priv, cmdnr, cmd) \
19 lbs_cmd(priv, cmdnr, cmd, lbs_cmd_copyback, (unsigned long) (cmd))
7e226272 20
8db4a2b9
HS
21void lbs_cmd_async(struct lbs_private *priv, uint16_t command,
22 struct cmd_header *in_cmd, int in_cmd_size);
23
7ad994de 24int __lbs_cmd(struct lbs_private *priv, uint16_t command,
7e226272 25 struct cmd_header *in_cmd, int in_cmd_size,
7ad994de 26 int (*callback)(struct lbs_private *, unsigned long, struct cmd_header *),
14e865ba
DW
27 unsigned long callback_arg);
28
a8bdcd71
DW
29int lbs_cmd_copyback(struct lbs_private *priv, unsigned long extra,
30 struct cmd_header *resp);
31
6e66f03f
DW
32int lbs_update_hw_spec(struct lbs_private *priv);
33
301eacbf
DW
34int lbs_mesh_access(struct lbs_private *priv, uint16_t cmd_action,
35 struct cmd_ds_mesh_access *cmd);
36
8e3c91bb
DW
37int lbs_set_data_rate(struct lbs_private *priv, u8 rate);
38
2dd4b262
DW
39int lbs_get_channel(struct lbs_private *priv);
40int lbs_set_channel(struct lbs_private *priv, u8 channel);
41
edaea5ce
JC
42int lbs_mesh_config_send(struct lbs_private *priv,
43 struct cmd_ds_mesh_config *cmd,
44 uint16_t action, uint16_t type);
86062134 45int lbs_mesh_config(struct lbs_private *priv, uint16_t enable, uint16_t chan);
23a397ac 46
506e9025 47int lbs_host_sleep_cfg(struct lbs_private *priv, uint32_t criteria);
ab25ecae 48int lbs_suspend(struct lbs_private *priv);
a63e5cb2 49void lbs_resume(struct lbs_private *priv);
6ce4fd2a 50
6e5cc4fb
DW
51int lbs_cmd_802_11_inactivity_timeout(struct lbs_private *priv,
52 uint16_t cmd_action, uint16_t *timeout);
3fbe104c
DW
53int lbs_cmd_802_11_sleep_params(struct lbs_private *priv, uint16_t cmd_action,
54 struct sleep_params *sp);
f70dd451
DW
55int lbs_cmd_802_11_set_wep(struct lbs_private *priv, uint16_t cmd_action,
56 struct assoc_request *assoc);
4f59abf1
DW
57int lbs_cmd_802_11_enable_rsn(struct lbs_private *priv, uint16_t cmd_action,
58 uint16_t *enable);
9e1228d0
DW
59int lbs_cmd_802_11_key_material(struct lbs_private *priv, uint16_t cmd_action,
60 struct assoc_request *assoc);
6e5cc4fb 61
14e865ba 62#endif /* _LBS_CMD_H */