diff options
author | Kiran Divekar <dkiran@marvell.com> | 2010-06-14 12:31:26 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-06-23 15:13:11 -0400 |
commit | e86dc1ca4676445d9f0dfe35104efe0eb8a2f566 (patch) | |
tree | bd39d0d4403899fb438a2e983e1b97c1ccd9b1ad /drivers/net/wireless/libertas/debugfs.c | |
parent | f90754c15f47063671aea55268a9dd6a37b51492 (diff) |
Libertas: cfg80211 support
Holger Schurig's patch (https://patchwork.kernel.org/patch/64286/)
is rebased to latest wireless-testing tree.
(Includes patches from me originally posted as "libertas: fix build
error due to undefined symbol" and "libertas: unmangle capability
value". -- JWL)
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Kiran Divekar <dkiran@marvell.com>
Tested-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas/debugfs.c')
-rw-r--r-- | drivers/net/wireless/libertas/debugfs.c | 54 |
1 files changed, 1 insertions, 53 deletions
diff --git a/drivers/net/wireless/libertas/debugfs.c b/drivers/net/wireless/libertas/debugfs.c index de2caac11dd6..17367463c855 100644 --- a/drivers/net/wireless/libertas/debugfs.c +++ b/drivers/net/wireless/libertas/debugfs.c | |||
@@ -1,18 +1,13 @@ | |||
1 | #include <linux/module.h> | ||
2 | #include <linux/dcache.h> | 1 | #include <linux/dcache.h> |
3 | #include <linux/debugfs.h> | 2 | #include <linux/debugfs.h> |
4 | #include <linux/delay.h> | 3 | #include <linux/delay.h> |
5 | #include <linux/mm.h> | 4 | #include <linux/mm.h> |
6 | #include <linux/string.h> | 5 | #include <linux/string.h> |
7 | #include <linux/slab.h> | 6 | #include <linux/slab.h> |
8 | #include <net/iw_handler.h> | ||
9 | #include <net/lib80211.h> | ||
10 | 7 | ||
11 | #include "dev.h" | ||
12 | #include "decl.h" | 8 | #include "decl.h" |
13 | #include "host.h" | ||
14 | #include "debugfs.h" | ||
15 | #include "cmd.h" | 9 | #include "cmd.h" |
10 | #include "debugfs.h" | ||
16 | 11 | ||
17 | static struct dentry *lbs_dir; | 12 | static struct dentry *lbs_dir; |
18 | static char *szStates[] = { | 13 | static char *szStates[] = { |
@@ -60,51 +55,6 @@ static ssize_t lbs_dev_info(struct file *file, char __user *userbuf, | |||
60 | return res; | 55 | return res; |
61 | } | 56 | } |
62 | 57 | ||
63 | |||
64 | static ssize_t lbs_getscantable(struct file *file, char __user *userbuf, | ||
65 | size_t count, loff_t *ppos) | ||
66 | { | ||
67 | struct lbs_private *priv = file->private_data; | ||
68 | size_t pos = 0; | ||
69 | int numscansdone = 0, res; | ||
70 | unsigned long addr = get_zeroed_page(GFP_KERNEL); | ||
71 | char *buf = (char *)addr; | ||
72 | DECLARE_SSID_BUF(ssid); | ||
73 | struct bss_descriptor * iter_bss; | ||
74 | if (!buf) | ||
75 | return -ENOMEM; | ||
76 | |||
77 | pos += snprintf(buf+pos, len-pos, | ||
78 | "# | ch | rssi | bssid | cap | Qual | SSID\n"); | ||
79 | |||
80 | mutex_lock(&priv->lock); | ||
81 | list_for_each_entry (iter_bss, &priv->network_list, list) { | ||
82 | u16 ibss = (iter_bss->capability & WLAN_CAPABILITY_IBSS); | ||
83 | u16 privacy = (iter_bss->capability & WLAN_CAPABILITY_PRIVACY); | ||
84 | u16 spectrum_mgmt = (iter_bss->capability & WLAN_CAPABILITY_SPECTRUM_MGMT); | ||
85 | |||
86 | pos += snprintf(buf+pos, len-pos, "%02u| %03d | %04d | %pM |", | ||
87 | numscansdone, iter_bss->channel, iter_bss->rssi, | ||
88 | iter_bss->bssid); | ||
89 | pos += snprintf(buf+pos, len-pos, " %04x-", iter_bss->capability); | ||
90 | pos += snprintf(buf+pos, len-pos, "%c%c%c |", | ||
91 | ibss ? 'A' : 'I', privacy ? 'P' : ' ', | ||
92 | spectrum_mgmt ? 'S' : ' '); | ||
93 | pos += snprintf(buf+pos, len-pos, " %04d |", SCAN_RSSI(iter_bss->rssi)); | ||
94 | pos += snprintf(buf+pos, len-pos, " %s\n", | ||
95 | print_ssid(ssid, iter_bss->ssid, | ||
96 | iter_bss->ssid_len)); | ||
97 | |||
98 | numscansdone++; | ||
99 | } | ||
100 | mutex_unlock(&priv->lock); | ||
101 | |||
102 | res = simple_read_from_buffer(userbuf, count, ppos, buf, pos); | ||
103 | |||
104 | free_page(addr); | ||
105 | return res; | ||
106 | } | ||
107 | |||
108 | static ssize_t lbs_sleepparams_write(struct file *file, | 58 | static ssize_t lbs_sleepparams_write(struct file *file, |
109 | const char __user *user_buf, size_t count, | 59 | const char __user *user_buf, size_t count, |
110 | loff_t *ppos) | 60 | loff_t *ppos) |
@@ -723,8 +673,6 @@ struct lbs_debugfs_files { | |||
723 | 673 | ||
724 | static const struct lbs_debugfs_files debugfs_files[] = { | 674 | static const struct lbs_debugfs_files debugfs_files[] = { |
725 | { "info", 0444, FOPS(lbs_dev_info, write_file_dummy), }, | 675 | { "info", 0444, FOPS(lbs_dev_info, write_file_dummy), }, |
726 | { "getscantable", 0444, FOPS(lbs_getscantable, | ||
727 | write_file_dummy), }, | ||
728 | { "sleepparams", 0644, FOPS(lbs_sleepparams_read, | 676 | { "sleepparams", 0644, FOPS(lbs_sleepparams_read, |
729 | lbs_sleepparams_write), }, | 677 | lbs_sleepparams_write), }, |
730 | }; | 678 | }; |