Lines Matching refs:tp

434 static struct tulip_private *tp;  variable
514 printf("%s: %s\n", tp->nic_name, str); in whereami()
577 if (tp->chip_id == LC82C168) { in mdio_read()
588 if (tp->chip_id == COMET) { in mdio_read()
637 if (tp->chip_id == LC82C168) { in mdio_write()
647 if (tp->chip_id == COMET) { in mdio_write()
732 unsigned char *p, *ee_data = tp->eeprom; in parse_eeprom()
740 tp->mtable = 0; in parse_eeprom()
758 tp->nic_name, eeprom_fixups[i].name, tp->nic_name); in parse_eeprom()
766 tp->nic_name); in parse_eeprom()
775 tp->nic_name, ee_data[19]); in parse_eeprom()
785 tp->nic_name, ee_data[27]); in parse_eeprom()
788 } else if (tp->chip_id == DC21041) { in parse_eeprom()
794 tp->nic_name, media, in parse_eeprom()
806 tp->nic_name, media_code, medianame[media_code]); in parse_eeprom()
815 if (tp->flags & CSR12_IN_SROM) in parse_eeprom()
819 tp->mtable = mtable = (struct mediatable *)&tp->media_table_storage[0]; in parse_eeprom()
827 printf("%s: EEPROM default media type %s.\n", tp->nic_name, in parse_eeprom()
879 tp->nic_name, bp[0], bp[1], bp[2 + bp[1]*2], in parse_eeprom()
885 tp->nic_name, i, medianame[leaf->media], leaf->media, in parse_eeprom()
890 tp->sym_advertise = new_advertise; in parse_eeprom()
905 tp->cur_rx = 0; in tulip_init_ring()
937 tp->csr6 &= ~0x00D5; in set_rx_mode()
940 tp->csr6 |= AcceptAllMulticast; in set_rx_mode()
965 if (tp->mii_cnt || (tp->mtable && tp->mtable->has_mii)) { in tulip_reset()
974 outl(tp->csr0, ioaddr + CSR0); in tulip_reset()
982 if (tp->chip_id == PNIC2) { in tulip_reset()
992 if (tp->flags & MC_HASH_ONLY) { in tulip_reset()
997 if (tp->flags & IS_ASIX) { in tulip_reset()
1006 } else if (tp->chip_id == COMET) { in tulip_reset()
1040 outl((tp->csr6 & ~0x00002002), ioaddr + CSR6); in tulip_reset()
1043 if (!(tp->flags & MC_HASH_ONLY)) { in tulip_reset()
1045 outl(tp->csr6 | 0x00002000, ioaddr + CSR6); in tulip_reset()
1054 printf ("%s: TX Setup Timeout.\n", tp->nic_name); in tulip_reset()
1058 if (tp->chip_id == LC82C168) in tulip_reset()
1064 outl(tp->csr6 | 0x00002002, ioaddr + CSR6); in tulip_reset()
1099 printf("%s: sending %d bytes ethtype %hX\n", tp->nic_name, s, t); in tulip_transmit()
1138 if (rx_ring[tp->cur_rx].status & 0x80000000) in tulip_poll()
1147 nic->packetlen = (rx_ring[tp->cur_rx].status & 0x3FFF0000) >> 16; in tulip_poll()
1150 if (rx_ring[tp->cur_rx].status & 0x00008000) { in tulip_poll()
1152 rx_ring[tp->cur_rx].status = 0x80000000; in tulip_poll()
1153 tp->cur_rx = (++tp->cur_rx) % RX_RING_SIZE; in tulip_poll()
1158 memcpy(nic->packet, rxb + tp->cur_rx * BUFLEN, nic->packetlen); in tulip_poll()
1161 rx_ring[tp->cur_rx].status = 0x80000000; in tulip_poll()
1162 tp->cur_rx = (++tp->cur_rx) % RX_RING_SIZE; in tulip_poll()
1226 tp = &tpx; in tulip_probe()
1228 tp->vendor_id = pci->vendor; in tulip_probe()
1229 tp->dev_id = pci->dev_id; in tulip_probe()
1230 tp->nic_name = pci->name; in tulip_probe()
1232 tp->if_port = 0; in tulip_probe()
1233 tp->default_port = 0; in tulip_probe()
1253 printf ("%s: Looking for Tulip Chip: Vendor=%hX Device=%hX\n", tp->nic_name, in tulip_probe()
1254 tp->vendor_id, tp->dev_id); in tulip_probe()
1262 if ( (((u32) tp->dev_id << 16) | tp->vendor_id) == in tulip_probe()
1271 printf ("%s: Unknown Tulip Chip: Vendor=%hX Device=%hX\n", tp->nic_name, in tulip_probe()
1272 tp->vendor_id, tp->dev_id); in tulip_probe()
1276 tp->pci_id_idx = i; in tulip_probe()
1277 tp->flags = tulip_tbl[chip_idx].flags; in tulip_probe()
1281 printf ("%s: tp->pci_id_idx == %d, name == %s\n", tp->nic_name, in tulip_probe()
1282 tp->pci_id_idx, pci_id_tbl[tp->pci_id_idx].name); in tulip_probe()
1283 printf ("%s: chip_idx == %d, name == %s\n", tp->nic_name, chip_idx, in tulip_probe()
1290 if (tp->flags & HAS_PWRDWN) in tulip_probe()
1295 tp->nic_name, ioaddr); in tulip_probe()
1301 printf("%s: [chip: %s] rev %d at %hX\n", tp->nic_name, in tulip_probe()
1303 printf("%s: Vendor=%hX Device=%hX", tp->nic_name, tp->vendor_id, tp->dev_id); in tulip_probe()
1373 printf("%s: EEPROM not present!\n", tp->nic_name); in tulip_probe()
1382 printf("%s: %! at ioaddr %hX\n", tp->nic_name, nic->node_addr, ioaddr); in tulip_probe()
1384 tp->chip_id = chip_idx; in tulip_probe()
1385 tp->revision = chip_rev; in tulip_probe()
1386 tp->csr0 = csr0; in tulip_probe()
1391 tp->csr0 &= ~0x01000000; in tulip_probe()
1392 else if (tp->flags & IS_ASIX) in tulip_probe()
1393 tp->csr0 |= 0x2000; in tulip_probe()
1395 if (media_cap[tp->default_port] & MediaIsMII) { in tulip_probe()
1397 tp->mii_advertise = media2advert[tp->default_port - 9]; in tulip_probe()
1398 tp->mii_advertise |= (tp->flags & HAS_8023X); /* Matching bits! */ in tulip_probe()
1403 if (tp->flags & HAS_MEDIA_TABLE) { in tulip_probe()
1404 memcpy(tp->eeprom, ee_data, sizeof(tp->eeprom)); in tulip_probe()
1432 if ((tp->flags & ALWAYS_CHECK_MII) || in start_link()
1433 (tp->mtable && tp->mtable->has_mii) || in start_link()
1434 ( ! tp->mtable && (tp->flags & HAS_MII))) { in start_link()
1436 if (tp->mtable && tp->mtable->has_mii) { in start_link()
1437 for (i = 0; i < tp->mtable->leafcount; i++) in start_link()
1438 if (tp->mtable->mleaf[i].media == 11) { in start_link()
1439 tp->cur_index = i; in start_link()
1440 tp->saved_if_port = tp->if_port; in start_link()
1442 tp->if_port = tp->saved_if_port; in start_link()
1448 for (phy = 0, phy_idx = 0; phy < 32 && phy_idx < sizeof(tp->phys); in start_link()
1457 if (tp->mii_advertise) in start_link()
1458 to_advert = tp->mii_advertise; in start_link()
1459 else if (tp->advertising[phy_idx]) in start_link()
1460 to_advert = tp->advertising[phy_idx]; in start_link()
1462 tp->mii_advertise = to_advert = mii_advert; in start_link()
1464 tp->phys[phy_idx++] = phy; in start_link()
1466 tp->nic_name, phy, mii_reg0, mii_status, mii_advert); in start_link()
1470 tp->nic_name, to_advert, phy, mii_advert); in start_link()
1475 (tp->full_duplex ? 0x1100 : 0x1000) | in start_link()
1476 (media_cap[tp->default_port]&MediaIs100 ? 0x2000:0)); in start_link()
1479 tp->mii_cnt = phy_idx; in start_link()
1480 if (tp->mtable && tp->mtable->has_mii && phy_idx == 0) { in start_link()
1482 tp->nic_name); in start_link()
1483 tp->phys[0] = 1; in start_link()
1488 switch (tp->chip_id) { in start_link()
1495 if (tp->sym_advertise == 0) in start_link()
1496 tp->sym_advertise = 0x0061; in start_link()
1504 if (tp->mtable) in start_link()
1505 outl(tp->mtable->csr12dir | 0x100, ioaddr + CSR12); in start_link()
1509 if (tp->mii_cnt || media_cap[tp->if_port] & MediaIsMII) { in start_link()
1518 if ( ! tp->mii_cnt) { in start_link()
1519 tp->nway = 1; in start_link()
1520 tp->nwayset = 0; in start_link()
1545 int csr14 = ((tp->sym_advertise & 0x0780) << 9) | in nway_start()
1546 ((tp->sym_advertise&0x0020)<<1) | 0xffbf; in nway_start()
1552 tp->if_port = 0; in nway_start()
1553 tp->nway = tp->mediasense = 1; in nway_start()
1554 tp->nwayset = tp->lpar = 0; in nway_start()
1555 if (tp->chip_id == PNIC2) { in nway_start()
1556 tp->csr6 = 0x01000000 | (tp->sym_advertise & 0x0040 ? 0x0200 : 0); in nway_start()
1562 tp->nic_name, csr14); in nway_start()
1566 tp->csr6 = 0x82420000 | (tp->sym_advertise & 0x0040 ? 0x0200 : 0); in nway_start()
1567 outl(tp->csr6, ioaddr + CSR6); in nway_start()
1568 if (tp->mtable && tp->mtable->csr15dir) { in nway_start()
1569 outl(tp->mtable->csr15dir, ioaddr + CSR15); in nway_start()
1570 outl(tp->mtable->csr15val, ioaddr + CSR15); in nway_start()
1571 } else if (tp->chip_id != PNIC2) in nway_start()
1573 if (tp->chip_id == DC21041) /* Trigger NWAY. */ in nway_start()
1587 tp->saved_if_port = tp->if_port; in init_media()
1588 if (tp->if_port == 0) in init_media()
1589 tp->if_port = tp->default_port; in init_media()
1593 if (tp->mtable == NULL) in init_media()
1595 if (tp->if_port) { in init_media()
1596 int looking_for = media_cap[tp->if_port] & MediaIsMII ? 11 : in init_media()
1597 (tp->if_port == 12 ? 0 : tp->if_port); in init_media()
1598 for (i = 0; i < tp->mtable->leafcount; i++) in init_media()
1599 if (tp->mtable->mleaf[i].media == looking_for) { in init_media()
1601 tp->nic_name, medianame[tp->if_port]); in init_media()
1605 if ((tp->mtable->defaultmedia & 0x0800) == 0) { in init_media()
1606 int looking_for = tp->mtable->defaultmedia & 15; in init_media()
1607 for (i = 0; i < tp->mtable->leafcount; i++) in init_media()
1608 if (tp->mtable->mleaf[i].media == looking_for) { in init_media()
1610 tp->nic_name, medianame[looking_for]); in init_media()
1615 for (i = tp->mtable->leafcount - 1; in init_media()
1616 (media_cap[tp->mtable->mleaf[i].media] & MediaAlwaysFD) && i > 0; i--) in init_media()
1620 tp->csr6 = 0; in init_media()
1621 tp->cur_index = i; in init_media()
1622 tp->nwayset = 0; in init_media()
1624 if (tp->if_port) { in init_media()
1625 if (tp->chip_id == DC21143 && media_cap[tp->if_port] & MediaIsMII) { in init_media()
1634 switch(tp->chip_id) { in init_media()
1640 if (tp->mii_cnt) { in init_media()
1645 tp->nic_name, tp->phys[0], mdio_read(nic, tp->phys[0], 1)); in init_media()
1648 tp->csr6 = 0x820E0000; in init_media()
1649 tp->if_port = 11; in init_media()
1659 if (tp->mii_cnt) { in init_media()
1660 tp->if_port = 11; in init_media()
1661 tp->csr6 = 0x814C0000 | (tp->full_duplex ? 0x0200 : 0); in init_media()
1668 tp->csr6 = 0x00420000; in init_media()
1674 tp->if_port = 0; in init_media()
1675 tp->csr6 = 0x01880000 | (tp->full_duplex ? 0x0200 : 0); in init_media()
1680 tp->if_port = 0; in init_media()
1681 tp->csr6 = 0x01a80200; in init_media()
1686 tp->if_port = 0; in init_media()
1687 tp->csr6 = 0x00040000; in init_media()
1690 tp->csr6 = tp->mii_cnt ? 0x00040100 : 0x00000100; in init_media()
1700 u32 new_csr6 = tp->csr6 & ~0x40C40200; in pnic_do_nway()
1707 if (phy_reg & 0x20000000) tp->if_port = 5; in pnic_do_nway()
1708 else if (phy_reg & 0x40000000) tp->if_port = 3; in pnic_do_nway()
1709 else if (phy_reg & 0x10000000) tp->if_port = 4; in pnic_do_nway()
1710 else if (phy_reg & 0x08000000) tp->if_port = 0; in pnic_do_nway()
1711 tp->nwayset = 1; in pnic_do_nway()
1712 new_csr6 = (tp->if_port & 1) ? 0x01860000 : 0x00420000; in pnic_do_nway()
1713 outl(0x32 | (tp->if_port & 1), ioaddr + CSR12); in pnic_do_nway()
1714 if (tp->if_port & 1) in pnic_do_nway()
1717 tp->full_duplex = 1; in pnic_do_nway()
1723 tp->nic_name, phy_reg, medianame[tp->if_port]); in pnic_do_nway()
1725 if (tp->csr6 != new_csr6) { in pnic_do_nway()
1726 tp->csr6 = new_csr6; in pnic_do_nway()
1727 outl(tp->csr6 | 0x0002, ioaddr + CSR6); /* Restart Tx */ in pnic_do_nway()
1728 outl(tp->csr6 | 0x2002, ioaddr + CSR6); in pnic_do_nway()
1736 struct mediatable *mtable = tp->mtable; in select_media()
1745 struct medialeaf *mleaf = &mtable->mleaf[tp->cur_index]; in select_media()
1753 tp->nic_name, p[1]); in select_media()
1755 tp->if_port = p[0]; in select_media()
1767 tp->if_port = p[0] & 15; in select_media()
1768 if (media_cap[tp->if_port] & MediaAlwaysFD) in select_media()
1769 tp->full_duplex = 1; in select_media()
1777 tp->nic_name); in select_media()
1786 tp->nic_name, medianame[tp->if_port], setup[0], setup[1]); in select_media()
1803 if (tp->if_port <= 4) in select_media()
1804 csr14val = t21142_csr14[tp->if_port]; in select_media()
1816 tp->nic_name, csr15dir, csr15val); in select_media()
1829 tp->if_port = 11; in select_media()
1854 tp->advertising[phy_num] = get_u16(&misc_info[1]) | 1; in select_media()
1856 if (tp->mii_advertise == 0) in select_media()
1857 tp->mii_advertise = tp->advertising[phy_num]; in select_media()
1861 tp->nic_name, tp->mii_advertise, tp->phys[phy_num]); in select_media()
1863 mdio_write(nic, tp->phys[phy_num], 4, tp->mii_advertise); in select_media()
1869 tp->nic_name, mleaf->type); in select_media()
1875 tp->nic_name, medianame[tp->if_port], in select_media()
1878 } else if (tp->chip_id == DC21041) { in select_media()
1879 int port = tp->if_port <= 4 ? tp->if_port : 0; in select_media()
1883 tp->nic_name, medianame[port == 3 ? 12: port], in select_media()
1891 } else if (tp->chip_id == LC82C168) { in select_media()
1892 if (startup && ! tp->medialock) in select_media()
1893 tp->if_port = tp->mii_cnt ? 11 : 0; in select_media()
1897 tp->nic_name, inl(ioaddr + 0xB8), medianame[tp->if_port]); in select_media()
1899 if (tp->mii_cnt) { in select_media()
1909 } else if (tp->if_port == 3 || tp->if_port == 5) { in select_media()
1919 } else if (tp->chip_id == DC21040) { /* 21040 */ in select_media()
1925 tp->nic_name, medianame[tp->if_port], csr12); in select_media()
1927 if (media_cap[tp->if_port] & MediaAlwaysFD) in select_media()
1928 tp->full_duplex = 1; in select_media()
1933 if (t21040_csr13[tp->if_port] & 8) { in select_media()
1940 outl(0x8f01 | t21040_csr13[tp->if_port], ioaddr + CSR13); in select_media()
1942 if (tp->default_port == 0) in select_media()
1943 tp->if_port = tp->mii_cnt ? 11 : 3; in select_media()
1944 if (media_cap[tp->if_port] & MediaIsMII) { in select_media()
1946 } else if (media_cap[tp->if_port] & MediaIsFx) { in select_media()
1954 tp->nic_name, medianame[tp->if_port], in select_media()
1959 tp->csr6 = new_csr6 | (tp->csr6 & 0xfdff) | (tp->full_duplex ? 0x0200 : 0); in select_media()
1973 bmsr = mdio_read(nic, tp->phys[0], 1); in tulip_check_duplex()
1974 lpa = mdio_read(nic, tp->phys[0], 5); in tulip_check_duplex()
1979 "%#x.\n", tp->nic_name, bmsr, lpa); in tulip_check_duplex()
1985 int new_bmsr = mdio_read(nic, tp->phys[0], 1); in tulip_check_duplex()
1990 " status %#x.\n", tp->nic_name, in tulip_check_duplex()
1996 tp->full_duplex = lpa & 0x140; in tulip_check_duplex()
1998 new_csr6 = tp->csr6; in tulip_check_duplex()
1999 negotiated = lpa & tp->advertising[0]; in tulip_check_duplex()
2003 if (tp->full_duplex) new_csr6 |= 0x200; in tulip_check_duplex()
2006 if (new_csr6 != tp->csr6) { in tulip_check_duplex()
2007 tp->csr6 = new_csr6; in tulip_check_duplex()
2013 tp->nic_name, in tulip_check_duplex()
2014 tp->full_duplex ? "full" : "half", in tulip_check_duplex()
2015 tp->phys[0], lpa); in tulip_check_duplex()