Lines Matching defs:i2400m
77 #include "i2400m.h"
80 #include <linux/wimax/i2400m.h>
144 * @i2400m: device instance
154 * while (tlv_itr = i2400m_tlv_buffer_walk(i2400m, buf, size, tlv_itr)) {
162 struct i2400m *i2400m,
166 struct device *dev = i2400m_dev(i2400m);
211 * @i2400m: device descriptor
225 struct i2400m *i2400m,
230 struct device *dev = i2400m_dev(i2400m);
232 while ((tlv = i2400m_tlv_buffer_walk(i2400m, tlv_hdr, size, tlv))) {
273 * @i2400m: device descriptor
307 * @i2400m: device descriptor
311 void i2400m_report_tlv_system_state(struct i2400m *i2400m,
314 struct device *dev = i2400m_dev(i2400m);
315 struct wimax_dev *wimax_dev = &i2400m->wimax_dev;
318 d_fnstart(3, dev, "(i2400m %p ss %p [%u])\n", i2400m, ss, i2400m_state);
320 if (i2400m->state != i2400m_state) {
321 i2400m->state = i2400m_state;
322 wake_up_all(&i2400m->state_wq);
365 i2400m_reset(i2400m, I2400M_RT_WARM);
368 d_fnend(3, dev, "(i2400m %p ss %p [%u]) = void\n",
369 i2400m, ss, i2400m_state);
376 * @i2400m: device descriptor
388 void i2400m_report_tlv_media_status(struct i2400m *i2400m,
391 struct device *dev = i2400m_dev(i2400m);
392 struct wimax_dev *wimax_dev = &i2400m->wimax_dev;
396 d_fnstart(3, dev, "(i2400m %p ms %p [%u])\n", i2400m, ms, status);
417 d_fnend(3, dev, "(i2400m %p ms %p [%u]) = void\n",
418 i2400m, ms, status);
425 * @i2400m: device descriptor
433 void i2400m_report_state_parse_tlv(struct i2400m *i2400m,
437 struct device *dev = i2400m_dev(i2400m);
448 i2400m_report_tlv_system_state(i2400m, ss);
457 i2400m_report_tlv_rf_switches_status(i2400m, rfss);
463 i2400m_report_tlv_media_status(i2400m, ms);
471 * @i2400m: device descriptor
481 void i2400m_report_state_hook(struct i2400m *i2400m,
485 struct device *dev = i2400m_dev(i2400m);
489 d_fnstart(4, dev, "(i2400m %p, l3l4_hdr %p, size %zu, %s)\n",
490 i2400m, l3l4_hdr, size, tag);
493 while ((tlv = i2400m_tlv_buffer_walk(i2400m, &l3l4_hdr->pl,
495 i2400m_report_state_parse_tlv(i2400m, tlv, tag);
496 d_fnend(4, dev, "(i2400m %p, l3l4_hdr %p, size %zu, %s) = void\n",
497 i2400m, l3l4_hdr, size, tag);
504 * @i2400m: device descriptor
514 void i2400m_report_hook(struct i2400m *i2400m,
517 struct device *dev = i2400m_dev(i2400m);
520 d_fnstart(3, dev, "(i2400m %p l3l4_hdr %p size %zu)\n",
521 i2400m, l3l4_hdr, size);
527 i2400m_report_state_hook(i2400m,
541 i2400m_cmd_enter_powersave(i2400m);
546 d_fnend(3, dev, "(i2400m %p l3l4_hdr %p size %zu) = void\n",
547 i2400m, l3l4_hdr, size);
554 * @i2400m: device descriptor
564 static void i2400m_msg_ack_hook(struct i2400m *i2400m,
569 struct device *dev = i2400m_dev(i2400m);
598 int i2400m_msg_size_check(struct i2400m *i2400m,
603 struct device *dev = i2400m_dev(i2400m);
605 d_fnstart(4, dev, "(i2400m %p l3l4_hdr %p msg_size %zu)\n",
606 i2400m, l3l4_hdr, msg_size);
624 "(i2400m %p l3l4_hdr %p msg_size %zu) = %d\n",
625 i2400m, l3l4_hdr, msg_size, result);
634 * @i2400m: device descriptor
640 void i2400m_msg_to_dev_cancel_wait(struct i2400m *i2400m, int code)
645 spin_lock_irqsave(&i2400m->rx_lock, flags);
646 ack_skb = i2400m->ack_skb;
649 i2400m->ack_skb = ERR_PTR(code);
650 spin_unlock_irqrestore(&i2400m->rx_lock, flags);
657 * @i2400m: device descriptor
688 * linux/wimax/i2400m.h. In summary, a command/get/set is followed by an
694 * The i2400m handles only one message at the same time, thus we need
702 * skb in i2400m->ack_skb which is ready to be given to generic
705 struct sk_buff *i2400m_msg_to_dev(struct i2400m *i2400m,
709 struct device *dev = i2400m_dev(i2400m);
718 d_fnstart(3, dev, "(i2400m %p buf %p len %zu)\n",
719 i2400m, buf, buf_len);
722 if (i2400m->boot_mode)
727 result = i2400m_msg_size_check(i2400m, msg_l3l4_hdr, buf_len);
737 mutex_lock(&i2400m->msg_mutex);
738 spin_lock_irqsave(&i2400m->rx_lock, flags);
739 i2400m->ack_skb = ERR_PTR(-EINPROGRESS);
740 spin_unlock_irqrestore(&i2400m->rx_lock, flags);
741 init_completion(&i2400m->msg_completion);
742 result = i2400m_tx(i2400m, buf, buf_len, I2400M_PT_CTRL);
760 if (unlikely(i2400m->trace_msg_from_user))
761 wimax_msg(&i2400m->wimax_dev, "echo", buf, buf_len, GFP_KERNEL);
763 * in i2400m->ack_skb and wake us up. If we cancel the wait,
764 * we need to change the value of i2400m->ack_skb to something
767 &i2400m->msg_completion, ack_timeout);
772 i2400m_msg_to_dev_cancel_wait(i2400m, result);
777 i2400m_msg_to_dev_cancel_wait(i2400m, result);
781 /* Pull out the ack data from i2400m->ack_skb -- see if it is
783 spin_lock_irqsave(&i2400m->rx_lock, flags);
784 ack_skb = i2400m->ack_skb;
789 i2400m->ack_skb = NULL;
790 spin_unlock_irqrestore(&i2400m->rx_lock, flags);
796 if (unlikely(i2400m->trace_msg_from_user))
797 wimax_msg(&i2400m->wimax_dev, "echo",
799 result = i2400m_msg_size_check(i2400m, ack_l3l4_hdr, ack_len);
811 i2400m_msg_ack_hook(i2400m, ack_l3l4_hdr, ack_len);
812 mutex_unlock(&i2400m->msg_mutex);
813 d_fnend(3, dev, "(i2400m %p buf %p len %zu) = %p\n",
814 i2400m, buf, buf_len, ack_skb);
823 mutex_unlock(&i2400m->msg_mutex);
825 d_fnend(3, dev, "(i2400m %p buf %p len %zu) = %d\n",
826 i2400m, buf, buf_len, result);
861 int i2400m_cmd_enter_powersave(struct i2400m *i2400m)
864 struct device *dev = i2400m_dev(i2400m);
880 ack_skb = i2400m_msg_to_dev(i2400m, cmd, sizeof(*cmd));
916 * @i2400m: device descriptor
925 struct sk_buff *i2400m_get_device_info(struct i2400m *i2400m)
928 struct device *dev = i2400m_dev(i2400m);
945 ack_skb = i2400m_msg_to_dev(i2400m, cmd, sizeof(*cmd));
959 tlv = i2400m_tlv_find(i2400m, ack->pl, ack_len - sizeof(*ack),
994 * @i2400m: device descriptor
1004 * version, we encode it and save it in i2400m->fw_version for future
1007 int i2400m_firmware_check(struct i2400m *i2400m)
1010 struct device *dev = i2400m_dev(i2400m);
1028 ack_skb = i2400m_msg_to_dev(i2400m, cmd, sizeof(*cmd));
1043 tlv = i2400m_tlv_find(i2400m, ack->pl, ack_len - sizeof(*ack),
1066 i2400m->fw_version = major << 16 | minor;
1084 * @i2400m: device descriptor
1091 int i2400m_cmd_exit_idle(struct i2400m *i2400m)
1094 struct device *dev = i2400m_dev(i2400m);
1107 ack_skb = i2400m_msg_to_dev(i2400m, cmd, sizeof(*cmd));
1128 * @i2400m: device descriptor
1139 static int i2400m_cmd_get_state(struct i2400m *i2400m)
1142 struct device *dev = i2400m_dev(i2400m);
1157 ack_skb = i2400m_msg_to_dev(i2400m, cmd, sizeof(*cmd));
1171 i2400m_report_state_hook(i2400m, ack, ack_len - sizeof(*ack),
1185 * @i2400m: device descriptor
1192 static int i2400m_set_init_config(struct i2400m *i2400m,
1197 struct device *dev = i2400m_dev(i2400m);
1205 d_fnstart(3, dev, "(i2400m %p arg %p args %zu)\n", i2400m, arg, args);
1238 ack_skb = i2400m_msg_to_dev(i2400m, buf, sizeof(*cmd) + argsize);
1256 d_fnend(3, dev, "(i2400m %p arg %p args %zu) = %d\n",
1257 i2400m, arg, args, result);
1265 * @i2400m: i2400m device descriptor
1280 int i2400m_set_idle_timeout(struct i2400m *i2400m, unsigned msecs)
1283 struct device *dev = i2400m_dev(i2400m);
1294 if (i2400m_le_v1_3(i2400m))
1309 ack_skb = i2400m_msg_to_dev(i2400m, cmd, sizeof(*cmd));
1336 * @i2400m: device descriptor
1346 int i2400m_dev_initialize(struct i2400m *i2400m)
1349 struct device *dev = i2400m_dev(i2400m);
1357 d_fnstart(3, dev, "(i2400m %p)\n", i2400m);
1362 if (i2400m_le_v1_3(i2400m)) {
1379 if (i2400m_ge_v1_4(i2400m)) {
1390 if (i2400m->rx_reorder) {
1399 result = i2400m_set_init_config(i2400m, args, argc);
1409 result = i2400m_cmd_get_state(i2400m);
1413 d_fnend(3, dev, "(i2400m %p) = %d\n", i2400m, result);
1421 * @i2400m: device descriptor
1428 void i2400m_dev_shutdown(struct i2400m *i2400m)
1430 struct device *dev = i2400m_dev(i2400m);
1432 d_fnstart(3, dev, "(i2400m %p)\n", i2400m);
1433 d_fnend(3, dev, "(i2400m %p) = void\n", i2400m);