Lines Matching refs:lp

278 static struct pcnet32_private *lp;
408 lp->tx_full = 0;
409 lp->cur_rx = lp->cur_tx = 0;
425 lp->init_block.tlen_rlen =
428 lp->init_block.phys_addr[i] = nic->node_addr[i];
429 lp->init_block.rx_ring = (u32) virt_to_le32desc(&rx_ring[0]);
430 lp->init_block.tx_ring = (u32) virt_to_le32desc(&tx_ring[0]);
444 lp->a.reset(ioaddr);
447 lp->a.write_bcr(ioaddr, 20, 2);
450 val = lp->a.read_bcr(ioaddr, 2) & ~2;
451 if (lp->options & PCNET32_PORT_ASEL)
453 lp->a.write_bcr(ioaddr, 2, val);
455 if (lp->full_duplex) {
456 val = lp->a.read_bcr(ioaddr, 9) & ~3;
457 if (lp->options & PCNET32_PORT_FD) {
459 if (lp->options ==
462 } else if (lp->options & PCNET32_PORT_ASEL) {
464 i = ((lp->a.
466 88) | (lp->a.read_csr(ioaddr,
472 lp->a.write_bcr(ioaddr, 9, val);
476 val = lp->a.read_csr(ioaddr, 124) & ~0x10;
477 if ((lp->options & PCNET32_PORT_PORTSEL) == PCNET32_PORT_GPSI)
479 lp->a.write_csr(ioaddr, 124, val);
481 if (lp->mii && !(lp->options & PCNET32_PORT_ASEL)) {
482 val = lp->a.read_bcr(ioaddr, 32) & ~0x38; /* disable Auto Negotiation, set 10Mpbs, HD */
483 if (lp->options & PCNET32_PORT_FD)
485 if (lp->options & PCNET32_PORT_100)
487 lp->a.write_bcr(ioaddr, 32, val);
489 if (lp->options & PCNET32_PORT_ASEL) { /* enable auto negotiate, setup, disable fd */
490 val = lp->a.read_bcr(ioaddr, 32) & ~0x98;
492 lp->a.write_bcr(ioaddr, 32, val);
497 if (lp->dxsuflo) { /* Disable transmit stop on underflow */
498 val = lp->a.read_csr(ioaddr, 3);
500 lp->a.write_csr(ioaddr, 3, val);
504 if (lp->ltint) { /* Enable TxDone-intr inhibitor */
505 val = lp->a.read_csr(ioaddr, 5);
507 lp->a.write_csr(ioaddr, 5, val);
509 lp->init_block.mode =
510 le16_to_cpu((lp->options & PCNET32_PORT_PORTSEL) << 7);
511 lp->init_block.filter[0] = 0xffffffff;
512 lp->init_block.filter[1] = 0xffffffff;
518 lp->a.write_csr(ioaddr, 1,
519 (virt_to_bus(&lp->init_block)) & 0xffff);
520 lp->a.write_csr(ioaddr, 2, (virt_to_bus(&lp->init_block)) >> 16);
521 lp->a.write_csr(ioaddr, 4, 0x0915);
522 lp->a.write_csr(ioaddr, 0, 0x0001);
527 if (lp->a.read_csr(ioaddr, 0) & 0x0100)
533 lp->a.write_csr(ioaddr, 0, 0x0042);
535 dprintf(("pcnet32 open, csr0 %hX.\n", lp->a.read_csr(ioaddr, 0)));
551 entry = lp->cur_rx & RX_RING_MOD_MASK;
569 lp->cur_rx++;
591 int entry = 0; /*lp->cur_tx & TX_RING_MOD_MASK; */
595 ptxb = txb + (lp->cur_tx * PKT_BUF_SZ);
617 lp->a.write_csr(ioaddr, 0, 0x0048);
620 lp->cur_tx = 0; /* (lp->cur_tx + 1); */
640 lp->a.write_csr(ioaddr, 0, 0x0004);
646 lp->a.write_bcr(ioaddr, 20, 4);
810 lp = &lpx;
849 lp->name = chipname;
850 lp->shared_irq = shared;
851 lp->full_duplex = fdx;
852 lp->dxsuflo = dxsuflo;
853 lp->ltint = ltint;
854 lp->mii = mii;
858 lp->options = PCNET32_PORT_ASEL;
860 lp->options = options_mapping[options[cards_found]];
862 if (fdx && !(lp->options & PCNET32_PORT_ASEL) &&
864 lp->options |= PCNET32_PORT_FD;
870 lp->a = *a;
875 lp->options = PCNET32_PORT_FD | PCNET32_PORT_GPSI;
877 lp->init_block.mode = le16_to_cpu(0x0003); /* Disable Rx and Tx. */
878 lp->init_block.tlen_rlen =
881 lp->init_block.phys_addr[i] = nic->node_addr[i];
882 lp->init_block.filter[0] = 0xffffffff;
883 lp->init_block.filter[1] = 0xffffffff;
884 lp->init_block.rx_ring = virt_to_bus(&rx_ring);
885 lp->init_block.tx_ring = virt_to_bus(&tx_ring);
891 a->write_csr(ioaddr, 1, (virt_to_bus(&lp->init_block)) & 0xffff);
892 a->write_csr(ioaddr, 2, (virt_to_bus(&lp->init_block)) >> 16);
912 lp->phys[0] = 1; /* Default Setting */
916 lp->phys[phy_idx++] = phy;
917 lp->mii_if.advertising =
923 lp->mii_if.advertising));
929 lp->mii_if.phy_id = lp->phys[0];
931 lp->mii_if.advertising =
932 mdio_read(nic, lp->phys[0], MII_ADVERTISE);
934 mii_lpa = mdio_read(nic, lp->phys[0], MII_LPA);
935 lp->mii_if.advertising &= mii_lpa;
936 if (lp->mii_if.advertising & ADVERTISE_100FULL)
938 else if (lp->mii_if.advertising & ADVERTISE_100HALF)
940 else if (lp->mii_if.advertising & ADVERTISE_10FULL)
942 else if (lp->mii_if.advertising & ADVERTISE_10HALF)
960 if (!lp->mii)
963 phyaddr = lp->a.read_bcr(ioaddr, 33);
965 lp->a.write_bcr(ioaddr, 33,
967 val_out = lp->a.read_bcr(ioaddr, 34);
968 lp->a.write_bcr(ioaddr, 33, phyaddr);
979 if (!lp->mii)
982 phyaddr = lp->a.read_bcr(ioaddr, 33);
984 lp->a.write_bcr(ioaddr, 33,
986 lp->a.write_bcr(ioaddr, 34, val);
987 lp->a.write_bcr(ioaddr, 33, phyaddr);