• Home
  • Raw
  • Download

Lines Matching refs:lp

511 #define TX_BUFFS_AVAIL ((lp->tx_old<=lp->tx_new)?\
512 lp->tx_old+lp->txRingMask-lp->tx_new:\
513 lp->tx_old -lp->tx_new-1)
571 struct depca_private *lp; in depca_hw_init() local
603 lp = netdev_priv(dev); in depca_hw_init()
604 mem_start = lp->mem_start; in depca_hw_init()
606 if (!mem_start || lp->adapter < DEPCA || lp->adapter >=unknown) in depca_hw_init()
610 device->bus_id, depca_signature[lp->adapter], ioaddr); in depca_hw_init()
612 switch (lp->depca_bus) { in depca_hw_init()
629 printk("Unknown DEPCA bus %d\n", lp->depca_bus); in depca_hw_init()
642 netRAM = ((lp->adapter != DEPCA) ? 64 : 48); in depca_hw_init()
643 if ((nicsr & _128KB) && (lp->adapter == de422)) in depca_hw_init()
652 if (lp->depca_bus != DEPCA_BUS_MCA) in depca_hw_init()
665 if (lp->adapter != DEPCA) { in depca_hw_init()
670 spin_lock_init(&lp->lock); in depca_hw_init()
671 sprintf(lp->adapter_name, "%s (%s)", in depca_hw_init()
672 depca_signature[lp->adapter], device->bus_id); in depca_hw_init()
676 if (!request_mem_region (mem_start, mem_len, lp->adapter_name)) { in depca_hw_init()
682 lp->sh_mem = ioremap(mem_start, mem_len); in depca_hw_init()
683 if (lp->sh_mem == NULL) { in depca_hw_init()
688 lp->mem_start = mem_start; in depca_hw_init()
689 lp->mem_len = mem_len; in depca_hw_init()
690 lp->device_ram_start = mem_start & LA_MASK; in depca_hw_init()
697 lp->rx_ring = (struct depca_rx_desc __iomem *) (lp->sh_mem + offset); in depca_hw_init()
698 lp->rx_ring_offset = offset; in depca_hw_init()
701 lp->tx_ring = (struct depca_tx_desc __iomem *) (lp->sh_mem + offset); in depca_hw_init()
702 lp->tx_ring_offset = offset; in depca_hw_init()
706 lp->buffs_offset = offset; in depca_hw_init()
709 lp->rxRingMask = NUM_RX_DESC - 1; in depca_hw_init()
710 lp->txRingMask = NUM_TX_DESC - 1; in depca_hw_init()
713 for (i = 0, j = lp->rxRingMask; j > 0; i++) { in depca_hw_init()
716 lp->rx_rlen = (s32) (i << 29); in depca_hw_init()
717 for (i = 0, j = lp->txRingMask; j > 0; i++) { in depca_hw_init()
720 lp->tx_rlen = (s32) (i << 29); in depca_hw_init()
741 switch (lp->adapter) { in depca_hw_init()
813 iounmap(lp->sh_mem); in depca_hw_init()
823 struct depca_private *lp = netdev_priv(dev); in depca_open() local
832 if (lp->adapter != DEPCA) { in depca_open()
843 if (request_irq(dev->irq, &depca_interrupt, 0, lp->adapter_name, dev)) { in depca_open()
868 struct depca_private *lp = netdev_priv(dev); in depca_init_ring() local
875 lp->rx_new = lp->tx_new = 0; in depca_init_ring()
876 lp->rx_old = lp->tx_old = 0; in depca_init_ring()
879 for (i = 0; i <= lp->rxRingMask; i++) { in depca_init_ring()
880 offset = lp->buffs_offset + i * RX_BUFF_SZ; in depca_init_ring()
881 writel((lp->device_ram_start + offset) | R_OWN, &lp->rx_ring[i].base); in depca_init_ring()
882 writew(-RX_BUFF_SZ, &lp->rx_ring[i].buf_length); in depca_init_ring()
883 lp->rx_buff[i] = lp->sh_mem + offset; in depca_init_ring()
886 for (i = 0; i <= lp->txRingMask; i++) { in depca_init_ring()
887 offset = lp->buffs_offset + (i + lp->rxRingMask + 1) * TX_BUFF_SZ; in depca_init_ring()
888 writel((lp->device_ram_start + offset) & 0x00ffffff, &lp->tx_ring[i].base); in depca_init_ring()
889 lp->tx_buff[i] = lp->sh_mem + offset; in depca_init_ring()
893 lp->init_block.rx_ring = (lp->device_ram_start + lp->rx_ring_offset) | lp->rx_rlen; in depca_init_ring()
894 lp->init_block.tx_ring = (lp->device_ram_start + lp->tx_ring_offset) | lp->tx_rlen; in depca_init_ring()
899 lp->init_block.phys_addr[i] = dev->dev_addr[i]; in depca_init_ring()
902 lp->init_block.mode = 0x0000; /* Enable the Tx and Rx */ in depca_init_ring()
926 struct depca_private *lp = netdev_priv(dev); in depca_start_xmit() local
965 struct depca_private *lp; in depca_interrupt() local
974 lp = netdev_priv(dev); in depca_interrupt()
977 spin_lock(&lp->lock); in depca_interrupt()
1005 spin_unlock(&lp->lock); in depca_interrupt()
1012 struct depca_private *lp = netdev_priv(dev); in depca_rx() local
1016 for (entry = lp->rx_new; !(readl(&lp->rx_ring[entry].base) & R_OWN); entry = lp->rx_new) { in depca_rx()
1017 status = readl(&lp->rx_ring[entry].base) >> 16; in depca_rx()
1019 lp->rx_old = entry; in depca_rx()
1033 short len, pkt_len = readw(&lp->rx_ring[entry].msg_length) - 4; in depca_rx()
1041 if (entry < lp->rx_old) { /* Wrapped buffer */ in depca_rx()
1042 len = (lp->rxRingMask - lp->rx_old + 1) * RX_BUFF_SZ; in depca_rx()
1043 memcpy_fromio(buf, lp->rx_buff[lp->rx_old], len); in depca_rx()
1044 memcpy_fromio(buf + len, lp->rx_buff[0], pkt_len - len); in depca_rx()
1046 memcpy_fromio(buf, lp->rx_buff[lp->rx_old], pkt_len); in depca_rx()
1063 lp->pktStats.bins[i]++; in depca_rx()
1069 lp->pktStats.broadcast++; in depca_rx()
1071 lp->pktStats.multicast++; in depca_rx()
1074 lp->pktStats.unicast++; in depca_rx()
1077 lp->pktStats.bins[0]++; /* Duplicates stats.rx_packets */ in depca_rx()
1078 if (lp->pktStats.bins[0] == 0) { /* Reset counters */ in depca_rx()
1079 memset((char *) &lp->pktStats, 0, sizeof(lp->pktStats)); in depca_rx()
1088 for (; lp->rx_old != entry; lp->rx_old = (++lp->rx_old) & lp->rxRingMask) { in depca_rx()
1089 writel(readl(&lp->rx_ring[lp->rx_old].base) | R_OWN, &lp->rx_ring[lp->rx_old].base); in depca_rx()
1091 writel(readl(&lp->rx_ring[entry].base) | R_OWN, &lp->rx_ring[entry].base); in depca_rx()
1097 lp->rx_new = (++lp->rx_new) & lp->rxRingMask; in depca_rx()
1109 struct depca_private *lp = netdev_priv(dev); in depca_tx() local
1114 for (entry = lp->tx_old; entry != lp->tx_new; entry = lp->tx_old) { in depca_tx()
1115 status = readl(&lp->tx_ring[entry].base) >> 16; in depca_tx()
1120 status = readl(&lp->tx_ring[entry].misc); in depca_tx()
1142 lp->tx_old = (++lp->tx_old) & lp->txRingMask; in depca_tx()
1150 struct depca_private *lp = netdev_priv(dev); in depca_close() local
1171 if (lp->adapter != DEPCA) { in depca_close()
1186 struct depca_private *lp = netdev_priv(dev); in LoadCSRs() local
1190 outw((u16) lp->device_ram_start, DEPCA_DATA); in LoadCSRs()
1192 outw((u16) (lp->device_ram_start >> 16), DEPCA_DATA); in LoadCSRs()
1203 struct depca_private *lp = netdev_priv(dev); in InitRestartDepca() local
1208 memcpy_toio(lp->sh_mem, &lp->init_block, sizeof(struct depca_init)); in InitRestartDepca()
1220 …printk("%s: DEPCA open after %d ticks, init block 0x%08lx csr0 %4.4x.\n", dev->name, i, lp->mem_st… in InitRestartDepca()
1223 …printk("%s: DEPCA unopen after %d ticks, init block 0x%08lx csr0 %4.4x.\n", dev->name, i, lp->mem_… in InitRestartDepca()
1235 struct depca_private *lp = netdev_priv(dev); in set_multicast_list() local
1239 while (lp->tx_old != lp->tx_new); /* Wait for the ring to empty */ in set_multicast_list()
1245 lp->init_block.mode |= PROM; in set_multicast_list()
1248 lp->init_block.mode &= ~PROM; /* Unset promiscuous mode */ in set_multicast_list()
1264 struct depca_private *lp = netdev_priv(dev); in SetMulticastFilter() local
1273 lp->init_block.mcast_table[i] = (char) 0xff; in SetMulticastFilter()
1277 lp->init_block.mcast_table[i] = 0; in SetMulticastFilter()
1293 lp->init_block.mcast_table[byte] |= bit; in SetMulticastFilter()
1340 struct depca_private *lp; in depca_mca_probe() local
1432 lp = netdev_priv(dev); in depca_mca_probe()
1433 lp->depca_bus = DEPCA_BUS_MCA; in depca_mca_probe()
1434 lp->adapter = depca_mca_adapter_type[mdev->index]; in depca_mca_probe()
1435 lp->mem_start = mem_start; in depca_mca_probe()
1515 struct depca_private *lp; in depca_isa_probe() local
1535 lp = netdev_priv(dev); in depca_isa_probe()
1536 lp->depca_bus = DEPCA_BUS_ISA; in depca_isa_probe()
1537 lp->adapter = adapter; in depca_isa_probe()
1538 lp->mem_start = mem_start; in depca_isa_probe()
1562 struct depca_private *lp; in depca_eisa_probe() local
1586 lp = netdev_priv(dev); in depca_eisa_probe()
1587 lp->depca_bus = DEPCA_BUS_EISA; in depca_eisa_probe()
1588 lp->adapter = edev->id.driver_data; in depca_eisa_probe()
1589 lp->mem_start = mem_start; in depca_eisa_probe()
1607 struct depca_private *lp; in depca_device_remove() local
1611 lp = netdev_priv(dev); in depca_device_remove()
1614 iounmap (lp->sh_mem); in depca_device_remove()
1615 release_mem_region (lp->mem_start, lp->mem_len); in depca_device_remove()
1617 bus = lp->depca_bus; in depca_device_remove()
1753 struct depca_private *lp = netdev_priv(dev); in get_hw_addr() local
1757 x = (((lp->adapter == de100) || (lp->adapter == de101)) ? 1 : 0); in get_hw_addr()
1788 struct depca_private *lp = netdev_priv(dev); in load_packet() local
1791 entry = lp->tx_new; /* Ring around buffer number. */ in load_packet()
1792 end = (entry + (skb->len - 1) / TX_BUFF_SZ) & lp->txRingMask; in load_packet()
1793 if (!(readl(&lp->tx_ring[end].base) & T_OWN)) { /* Enough room? */ in load_packet()
1799 len = (lp->txRingMask - entry + 1) * TX_BUFF_SZ; in load_packet()
1800 memcpy_toio(lp->tx_buff[entry], skb->data, len); in load_packet()
1801 memcpy_toio(lp->tx_buff[0], skb->data + len, skb->len - len); in load_packet()
1803 memcpy_toio(lp->tx_buff[entry], skb->data, skb->len); in load_packet()
1808 for (i = entry; i != end; i = (i+1) & lp->txRingMask) { in load_packet()
1810 writel(readl(&lp->tx_ring[i].base) & ~T_FLAGS, &lp->tx_ring[i].base); in load_packet()
1811 writew(0x0000, &lp->tx_ring[i].misc); /* clears other error flags */ in load_packet()
1812 writew(-TX_BUFF_SZ, &lp->tx_ring[i].length); /* packet length in buffer */ in load_packet()
1816 writel(readl(&lp->tx_ring[end].base) & ~T_FLAGS, &lp->tx_ring[end].base); in load_packet()
1817 writew(0x0000, &lp->tx_ring[end].misc); /* clears other error flags */ in load_packet()
1818 writew(-len, &lp->tx_ring[end].length); /* packet length in last buff */ in load_packet()
1821 writel(readl(&lp->tx_ring[entry].base) | T_STP, &lp->tx_ring[entry].base); in load_packet()
1823 writel(readl(&lp->tx_ring[end].base) | T_ENP, &lp->tx_ring[end].base); in load_packet()
1827 writel(readl(&lp->tx_ring[i].base) | T_OWN, &lp->tx_ring[i].base); in load_packet()
1829 i = lp->txRingMask + 1; in load_packet()
1831 writel(readl(&lp->tx_ring[entry].base) | T_OWN, &lp->tx_ring[entry].base); in load_packet()
1833 lp->tx_new = (++end) & lp->txRingMask; /* update current pointers */ in load_packet()
1843 struct depca_private *lp = netdev_priv(dev); in depca_dbg_open() local
1845 struct depca_init *p = &lp->init_block; in depca_dbg_open()
1854 printk(" 0x%lx 0x%lx\n", (u_long) lp->rx_ring, (u_long) lp->tx_ring); in depca_dbg_open()
1856 for (i = 0; i < lp->rxRingMask; i++) { in depca_dbg_open()
1858 printk("%p ", &lp->rx_ring[i].base); in depca_dbg_open()
1861 printk("...%p\n", &lp->rx_ring[i].base); in depca_dbg_open()
1863 for (i = 0; i < lp->txRingMask; i++) { in depca_dbg_open()
1865 printk("%p ", &lp->tx_ring[i].base); in depca_dbg_open()
1868 printk("...%p\n", &lp->tx_ring[i].base); in depca_dbg_open()
1870 for (i = 0; i < lp->rxRingMask; i++) { in depca_dbg_open()
1872 printk("0x%8.8x ", readl(&lp->rx_ring[i].base)); in depca_dbg_open()
1875 printk("...0x%8.8x\n", readl(&lp->rx_ring[i].base)); in depca_dbg_open()
1877 for (i = 0; i < lp->txRingMask; i++) { in depca_dbg_open()
1879 printk("0x%8.8x ", readl(&lp->tx_ring[i].base)); in depca_dbg_open()
1882 printk("...0x%8.8x\n", readl(&lp->tx_ring[i].base)); in depca_dbg_open()
1883 printk("Initialisation block at 0x%8.8lx(Phys)\n", lp->mem_start); in depca_dbg_open()
1893 printk("buffers (Phys): 0x%8.8lx\n", lp->mem_start + lp->buffs_offset); in depca_dbg_open()
1894 printk("Ring size:\nRX: %d Log2(rxRingMask): 0x%8.8x\n", (int) lp->rxRingMask + 1, lp->rx_rlen); in depca_dbg_open()
1895 printk("TX: %d Log2(txRingMask): 0x%8.8x\n", (int) lp->txRingMask + 1, lp->tx_rlen); in depca_dbg_open()
1914 struct depca_private *lp = netdev_priv(dev); in depca_ioctl() local
1945 while (lp->tx_old != lp->tx_new) in depca_ioctl()
1959 while (lp->tx_old != lp->tx_new) in depca_ioctl()
1964 lp->init_block.mode |= PROM; /* Set promiscuous mode */ in depca_ioctl()
1975 while (lp->tx_old != lp->tx_new) in depca_ioctl()
1980 lp->init_block.mode &= ~PROM; /* Clear promiscuous mode */ in depca_ioctl()
1995 if (copy_to_user(ioc->data, lp->init_block.mcast_table, ioc->len)) in depca_ioctl()
2022 ioc->len = sizeof(lp->pktStats); in depca_ioctl()
2026 spin_lock_irqsave(&lp->lock, flags); in depca_ioctl()
2027 memcpy(buf, &lp->pktStats, ioc->len); in depca_ioctl()
2028 spin_unlock_irqrestore(&lp->lock, flags); in depca_ioctl()
2037 spin_lock_irqsave(&lp->lock, flags); in depca_ioctl()
2038 memset(&lp->pktStats, 0, sizeof(lp->pktStats)); in depca_ioctl()
2039 spin_unlock_irqrestore(&lp->lock, flags); in depca_ioctl()
2047 memcpy(&tmp.sval[i], &lp->init_block, sizeof(struct depca_init)); in depca_ioctl()