• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/net/irda/

Lines Matching refs:idev

180 	vlsi_irda_dev_t *idev = ndev->priv;
197 pci_read_config_byte(idev->pdev, VLSI_PCI_IRMISC, &byte);
208 pci_read_config_byte(idev->pdev, VLSI_PCI_CLKCTL, &byte);
215 pci_read_config_byte(idev->pdev, VLSI_PCI_MSTRPAGE, &byte);
278 seq_printf(seq, "IrPHY setup: %d baud - %s encoding\n", idev->baud,
279 (idev->mode==IFF_SIR)?"SIR":((idev->mode==IFF_MIR)?"MIR":"FIR"));
281 if (now.tv_usec >= idev->last_rx.tv_usec) {
282 delta2 = now.tv_usec - idev->last_rx.tv_usec;
286 delta2 = 1000000 + now.tv_usec - idev->last_rx.tv_usec;
290 now.tv_sec - idev->last_rx.tv_sec - delta1, delta2);
293 idev->stats.rx_packets, idev->stats.rx_bytes, idev->stats.rx_errors,
294 idev->stats.rx_dropped);
296 idev->stats.rx_over_errors, idev->stats.rx_length_errors,
297 idev->stats.rx_frame_errors, idev->stats.rx_crc_errors);
299 idev->stats.tx_packets, idev->stats.tx_bytes, idev->stats.tx_errors,
300 idev->stats.tx_dropped, idev->stats.tx_fifo_errors);
348 vlsi_irda_dev_t *idev = ndev->priv;
360 spin_lock_irqsave(&idev->lock, flags);
361 if (idev->pdev != NULL) {
362 vlsi_proc_pdev(seq, idev->pdev);
364 if (idev->pdev->current_state == 0)
368 idev->resume_ok);
369 if (netif_running(ndev) && idev->rx_ring && idev->tx_ring) {
371 vlsi_proc_ring(seq, idev->rx_ring);
373 vlsi_proc_ring(seq, idev->tx_ring);
377 spin_unlock_irqrestore(&idev->lock, flags);
480 static int vlsi_create_hwif(vlsi_irda_dev_t *idev)
485 idev->virtaddr = NULL;
486 idev->busaddr = 0;
488 ringarea = pci_alloc_consistent(idev->pdev, HW_RING_AREA_SIZE, &idev->busaddr);
497 idev->rx_ring = vlsi_alloc_ring(idev->pdev, hwmap, ringsize[1],
499 if (idev->rx_ring == NULL)
503 idev->tx_ring = vlsi_alloc_ring(idev->pdev, hwmap, ringsize[0],
505 if (idev->tx_ring == NULL)
508 idev->virtaddr = ringarea;
512 vlsi_free_ring(idev->rx_ring);
514 idev->rx_ring = idev->tx_ring = NULL;
515 pci_free_consistent(idev->pdev, HW_RING_AREA_SIZE, ringarea, idev->busaddr);
516 idev->busaddr = 0;
521 static int vlsi_destroy_hwif(vlsi_irda_dev_t *idev)
523 vlsi_free_ring(idev->rx_ring);
524 vlsi_free_ring(idev->tx_ring);
525 idev->rx_ring = idev->tx_ring = NULL;
527 if (idev->busaddr)
528 pci_free_consistent(idev->pdev,HW_RING_AREA_SIZE,idev->virtaddr,idev->busaddr);
530 idev->virtaddr = NULL;
531 idev->busaddr = 0;
545 vlsi_irda_dev_t *idev = ndev->priv;
563 crclen = (idev->mode==IFF_FIR) ? sizeof(u32) : sizeof(u16);
571 if (idev->mode == IFF_SIR) { /* hw checks CRC in MIR, FIR mode */
640 vlsi_irda_dev_t *idev = ndev->priv;
641 struct vlsi_ring *r = idev->rx_ring;
654 idev->stats.rx_errors++;
656 idev->stats.rx_dropped++;
658 idev->stats.rx_over_errors++;
660 idev->stats.rx_length_errors++;
662 idev->stats.rx_frame_errors++;
664 idev->stats.rx_crc_errors++;
667 idev->stats.rx_packets++;
668 idev->stats.rx_bytes += ret;
672 do_gettimeofday(&idev->last_rx); /* remember "now" for later mtt delay */
687 static void vlsi_unarm_rx(vlsi_irda_dev_t *idev)
689 struct vlsi_ring *r = idev->rx_ring;
714 idev->stats.rx_errors++;
716 idev->stats.rx_dropped++;
718 idev->stats.rx_over_errors++;
720 idev->stats.rx_length_errors++;
722 idev->stats.rx_frame_errors++;
724 idev->stats.rx_crc_errors++;
727 idev->stats.rx_packets++;
728 idev->stats.rx_bytes += ret;
764 static int vlsi_set_baud(vlsi_irda_dev_t *idev, unsigned iobase)
773 baudrate = idev->new_baud;
774 IRDA_DEBUG(2, "%s: %d -> %d\n", __FUNCTION__, idev->baud, idev->new_baud);
843 idev->mode = mode;
844 idev->baud = baudrate;
845 idev->new_baud = 0;
858 vlsi_irda_dev_t *idev = ndev->priv;
859 struct vlsi_ring *r = idev->tx_ring;
871 spin_lock_irqsave(&idev->lock, flags);
872 if (speed != -1 && speed != idev->baud) {
874 idev->new_baud = speed;
904 if (ring_first(idev->tx_ring) == NULL) {
906 vlsi_set_baud(idev, iobase);
915 spin_unlock_irqrestore(&idev->lock, flags);
944 spin_unlock_irqrestore(&idev->lock, flags);
948 ready.tv_usec = idev->last_rx.tv_usec + mtt;
949 ready.tv_sec = idev->last_rx.tv_sec;
968 if (idev->mode == IFF_SIR) {
1020 spin_lock_irqsave(&idev->lock,flags);
1044 spin_unlock_irqrestore(&idev->lock, flags);
1049 spin_unlock_irqrestore(&idev->lock, flags);
1053 idev->stats.tx_errors++;
1054 idev->stats.tx_dropped++;
1065 vlsi_irda_dev_t *idev = ndev->priv;
1066 struct vlsi_ring *r = idev->tx_ring;
1081 idev->stats.tx_errors++;
1083 idev->stats.tx_dropped++;
1085 idev->stats.tx_fifo_errors++;
1088 idev->stats.tx_packets++;
1089 idev->stats.tx_bytes += ret;
1095 if (idev->new_baud && rd == NULL) /* tx ring empty and speed change pending */
1096 vlsi_set_baud(idev, iobase);
1115 if (netif_queue_stopped(ndev) && !idev->new_baud) {
1123 static void vlsi_unarm_tx(vlsi_irda_dev_t *idev)
1125 struct vlsi_ring *r = idev->tx_ring;
1148 idev->stats.tx_errors++;
1150 idev->stats.tx_dropped++;
1152 idev->stats.tx_fifo_errors++;
1155 idev->stats.tx_packets++;
1156 idev->stats.tx_bytes += ret;
1264 vlsi_irda_dev_t *idev = ndev->priv;
1288 outw(BUS_TO_RINGBASE(idev->busaddr), iobase+VLSI_PIO_RINGBASE);
1290 outw(TX_RX_TO_RINGSIZE(idev->tx_ring->size, idev->rx_ring->size),
1294 atomic_set(&idev->rx_ring->head, RINGPTR_GET_RX(ptr));
1295 atomic_set(&idev->rx_ring->tail, RINGPTR_GET_RX(ptr));
1296 atomic_set(&idev->tx_ring->head, RINGPTR_GET_TX(ptr));
1297 atomic_set(&idev->tx_ring->tail, RINGPTR_GET_TX(ptr));
1299 vlsi_set_baud(idev, iobase); /* idev->new_baud used as provided by caller */
1314 static int vlsi_start_hw(vlsi_irda_dev_t *idev)
1316 struct pci_dev *pdev = idev->pdev;
1337 vlsi_fill_rx(idev->rx_ring);
1339 do_gettimeofday(&idev->last_rx); /* first mtt may start from now on */
1346 static int vlsi_stop_hw(vlsi_irda_dev_t *idev)
1348 struct pci_dev *pdev = idev->pdev;
1353 spin_lock_irqsave(&idev->lock,flags);
1361 spin_unlock_irqrestore(&idev->lock,flags);
1363 vlsi_unarm_tx(idev);
1364 vlsi_unarm_rx(idev);
1378 vlsi_irda_dev_t *idev = ndev->priv;
1380 return &idev->stats;
1385 vlsi_irda_dev_t *idev = ndev->priv;
1389 vlsi_ring_debug(idev->tx_ring);
1394 vlsi_stop_hw(idev);
1398 if (!idev->new_baud)
1399 idev->new_baud = idev->baud; /* keep current baudrate */
1401 if (vlsi_start_hw(idev))
1403 __FUNCTION__, pci_name(idev->pdev), ndev->name);
1410 vlsi_irda_dev_t *idev = ndev->priv;
1422 spin_lock_irqsave(&idev->lock, flags);
1423 idev->new_baud = irq->ifr_baudrate;
1428 vlsi_set_baud(idev, ndev->base_addr);
1429 spin_unlock_irqrestore(&idev->lock, flags);
1460 vlsi_irda_dev_t *idev = ndev->priv;
1468 spin_lock_irqsave(&idev->lock,flags);
1489 spin_unlock_irqrestore(&idev->lock,flags);
1501 vlsi_irda_dev_t *idev = ndev->priv;
1505 if (pci_request_regions(idev->pdev, drivername)) {
1509 ndev->base_addr = pci_resource_start(idev->pdev,0);
1510 ndev->irq = idev->pdev->irq;
1525 if ((err = vlsi_create_hwif(idev)) != 0)
1529 idev->irlap = irlap_open(ndev,&idev->qos,hwname);
1530 if (!idev->irlap)
1533 do_gettimeofday(&idev->last_rx); /* first mtt may start from now on */
1535 idev->new_baud = 9600; /* start with IrPHY using 9600(SIR) mode */
1537 if ((err = vlsi_start_hw(idev)) != 0)
1547 irlap_close(idev->irlap);
1549 vlsi_destroy_hwif(idev);
1553 pci_release_regions(idev->pdev);
1560 vlsi_irda_dev_t *idev = ndev->priv;
1564 if (idev->irlap)
1565 irlap_close(idev->irlap);
1566 idev->irlap = NULL;
1568 vlsi_stop_hw(idev);
1570 vlsi_destroy_hwif(idev);
1574 pci_release_regions(idev->pdev);
1583 vlsi_irda_dev_t *idev = ndev->priv;
1584 struct pci_dev *pdev = idev->pdev;
1601 irda_init_max_qos_capabilies(&idev->qos);
1605 idev->qos.baud_rate.bits = IR_2400 | IR_9600
1609 idev->qos.min_turn_time.bits = qos_mtt_bits;
1611 irda_qos_bits_to_value(&idev->qos);
1637 vlsi_irda_dev_t *idev;
1653 ndev = alloc_irdadev(sizeof(*idev));
1660 idev = ndev->priv;
1662 spin_lock_init(&idev->lock);
1663 init_MUTEX(&idev->sem);
1664 down(&idev->sem);
1665 idev->pdev = pdev;
1687 idev->proc_entry = ent;
1692 up(&idev->sem);
1697 up(&idev->sem);
1709 vlsi_irda_dev_t *idev;
1718 idev = ndev->priv;
1719 down(&idev->sem);
1720 if (idev->proc_entry) {
1722 idev->proc_entry = NULL;
1724 up(&idev->sem);
1746 vlsi_irda_dev_t *idev;
1753 idev = ndev->priv;
1754 down(&idev->sem);
1762 up(&idev->sem);
1768 vlsi_stop_hw(idev);
1770 if (!idev->new_baud)
1772 idev->new_baud = idev->baud;
1777 idev->resume_ok = 1;
1778 up(&idev->sem);
1785 vlsi_irda_dev_t *idev;
1792 idev = ndev->priv;
1793 down(&idev->sem);
1795 up(&idev->sem);
1804 if (!idev->resume_ok) {
1817 up(&idev->sem);
1823 vlsi_start_hw(idev);
1826 idev->resume_ok = 0;
1827 up(&idev->sem);