15 #include <linux/version.h>
61 INIT_LIST_HEAD(&ul_clients[
id].udi_log);
63 sema_init(&ul_clients[
id].udi_sem, 1);
92 unsigned char id, ref;
99 if (ul_clients[
id].udi_enabled == 0) {
106 if (ul_clients[
id].reply_signal ==
NULL) {
107 unifi_error(priv,
"Failed to allocate reply signal for client.\n");
114 if (ul_clients[
id].reply_bulkdata[ref] ==
NULL) {
115 for (; ref > 0; ref --) {
116 kfree(ul_clients[
id].reply_bulkdata[ref - 1]);
118 kfree(ul_clients[
id].reply_signal);
119 unifi_error(priv,
"Failed to allocate bulk data buffers for client.\n");
127 unifi_trace(priv,
UDBG2,
"UDI %d (0x%x) registered. configuration = 0x%x\n",
128 id, &ul_clients[
id], configuration);
129 return &ul_clients[
id];
212 u8 *sigdata,
u32 signal_len,
224 if (client !=
NULL) {
225 client->
event_hook(client, sigdata, signal_len,
253 #ifdef CSR_SUPPORT_SME
254 if (priv->smepriv ==
NULL)
258 if ((
CONFIG_IND_ERROR == (*conf_param)) && (priv->wifi_on_state == wifi_on_in_progress)) {
259 unifi_notice(priv,
"ul_log_config_ind: wifi on in progress, suppress error\n");
264 #ifdef CSR_WIFI_HIP_DEBUG_OFFLINE
265 unifi_debug_buf_dump();
345 "_align_bulk_data_buffers: Align offset found (%d) but skb is NULL!\n",
351 "_align_bulk_data_buffers: Align offset found (%d) but length is zero\n",
356 "Align f-h buffer (0x%p) by %d bytes (skb->data: 0x%p)\n",
361 if (
unlikely(skb_headroom(skb) < align_offset))
369 "_align_bulk_data_buffers: skb_realloc_headroom failed - signal is dropped\n");
423 csrResult =
write_pack(sigptr, sigbuf, &packed_siglen);
425 unifi_error(priv,
"Malformed HIP signal in ul_send_signal_unpacked()\n");
464 #ifdef CSR_NATIVE_LINUX
465 #ifdef CSR_SUPPORT_WEXT
466 priv->wext_conf.flag_associated = 0;
467 priv->wext_conf.block_controlled_port = CSR_WIFI_ROUTER_PORT_ACTION_8021X_PORT_OPEN;
468 priv->wext_conf.bss_wmm_capabilities = 0;
469 priv->wext_conf.disable_join_on_ssid_set = 0;
503 r = _align_bulk_data_buffers(priv, (
u8*)sigptr, bulkdata);
511 free_bulkdata_buffers(priv, bulkdata);
523 reset_driver_status(priv);