aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorHolger Schurig <hs4233@mail.mn-solutions.de>2009-10-16 11:33:23 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-10-27 16:48:29 -0400
commitbca61f8a4df69949cc7426b39daa867f5274a9b8 (patch)
treed1a7759587dde147022fdf1cdf06654f7d94f957 /drivers/net
parent9e66e701d0e42efd548f0f7249af8a56f8e07b67 (diff)
libertas: harmonize cmd.h
* move declarations for functions of cmd.c/cmdresp.c into cmd.h * move declarations from cmd.h that are in main.c to decl.h * group command functions Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de> Acked-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/libertas/11d.c1
-rw-r--r--drivers/net/wireless/libertas/cmd.h120
-rw-r--r--drivers/net/wireless/libertas/cmdresp.c1
-rw-r--r--drivers/net/wireless/libertas/decl.h24
-rw-r--r--drivers/net/wireless/libertas/host.h15
5 files changed, 96 insertions, 65 deletions
diff --git a/drivers/net/wireless/libertas/11d.c b/drivers/net/wireless/libertas/11d.c
index 5c6968101f0d..93f2d5fb3920 100644
--- a/drivers/net/wireless/libertas/11d.c
+++ b/drivers/net/wireless/libertas/11d.c
@@ -6,6 +6,7 @@
6#include <linux/wireless.h> 6#include <linux/wireless.h>
7 7
8#include "host.h" 8#include "host.h"
9#include "cmd.h"
9#include "decl.h" 10#include "decl.h"
10#include "11d.h" 11#include "11d.h"
11#include "dev.h" 12#include "dev.h"
diff --git a/drivers/net/wireless/libertas/cmd.h b/drivers/net/wireless/libertas/cmd.h
index bf7c421c7a53..7c44cc94a25b 100644
--- a/drivers/net/wireless/libertas/cmd.h
+++ b/drivers/net/wireless/libertas/cmd.h
@@ -6,8 +6,27 @@
6#include "host.h" 6#include "host.h"
7#include "dev.h" 7#include "dev.h"
8 8
9
10/* Command & response transfer between host and card */
11
12struct 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
9/* lbs_cmd() infers the size of the buffer to copy data back into, from 28/* 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 29 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.*/ 30 may often be smaller, that size is set in cmd->size by the caller.*/
12#define lbs_cmd(priv, cmdnr, cmd, cb, cb_arg) ({ \ 31#define lbs_cmd(priv, cmdnr, cmd, cb, cb_arg) ({ \
13 uint16_t __sz = le16_to_cpu((cmd)->hdr.size); \ 32 uint16_t __sz = le16_to_cpu((cmd)->hdr.size); \
@@ -18,6 +37,11 @@
18#define lbs_cmd_with_response(priv, cmdnr, cmd) \ 37#define lbs_cmd_with_response(priv, cmdnr, cmd) \
19 lbs_cmd(priv, cmdnr, cmd, lbs_cmd_copyback, (unsigned long) (cmd)) 38 lbs_cmd(priv, cmdnr, cmd, lbs_cmd_copyback, (unsigned long) (cmd))
20 39
40int 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
21void lbs_cmd_async(struct lbs_private *priv, uint16_t command, 45void lbs_cmd_async(struct lbs_private *priv, uint16_t command,
22 struct cmd_header *in_cmd, int in_cmd_size); 46 struct cmd_header *in_cmd, int in_cmd_size);
23 47
@@ -31,62 +55,102 @@ struct cmd_ctrl_node *__lbs_cmd_async(struct lbs_private *priv,
31 int (*callback)(struct lbs_private *, unsigned long, struct cmd_header *), 55 int (*callback)(struct lbs_private *, unsigned long, struct cmd_header *),
32 unsigned long callback_arg); 56 unsigned long callback_arg);
33 57
34int lbs_set_power_adapt_cfg(struct lbs_private *priv, int enable, int8_t p0, 58int lbs_cmd_copyback(struct lbs_private *priv, unsigned long extra,
35 int8_t p1, int8_t p2); 59 struct cmd_header *resp);
36 60
37int lbs_set_tpc_cfg(struct lbs_private *priv, int enable, int8_t p0, int8_t p1, 61int lbs_allocate_cmd_buffer(struct lbs_private *priv);
38 int8_t p2, int usesnr); 62int lbs_free_cmd_buffer(struct lbs_private *priv);
39 63
40int lbs_set_power_adapt_cfg(struct lbs_private *priv, int enable, int8_t p0, 64int lbs_execute_next_command(struct lbs_private *priv);
41 int8_t p1, int8_t p2); 65void lbs_complete_command(struct lbs_private *priv, struct cmd_ctrl_node *cmd,
66 int result);
67int lbs_process_command_response(struct lbs_private *priv, u8 *data, u32 len);
42 68
43int lbs_set_tpc_cfg(struct lbs_private *priv, int enable, int8_t p0, int8_t p1,
44 int8_t p2, int usesnr);
45 69
46int lbs_cmd_copyback(struct lbs_private *priv, unsigned long extra, 70/* From cmdresp.c */
47 struct cmd_header *resp);
48 71
49int lbs_update_hw_spec(struct lbs_private *priv); 72void lbs_mac_event_disconnected(struct lbs_private *priv);
50 73
51int lbs_mesh_access(struct lbs_private *priv, uint16_t cmd_action,
52 struct cmd_ds_mesh_access *cmd);
53 74
54int lbs_set_data_rate(struct lbs_private *priv, u8 rate); 75
76/* Events */
77
78int lbs_process_event(struct lbs_private *priv, u32 event);
79
80
81/* Actual commands */
82
83int lbs_update_hw_spec(struct lbs_private *priv);
55 84
56int lbs_get_channel(struct lbs_private *priv); 85int lbs_get_channel(struct lbs_private *priv);
86
57int lbs_set_channel(struct lbs_private *priv, u8 channel); 87int lbs_set_channel(struct lbs_private *priv, u8 channel);
58 88
89int lbs_update_channel(struct lbs_private *priv);
90
91int lbs_host_sleep_cfg(struct lbs_private *priv, uint32_t criteria,
92 struct wol_config *p_wol_config);
93
94int lbs_cmd_802_11_sleep_params(struct lbs_private *priv, uint16_t cmd_action,
95 struct sleep_params *sp);
96
97void lbs_ps_sleep(struct lbs_private *priv, int wait_option);
98
99void lbs_ps_wakeup(struct lbs_private *priv, int wait_option);
100
101void lbs_ps_confirm_sleep(struct lbs_private *priv);
102
103int lbs_set_radio(struct lbs_private *priv, u8 preamble, u8 radio_on);
104
105void lbs_set_mac_control(struct lbs_private *priv);
106
107int lbs_get_tx_power(struct lbs_private *priv, s16 *curlevel, s16 *minlevel,
108 s16 *maxlevel);
109
110int lbs_set_snmp_mib(struct lbs_private *priv, u32 oid, u16 val);
111
112int lbs_get_snmp_mib(struct lbs_private *priv, u32 oid, u16 *out_val);
113
114
115/* Mesh related */
116
117int lbs_mesh_access(struct lbs_private *priv, uint16_t cmd_action,
118 struct cmd_ds_mesh_access *cmd);
119
59int lbs_mesh_config_send(struct lbs_private *priv, 120int lbs_mesh_config_send(struct lbs_private *priv,
60 struct cmd_ds_mesh_config *cmd, 121 struct cmd_ds_mesh_config *cmd,
61 uint16_t action, uint16_t type); 122 uint16_t action, uint16_t type);
123
62int lbs_mesh_config(struct lbs_private *priv, uint16_t enable, uint16_t chan); 124int lbs_mesh_config(struct lbs_private *priv, uint16_t enable, uint16_t chan);
63 125
64int lbs_host_sleep_cfg(struct lbs_private *priv, uint32_t criteria, 126
65 struct wol_config *p_wol_config); 127/* Commands only used in wext.c, assoc. and scan.c */
66int lbs_suspend(struct lbs_private *priv); 128
67void lbs_resume(struct lbs_private *priv); 129int lbs_set_power_adapt_cfg(struct lbs_private *priv, int enable, int8_t p0,
130 int8_t p1, int8_t p2);
131
132int lbs_set_tpc_cfg(struct lbs_private *priv, int enable, int8_t p0, int8_t p1,
133 int8_t p2, int usesnr);
134
135int lbs_set_data_rate(struct lbs_private *priv, u8 rate);
68 136
69int lbs_cmd_802_11_rate_adapt_rateset(struct lbs_private *priv, 137int lbs_cmd_802_11_rate_adapt_rateset(struct lbs_private *priv,
70 uint16_t cmd_action); 138 uint16_t cmd_action);
139
71int lbs_cmd_802_11_inactivity_timeout(struct lbs_private *priv, 140int lbs_cmd_802_11_inactivity_timeout(struct lbs_private *priv,
72 uint16_t cmd_action, uint16_t *timeout); 141 uint16_t cmd_action, uint16_t *timeout);
73int lbs_cmd_802_11_sleep_params(struct lbs_private *priv, uint16_t cmd_action, 142
74 struct sleep_params *sp);
75int lbs_cmd_802_11_set_wep(struct lbs_private *priv, uint16_t cmd_action, 143int lbs_cmd_802_11_set_wep(struct lbs_private *priv, uint16_t cmd_action,
76 struct assoc_request *assoc); 144 struct assoc_request *assoc);
145
77int lbs_cmd_802_11_enable_rsn(struct lbs_private *priv, uint16_t cmd_action, 146int lbs_cmd_802_11_enable_rsn(struct lbs_private *priv, uint16_t cmd_action,
78 uint16_t *enable); 147 uint16_t *enable);
148
79int lbs_cmd_802_11_key_material(struct lbs_private *priv, uint16_t cmd_action, 149int lbs_cmd_802_11_key_material(struct lbs_private *priv, uint16_t cmd_action,
80 struct assoc_request *assoc); 150 struct assoc_request *assoc);
81 151
82int lbs_get_tx_power(struct lbs_private *priv, s16 *curlevel, s16 *minlevel,
83 s16 *maxlevel);
84int lbs_set_tx_power(struct lbs_private *priv, s16 dbm); 152int lbs_set_tx_power(struct lbs_private *priv, s16 dbm);
85 153
86int lbs_set_radio(struct lbs_private *priv, u8 preamble, u8 radio_on); 154int lbs_set_deep_sleep(struct lbs_private *priv, int deep_sleep);
87
88int lbs_set_snmp_mib(struct lbs_private *priv, u32 oid, u16 val);
89
90int lbs_get_snmp_mib(struct lbs_private *priv, u32 oid, u16 *out_val);
91 155
92#endif /* _LBS_CMD_H */ 156#endif /* _LBS_CMD_H */
diff --git a/drivers/net/wireless/libertas/cmdresp.c b/drivers/net/wireless/libertas/cmdresp.c
index 9ee8bd11bda9..a45061b1f33c 100644
--- a/drivers/net/wireless/libertas/cmdresp.c
+++ b/drivers/net/wireless/libertas/cmdresp.c
@@ -11,6 +11,7 @@
11 11
12#include "host.h" 12#include "host.h"
13#include "decl.h" 13#include "decl.h"
14#include "cmd.h"
14#include "defs.h" 15#include "defs.h"
15#include "dev.h" 16#include "dev.h"
16#include "assoc.h" 17#include "assoc.h"
diff --git a/drivers/net/wireless/libertas/decl.h b/drivers/net/wireless/libertas/decl.h
index fb91c3639fc1..20fa8176cd88 100644
--- a/drivers/net/wireless/libertas/decl.h
+++ b/drivers/net/wireless/libertas/decl.h
@@ -17,23 +17,13 @@ struct net_device;
17struct cmd_ctrl_node; 17struct cmd_ctrl_node;
18struct cmd_ds_command; 18struct cmd_ds_command;
19 19
20void lbs_set_mac_control(struct lbs_private *priv); 20int lbs_suspend(struct lbs_private *priv);
21void lbs_resume(struct lbs_private *priv);
21 22
22void lbs_send_tx_feedback(struct lbs_private *priv, u32 try_count); 23void lbs_send_tx_feedback(struct lbs_private *priv, u32 try_count);
23 24
24int lbs_free_cmd_buffer(struct lbs_private *priv);
25
26int lbs_prepare_and_send_command(struct lbs_private *priv,
27 u16 cmd_no,
28 u16 cmd_action,
29 u16 wait_option, u32 cmd_oid, void *pdata_buf);
30
31int lbs_allocate_cmd_buffer(struct lbs_private *priv);
32int lbs_execute_next_command(struct lbs_private *priv);
33int lbs_process_event(struct lbs_private *priv, u32 event);
34void lbs_queue_event(struct lbs_private *priv, u32 event); 25void lbs_queue_event(struct lbs_private *priv, u32 event);
35void lbs_notify_command_response(struct lbs_private *priv, u8 resp_idx); 26void lbs_notify_command_response(struct lbs_private *priv, u8 resp_idx);
36int lbs_set_deep_sleep(struct lbs_private *priv, int deep_sleep);
37int lbs_enter_auto_deep_sleep(struct lbs_private *priv); 27int lbs_enter_auto_deep_sleep(struct lbs_private *priv);
38int lbs_exit_auto_deep_sleep(struct lbs_private *priv); 28int lbs_exit_auto_deep_sleep(struct lbs_private *priv);
39 29
@@ -41,26 +31,17 @@ u32 lbs_fw_index_to_data_rate(u8 index);
41u8 lbs_data_rate_to_fw_index(u32 rate); 31u8 lbs_data_rate_to_fw_index(u32 rate);
42 32
43/** The proc fs interface */ 33/** The proc fs interface */
44int lbs_process_command_response(struct lbs_private *priv, u8 *data, u32 len);
45void lbs_complete_command(struct lbs_private *priv, struct cmd_ctrl_node *cmd,
46 int result);
47netdev_tx_t lbs_hard_start_xmit(struct sk_buff *skb, 34netdev_tx_t lbs_hard_start_xmit(struct sk_buff *skb,
48 struct net_device *dev); 35 struct net_device *dev);
49int lbs_set_regiontable(struct lbs_private *priv, u8 region, u8 band); 36int lbs_set_regiontable(struct lbs_private *priv, u8 region, u8 band);
50 37
51int lbs_process_rxed_packet(struct lbs_private *priv, struct sk_buff *); 38int lbs_process_rxed_packet(struct lbs_private *priv, struct sk_buff *);
52 39
53void lbs_ps_sleep(struct lbs_private *priv, int wait_option);
54void lbs_ps_confirm_sleep(struct lbs_private *priv);
55void lbs_ps_wakeup(struct lbs_private *priv, int wait_option);
56
57struct chan_freq_power *lbs_find_cfp_by_band_and_channel( 40struct chan_freq_power *lbs_find_cfp_by_band_and_channel(
58 struct lbs_private *priv, 41 struct lbs_private *priv,
59 u8 band, 42 u8 band,
60 u16 channel); 43 u16 channel);
61 44
62void lbs_mac_event_disconnected(struct lbs_private *priv);
63
64void lbs_send_iwevcustom_event(struct lbs_private *priv, s8 *str); 45void lbs_send_iwevcustom_event(struct lbs_private *priv, s8 *str);
65 46
66/* persistcfg.c */ 47/* persistcfg.c */
@@ -76,6 +57,5 @@ int lbs_start_card(struct lbs_private *priv);
76void lbs_stop_card(struct lbs_private *priv); 57void lbs_stop_card(struct lbs_private *priv);
77void lbs_host_to_card_done(struct lbs_private *priv); 58void lbs_host_to_card_done(struct lbs_private *priv);
78 59
79int lbs_update_channel(struct lbs_private *priv);
80 60
81#endif 61#endif
diff --git a/drivers/net/wireless/libertas/host.h b/drivers/net/wireless/libertas/host.h
index 45cd7f1e5937..5188e6539c6c 100644
--- a/drivers/net/wireless/libertas/host.h
+++ b/drivers/net/wireless/libertas/host.h
@@ -374,21 +374,6 @@ struct cmd_header {
374 __le16 result; 374 __le16 result;
375} __attribute__ ((packed)); 375} __attribute__ ((packed));
376 376
377struct cmd_ctrl_node {
378 struct list_head list;
379 int result;
380 /* command response */
381 int (*callback)(struct lbs_private *,
382 unsigned long,
383 struct cmd_header *);
384 unsigned long callback_arg;
385 /* command data */
386 struct cmd_header *cmdbuf;
387 /* wait queue */
388 u16 cmdwaitqwoken;
389 wait_queue_head_t cmdwait_q;
390};
391
392/* Generic structure to hold all key types. */ 377/* Generic structure to hold all key types. */
393struct enc_key { 378struct enc_key {
394 u16 len; 379 u16 len;