diff options
author | John W. Linville <linville@tuxdriver.com> | 2014-01-03 15:34:41 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-01-03 15:34:41 -0500 |
commit | c3c5bb31ea046721bc5fe3e54b45c7a13677f398 (patch) | |
tree | e924df7c6d1834e2fd5079d5c424c0a3f070f490 /drivers/net/wireless/iwlwifi/mvm | |
parent | 55d1cad2efe2e3567c3116f50ba10e5af1bc01fc (diff) | |
parent | 14648d6534477952633ee3ecadb31cf227414f13 (diff) |
Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm')
40 files changed, 253 insertions, 170 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/binding.c b/drivers/net/wireless/iwlwifi/mvm/binding.c index 57d3eed86efa..a1376539d2dc 100644 --- a/drivers/net/wireless/iwlwifi/mvm/binding.c +++ b/drivers/net/wireless/iwlwifi/mvm/binding.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/bt-coex.c b/drivers/net/wireless/iwlwifi/mvm/bt-coex.c index d126245c48de..76cde6ce6551 100644 --- a/drivers/net/wireless/iwlwifi/mvm/bt-coex.c +++ b/drivers/net/wireless/iwlwifi/mvm/bt-coex.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2013 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2013 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
@@ -294,9 +294,9 @@ static const __le64 iwl_ci_mask[][3] = { | |||
294 | cpu_to_le64(0x0) | 294 | cpu_to_le64(0x0) |
295 | }, | 295 | }, |
296 | { | 296 | { |
297 | cpu_to_le64(0xFE00000000ULL), | 297 | cpu_to_le64(0xFFC0000000ULL), |
298 | cpu_to_le64(0x0ULL), | 298 | cpu_to_le64(0x0ULL), |
299 | cpu_to_le64(0x0) | 299 | cpu_to_le64(0x0ULL) |
300 | }, | 300 | }, |
301 | }; | 301 | }; |
302 | 302 | ||
diff --git a/drivers/net/wireless/iwlwifi/mvm/constants.h b/drivers/net/wireless/iwlwifi/mvm/constants.h index 4b6d670c3509..036857698565 100644 --- a/drivers/net/wireless/iwlwifi/mvm/constants.h +++ b/drivers/net/wireless/iwlwifi/mvm/constants.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2013 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2013 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/d3.c b/drivers/net/wireless/iwlwifi/mvm/d3.c index 665f87e788d6..f04d2f4d80cd 100644 --- a/drivers/net/wireless/iwlwifi/mvm/d3.c +++ b/drivers/net/wireless/iwlwifi/mvm/d3.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/debugfs-vif.c b/drivers/net/wireless/iwlwifi/mvm/debugfs-vif.c index b8667575bc10..0e29cd83a06a 100644 --- a/drivers/net/wireless/iwlwifi/mvm/debugfs-vif.c +++ b/drivers/net/wireless/iwlwifi/mvm/debugfs-vif.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/debugfs.c b/drivers/net/wireless/iwlwifi/mvm/debugfs.c index e8f62a6a1b57..76cdce9edf55 100644 --- a/drivers/net/wireless/iwlwifi/mvm/debugfs.c +++ b/drivers/net/wireless/iwlwifi/mvm/debugfs.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
@@ -123,51 +123,31 @@ static ssize_t iwl_dbgfs_sram_read(struct file *file, char __user *user_buf, | |||
123 | { | 123 | { |
124 | struct iwl_mvm *mvm = file->private_data; | 124 | struct iwl_mvm *mvm = file->private_data; |
125 | const struct fw_img *img; | 125 | const struct fw_img *img; |
126 | int ofs, len, pos = 0; | 126 | unsigned int ofs, len; |
127 | size_t bufsz, ret; | 127 | size_t ret; |
128 | char *buf; | ||
129 | u8 *ptr; | 128 | u8 *ptr; |
130 | 129 | ||
131 | if (!mvm->ucode_loaded) | 130 | if (!mvm->ucode_loaded) |
132 | return -EINVAL; | 131 | return -EINVAL; |
133 | 132 | ||
134 | /* default is to dump the entire data segment */ | 133 | /* default is to dump the entire data segment */ |
134 | img = &mvm->fw->img[mvm->cur_ucode]; | ||
135 | ofs = img->sec[IWL_UCODE_SECTION_DATA].offset; | ||
136 | len = img->sec[IWL_UCODE_SECTION_DATA].len; | ||
137 | |||
135 | if (!mvm->dbgfs_sram_offset && !mvm->dbgfs_sram_len) { | 138 | if (!mvm->dbgfs_sram_offset && !mvm->dbgfs_sram_len) { |
136 | img = &mvm->fw->img[mvm->cur_ucode]; | ||
137 | ofs = img->sec[IWL_UCODE_SECTION_DATA].offset; | ||
138 | len = img->sec[IWL_UCODE_SECTION_DATA].len; | ||
139 | } else { | ||
140 | ofs = mvm->dbgfs_sram_offset; | 139 | ofs = mvm->dbgfs_sram_offset; |
141 | len = mvm->dbgfs_sram_len; | 140 | len = mvm->dbgfs_sram_len; |
142 | } | 141 | } |
143 | 142 | ||
144 | bufsz = len * 4 + 256; | ||
145 | buf = kzalloc(bufsz, GFP_KERNEL); | ||
146 | if (!buf) | ||
147 | return -ENOMEM; | ||
148 | |||
149 | ptr = kzalloc(len, GFP_KERNEL); | 143 | ptr = kzalloc(len, GFP_KERNEL); |
150 | if (!ptr) { | 144 | if (!ptr) |
151 | kfree(buf); | ||
152 | return -ENOMEM; | 145 | return -ENOMEM; |
153 | } | ||
154 | |||
155 | pos += scnprintf(buf + pos, bufsz - pos, "sram_len: 0x%x\n", len); | ||
156 | pos += scnprintf(buf + pos, bufsz - pos, "sram_offset: 0x%x\n", ofs); | ||
157 | 146 | ||
158 | iwl_trans_read_mem_bytes(mvm->trans, ofs, ptr, len); | 147 | iwl_trans_read_mem_bytes(mvm->trans, ofs, ptr, len); |
159 | for (ofs = 0; ofs < len; ofs += 16) { | ||
160 | pos += scnprintf(buf + pos, bufsz - pos, "0x%.4x ", ofs); | ||
161 | hex_dump_to_buffer(ptr + ofs, 16, 16, 1, buf + pos, | ||
162 | bufsz - pos, false); | ||
163 | pos += strlen(buf + pos); | ||
164 | if (bufsz - pos > 0) | ||
165 | buf[pos++] = '\n'; | ||
166 | } | ||
167 | 148 | ||
168 | ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos); | 149 | ret = simple_read_from_buffer(user_buf, count, ppos, ptr, len); |
169 | 150 | ||
170 | kfree(buf); | ||
171 | kfree(ptr); | 151 | kfree(ptr); |
172 | 152 | ||
173 | return ret; | 153 | return ret; |
@@ -176,11 +156,24 @@ static ssize_t iwl_dbgfs_sram_read(struct file *file, char __user *user_buf, | |||
176 | static ssize_t iwl_dbgfs_sram_write(struct iwl_mvm *mvm, char *buf, | 156 | static ssize_t iwl_dbgfs_sram_write(struct iwl_mvm *mvm, char *buf, |
177 | size_t count, loff_t *ppos) | 157 | size_t count, loff_t *ppos) |
178 | { | 158 | { |
159 | const struct fw_img *img; | ||
179 | u32 offset, len; | 160 | u32 offset, len; |
161 | u32 img_offset, img_len; | ||
162 | |||
163 | if (!mvm->ucode_loaded) | ||
164 | return -EINVAL; | ||
165 | |||
166 | img = &mvm->fw->img[mvm->cur_ucode]; | ||
167 | img_offset = img->sec[IWL_UCODE_SECTION_DATA].offset; | ||
168 | img_len = img->sec[IWL_UCODE_SECTION_DATA].len; | ||
180 | 169 | ||
181 | if (sscanf(buf, "%x,%x", &offset, &len) == 2) { | 170 | if (sscanf(buf, "%x,%x", &offset, &len) == 2) { |
182 | if ((offset & 0x3) || (len & 0x3)) | 171 | if ((offset & 0x3) || (len & 0x3)) |
183 | return -EINVAL; | 172 | return -EINVAL; |
173 | |||
174 | if (offset + len > img_offset + img_len) | ||
175 | return -EINVAL; | ||
176 | |||
184 | mvm->dbgfs_sram_offset = offset; | 177 | mvm->dbgfs_sram_offset = offset; |
185 | mvm->dbgfs_sram_len = len; | 178 | mvm->dbgfs_sram_len = len; |
186 | } else { | 179 | } else { |
diff --git a/drivers/net/wireless/iwlwifi/mvm/debugfs.h b/drivers/net/wireless/iwlwifi/mvm/debugfs.h index 85f9f958bfd2..e3a9774af495 100644 --- a/drivers/net/wireless/iwlwifi/mvm/debugfs.h +++ b/drivers/net/wireless/iwlwifi/mvm/debugfs.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw-api-bt-coex.h b/drivers/net/wireless/iwlwifi/mvm/fw-api-bt-coex.h index af500996bbf1..1b4e54d416b0 100644 --- a/drivers/net/wireless/iwlwifi/mvm/fw-api-bt-coex.h +++ b/drivers/net/wireless/iwlwifi/mvm/fw-api-bt-coex.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2013 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2013 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw-api-d3.h b/drivers/net/wireless/iwlwifi/mvm/fw-api-d3.h index 4e7dd8cf87dc..8415ff312d0e 100644 --- a/drivers/net/wireless/iwlwifi/mvm/fw-api-d3.h +++ b/drivers/net/wireless/iwlwifi/mvm/fw-api-d3.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw-api-mac.h b/drivers/net/wireless/iwlwifi/mvm/fw-api-mac.h index 39c3148bdfa8..c405cda1025f 100644 --- a/drivers/net/wireless/iwlwifi/mvm/fw-api-mac.h +++ b/drivers/net/wireless/iwlwifi/mvm/fw-api-mac.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw-api-power.h b/drivers/net/wireless/iwlwifi/mvm/fw-api-power.h index cb78e5539357..884c08725308 100644 --- a/drivers/net/wireless/iwlwifi/mvm/fw-api-power.h +++ b/drivers/net/wireless/iwlwifi/mvm/fw-api-power.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw-api-rs.h b/drivers/net/wireless/iwlwifi/mvm/fw-api-rs.h index 532312c7b937..85057219cc43 100644 --- a/drivers/net/wireless/iwlwifi/mvm/fw-api-rs.h +++ b/drivers/net/wireless/iwlwifi/mvm/fw-api-rs.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h b/drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h index b3ed59237cba..73cbba7424f2 100644 --- a/drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h +++ b/drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw-api-sta.h b/drivers/net/wireless/iwlwifi/mvm/fw-api-sta.h index 8c73ba74b6fd..6bbbad453a3b 100644 --- a/drivers/net/wireless/iwlwifi/mvm/fw-api-sta.h +++ b/drivers/net/wireless/iwlwifi/mvm/fw-api-sta.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw-api-tx.h b/drivers/net/wireless/iwlwifi/mvm/fw-api-tx.h index 22864671d66c..b674c2a2b51c 100644 --- a/drivers/net/wireless/iwlwifi/mvm/fw-api-tx.h +++ b/drivers/net/wireless/iwlwifi/mvm/fw-api-tx.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw-api.h b/drivers/net/wireless/iwlwifi/mvm/fw-api.h index 1c3079714c2b..989d7dbdca6c 100644 --- a/drivers/net/wireless/iwlwifi/mvm/fw-api.h +++ b/drivers/net/wireless/iwlwifi/mvm/fw-api.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw.c b/drivers/net/wireless/iwlwifi/mvm/fw.c index 27ba104a3540..c03d39541f9e 100644 --- a/drivers/net/wireless/iwlwifi/mvm/fw.c +++ b/drivers/net/wireless/iwlwifi/mvm/fw.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/led.c b/drivers/net/wireless/iwlwifi/mvm/led.c index 2269a9e5cc67..6b4ea6bf8ffe 100644 --- a/drivers/net/wireless/iwlwifi/mvm/led.c +++ b/drivers/net/wireless/iwlwifi/mvm/led.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
@@ -103,7 +103,7 @@ int iwl_mvm_leds_init(struct iwl_mvm *mvm) | |||
103 | return 0; | 103 | return 0; |
104 | default: | 104 | default: |
105 | return -EINVAL; | 105 | return -EINVAL; |
106 | }; | 106 | } |
107 | 107 | ||
108 | mvm->led.name = kasprintf(GFP_KERNEL, "%s-led", | 108 | mvm->led.name = kasprintf(GFP_KERNEL, "%s-led", |
109 | wiphy_name(mvm->hw->wiphy)); | 109 | wiphy_name(mvm->hw->wiphy)); |
diff --git a/drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c b/drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c index fb93961da750..ba723d50939a 100644 --- a/drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c +++ b/drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
@@ -69,10 +69,10 @@ | |||
69 | #include "mvm.h" | 69 | #include "mvm.h" |
70 | 70 | ||
71 | const u8 iwl_mvm_ac_to_tx_fifo[] = { | 71 | const u8 iwl_mvm_ac_to_tx_fifo[] = { |
72 | IWL_MVM_TX_FIFO_BK, | ||
73 | IWL_MVM_TX_FIFO_BE, | ||
74 | IWL_MVM_TX_FIFO_VI, | ||
75 | IWL_MVM_TX_FIFO_VO, | 72 | IWL_MVM_TX_FIFO_VO, |
73 | IWL_MVM_TX_FIFO_VI, | ||
74 | IWL_MVM_TX_FIFO_BE, | ||
75 | IWL_MVM_TX_FIFO_BK, | ||
76 | }; | 76 | }; |
77 | 77 | ||
78 | struct iwl_mvm_mac_iface_iterator_data { | 78 | struct iwl_mvm_mac_iface_iterator_data { |
@@ -85,35 +85,15 @@ struct iwl_mvm_mac_iface_iterator_data { | |||
85 | bool found_vif; | 85 | bool found_vif; |
86 | }; | 86 | }; |
87 | 87 | ||
88 | static void iwl_mvm_mac_iface_iterator(void *_data, u8 *mac, | 88 | static void iwl_mvm_mac_tsf_id_iter(void *_data, u8 *mac, |
89 | struct ieee80211_vif *vif) | 89 | struct ieee80211_vif *vif) |
90 | { | 90 | { |
91 | struct iwl_mvm_mac_iface_iterator_data *data = _data; | 91 | struct iwl_mvm_mac_iface_iterator_data *data = _data; |
92 | struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); | 92 | struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); |
93 | u32 ac; | ||
94 | 93 | ||
95 | /* Iterator may already find the interface being added -- skip it */ | 94 | /* Skip the interface for which we are trying to assign a tsf_id */ |
96 | if (vif == data->vif) { | 95 | if (vif == data->vif) |
97 | data->found_vif = true; | ||
98 | return; | 96 | return; |
99 | } | ||
100 | |||
101 | /* Mark the queues used by the vif */ | ||
102 | for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) | ||
103 | if (vif->hw_queue[ac] != IEEE80211_INVAL_HW_QUEUE) | ||
104 | __set_bit(vif->hw_queue[ac], data->used_hw_queues); | ||
105 | |||
106 | if (vif->cab_queue != IEEE80211_INVAL_HW_QUEUE) | ||
107 | __set_bit(vif->cab_queue, data->used_hw_queues); | ||
108 | |||
109 | /* | ||
110 | * Mark MAC IDs as used by clearing the available bit, and | ||
111 | * (below) mark TSFs as used if their existing use is not | ||
112 | * compatible with the new interface type. | ||
113 | * No locking or atomic bit operations are needed since the | ||
114 | * data is on the stack of the caller function. | ||
115 | */ | ||
116 | __clear_bit(mvmvif->id, data->available_mac_ids); | ||
117 | 97 | ||
118 | /* | 98 | /* |
119 | * The TSF is a hardware/firmware resource, there are 4 and | 99 | * The TSF is a hardware/firmware resource, there are 4 and |
@@ -135,21 +115,26 @@ static void iwl_mvm_mac_iface_iterator(void *_data, u8 *mac, | |||
135 | case NL80211_IFTYPE_STATION: | 115 | case NL80211_IFTYPE_STATION: |
136 | /* | 116 | /* |
137 | * The new interface is client, so if the existing one | 117 | * The new interface is client, so if the existing one |
138 | * we're iterating is an AP, the TSF should be used to | 118 | * we're iterating is an AP, and both interfaces have the |
119 | * same beacon interval, the same TSF should be used to | ||
139 | * avoid drift between the new client and existing AP, | 120 | * avoid drift between the new client and existing AP, |
140 | * the existing AP will get drift updates from the new | 121 | * the existing AP will get drift updates from the new |
141 | * client context in this case | 122 | * client context in this case |
142 | */ | 123 | */ |
143 | if (vif->type == NL80211_IFTYPE_AP) { | 124 | if (vif->type == NL80211_IFTYPE_AP) { |
144 | if (data->preferred_tsf == NUM_TSF_IDS && | 125 | if (data->preferred_tsf == NUM_TSF_IDS && |
145 | test_bit(mvmvif->tsf_id, data->available_tsf_ids)) | 126 | test_bit(mvmvif->tsf_id, data->available_tsf_ids) && |
127 | (vif->bss_conf.beacon_int == | ||
128 | data->vif->bss_conf.beacon_int)) { | ||
146 | data->preferred_tsf = mvmvif->tsf_id; | 129 | data->preferred_tsf = mvmvif->tsf_id; |
147 | return; | 130 | return; |
131 | } | ||
148 | } | 132 | } |
149 | break; | 133 | break; |
150 | case NL80211_IFTYPE_AP: | 134 | case NL80211_IFTYPE_AP: |
151 | /* | 135 | /* |
152 | * The new interface is AP/GO, so should get drift | 136 | * The new interface is AP/GO, so in case both interfaces |
137 | * have the same beacon interval, it should get drift | ||
153 | * updates from an existing client or use the same | 138 | * updates from an existing client or use the same |
154 | * TSF as an existing GO. There's no drift between | 139 | * TSF as an existing GO. There's no drift between |
155 | * TSFs internally but if they used different TSFs | 140 | * TSFs internally but if they used different TSFs |
@@ -159,9 +144,12 @@ static void iwl_mvm_mac_iface_iterator(void *_data, u8 *mac, | |||
159 | if (vif->type == NL80211_IFTYPE_STATION || | 144 | if (vif->type == NL80211_IFTYPE_STATION || |
160 | vif->type == NL80211_IFTYPE_AP) { | 145 | vif->type == NL80211_IFTYPE_AP) { |
161 | if (data->preferred_tsf == NUM_TSF_IDS && | 146 | if (data->preferred_tsf == NUM_TSF_IDS && |
162 | test_bit(mvmvif->tsf_id, data->available_tsf_ids)) | 147 | test_bit(mvmvif->tsf_id, data->available_tsf_ids) && |
148 | (vif->bss_conf.beacon_int == | ||
149 | data->vif->bss_conf.beacon_int)) { | ||
163 | data->preferred_tsf = mvmvif->tsf_id; | 150 | data->preferred_tsf = mvmvif->tsf_id; |
164 | return; | 151 | return; |
152 | } | ||
165 | } | 153 | } |
166 | break; | 154 | break; |
167 | default: | 155 | default: |
@@ -187,6 +175,39 @@ static void iwl_mvm_mac_iface_iterator(void *_data, u8 *mac, | |||
187 | data->preferred_tsf = NUM_TSF_IDS; | 175 | data->preferred_tsf = NUM_TSF_IDS; |
188 | } | 176 | } |
189 | 177 | ||
178 | static void iwl_mvm_mac_iface_iterator(void *_data, u8 *mac, | ||
179 | struct ieee80211_vif *vif) | ||
180 | { | ||
181 | struct iwl_mvm_mac_iface_iterator_data *data = _data; | ||
182 | struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); | ||
183 | u32 ac; | ||
184 | |||
185 | /* Iterator may already find the interface being added -- skip it */ | ||
186 | if (vif == data->vif) { | ||
187 | data->found_vif = true; | ||
188 | return; | ||
189 | } | ||
190 | |||
191 | /* Mark the queues used by the vif */ | ||
192 | for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) | ||
193 | if (vif->hw_queue[ac] != IEEE80211_INVAL_HW_QUEUE) | ||
194 | __set_bit(vif->hw_queue[ac], data->used_hw_queues); | ||
195 | |||
196 | if (vif->cab_queue != IEEE80211_INVAL_HW_QUEUE) | ||
197 | __set_bit(vif->cab_queue, data->used_hw_queues); | ||
198 | |||
199 | /* Mark MAC IDs as used by clearing the available bit, and | ||
200 | * (below) mark TSFs as used if their existing use is not | ||
201 | * compatible with the new interface type. | ||
202 | * No locking or atomic bit operations are needed since the | ||
203 | * data is on the stack of the caller function. | ||
204 | */ | ||
205 | __clear_bit(mvmvif->id, data->available_mac_ids); | ||
206 | |||
207 | /* find a suitable tsf_id */ | ||
208 | iwl_mvm_mac_tsf_id_iter(_data, mac, vif); | ||
209 | } | ||
210 | |||
190 | /* | 211 | /* |
191 | * Get the mask of the queus used by the vif | 212 | * Get the mask of the queus used by the vif |
192 | */ | 213 | */ |
@@ -205,6 +226,29 @@ u32 iwl_mvm_mac_get_queues_mask(struct iwl_mvm *mvm, | |||
205 | return qmask; | 226 | return qmask; |
206 | } | 227 | } |
207 | 228 | ||
229 | void iwl_mvm_mac_ctxt_recalc_tsf_id(struct iwl_mvm *mvm, | ||
230 | struct ieee80211_vif *vif) | ||
231 | { | ||
232 | struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); | ||
233 | struct iwl_mvm_mac_iface_iterator_data data = { | ||
234 | .mvm = mvm, | ||
235 | .vif = vif, | ||
236 | .available_tsf_ids = { (1 << NUM_TSF_IDS) - 1 }, | ||
237 | /* no preference yet */ | ||
238 | .preferred_tsf = NUM_TSF_IDS, | ||
239 | }; | ||
240 | |||
241 | ieee80211_iterate_active_interfaces_atomic( | ||
242 | mvm->hw, IEEE80211_IFACE_ITER_RESUME_ALL, | ||
243 | iwl_mvm_mac_tsf_id_iter, &data); | ||
244 | |||
245 | if (data.preferred_tsf != NUM_TSF_IDS) | ||
246 | mvmvif->tsf_id = data.preferred_tsf; | ||
247 | else if (!test_bit(mvmvif->tsf_id, data.available_tsf_ids)) | ||
248 | mvmvif->tsf_id = find_first_bit(data.available_tsf_ids, | ||
249 | NUM_TSF_IDS); | ||
250 | } | ||
251 | |||
208 | static int iwl_mvm_mac_ctxt_allocate_resources(struct iwl_mvm *mvm, | 252 | static int iwl_mvm_mac_ctxt_allocate_resources(struct iwl_mvm *mvm, |
209 | struct ieee80211_vif *vif) | 253 | struct ieee80211_vif *vif) |
210 | { | 254 | { |
@@ -586,18 +630,23 @@ static void iwl_mvm_mac_ctxt_cmd_common(struct iwl_mvm *mvm, | |||
586 | cpu_to_le32(vif->bss_conf.use_short_slot ? | 630 | cpu_to_le32(vif->bss_conf.use_short_slot ? |
587 | MAC_FLG_SHORT_SLOT : 0); | 631 | MAC_FLG_SHORT_SLOT : 0); |
588 | 632 | ||
589 | for (i = 0; i < AC_NUM; i++) { | 633 | for (i = 0; i < IEEE80211_NUM_ACS; i++) { |
590 | cmd->ac[i].cw_min = cpu_to_le16(mvmvif->queue_params[i].cw_min); | 634 | u8 txf = iwl_mvm_ac_to_tx_fifo[i]; |
591 | cmd->ac[i].cw_max = cpu_to_le16(mvmvif->queue_params[i].cw_max); | 635 | |
592 | cmd->ac[i].aifsn = mvmvif->queue_params[i].aifs; | 636 | cmd->ac[txf].cw_min = |
593 | cmd->ac[i].edca_txop = | 637 | cpu_to_le16(mvmvif->queue_params[i].cw_min); |
638 | cmd->ac[txf].cw_max = | ||
639 | cpu_to_le16(mvmvif->queue_params[i].cw_max); | ||
640 | cmd->ac[txf].edca_txop = | ||
594 | cpu_to_le16(mvmvif->queue_params[i].txop * 32); | 641 | cpu_to_le16(mvmvif->queue_params[i].txop * 32); |
595 | cmd->ac[i].fifos_mask = BIT(iwl_mvm_ac_to_tx_fifo[i]); | 642 | cmd->ac[txf].aifsn = mvmvif->queue_params[i].aifs; |
643 | cmd->ac[txf].fifos_mask = BIT(txf); | ||
596 | } | 644 | } |
597 | 645 | ||
598 | /* in AP mode, the MCAST FIFO takes the EDCA params from VO */ | 646 | /* in AP mode, the MCAST FIFO takes the EDCA params from VO */ |
599 | if (vif->type == NL80211_IFTYPE_AP) | 647 | if (vif->type == NL80211_IFTYPE_AP) |
600 | cmd->ac[AC_VO].fifos_mask |= BIT(IWL_MVM_TX_FIFO_MCAST); | 648 | cmd->ac[IWL_MVM_TX_FIFO_VO].fifos_mask |= |
649 | BIT(IWL_MVM_TX_FIFO_MCAST); | ||
601 | 650 | ||
602 | if (vif->bss_conf.qos) | 651 | if (vif->bss_conf.qos) |
603 | cmd->qos_flags |= cpu_to_le32(MAC_QOS_FLG_UPDATE_EDCA); | 652 | cmd->qos_flags |= cpu_to_le32(MAC_QOS_FLG_UPDATE_EDCA); |
@@ -1007,7 +1056,7 @@ static void iwl_mvm_mac_ctxt_cmd_fill_ap(struct iwl_mvm *mvm, | |||
1007 | iwl_mvm_mac_ap_iterator, &data); | 1056 | iwl_mvm_mac_ap_iterator, &data); |
1008 | 1057 | ||
1009 | if (data.beacon_device_ts) { | 1058 | if (data.beacon_device_ts) { |
1010 | u32 rand = (prandom_u32() % (80 - 20)) + 20; | 1059 | u32 rand = (prandom_u32() % (64 - 36)) + 36; |
1011 | mvmvif->ap_beacon_time = data.beacon_device_ts + | 1060 | mvmvif->ap_beacon_time = data.beacon_device_ts + |
1012 | ieee80211_tu_to_usec(data.beacon_int * rand / | 1061 | ieee80211_tu_to_usec(data.beacon_int * rand / |
1013 | 100); | 1062 | 100); |
@@ -1186,10 +1235,18 @@ int iwl_mvm_rx_beacon_notif(struct iwl_mvm *mvm, | |||
1186 | static void iwl_mvm_beacon_loss_iterator(void *_data, u8 *mac, | 1235 | static void iwl_mvm_beacon_loss_iterator(void *_data, u8 *mac, |
1187 | struct ieee80211_vif *vif) | 1236 | struct ieee80211_vif *vif) |
1188 | { | 1237 | { |
1189 | u16 *id = _data; | 1238 | struct iwl_missed_beacons_notif *missed_beacons = _data; |
1190 | struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); | 1239 | struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); |
1191 | 1240 | ||
1192 | if (mvmvif->id == *id) | 1241 | if (mvmvif->id != (u16)le32_to_cpu(missed_beacons->mac_id)) |
1242 | return; | ||
1243 | |||
1244 | /* | ||
1245 | * TODO: the threshold should be adjusted based on latency conditions, | ||
1246 | * and/or in case of a CS flow on one of the other AP vifs. | ||
1247 | */ | ||
1248 | if (le32_to_cpu(missed_beacons->consec_missed_beacons_since_last_rx) > | ||
1249 | IWL_MVM_MISSED_BEACONS_THRESHOLD) | ||
1193 | ieee80211_beacon_loss(vif); | 1250 | ieee80211_beacon_loss(vif); |
1194 | } | 1251 | } |
1195 | 1252 | ||
@@ -1198,12 +1255,19 @@ int iwl_mvm_rx_missed_beacons_notif(struct iwl_mvm *mvm, | |||
1198 | struct iwl_device_cmd *cmd) | 1255 | struct iwl_device_cmd *cmd) |
1199 | { | 1256 | { |
1200 | struct iwl_rx_packet *pkt = rxb_addr(rxb); | 1257 | struct iwl_rx_packet *pkt = rxb_addr(rxb); |
1201 | struct iwl_missed_beacons_notif *missed_beacons = (void *)pkt->data; | 1258 | struct iwl_missed_beacons_notif *mb = (void *)pkt->data; |
1202 | u16 id = (u16)le32_to_cpu(missed_beacons->mac_id); | 1259 | |
1260 | IWL_DEBUG_INFO(mvm, | ||
1261 | "missed bcn mac_id=%u, consecutive=%u (%u, %u, %u)\n", | ||
1262 | le32_to_cpu(mb->mac_id), | ||
1263 | le32_to_cpu(mb->consec_missed_beacons), | ||
1264 | le32_to_cpu(mb->consec_missed_beacons_since_last_rx), | ||
1265 | le32_to_cpu(mb->num_recvd_beacons), | ||
1266 | le32_to_cpu(mb->num_expected_beacons)); | ||
1203 | 1267 | ||
1204 | ieee80211_iterate_active_interfaces_atomic(mvm->hw, | 1268 | ieee80211_iterate_active_interfaces_atomic(mvm->hw, |
1205 | IEEE80211_IFACE_ITER_NORMAL, | 1269 | IEEE80211_IFACE_ITER_NORMAL, |
1206 | iwl_mvm_beacon_loss_iterator, | 1270 | iwl_mvm_beacon_loss_iterator, |
1207 | &id); | 1271 | mb); |
1208 | return 0; | 1272 | return 0; |
1209 | } | 1273 | } |
diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c index 2f5269359dce..b41177eb4888 100644 --- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
@@ -262,7 +262,7 @@ int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm) | |||
262 | mvm->rts_threshold = IEEE80211_MAX_RTS_THRESHOLD; | 262 | mvm->rts_threshold = IEEE80211_MAX_RTS_THRESHOLD; |
263 | 263 | ||
264 | /* currently FW API supports only one optional cipher scheme */ | 264 | /* currently FW API supports only one optional cipher scheme */ |
265 | if (mvm->fw->cs && mvm->fw->cs->cipher) { | 265 | if (mvm->fw->cs->cipher) { |
266 | mvm->hw->n_cipher_schemes = 1; | 266 | mvm->hw->n_cipher_schemes = 1; |
267 | mvm->hw->cipher_schemes = mvm->fw->cs; | 267 | mvm->hw->cipher_schemes = mvm->fw->cs; |
268 | } | 268 | } |
@@ -866,6 +866,14 @@ static void iwl_mvm_bss_info_changed_station(struct iwl_mvm *mvm, | |||
866 | struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); | 866 | struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); |
867 | int ret; | 867 | int ret; |
868 | 868 | ||
869 | /* | ||
870 | * Re-calculate the tsf id, as the master-slave relations depend on the | ||
871 | * beacon interval, which was not known when the station interface was | ||
872 | * added. | ||
873 | */ | ||
874 | if (changes & BSS_CHANGED_ASSOC && bss_conf->assoc) | ||
875 | iwl_mvm_mac_ctxt_recalc_tsf_id(mvm, vif); | ||
876 | |||
869 | ret = iwl_mvm_mac_ctxt_changed(mvm, vif); | 877 | ret = iwl_mvm_mac_ctxt_changed(mvm, vif); |
870 | if (ret) | 878 | if (ret) |
871 | IWL_ERR(mvm, "failed to update MAC %pM\n", vif->addr); | 879 | IWL_ERR(mvm, "failed to update MAC %pM\n", vif->addr); |
@@ -979,6 +987,13 @@ static int iwl_mvm_start_ap_ibss(struct ieee80211_hw *hw, | |||
979 | if (ret) | 987 | if (ret) |
980 | goto out_unlock; | 988 | goto out_unlock; |
981 | 989 | ||
990 | /* | ||
991 | * Re-calculate the tsf id, as the master-slave relations depend on the | ||
992 | * beacon interval, which was not known when the AP interface was added. | ||
993 | */ | ||
994 | if (vif->type == NL80211_IFTYPE_AP) | ||
995 | iwl_mvm_mac_ctxt_recalc_tsf_id(mvm, vif); | ||
996 | |||
982 | /* Add the mac context */ | 997 | /* Add the mac context */ |
983 | ret = iwl_mvm_mac_ctxt_add(mvm, vif); | 998 | ret = iwl_mvm_mac_ctxt_add(mvm, vif); |
984 | if (ret) | 999 | if (ret) |
@@ -1671,7 +1686,8 @@ static void iwl_mvm_change_chanctx(struct ieee80211_hw *hw, | |||
1671 | if (WARN_ONCE((phy_ctxt->ref > 1) && | 1686 | if (WARN_ONCE((phy_ctxt->ref > 1) && |
1672 | (changed & ~(IEEE80211_CHANCTX_CHANGE_WIDTH | | 1687 | (changed & ~(IEEE80211_CHANCTX_CHANGE_WIDTH | |
1673 | IEEE80211_CHANCTX_CHANGE_RX_CHAINS | | 1688 | IEEE80211_CHANCTX_CHANGE_RX_CHAINS | |
1674 | IEEE80211_CHANCTX_CHANGE_RADAR)), | 1689 | IEEE80211_CHANCTX_CHANGE_RADAR | |
1690 | IEEE80211_CHANCTX_CHANGE_MIN_WIDTH)), | ||
1675 | "Cannot change PHY. Ref=%d, changed=0x%X\n", | 1691 | "Cannot change PHY. Ref=%d, changed=0x%X\n", |
1676 | phy_ctxt->ref, changed)) | 1692 | phy_ctxt->ref, changed)) |
1677 | return; | 1693 | return; |
diff --git a/drivers/net/wireless/iwlwifi/mvm/mvm.h b/drivers/net/wireless/iwlwifi/mvm/mvm.h index 84edf3649ad2..e4ead86f06d6 100644 --- a/drivers/net/wireless/iwlwifi/mvm/mvm.h +++ b/drivers/net/wireless/iwlwifi/mvm/mvm.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
@@ -81,6 +81,7 @@ | |||
81 | #define IWL_MVM_MAX_ADDRESSES 5 | 81 | #define IWL_MVM_MAX_ADDRESSES 5 |
82 | /* RSSI offset for WkP */ | 82 | /* RSSI offset for WkP */ |
83 | #define IWL_RSSI_OFFSET 50 | 83 | #define IWL_RSSI_OFFSET 50 |
84 | #define IWL_MVM_MISSED_BEACONS_THRESHOLD 8 | ||
84 | 85 | ||
85 | enum iwl_mvm_tx_fifo { | 86 | enum iwl_mvm_tx_fifo { |
86 | IWL_MVM_TX_FIFO_BK = 0, | 87 | IWL_MVM_TX_FIFO_BK = 0, |
@@ -711,6 +712,8 @@ int iwl_mvm_rx_beacon_notif(struct iwl_mvm *mvm, | |||
711 | int iwl_mvm_rx_missed_beacons_notif(struct iwl_mvm *mvm, | 712 | int iwl_mvm_rx_missed_beacons_notif(struct iwl_mvm *mvm, |
712 | struct iwl_rx_cmd_buffer *rxb, | 713 | struct iwl_rx_cmd_buffer *rxb, |
713 | struct iwl_device_cmd *cmd); | 714 | struct iwl_device_cmd *cmd); |
715 | void iwl_mvm_mac_ctxt_recalc_tsf_id(struct iwl_mvm *mvm, | ||
716 | struct ieee80211_vif *vif); | ||
714 | 717 | ||
715 | /* Bindings */ | 718 | /* Bindings */ |
716 | int iwl_mvm_binding_add_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif); | 719 | int iwl_mvm_binding_add_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif); |
diff --git a/drivers/net/wireless/iwlwifi/mvm/nvm.c b/drivers/net/wireless/iwlwifi/mvm/nvm.c index 48089b1625ff..c6beb0f842d5 100644 --- a/drivers/net/wireless/iwlwifi/mvm/nvm.c +++ b/drivers/net/wireless/iwlwifi/mvm/nvm.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
@@ -367,16 +367,17 @@ static int iwl_mvm_read_external_nvm(struct iwl_mvm *mvm) | |||
367 | break; | 367 | break; |
368 | } | 368 | } |
369 | 369 | ||
370 | if (WARN(section_id >= NVM_NUM_OF_SECTIONS, | ||
371 | "Invalid NVM section ID %d\n", section_id)) { | ||
372 | ret = -EINVAL; | ||
373 | break; | ||
374 | } | ||
375 | |||
370 | temp = kmemdup(file_sec->data, section_size, GFP_KERNEL); | 376 | temp = kmemdup(file_sec->data, section_size, GFP_KERNEL); |
371 | if (!temp) { | 377 | if (!temp) { |
372 | ret = -ENOMEM; | 378 | ret = -ENOMEM; |
373 | break; | 379 | break; |
374 | } | 380 | } |
375 | if (WARN_ON(section_id >= NVM_NUM_OF_SECTIONS)) { | ||
376 | IWL_ERR(mvm, "Invalid NVM section ID\n"); | ||
377 | ret = -EINVAL; | ||
378 | break; | ||
379 | } | ||
380 | mvm->nvm_sections[section_id].data = temp; | 381 | mvm->nvm_sections[section_id].data = temp; |
381 | mvm->nvm_sections[section_id].length = section_size; | 382 | mvm->nvm_sections[section_id].length = section_size; |
382 | 383 | ||
diff --git a/drivers/net/wireless/iwlwifi/mvm/ops.c b/drivers/net/wireless/iwlwifi/mvm/ops.c index a362430477a0..552c76a926ed 100644 --- a/drivers/net/wireless/iwlwifi/mvm/ops.c +++ b/drivers/net/wireless/iwlwifi/mvm/ops.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
@@ -665,6 +665,8 @@ static void iwl_mvm_set_hw_rfkill_state(struct iwl_op_mode *op_mode, bool state) | |||
665 | else | 665 | else |
666 | clear_bit(IWL_MVM_STATUS_HW_RFKILL, &mvm->status); | 666 | clear_bit(IWL_MVM_STATUS_HW_RFKILL, &mvm->status); |
667 | 667 | ||
668 | if (state && mvm->cur_ucode != IWL_UCODE_INIT) | ||
669 | iwl_trans_stop_device(mvm->trans); | ||
668 | wiphy_rfkill_set_hw_state(mvm->hw->wiphy, iwl_mvm_is_radio_killed(mvm)); | 670 | wiphy_rfkill_set_hw_state(mvm->hw->wiphy, iwl_mvm_is_radio_killed(mvm)); |
669 | } | 671 | } |
670 | 672 | ||
diff --git a/drivers/net/wireless/iwlwifi/mvm/phy-ctxt.c b/drivers/net/wireless/iwlwifi/mvm/phy-ctxt.c index a8652ddd6bed..b7268c0b3333 100644 --- a/drivers/net/wireless/iwlwifi/mvm/phy-ctxt.c +++ b/drivers/net/wireless/iwlwifi/mvm/phy-ctxt.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/power.c b/drivers/net/wireless/iwlwifi/mvm/power.c index 483ecc67501f..17ce32f28faa 100644 --- a/drivers/net/wireless/iwlwifi/mvm/power.c +++ b/drivers/net/wireless/iwlwifi/mvm/power.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/power_legacy.c b/drivers/net/wireless/iwlwifi/mvm/power_legacy.c index 2ce79bad5845..ef712ae5bc62 100644 --- a/drivers/net/wireless/iwlwifi/mvm/power_legacy.c +++ b/drivers/net/wireless/iwlwifi/mvm/power_legacy.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/quota.c b/drivers/net/wireless/iwlwifi/mvm/quota.c index 38165eba2a17..ce5db6c4ef7e 100644 --- a/drivers/net/wireless/iwlwifi/mvm/quota.c +++ b/drivers/net/wireless/iwlwifi/mvm/quota.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/rs.c b/drivers/net/wireless/iwlwifi/mvm/rs.c index d6d28d7b442b..c9ff41c514ae 100644 --- a/drivers/net/wireless/iwlwifi/mvm/rs.c +++ b/drivers/net/wireless/iwlwifi/mvm/rs.c | |||
@@ -1,6 +1,6 @@ | |||
1 | /****************************************************************************** | 1 | /****************************************************************************** |
2 | * | 2 | * |
3 | * Copyright(c) 2005 - 2013 Intel Corporation. All rights reserved. | 3 | * Copyright(c) 2005 - 2014 Intel Corporation. All rights reserved. |
4 | * | 4 | * |
5 | * This program is free software; you can redistribute it and/or modify it | 5 | * This program is free software; you can redistribute it and/or modify it |
6 | * under the terms of version 2 of the GNU General Public License as | 6 | * under the terms of version 2 of the GNU General Public License as |
@@ -700,7 +700,7 @@ static int rs_rate_from_ucode_rate(const u32 ucode_rate, | |||
700 | u8 num_of_ant = get_num_of_ant_from_rate(ucode_rate); | 700 | u8 num_of_ant = get_num_of_ant_from_rate(ucode_rate); |
701 | u8 nss; | 701 | u8 nss; |
702 | 702 | ||
703 | memset(rate, 0, sizeof(struct rs_rate)); | 703 | memset(rate, 0, sizeof(*rate)); |
704 | rate->index = iwl_hwrate_to_plcp_idx(ucode_rate); | 704 | rate->index = iwl_hwrate_to_plcp_idx(ucode_rate); |
705 | 705 | ||
706 | if (rate->index == IWL_RATE_INVALID) { | 706 | if (rate->index == IWL_RATE_INVALID) { |
@@ -2121,7 +2121,7 @@ static void rs_initialize_lq(struct iwl_mvm *mvm, | |||
2121 | tbl->column = RS_COLUMN_LEGACY_ANT_B; | 2121 | tbl->column = RS_COLUMN_LEGACY_ANT_B; |
2122 | 2122 | ||
2123 | rs_set_expected_tpt_table(lq_sta, tbl); | 2123 | rs_set_expected_tpt_table(lq_sta, tbl); |
2124 | rs_fill_lq_cmd(NULL, NULL, lq_sta, rate); | 2124 | rs_fill_lq_cmd(mvm, sta, lq_sta, rate); |
2125 | /* TODO restore station should remember the lq cmd */ | 2125 | /* TODO restore station should remember the lq cmd */ |
2126 | iwl_mvm_send_lq_cmd(mvm, &lq_sta->lq, init); | 2126 | iwl_mvm_send_lq_cmd(mvm, &lq_sta->lq, init); |
2127 | } | 2127 | } |
@@ -2446,10 +2446,9 @@ static void rs_build_rates_table(struct iwl_mvm *mvm, | |||
2446 | struct iwl_lq_cmd *lq_cmd = &lq_sta->lq; | 2446 | struct iwl_lq_cmd *lq_cmd = &lq_sta->lq; |
2447 | bool toggle_ant = false; | 2447 | bool toggle_ant = false; |
2448 | 2448 | ||
2449 | memcpy(&rate, initial_rate, sizeof(struct rs_rate)); | 2449 | memcpy(&rate, initial_rate, sizeof(rate)); |
2450 | 2450 | ||
2451 | if (mvm) | 2451 | valid_tx_ant = iwl_fw_valid_tx_ant(mvm->fw); |
2452 | valid_tx_ant = iwl_fw_valid_tx_ant(mvm->fw); | ||
2453 | 2452 | ||
2454 | if (is_siso(&rate)) { | 2453 | if (is_siso(&rate)) { |
2455 | num_rates = RS_INITIAL_SISO_NUM_RATES; | 2454 | num_rates = RS_INITIAL_SISO_NUM_RATES; |
@@ -2623,7 +2622,7 @@ static void rs_program_fix_rate(struct iwl_mvm *mvm, | |||
2623 | struct rs_rate rate; | 2622 | struct rs_rate rate; |
2624 | rs_rate_from_ucode_rate(lq_sta->dbg_fixed_rate, | 2623 | rs_rate_from_ucode_rate(lq_sta->dbg_fixed_rate, |
2625 | lq_sta->band, &rate); | 2624 | lq_sta->band, &rate); |
2626 | rs_fill_lq_cmd(NULL, NULL, lq_sta, &rate); | 2625 | rs_fill_lq_cmd(mvm, NULL, lq_sta, &rate); |
2627 | iwl_mvm_send_lq_cmd(lq_sta->drv, &lq_sta->lq, false); | 2626 | iwl_mvm_send_lq_cmd(lq_sta->drv, &lq_sta->lq, false); |
2628 | } | 2627 | } |
2629 | } | 2628 | } |
diff --git a/drivers/net/wireless/iwlwifi/mvm/rs.h b/drivers/net/wireless/iwlwifi/mvm/rs.h index c31aa59728ea..7bc6404f6986 100644 --- a/drivers/net/wireless/iwlwifi/mvm/rs.h +++ b/drivers/net/wireless/iwlwifi/mvm/rs.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /****************************************************************************** | 1 | /****************************************************************************** |
2 | * | 2 | * |
3 | * Copyright(c) 2003 - 2013 Intel Corporation. All rights reserved. | 3 | * Copyright(c) 2003 - 2014 Intel Corporation. All rights reserved. |
4 | * | 4 | * |
5 | * This program is free software; you can redistribute it and/or modify it | 5 | * This program is free software; you can redistribute it and/or modify it |
6 | * under the terms of version 2 of the GNU General Public License as | 6 | * under the terms of version 2 of the GNU General Public License as |
diff --git a/drivers/net/wireless/iwlwifi/mvm/rx.c b/drivers/net/wireless/iwlwifi/mvm/rx.c index 454341cc3b27..a85b60f7e67e 100644 --- a/drivers/net/wireless/iwlwifi/mvm/rx.c +++ b/drivers/net/wireless/iwlwifi/mvm/rx.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/scan.c b/drivers/net/wireless/iwlwifi/mvm/scan.c index 4ce9bb581144..0e0007960612 100644 --- a/drivers/net/wireless/iwlwifi/mvm/scan.c +++ b/drivers/net/wireless/iwlwifi/mvm/scan.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
@@ -473,13 +473,18 @@ void iwl_mvm_cancel_scan(struct iwl_mvm *mvm) | |||
473 | if (mvm->scan_status == IWL_MVM_SCAN_NONE) | 473 | if (mvm->scan_status == IWL_MVM_SCAN_NONE) |
474 | return; | 474 | return; |
475 | 475 | ||
476 | if (iwl_mvm_is_radio_killed(mvm)) { | ||
477 | ieee80211_scan_completed(mvm->hw, true); | ||
478 | mvm->scan_status = IWL_MVM_SCAN_NONE; | ||
479 | return; | ||
480 | } | ||
481 | |||
476 | iwl_init_notification_wait(&mvm->notif_wait, &wait_scan_abort, | 482 | iwl_init_notification_wait(&mvm->notif_wait, &wait_scan_abort, |
477 | scan_abort_notif, | 483 | scan_abort_notif, |
478 | ARRAY_SIZE(scan_abort_notif), | 484 | ARRAY_SIZE(scan_abort_notif), |
479 | iwl_mvm_scan_abort_notif, NULL); | 485 | iwl_mvm_scan_abort_notif, NULL); |
480 | 486 | ||
481 | ret = iwl_mvm_send_cmd_pdu(mvm, SCAN_ABORT_CMD, | 487 | ret = iwl_mvm_send_cmd_pdu(mvm, SCAN_ABORT_CMD, CMD_SYNC, 0, NULL); |
482 | CMD_SYNC | CMD_SEND_IN_RFKILL, 0, NULL); | ||
483 | if (ret) { | 488 | if (ret) { |
484 | IWL_ERR(mvm, "Couldn't send SCAN_ABORT_CMD: %d\n", ret); | 489 | IWL_ERR(mvm, "Couldn't send SCAN_ABORT_CMD: %d\n", ret); |
485 | /* mac80211's state will be cleaned in the fw_restart flow */ | 490 | /* mac80211's state will be cleaned in the fw_restart flow */ |
diff --git a/drivers/net/wireless/iwlwifi/mvm/sf.c b/drivers/net/wireless/iwlwifi/mvm/sf.c index 97bb3c3e75ce..8401627c0030 100644 --- a/drivers/net/wireless/iwlwifi/mvm/sf.c +++ b/drivers/net/wireless/iwlwifi/mvm/sf.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2013 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2013 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/sta.c b/drivers/net/wireless/iwlwifi/mvm/sta.c index 0a8af2083ddc..ec1812133235 100644 --- a/drivers/net/wireless/iwlwifi/mvm/sta.c +++ b/drivers/net/wireless/iwlwifi/mvm/sta.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/sta.h b/drivers/net/wireless/iwlwifi/mvm/sta.h index b34941148a98..4968d0237dc5 100644 --- a/drivers/net/wireless/iwlwifi/mvm/sta.h +++ b/drivers/net/wireless/iwlwifi/mvm/sta.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/testmode.h b/drivers/net/wireless/iwlwifi/mvm/testmode.h index eb74391d91ca..0241665925f7 100644 --- a/drivers/net/wireless/iwlwifi/mvm/testmode.h +++ b/drivers/net/wireless/iwlwifi/mvm/testmode.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2013 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2013 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/time-event.c b/drivers/net/wireless/iwlwifi/mvm/time-event.c index 95ce4b601fef..50f3d7f560bc 100644 --- a/drivers/net/wireless/iwlwifi/mvm/time-event.c +++ b/drivers/net/wireless/iwlwifi/mvm/time-event.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/time-event.h b/drivers/net/wireless/iwlwifi/mvm/time-event.h index d9c8d6cfa2db..4a61c8c02372 100644 --- a/drivers/net/wireless/iwlwifi/mvm/time-event.h +++ b/drivers/net/wireless/iwlwifi/mvm/time-event.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/tt.c b/drivers/net/wireless/iwlwifi/mvm/tt.c index a0ec7b3473bd..3afa6b6bf835 100644 --- a/drivers/net/wireless/iwlwifi/mvm/tt.c +++ b/drivers/net/wireless/iwlwifi/mvm/tt.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2013 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/tx.c b/drivers/net/wireless/iwlwifi/mvm/tx.c index 735f86da7985..3c575a39987b 100644 --- a/drivers/net/wireless/iwlwifi/mvm/tx.c +++ b/drivers/net/wireless/iwlwifi/mvm/tx.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
diff --git a/drivers/net/wireless/iwlwifi/mvm/utils.c b/drivers/net/wireless/iwlwifi/mvm/utils.c index f4aff56a36da..487d61b25359 100644 --- a/drivers/net/wireless/iwlwifi/mvm/utils.c +++ b/drivers/net/wireless/iwlwifi/mvm/utils.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2012 - 2013 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |