• Home
  • Raw
  • Download

Lines Matching refs:rnet

100 	struct rionet_private *rnet = netdev_priv(ndev);  in rionet_rx_clean()  local
103 i = rnet->rx_slot; in rionet_rx_clean()
106 if (!rnet->rx_skb[i]) in rionet_rx_clean()
109 if (!(data = rio_get_inb_message(rnet->mport, RIONET_MAILBOX))) in rionet_rx_clean()
112 rnet->rx_skb[i]->data = data; in rionet_rx_clean()
113 skb_put(rnet->rx_skb[i], RIO_MAX_MSG_SIZE); in rionet_rx_clean()
114 rnet->rx_skb[i]->protocol = in rionet_rx_clean()
115 eth_type_trans(rnet->rx_skb[i], ndev); in rionet_rx_clean()
116 error = netif_rx(rnet->rx_skb[i]); in rionet_rx_clean()
125 } while ((i = (i + 1) % RIONET_RX_RING_SIZE) != rnet->rx_slot); in rionet_rx_clean()
133 struct rionet_private *rnet = netdev_priv(ndev); in rionet_rx_fill() local
135 i = rnet->rx_slot; in rionet_rx_fill()
137 rnet->rx_skb[i] = dev_alloc_skb(RIO_MAX_MSG_SIZE); in rionet_rx_fill()
139 if (!rnet->rx_skb[i]) in rionet_rx_fill()
142 rio_add_inb_buffer(rnet->mport, RIONET_MAILBOX, in rionet_rx_fill()
143 rnet->rx_skb[i]->data); in rionet_rx_fill()
146 rnet->rx_slot = i; in rionet_rx_fill()
152 struct rionet_private *rnet = netdev_priv(ndev); in rionet_queue_tx_msg() local
154 rio_add_outb_message(rnet->mport, rdev, 0, skb->data, skb->len); in rionet_queue_tx_msg()
155 rnet->tx_skb[rnet->tx_slot] = skb; in rionet_queue_tx_msg()
160 if (++rnet->tx_cnt == RIONET_TX_RING_SIZE) in rionet_queue_tx_msg()
163 ++rnet->tx_slot; in rionet_queue_tx_msg()
164 rnet->tx_slot &= (RIONET_TX_RING_SIZE - 1); in rionet_queue_tx_msg()
166 if (netif_msg_tx_queued(rnet)) in rionet_queue_tx_msg()
176 struct rionet_private *rnet = netdev_priv(ndev); in rionet_start_xmit() local
182 spin_lock_irqsave(&rnet->tx_lock, flags); in rionet_start_xmit()
185 add_num = nets[rnet->mport->id].nact; in rionet_start_xmit()
187 if ((rnet->tx_cnt + add_num) > RIONET_TX_RING_SIZE) { in rionet_start_xmit()
189 spin_unlock_irqrestore(&rnet->tx_lock, flags); in rionet_start_xmit()
198 for (i = 0; i < RIO_MAX_ROUTE_ENTRIES(rnet->mport->sys_size); in rionet_start_xmit()
200 if (nets[rnet->mport->id].active[i]) { in rionet_start_xmit()
202 nets[rnet->mport->id].active[i]); in rionet_start_xmit()
209 if (nets[rnet->mport->id].active[destid]) in rionet_start_xmit()
211 nets[rnet->mport->id].active[destid]); in rionet_start_xmit()
225 spin_unlock_irqrestore(&rnet->tx_lock, flags); in rionet_start_xmit()
234 struct rionet_private *rnet = netdev_priv(ndev); in rionet_dbell_event() local
236 unsigned char netid = rnet->mport->id; in rionet_dbell_event()
238 if (netif_msg_intr(rnet)) in rionet_dbell_event()
263 if (netif_msg_intr(rnet)) in rionet_dbell_event()
273 struct rionet_private *rnet = netdev_priv(ndev); in rionet_inb_msg_event() local
275 if (netif_msg_intr(rnet)) in rionet_inb_msg_event()
279 spin_lock(&rnet->lock); in rionet_inb_msg_event()
280 if ((n = rionet_rx_clean(ndev)) != rnet->rx_slot) in rionet_inb_msg_event()
282 spin_unlock(&rnet->lock); in rionet_inb_msg_event()
288 struct rionet_private *rnet = netdev_priv(ndev); in rionet_outb_msg_event() local
290 spin_lock(&rnet->tx_lock); in rionet_outb_msg_event()
292 if (netif_msg_intr(rnet)) in rionet_outb_msg_event()
297 while (rnet->tx_cnt && (rnet->ack_slot != slot)) { in rionet_outb_msg_event()
299 dev_kfree_skb_irq(rnet->tx_skb[rnet->ack_slot]); in rionet_outb_msg_event()
300 rnet->tx_skb[rnet->ack_slot] = NULL; in rionet_outb_msg_event()
301 ++rnet->ack_slot; in rionet_outb_msg_event()
302 rnet->ack_slot &= (RIONET_TX_RING_SIZE - 1); in rionet_outb_msg_event()
303 rnet->tx_cnt--; in rionet_outb_msg_event()
306 if (rnet->tx_cnt < RIONET_TX_RING_SIZE) in rionet_outb_msg_event()
309 spin_unlock(&rnet->tx_lock); in rionet_outb_msg_event()
316 struct rionet_private *rnet = netdev_priv(ndev); in rionet_open() local
317 unsigned char netid = rnet->mport->id; in rionet_open()
320 if (netif_msg_ifup(rnet)) in rionet_open()
323 if ((rc = rio_request_inb_dbell(rnet->mport, in rionet_open()
330 if ((rc = rio_request_inb_mbox(rnet->mport, in rionet_open()
337 if ((rc = rio_request_outb_mbox(rnet->mport, in rionet_open()
346 rnet->rx_skb[i] = NULL; in rionet_open()
347 rnet->rx_slot = 0; in rionet_open()
350 rnet->tx_slot = 0; in rionet_open()
351 rnet->tx_cnt = 0; in rionet_open()
352 rnet->ack_slot = 0; in rionet_open()
363 rnet->open = true; in rionet_open()
371 struct rionet_private *rnet = netdev_priv(ndev); in rionet_close() local
373 unsigned char netid = rnet->mport->id; in rionet_close()
377 if (netif_msg_ifup(rnet)) in rionet_close()
382 rnet->open = false; in rionet_close()
385 kfree_skb(rnet->rx_skb[i]); in rionet_close()
398 rio_release_inb_dbell(rnet->mport, RIONET_DOORBELL_JOIN, in rionet_close()
400 rio_release_inb_mbox(rnet->mport, RIONET_MAILBOX); in rionet_close()
401 rio_release_outb_mbox(rnet->mport, RIONET_MAILBOX); in rionet_close()
447 struct rionet_private *rnet = netdev_priv(ndev); in rionet_get_drvinfo() local
452 strlcpy(info->bus_info, rnet->mport->name, sizeof(info->bus_info)); in rionet_get_drvinfo()
457 struct rionet_private *rnet = netdev_priv(ndev); in rionet_get_msglevel() local
459 return rnet->msg_enable; in rionet_get_msglevel()
464 struct rionet_private *rnet = netdev_priv(ndev); in rionet_set_msglevel() local
466 rnet->msg_enable = value; in rionet_set_msglevel()
499 struct rionet_private *rnet; in rionet_setup_netdev() local
513 rnet = netdev_priv(ndev); in rionet_setup_netdev()
514 rnet->mport = mport; in rionet_setup_netdev()
515 rnet->open = false; in rionet_setup_netdev()
532 spin_lock_init(&rnet->lock); in rionet_setup_netdev()
533 spin_lock_init(&rnet->tx_lock); in rionet_setup_netdev()
535 rnet->msg_enable = RIONET_DEFAULT_MSGLEVEL; in rionet_setup_netdev()
611 struct rionet_private *rnet; in rionet_add_dev() local
614 rnet = netdev_priv(nets[netid].ndev); in rionet_add_dev()
639 if (rnet->open) in rionet_add_dev()