Lines Matching defs:mse
92 #define to_mse102x_spi(mse) container_of((mse), struct mse102x_net_spi, mse102x)
148 static void mse102x_tx_cmd_spi(struct mse102x_net *mse, u16 cmd)
150 struct mse102x_net_spi *mses = to_mse102x_spi(mse);
165 netdev_err(mse->ndev, "%s: spi_sync() failed: %d\n",
167 mse->stats.xfer_err++;
171 static int mse102x_rx_cmd_spi(struct mse102x_net *mse, u8 *rxb)
173 struct mse102x_net_spi *mses = to_mse102x_spi(mse);
176 __be16 *txb = (__be16 *)mse->txd;
177 __be16 *cmd = (__be16 *)mse->rxd;
178 u8 *trx = mse->rxd;
190 netdev_err(mse->ndev, "%s: spi_sync() failed: %d\n",
192 mse->stats.xfer_err++;
196 mse->stats.invalid_cmd++;
219 static int mse102x_tx_frame_spi(struct mse102x_net *mse, struct sk_buff *txp,
222 struct mse102x_net_spi *mses = to_mse102x_spi(mse);
228 netif_dbg(mse, tx_queued, mse->ndev, "%s: skb %p, %d@%p\n",
255 netdev_err(mse->ndev, "%s: spi_sync() failed: %d\n",
257 mse->stats.xfer_err++;
263 static int mse102x_rx_frame_spi(struct mse102x_net *mse, u8 *buff,
266 struct mse102x_net_spi *mses = to_mse102x_spi(mse);
279 netdev_err(mse->ndev, "%s: spi_sync() failed: %d\n",
281 mse->stats.xfer_err++;
283 netdev_dbg(mse->ndev, "%s: SPI start of frame is invalid (0x%04x)\n",
285 mse->stats.invalid_sof++;
288 netdev_dbg(mse->ndev, "%s: SPI frame tail is invalid (0x%04x)\n",
290 mse->stats.invalid_dft++;
304 static void mse102x_rx_pkt_spi(struct mse102x_net *mse)
314 mse102x_tx_cmd_spi(mse, CMD_CTR);
315 ret = mse102x_rx_cmd_spi(mse, (u8 *)&rx);
321 mse102x_tx_cmd_spi(mse, CMD_CTR);
322 ret = mse102x_rx_cmd_spi(mse, (u8 *)&rx);
330 mse->stats.invalid_rts++;
341 mse->stats.invalid_len++;
346 skb = netdev_alloc_skb_ip_align(mse->ndev, rxalign);
355 if (mse102x_rx_frame_spi(mse, rxpkt, rxlen)) {
356 mse->ndev->stats.rx_errors++;
361 if (netif_msg_pktdata(mse))
364 skb->protocol = eth_type_trans(skb, mse->ndev);
367 mse->ndev->stats.rx_packets++;
368 mse->ndev->stats.rx_bytes += rxlen;
371 static int mse102x_tx_pkt_spi(struct mse102x_net *mse, struct sk_buff *txb,
384 mse102x_tx_cmd_spi(mse, CMD_RTS | (txb->len + pad));
385 ret = mse102x_rx_cmd_spi(mse, (u8 *)&rx);
395 mse->stats.invalid_ctr++;
407 netif_stop_queue(mse->ndev);
416 ret = mse102x_tx_frame_spi(mse, txb, pad);
431 struct mse102x_net *mse;
436 mse = &mses->mse102x;
438 while ((txb = skb_dequeue(&mse->txq))) {
440 ret = mse102x_tx_pkt_spi(mse, txb, work_timeout);
443 mse->ndev->stats.tx_dropped++;
445 mse->ndev->stats.tx_bytes += txb->len;
446 mse->ndev->stats.tx_packets++;
453 if (netif_msg_timer(mse))
454 netdev_err(mse->ndev, "tx work timeout\n");
456 mse->stats.tx_timeout++;
459 netif_wake_queue(mse->ndev);
465 struct mse102x_net *mse = netdev_priv(ndev);
466 struct mse102x_net_spi *mses = to_mse102x_spi(mse);
468 netif_dbg(mse, tx_queued, ndev,
471 skb_queue_tail(&mse->txq, skb);
473 if (skb_queue_len(&mse->txq) >= TX_QUEUE_MAX)
481 static void mse102x_init_mac(struct mse102x_net *mse, struct device_node *np)
483 struct net_device *ndev = mse->ndev;
496 struct mse102x_net *mse = _mse;
497 struct mse102x_net_spi *mses = to_mse102x_spi(mse);
500 mse102x_rx_pkt_spi(mse);
508 struct mse102x_net *mse = netdev_priv(ndev);
512 ndev->name, mse);
518 netif_dbg(mse, ifup, ndev, "opening\n");
524 netif_dbg(mse, ifup, ndev, "network device up\n");
531 struct mse102x_net *mse = netdev_priv(ndev);
532 struct mse102x_net_spi *mses = to_mse102x_spi(mse);
534 netif_info(mse, ifdown, ndev, "shutting down\n");
536 netif_carrier_off(mse->ndev);
543 skb_queue_purge(&mse->txq);
545 free_irq(ndev->irq, mse);
569 struct mse102x_net *mse = netdev_priv(ndev);
571 return mse->msg_enable;
576 struct mse102x_net *mse = netdev_priv(ndev);
578 mse->msg_enable = to;
584 struct mse102x_net *mse = netdev_priv(ndev);
585 struct mse102x_stats *st = &mse->stats;
629 struct mse102x_net *mse = dev_get_drvdata(dev);
630 struct net_device *ndev = mse->ndev;
642 struct mse102x_net *mse = dev_get_drvdata(dev);
643 struct net_device *ndev = mse->ndev;
661 struct mse102x_net *mse;
694 mse = netdev_priv(ndev);
695 mses = to_mse102x_spi(mse);
706 mse->ndev = ndev;
709 mse->msg_enable = netif_msg_init(-1, MSG_DEFAULT);
711 skb_queue_head_init(&mse->txq);
715 dev_set_drvdata(dev, mse);
717 netif_carrier_off(mse->ndev);
721 mse102x_init_mac(mse, dev->of_node);
736 struct mse102x_net *mse = dev_get_drvdata(&spi->dev);
737 struct mse102x_net_spi *mses = to_mse102x_spi(mse);
739 if (netif_msg_drv(mse))
743 unregister_netdev(mse->ndev);