• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/net/caif/

Lines Matching refs:cfspi

118 static inline void dev_debugfs_rem(struct cfspi *cfspi)
120 debugfs_remove(cfspi->dbgfs_frame);
121 debugfs_remove(cfspi->dbgfs_state);
122 debugfs_remove(cfspi->dbgfs_dir);
137 struct cfspi *cfspi = file->private_data;
150 "STATE: %d\n", cfspi->dbg_state);
152 "Previous CMD: 0x%x\n", cfspi->pcmd);
154 "Current CMD: 0x%x\n", cfspi->cmd);
156 "Previous TX len: %d\n", cfspi->tx_ppck_len);
158 "Previous RX len: %d\n", cfspi->rx_ppck_len);
160 "Current TX len: %d\n", cfspi->tx_cpck_len);
162 "Current RX len: %d\n", cfspi->rx_cpck_len);
164 "Next TX len: %d\n", cfspi->tx_npck_len);
166 "Next RX len: %d\n", cfspi->rx_npck_len);
209 struct cfspi *cfspi;
211 cfspi = file->private_data;
221 "Tx data (Len: %d):\n", cfspi->tx_cpck_len);
224 cfspi->xfer.va_tx,
225 (cfspi->tx_cpck_len + SPI_CMD_SZ), 100);
228 "Rx data (Len: %d):\n", cfspi->rx_cpck_len);
231 cfspi->xfer.va_rx,
232 (cfspi->rx_cpck_len + SPI_CMD_SZ), 100);
252 static inline void dev_debugfs_add(struct cfspi *cfspi)
254 cfspi->dbgfs_dir = debugfs_create_dir(cfspi->pdev->name, dbgfs_root);
255 cfspi->dbgfs_state = debugfs_create_file("state", S_IRUGO,
256 cfspi->dbgfs_dir, cfspi,
258 cfspi->dbgfs_frame = debugfs_create_file("frame", S_IRUGO,
259 cfspi->dbgfs_dir, cfspi,
263 inline void cfspi_dbg_state(struct cfspi *cfspi, int state)
265 cfspi->dbg_state = state;
277 static inline void dev_debugfs_add(struct cfspi *cfspi)
281 static inline void dev_debugfs_rem(struct cfspi *cfspi)
285 inline void cfspi_dbg_state(struct cfspi *cfspi, int state)
333 int cfspi_xmitfrm(struct cfspi *cfspi, u8 *buf, size_t len)
344 skb = skb_dequeue(&cfspi->chead);
367 cfspi->ndev->stats.tx_packets++;
368 cfspi->ndev->stats.tx_bytes += skb->len;
384 int cfspi_xmitlen(struct cfspi *cfspi)
392 * skb_queue_splice_tail(&cfspi->chead,&cfspi->qhead)
394 while (skb_peek(&cfspi->chead)) {
395 skb = skb_dequeue_tail(&cfspi->chead);
396 skb_queue_head(&cfspi->qhead, skb);
404 skb = skb_dequeue(&cfspi->qhead);
428 skb_queue_tail(&cfspi->chead, skb);
433 skb_queue_head(&cfspi->qhead, skb);
441 if (cfspi->flow_off_sent && cfspi->qhead.qlen < cfspi->qd_low_mark &&
442 cfspi->cfdev.flowctrl) {
443 cfspi->flow_off_sent = 0;
444 cfspi->cfdev.flowctrl(cfspi->ndev, 1);
452 struct cfspi *cfspi = (struct cfspi *)ifc->priv;
455 spin_lock(&cfspi->lock);
457 set_bit(SPI_SS_ON, &cfspi->state);
458 set_bit(SPI_XFER, &cfspi->state);
460 set_bit(SPI_SS_OFF, &cfspi->state);
463 spin_unlock(&cfspi->lock);
466 wake_up_interruptible(&cfspi->wait);
471 struct cfspi *cfspi = (struct cfspi *)ifc->priv;
474 complete(&cfspi->comp);
479 struct cfspi *cfspi = NULL;
484 cfspi = netdev_priv(dev);
486 skb_queue_tail(&cfspi->qhead, skb);
488 spin_lock_irqsave(&cfspi->lock, flags);
489 if (!test_and_set_bit(SPI_XFER, &cfspi->state)) {
491 wake_up_interruptible(&cfspi->wait);
493 spin_unlock_irqrestore(&cfspi->lock, flags);
496 if (!cfspi->flow_off_sent &&
497 cfspi->qhead.qlen > cfspi->qd_high_mark &&
498 cfspi->cfdev.flowctrl) {
499 cfspi->flow_off_sent = 1;
500 cfspi->cfdev.flowctrl(cfspi->ndev, 0);
506 int cfspi_rxfrm(struct cfspi *cfspi, u8 *buf, size_t len)
536 skb = netdev_alloc_skb(cfspi->ndev, pkt_len + 1);
545 skb->dev = cfspi->ndev;
553 res = cfspi_xmit(skb, cfspi->ndev);
556 cfspi->ndev->stats.rx_packets++;
557 cfspi->ndev->stats.rx_bytes += pkt_len;
559 cfspi->ndev->stats.rx_dropped++;
591 struct cfspi *cfspi = netdev_priv(dev);
599 skb_queue_head_init(&cfspi->qhead);
600 skb_queue_head_init(&cfspi->chead);
601 cfspi->cfdev.link_select = CAIF_LINK_HIGH_BANDW;
602 cfspi->cfdev.use_frag = false;
603 cfspi->cfdev.use_stx = false;
604 cfspi->cfdev.use_fcs = false;
605 cfspi->ndev = dev;
610 struct cfspi *cfspi = NULL;
616 ndev = alloc_netdev(sizeof(struct cfspi),
617 "cfspi%d", cfspi_setup);
621 cfspi = netdev_priv(ndev);
623 cfspi->ndev = ndev;
624 cfspi->pdev = pdev;
627 cfspi->flow_off_sent = 0;
628 cfspi->qd_low_mark = LOW_WATER_MARK;
629 cfspi->qd_high_mark = HIGH_WATER_MARK;
632 cfspi->dev = dev;
634 dev->ifc = &cfspi->ifc;
637 cfspi->xfer.va_tx = dma_alloc(&cfspi->xfer.pa_tx);
638 if (!cfspi->xfer.va_tx) {
645 cfspi->xfer.va_rx = dma_alloc(&cfspi->xfer.pa_rx);
647 if (!cfspi->xfer.va_rx) {
655 INIT_WORK(&cfspi->work, cfspi_xfer);
658 spin_lock_init(&cfspi->lock);
661 cfspi->flow_stop = false;
664 init_waitqueue_head(&cfspi->wait);
667 cfspi->wq = create_singlethread_workqueue(dev->name);
668 if (!cfspi->wq) {
675 init_completion(&cfspi->comp);
678 dev_debugfs_add(cfspi);
681 cfspi->ifc.ss_cb = cfspi_ss_cb;
682 cfspi->ifc.xfer_done_cb = cfspi_xfer_done_cb;
683 cfspi->ifc.priv = cfspi;
687 list_add_tail(&cfspi->list, &cfspi_list);
691 queue_work(cfspi->wq, &cfspi->work);
702 dev_debugfs_rem(cfspi);
703 set_bit(SPI_TERMINATE, &cfspi->state);
704 wake_up_interruptible(&cfspi->wait);
705 destroy_workqueue(cfspi->wq);
707 dma_free(cfspi->xfer.va_rx, cfspi->xfer.pa_rx);
709 dma_free(cfspi->xfer.va_tx, cfspi->xfer.pa_tx);
720 struct cfspi *cfspi = NULL;
726 cfspi = list_entry(list_node, struct cfspi, list);
728 if (cfspi->dev == dev) {
732 dma_free(cfspi->xfer.va_rx, cfspi->xfer.pa_rx);
733 dma_free(cfspi->xfer.va_tx, cfspi->xfer.pa_tx);
734 set_bit(SPI_TERMINATE, &cfspi->state);
735 wake_up_interruptible(&cfspi->wait);
736 destroy_workqueue(cfspi->wq);
738 dev_debugfs_rem(cfspi);
739 unregister_netdev(cfspi->ndev);
752 struct cfspi *cfspi = NULL;
755 cfspi = list_entry(list_node, struct cfspi, list);
756 platform_device_unregister(cfspi->pdev);