| .. | .. |
|---|
| 5167 | 5167 | return 0; |
|---|
| 5168 | 5168 | } |
|---|
| 5169 | 5169 | |
|---|
| 5170 | | -static int proc_get_amsdu_mode(struct seq_file *m, void *v) |
|---|
| 5171 | | -{ |
|---|
| 5172 | | - struct net_device *dev = m->private; |
|---|
| 5173 | | - _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); |
|---|
| 5174 | | - struct registry_priv *pregpriv = &padapter->registrypriv; |
|---|
| 5175 | | - |
|---|
| 5176 | | - if (pregpriv) { |
|---|
| 5177 | | - if (pregpriv->amsdu_mode == RTW_AMSDU_MODE_NON_SPP) |
|---|
| 5178 | | - RTW_PRINT_SEL(m, "amsdu mode: NON-SPP\n"); |
|---|
| 5179 | | - else if (pregpriv->amsdu_mode == RTW_AMSDU_MODE_SPP) |
|---|
| 5180 | | - RTW_PRINT_SEL(m, "amsdu mode: SPP\n"); |
|---|
| 5181 | | - else if (pregpriv->amsdu_mode == RTW_AMSDU_MODE_ALL_DROP) |
|---|
| 5182 | | - RTW_PRINT_SEL(m, "amsdu mode: ALL DROP\n"); |
|---|
| 5183 | | - else |
|---|
| 5184 | | - RTW_PRINT_SEL(m, "unexpected amsdu mode\n"); |
|---|
| 5185 | | - } |
|---|
| 5186 | | - |
|---|
| 5187 | | - return 0; |
|---|
| 5188 | | -} |
|---|
| 5189 | | - |
|---|
| 5190 | | -static ssize_t proc_set_amsdu_mode(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) |
|---|
| 5191 | | -{ |
|---|
| 5192 | | - struct net_device *dev = data; |
|---|
| 5193 | | - _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); |
|---|
| 5194 | | - struct registry_priv *pregpriv = &padapter->registrypriv; |
|---|
| 5195 | | - char tmp[32]; |
|---|
| 5196 | | - u32 mode; |
|---|
| 5197 | | - u8 bw_2g; |
|---|
| 5198 | | - u8 bw_5g; |
|---|
| 5199 | | - |
|---|
| 5200 | | - if (count < 1) |
|---|
| 5201 | | - return -EFAULT; |
|---|
| 5202 | | - |
|---|
| 5203 | | - if (count > sizeof(tmp)) { |
|---|
| 5204 | | - rtw_warn_on(1); |
|---|
| 5205 | | - return -EFAULT; |
|---|
| 5206 | | - } |
|---|
| 5207 | | - |
|---|
| 5208 | | - if (buffer && !copy_from_user(tmp, buffer, count)) { |
|---|
| 5209 | | - |
|---|
| 5210 | | - int num = sscanf(tmp, "%d", &mode); |
|---|
| 5211 | | - |
|---|
| 5212 | | - if (mode == RTW_AMSDU_MODE_NON_SPP |
|---|
| 5213 | | - || mode == RTW_AMSDU_MODE_SPP |
|---|
| 5214 | | - || mode == RTW_AMSDU_MODE_ALL_DROP) { |
|---|
| 5215 | | - pregpriv->amsdu_mode = mode; |
|---|
| 5216 | | - RTW_INFO("amsdu mode=%u\n", mode); |
|---|
| 5217 | | - } else { |
|---|
| 5218 | | - RTW_INFO("set unexpected mode = %d, won't apply\n", mode); |
|---|
| 5219 | | - } |
|---|
| 5220 | | - } |
|---|
| 5221 | | - |
|---|
| 5222 | | - return count; |
|---|
| 5223 | | - |
|---|
| 5224 | | -} |
|---|
| 5225 | | - |
|---|
| 5226 | | - |
|---|
| 5227 | 5170 | /* |
|---|
| 5228 | 5171 | * rtw_adapter_proc: |
|---|
| 5229 | 5172 | * init/deinit when register/unregister net_device |
|---|
| .. | .. |
|---|
| 5681 | 5624 | RTW_PROC_HDL_SSEQ("war_offload_mdns_service_info_txt_rsp", proc_get_war_offload_mdns_txt_rsp, proc_set_war_offload_mdns_txt_rsp), |
|---|
| 5682 | 5625 | #endif /* CONFIG_OFFLOAD_MDNS_V4 || CONFIG_OFFLOAD_MDNS_V6 */ |
|---|
| 5683 | 5626 | #endif /* CONFIG_WAR_OFFLOAD */ |
|---|
| 5684 | | - RTW_PROC_HDL_SSEQ("rtw_amsdu_mode", proc_get_amsdu_mode, proc_set_amsdu_mode), |
|---|
| 5627 | + |
|---|
| 5685 | 5628 | }; |
|---|
| 5686 | 5629 | |
|---|
| 5687 | 5630 | const int adapter_proc_hdls_num = sizeof(adapter_proc_hdls) / sizeof(struct rtw_proc_hdl); |
|---|