Lines Matching defs:i2400m
10 * This implements an ethernet device for the i2400m.
65 #include "i2400m.h"
89 struct i2400m *i2400m = net_dev_to_i2400m(net_dev);
90 struct device *dev = i2400m_dev(i2400m);
92 d_fnstart(3, dev, "(net_dev %p [i2400m %p])\n", net_dev, i2400m);
94 mutex_lock(&i2400m->init_mutex);
95 if (i2400m->updown)
99 mutex_unlock(&i2400m->init_mutex);
100 d_fnend(3, dev, "(net_dev %p [i2400m %p]) = %d\n",
101 net_dev, i2400m, result);
109 struct i2400m *i2400m = net_dev_to_i2400m(net_dev);
110 struct device *dev = i2400m_dev(i2400m);
112 d_fnstart(3, dev, "(net_dev %p [i2400m %p])\n", net_dev, i2400m);
113 i2400m_net_wake_stop(i2400m);
114 d_fnend(3, dev, "(net_dev %p [i2400m %p]) = 0\n", net_dev, i2400m);
141 struct i2400m *i2400m = container_of(ws, struct i2400m, wake_tx_ws);
142 struct net_device *net_dev = i2400m->wimax_dev.net_dev;
143 struct device *dev = i2400m_dev(i2400m);
147 spin_lock_irqsave(&i2400m->tx_lock, flags);
148 skb = i2400m->wake_tx_skb;
149 i2400m->wake_tx_skb = NULL;
150 spin_unlock_irqrestore(&i2400m->tx_lock, flags);
152 d_fnstart(3, dev, "(ws %p i2400m %p skb %p)\n", ws, i2400m, skb);
163 result = i2400m_cmd_exit_idle(i2400m);
169 i2400m_reset(i2400m, I2400M_RT_BUS);
172 result = wait_event_timeout(i2400m->state_wq,
173 i2400m->state != I2400M_SS_IDLE,
180 i2400m_reset(i2400m, I2400M_RT_BUS);
184 result = i2400m_tx(i2400m, skb->data, skb->len, I2400M_PT_DATA);
190 i2400m_put(i2400m);
191 d_fnend(3, dev, "(ws %p i2400m %p skb %p) = void [%d]\n",
192 ws, i2400m, skb, result);
199 * The i2400m expects a 4 byte header in front of a data packet.
221 void i2400m_net_wake_stop(struct i2400m *i2400m)
223 struct device *dev = i2400m_dev(i2400m);
227 d_fnstart(3, dev, "(i2400m %p)\n", i2400m);
232 cancel_work_sync(&i2400m->wake_tx_ws);
234 spin_lock_irqsave(&i2400m->tx_lock, flags);
235 wake_tx_skb = i2400m->wake_tx_skb;
236 i2400m->wake_tx_skb = NULL;
237 spin_unlock_irqrestore(&i2400m->tx_lock, flags);
240 i2400m_put(i2400m);
244 d_fnend(3, dev, "(i2400m %p) = void\n", i2400m);
260 int i2400m_net_wake_tx(struct i2400m *i2400m, struct net_device *net_dev,
264 struct device *dev = i2400m_dev(i2400m);
274 /* We hold a ref count for i2400m and skb, so when
278 spin_lock_irqsave(&i2400m->tx_lock, flags);
279 if (!i2400m->wake_tx_skb) {
281 i2400m_get(i2400m);
282 i2400m->wake_tx_skb = skb_get(skb); /* transfer ref count */
284 result = schedule_work(&i2400m->wake_tx_ws);
287 spin_unlock_irqrestore(&i2400m->tx_lock, flags);
313 int i2400m_net_tx(struct i2400m *i2400m, struct net_device *net_dev,
317 struct device *dev = i2400m_dev(i2400m);
319 d_fnstart(3, dev, "(i2400m %p net_dev %p skb %p)\n",
320 i2400m, net_dev, skb);
327 result = i2400m_tx(i2400m, skb->data, skb->len, I2400M_PT_DATA);
328 d_fnend(3, dev, "(i2400m %p net_dev %p skb %p) = %d\n",
329 i2400m, net_dev, skb, result);
356 struct i2400m *i2400m = net_dev_to_i2400m(net_dev);
357 struct device *dev = i2400m_dev(i2400m);
365 if (i2400m->state == I2400M_SS_IDLE)
366 result = i2400m_net_wake_tx(i2400m, net_dev, skb);
368 result = i2400m_net_tx(i2400m, net_dev, skb);
407 struct i2400m *i2400m = net_dev_to_i2400m(net_dev);
411 memcpy(eth_hdr->h_source, i2400m->src_mac_addr,
420 * @i2400m: device instance
453 void i2400m_net_rx(struct i2400m *i2400m, struct sk_buff *skb_rx,
456 struct net_device *net_dev = i2400m->wimax_dev.net_dev;
457 struct device *dev = i2400m_dev(i2400m);
460 d_fnstart(2, dev, "(i2400m %p buf %p buf_len %d)\n",
461 i2400m, buf, buf_len);
478 i2400m_rx_fake_eth_header(i2400m->wimax_dev.net_dev,
482 skb->dev = i2400m->wimax_dev.net_dev;
491 d_fnend(2, dev, "(i2400m %p buf %p buf_len %d) = void\n",
492 i2400m, buf, buf_len);
499 * @i2400m: device descriptor
518 void i2400m_net_erx(struct i2400m *i2400m, struct sk_buff *skb,
521 struct net_device *net_dev = i2400m->wimax_dev.net_dev;
522 struct device *dev = i2400m_dev(i2400m);
524 d_fnstart(2, dev, "(i2400m %p skb %p [%u] cs %d)\n",
525 i2400m, skb, skb->len, cs);
529 i2400m_rx_fake_eth_header(i2400m->wimax_dev.net_dev,
533 skb->dev = i2400m->wimax_dev.net_dev;
548 d_fnend(2, dev, "(i2400m %p skb %p [%u] cs %d) = void\n",
549 i2400m, skb, skb->len, cs);
562 struct i2400m *i2400m = net_dev_to_i2400m(net_dev);
565 strlcpy(info->fw_version, i2400m->fw_name ? : "",
578 * i2400m_netdev_setup - Setup setup @net_dev's i2400m private data
594 IFF_NOARP /* i2400m is apure IP device */
595 & (~IFF_BROADCAST /* i2400m is P2P */