• Home
  • Raw
  • Download

Lines Matching refs:idev

180 	vlsi_irda_dev_t *idev = netdev_priv(ndev);  in vlsi_proc_ndev()  local
197 pci_read_config_byte(idev->pdev, VLSI_PCI_IRMISC, &byte); in vlsi_proc_ndev()
208 pci_read_config_byte(idev->pdev, VLSI_PCI_CLKCTL, &byte); in vlsi_proc_ndev()
215 pci_read_config_byte(idev->pdev, VLSI_PCI_MSTRPAGE, &byte); in vlsi_proc_ndev()
278 seq_printf(seq, "IrPHY setup: %d baud - %s encoding\n", idev->baud, in vlsi_proc_ndev()
279 (idev->mode==IFF_SIR)?"SIR":((idev->mode==IFF_MIR)?"MIR":"FIR")); in vlsi_proc_ndev()
281 if (now.tv_usec >= idev->last_rx.tv_usec) { in vlsi_proc_ndev()
282 delta2 = now.tv_usec - idev->last_rx.tv_usec; in vlsi_proc_ndev()
286 delta2 = 1000000 + now.tv_usec - idev->last_rx.tv_usec; in vlsi_proc_ndev()
290 now.tv_sec - idev->last_rx.tv_sec - delta1, delta2); in vlsi_proc_ndev()
344 vlsi_irda_dev_t *idev = netdev_priv(ndev); in vlsi_seq_show() local
356 spin_lock_irqsave(&idev->lock, flags); in vlsi_seq_show()
357 if (idev->pdev != NULL) { in vlsi_seq_show()
358 vlsi_proc_pdev(seq, idev->pdev); in vlsi_seq_show()
360 if (idev->pdev->current_state == 0) in vlsi_seq_show()
364 idev->resume_ok); in vlsi_seq_show()
365 if (netif_running(ndev) && idev->rx_ring && idev->tx_ring) { in vlsi_seq_show()
367 vlsi_proc_ring(seq, idev->rx_ring); in vlsi_seq_show()
369 vlsi_proc_ring(seq, idev->tx_ring); in vlsi_seq_show()
373 spin_unlock_irqrestore(&idev->lock, flags); in vlsi_seq_show()
476 static int vlsi_create_hwif(vlsi_irda_dev_t *idev) in vlsi_create_hwif() argument
481 idev->virtaddr = NULL; in vlsi_create_hwif()
482 idev->busaddr = 0; in vlsi_create_hwif()
484 ringarea = pci_zalloc_consistent(idev->pdev, HW_RING_AREA_SIZE, in vlsi_create_hwif()
485 &idev->busaddr); in vlsi_create_hwif()
493 idev->rx_ring = vlsi_alloc_ring(idev->pdev, hwmap, ringsize[1], in vlsi_create_hwif()
495 if (idev->rx_ring == NULL) in vlsi_create_hwif()
499 idev->tx_ring = vlsi_alloc_ring(idev->pdev, hwmap, ringsize[0], in vlsi_create_hwif()
501 if (idev->tx_ring == NULL) in vlsi_create_hwif()
504 idev->virtaddr = ringarea; in vlsi_create_hwif()
508 vlsi_free_ring(idev->rx_ring); in vlsi_create_hwif()
510 idev->rx_ring = idev->tx_ring = NULL; in vlsi_create_hwif()
511 pci_free_consistent(idev->pdev, HW_RING_AREA_SIZE, ringarea, idev->busaddr); in vlsi_create_hwif()
512 idev->busaddr = 0; in vlsi_create_hwif()
517 static int vlsi_destroy_hwif(vlsi_irda_dev_t *idev) in vlsi_destroy_hwif() argument
519 vlsi_free_ring(idev->rx_ring); in vlsi_destroy_hwif()
520 vlsi_free_ring(idev->tx_ring); in vlsi_destroy_hwif()
521 idev->rx_ring = idev->tx_ring = NULL; in vlsi_destroy_hwif()
523 if (idev->busaddr) in vlsi_destroy_hwif()
524 pci_free_consistent(idev->pdev,HW_RING_AREA_SIZE,idev->virtaddr,idev->busaddr); in vlsi_destroy_hwif()
526 idev->virtaddr = NULL; in vlsi_destroy_hwif()
527 idev->busaddr = 0; in vlsi_destroy_hwif()
541 vlsi_irda_dev_t *idev = netdev_priv(ndev); in vlsi_process_rx() local
559 crclen = (idev->mode==IFF_FIR) ? sizeof(u32) : sizeof(u16); in vlsi_process_rx()
567 if (idev->mode == IFF_SIR) { /* hw checks CRC in MIR, FIR mode */ in vlsi_process_rx()
635 vlsi_irda_dev_t *idev = netdev_priv(ndev); in vlsi_rx_interrupt() local
636 struct vlsi_ring *r = idev->rx_ring; in vlsi_rx_interrupt()
667 do_gettimeofday(&idev->last_rx); /* remember "now" for later mtt delay */ in vlsi_rx_interrupt()
682 static void vlsi_unarm_rx(vlsi_irda_dev_t *idev) in vlsi_unarm_rx() argument
684 struct net_device *ndev = pci_get_drvdata(idev->pdev); in vlsi_unarm_rx()
685 struct vlsi_ring *r = idev->rx_ring; in vlsi_unarm_rx()
760 static int vlsi_set_baud(vlsi_irda_dev_t *idev, unsigned iobase) in vlsi_set_baud() argument
769 baudrate = idev->new_baud; in vlsi_set_baud()
770 IRDA_DEBUG(2, "%s: %d -> %d\n", __func__, idev->baud, idev->new_baud); in vlsi_set_baud()
839 idev->mode = mode; in vlsi_set_baud()
840 idev->baud = baudrate; in vlsi_set_baud()
841 idev->new_baud = 0; in vlsi_set_baud()
855 vlsi_irda_dev_t *idev = netdev_priv(ndev); in vlsi_hard_start_xmit() local
856 struct vlsi_ring *r = idev->tx_ring; in vlsi_hard_start_xmit()
868 spin_lock_irqsave(&idev->lock, flags); in vlsi_hard_start_xmit()
869 if (speed != -1 && speed != idev->baud) { in vlsi_hard_start_xmit()
871 idev->new_baud = speed; in vlsi_hard_start_xmit()
901 if (ring_first(idev->tx_ring) == NULL) { in vlsi_hard_start_xmit()
903 vlsi_set_baud(idev, iobase); in vlsi_hard_start_xmit()
912 spin_unlock_irqrestore(&idev->lock, flags); in vlsi_hard_start_xmit()
941 spin_unlock_irqrestore(&idev->lock, flags); in vlsi_hard_start_xmit()
945 ready.tv_usec = idev->last_rx.tv_usec + mtt; in vlsi_hard_start_xmit()
946 ready.tv_sec = idev->last_rx.tv_sec; in vlsi_hard_start_xmit()
965 if (idev->mode == IFF_SIR) { in vlsi_hard_start_xmit()
1017 spin_lock_irqsave(&idev->lock,flags); in vlsi_hard_start_xmit()
1040 spin_unlock_irqrestore(&idev->lock, flags); in vlsi_hard_start_xmit()
1045 spin_unlock_irqrestore(&idev->lock, flags); in vlsi_hard_start_xmit()
1061 vlsi_irda_dev_t *idev = netdev_priv(ndev); in vlsi_tx_interrupt() local
1062 struct vlsi_ring *r = idev->tx_ring; in vlsi_tx_interrupt()
1091 if (idev->new_baud && rd == NULL) /* tx ring empty and speed change pending */ in vlsi_tx_interrupt()
1092 vlsi_set_baud(idev, iobase); in vlsi_tx_interrupt()
1111 if (netif_queue_stopped(ndev) && !idev->new_baud) { in vlsi_tx_interrupt()
1119 static void vlsi_unarm_tx(vlsi_irda_dev_t *idev) in vlsi_unarm_tx() argument
1121 struct net_device *ndev = pci_get_drvdata(idev->pdev); in vlsi_unarm_tx()
1122 struct vlsi_ring *r = idev->tx_ring; in vlsi_unarm_tx()
1261 vlsi_irda_dev_t *idev = netdev_priv(ndev); in vlsi_init_chip() local
1285 outw(BUS_TO_RINGBASE(idev->busaddr), iobase+VLSI_PIO_RINGBASE); in vlsi_init_chip()
1287 outw(TX_RX_TO_RINGSIZE(idev->tx_ring->size, idev->rx_ring->size), in vlsi_init_chip()
1291 atomic_set(&idev->rx_ring->head, RINGPTR_GET_RX(ptr)); in vlsi_init_chip()
1292 atomic_set(&idev->rx_ring->tail, RINGPTR_GET_RX(ptr)); in vlsi_init_chip()
1293 atomic_set(&idev->tx_ring->head, RINGPTR_GET_TX(ptr)); in vlsi_init_chip()
1294 atomic_set(&idev->tx_ring->tail, RINGPTR_GET_TX(ptr)); in vlsi_init_chip()
1296 vlsi_set_baud(idev, iobase); /* idev->new_baud used as provided by caller */ in vlsi_init_chip()
1311 static int vlsi_start_hw(vlsi_irda_dev_t *idev) in vlsi_start_hw() argument
1313 struct pci_dev *pdev = idev->pdev; in vlsi_start_hw()
1334 vlsi_fill_rx(idev->rx_ring); in vlsi_start_hw()
1336 do_gettimeofday(&idev->last_rx); /* first mtt may start from now on */ in vlsi_start_hw()
1343 static int vlsi_stop_hw(vlsi_irda_dev_t *idev) in vlsi_stop_hw() argument
1345 struct pci_dev *pdev = idev->pdev; in vlsi_stop_hw()
1350 spin_lock_irqsave(&idev->lock,flags); in vlsi_stop_hw()
1358 spin_unlock_irqrestore(&idev->lock,flags); in vlsi_stop_hw()
1360 vlsi_unarm_tx(idev); in vlsi_stop_hw()
1361 vlsi_unarm_rx(idev); in vlsi_stop_hw()
1375 vlsi_irda_dev_t *idev = netdev_priv(ndev); in vlsi_tx_timeout() local
1379 vlsi_ring_debug(idev->tx_ring); in vlsi_tx_timeout()
1384 vlsi_stop_hw(idev); in vlsi_tx_timeout()
1388 if (!idev->new_baud) in vlsi_tx_timeout()
1389 idev->new_baud = idev->baud; /* keep current baudrate */ in vlsi_tx_timeout()
1391 if (vlsi_start_hw(idev)) in vlsi_tx_timeout()
1393 __func__, pci_name(idev->pdev), ndev->name); in vlsi_tx_timeout()
1400 vlsi_irda_dev_t *idev = netdev_priv(ndev); in vlsi_ioctl() local
1412 spin_lock_irqsave(&idev->lock, flags); in vlsi_ioctl()
1413 idev->new_baud = irq->ifr_baudrate; in vlsi_ioctl()
1418 vlsi_set_baud(idev, ndev->base_addr); in vlsi_ioctl()
1419 spin_unlock_irqrestore(&idev->lock, flags); in vlsi_ioctl()
1450 vlsi_irda_dev_t *idev = netdev_priv(ndev); in vlsi_interrupt() local
1458 spin_lock_irqsave(&idev->lock,flags); in vlsi_interrupt()
1479 spin_unlock_irqrestore(&idev->lock,flags); in vlsi_interrupt()
1491 vlsi_irda_dev_t *idev = netdev_priv(ndev); in vlsi_open() local
1495 if (pci_request_regions(idev->pdev, drivername)) { in vlsi_open()
1499 ndev->base_addr = pci_resource_start(idev->pdev,0); in vlsi_open()
1500 ndev->irq = idev->pdev->irq; in vlsi_open()
1515 if ((err = vlsi_create_hwif(idev)) != 0) in vlsi_open()
1519 idev->irlap = irlap_open(ndev,&idev->qos,hwname); in vlsi_open()
1520 if (!idev->irlap) in vlsi_open()
1523 do_gettimeofday(&idev->last_rx); /* first mtt may start from now on */ in vlsi_open()
1525 idev->new_baud = 9600; /* start with IrPHY using 9600(SIR) mode */ in vlsi_open()
1527 if ((err = vlsi_start_hw(idev)) != 0) in vlsi_open()
1537 irlap_close(idev->irlap); in vlsi_open()
1539 vlsi_destroy_hwif(idev); in vlsi_open()
1543 pci_release_regions(idev->pdev); in vlsi_open()
1550 vlsi_irda_dev_t *idev = netdev_priv(ndev); in vlsi_close() local
1554 if (idev->irlap) in vlsi_close()
1555 irlap_close(idev->irlap); in vlsi_close()
1556 idev->irlap = NULL; in vlsi_close()
1558 vlsi_stop_hw(idev); in vlsi_close()
1560 vlsi_destroy_hwif(idev); in vlsi_close()
1564 pci_release_regions(idev->pdev); in vlsi_close()
1581 vlsi_irda_dev_t *idev = netdev_priv(ndev); in vlsi_irda_init() local
1582 struct pci_dev *pdev = idev->pdev; in vlsi_irda_init()
1597 irda_init_max_qos_capabilies(&idev->qos); in vlsi_irda_init()
1601 idev->qos.baud_rate.bits = IR_2400 | IR_9600 in vlsi_irda_init()
1605 idev->qos.min_turn_time.bits = qos_mtt_bits; in vlsi_irda_init()
1607 irda_qos_bits_to_value(&idev->qos); in vlsi_irda_init()
1628 vlsi_irda_dev_t *idev; in vlsi_irda_probe() local
1644 ndev = alloc_irdadev(sizeof(*idev)); in vlsi_irda_probe()
1651 idev = netdev_priv(ndev); in vlsi_irda_probe()
1653 spin_lock_init(&idev->lock); in vlsi_irda_probe()
1654 mutex_init(&idev->mtx); in vlsi_irda_probe()
1655 mutex_lock(&idev->mtx); in vlsi_irda_probe()
1656 idev->pdev = pdev; in vlsi_irda_probe()
1677 idev->proc_entry = ent; in vlsi_irda_probe()
1682 mutex_unlock(&idev->mtx); in vlsi_irda_probe()
1687 mutex_unlock(&idev->mtx); in vlsi_irda_probe()
1698 vlsi_irda_dev_t *idev; in vlsi_irda_remove() local
1707 idev = netdev_priv(ndev); in vlsi_irda_remove()
1708 mutex_lock(&idev->mtx); in vlsi_irda_remove()
1709 if (idev->proc_entry) { in vlsi_irda_remove()
1711 idev->proc_entry = NULL; in vlsi_irda_remove()
1713 mutex_unlock(&idev->mtx); in vlsi_irda_remove()
1733 vlsi_irda_dev_t *idev; in vlsi_irda_suspend() local
1740 idev = netdev_priv(ndev); in vlsi_irda_suspend()
1741 mutex_lock(&idev->mtx); in vlsi_irda_suspend()
1749 mutex_unlock(&idev->mtx); in vlsi_irda_suspend()
1755 vlsi_stop_hw(idev); in vlsi_irda_suspend()
1757 if (!idev->new_baud) in vlsi_irda_suspend()
1759 idev->new_baud = idev->baud; in vlsi_irda_suspend()
1764 idev->resume_ok = 1; in vlsi_irda_suspend()
1765 mutex_unlock(&idev->mtx); in vlsi_irda_suspend()
1772 vlsi_irda_dev_t *idev; in vlsi_irda_resume() local
1779 idev = netdev_priv(ndev); in vlsi_irda_resume()
1780 mutex_lock(&idev->mtx); in vlsi_irda_resume()
1782 mutex_unlock(&idev->mtx); in vlsi_irda_resume()
1791 if (!idev->resume_ok) { in vlsi_irda_resume()
1804 mutex_unlock(&idev->mtx); in vlsi_irda_resume()
1810 vlsi_start_hw(idev); in vlsi_irda_resume()
1813 idev->resume_ok = 0; in vlsi_irda_resume()
1814 mutex_unlock(&idev->mtx); in vlsi_irda_resume()