Lines Matching defs:smc

304     struct smc_private *smc;
313 smc = netdev_priv(dev);
314 smc->p_dev = link;
317 spin_lock_init(&smc->lock);
324 smc->mii_if.dev = dev;
325 smc->mii_if.mdio_read = mdio_read;
326 smc->mii_if.mdio_write = mdio_write;
327 smc->mii_if.phy_id_mask = 0x1f;
328 smc->mii_if.reg_num_mask = 0x1f;
383 struct smc_private *smc = netdev_priv(dev);
387 readb(smc->base+MEGAHERTZ_ISR);
389 readb(smc->base+MEGAHERTZ_ISR);
395 tmp = readb(smc->base + link->config_base + CISREG_COR);
397 writeb(tmp, smc->base + link->config_base + CISREG_COR);
426 struct smc_private *smc = netdev_priv(dev);
447 smc->base = ioremap(link->resource[2]->start,
449 offset = (smc->manfid == MANFID_MOTOROLA) ? link->config_base : 0;
452 (smc->manfid == MANFID_MEGAHERTZ) &&
453 (smc->cardid == PRODID_MEGAHERTZ_EM3288))
521 struct smc_private *smc = netdev_priv(dev);
526 writeb(iouart & 0xff, smc->base + MOT_UART + CISREG_IOBASE_0);
527 writeb((iouart >> 8) & 0xff, smc->base + MOT_UART + CISREG_IOBASE_1);
528 writeb(MOT_NORMAL, smc->base + MOT_UART + CISREG_COR);
531 writeb(ioaddr & 0xff, smc->base + MOT_LAN + CISREG_IOBASE_0);
532 writeb((ioaddr >> 8) & 0xff, smc->base + MOT_LAN + CISREG_IOBASE_1);
533 writeb(MOT_NORMAL, smc->base + MOT_LAN + CISREG_COR);
725 struct smc_private *smc = netdev_priv(dev);
728 if ((smc->manfid == MANFID_MEGAHERTZ) &&
729 (smc->cardid == PRODID_MEGAHERTZ_EM3288))
731 if (smc->manfid == MANFID_MOTOROLA)
733 if ((smc->manfid == MANFID_OSITECH) &&
734 (smc->cardid != PRODID_OSITECH_SEVEN)) {
739 if (((smc->manfid == MANFID_OSITECH) &&
740 (smc->cardid == PRODID_OSITECH_SEVEN)) ||
741 ((smc->manfid == MANFID_PSION) &&
742 (smc->cardid == PRODID_PSION_NET100))) {
811 struct smc_private *smc = netdev_priv(dev);
819 smc->manfid = link->manf_id;
820 smc->cardid = link->card_id;
822 if ((smc->manfid == MANFID_OSITECH) &&
823 (smc->cardid != PRODID_OSITECH_SEVEN)) {
825 } else if ((smc->manfid == MANFID_MOTOROLA) ||
826 ((smc->manfid == MANFID_MEGAHERTZ) &&
827 ((smc->cardid == PRODID_MEGAHERTZ_VARIOUS) ||
828 (smc->cardid == PRODID_MEGAHERTZ_EM3288)))) {
843 if (smc->manfid == MANFID_MOTOROLA)
853 switch (smc->manfid) {
856 i = osi_setup(link, smc->manfid, smc->cardid); break;
873 smc->duplex = 0;
874 smc->rx_ovrn = 0;
898 smc->cfg = inw(ioaddr + CONFIG) & ~CFG_AUI_SELECT;
899 smc->cfg |= CFG_NO_WAIT | CFG_16BIT | CFG_STATIC;
900 if (smc->manfid == MANFID_OSITECH)
901 smc->cfg |= CFG_IRQ_SEL_1 | CFG_IRQ_SEL_0;
903 smc->cfg |= CFG_MII_SELECT;
907 if (smc->cfg & CFG_MII_SELECT) {
914 smc->mii_if.phy_id = (i < 32) ? i : -1;
935 (smc->cfg & CFG_MII_SELECT) ? "MII" : if_names[dev->if_port]);
938 if (smc->cfg & CFG_MII_SELECT) {
939 if (smc->mii_if.phy_id != -1) {
941 smc->mii_if.phy_id, j);
961 struct smc_private *smc = netdev_priv(dev);
962 iounmap(smc->base);
1052 struct smc_private *smc = netdev_priv(dev);
1053 struct pcmcia_device *link = smc->p_dev;
1072 smc->saved_skb = NULL;
1073 smc->packets_waiting = 0;
1076 timer_setup(&smc->media, media_check, 0);
1077 mod_timer(&smc->media, jiffies + HZ);
1086 struct smc_private *smc = netdev_priv(dev);
1087 struct pcmcia_device *link = smc->p_dev;
1108 del_timer_sync(&smc->media);
1123 struct smc_private *smc = netdev_priv(dev);
1124 struct sk_buff *skb = smc->saved_skb;
1140 smc->saved_skb = NULL;
1176 smc->saved_skb = NULL;
1186 struct smc_private *smc = netdev_priv(dev);
1194 smc->saved_skb = NULL;
1201 struct smc_private *smc = netdev_priv(dev);
1212 if (smc->saved_skb) {
1218 smc->saved_skb = skb;
1225 smc->saved_skb = NULL;
1230 smc->packets_waiting++;
1232 spin_lock_irqsave(&smc->lock, flags);
1236 if (smc->rx_ovrn) {
1238 smc->rx_ovrn = 0;
1249 spin_unlock_irqrestore(&smc->lock, flags);
1257 spin_unlock_irqrestore(&smc->lock, flags);
1270 struct smc_private *smc = netdev_priv(dev);
1289 smc->tx_err++;
1297 outw(inw(ioaddr + TCR) | TCR_ENABLE | smc->duplex, ioaddr + TCR);
1303 smc->packets_waiting--;
1312 struct smc_private *smc = netdev_priv(dev);
1332 outw(inw(ioaddr + TCR) | TCR_ENABLE | smc->duplex, ioaddr + TCR);
1347 struct smc_private *smc = netdev_priv(dev);
1361 spin_lock(&smc->lock);
1362 smc->watchdog = 0;
1400 dev->stats.tx_packets += smc->packets_waiting;
1401 smc->packets_waiting = 0;
1418 if (smc->duplex)
1419 smc->rx_ovrn = 1; /* need MC_RESET outside smc_interrupt */
1438 if ((smc->manfid == MANFID_OSITECH) &&
1439 (smc->cardid != PRODID_OSITECH_SEVEN)) {
1444 if (smc->manfid == MANFID_MOTOROLA) {
1446 cor = readb(smc->base + MOT_UART + CISREG_COR);
1447 writeb(cor & ~COR_IREQ_ENA, smc->base + MOT_UART + CISREG_COR);
1448 writeb(cor, smc->base + MOT_UART + CISREG_COR);
1449 cor = readb(smc->base + MOT_LAN + CISREG_COR);
1450 writeb(cor & ~COR_IREQ_ENA, smc->base + MOT_LAN + CISREG_COR);
1451 writeb(cor, smc->base + MOT_LAN + CISREG_COR);
1454 if ((smc->base != NULL) && /* Megahertz MFC's */
1455 (smc->manfid == MANFID_MEGAHERTZ) &&
1456 (smc->cardid == PRODID_MEGAHERTZ_EM3288)) {
1459 tmp = readb(smc->base+MEGAHERTZ_ISR);
1460 tmp = readb(smc->base+MEGAHERTZ_ISR);
1463 writeb(tmp, smc->base + MEGAHERTZ_ISR);
1464 writeb(tmp, smc->base + MEGAHERTZ_ISR);
1467 spin_unlock(&smc->lock);
1498 struct smc_private *smc = netdev_priv(dev);
1517 smc->last_rx = jiffies;
1549 struct smc_private *smc = netdev_priv(dev);
1574 spin_lock_irqsave(&smc->lock, flags);
1581 spin_unlock_irqrestore(&smc->lock, flags);
1592 struct smc_private *smc = netdev_priv(dev);
1594 if (smc->cfg & CFG_MII_SELECT)
1617 struct smc_private *smc = netdev_priv(dev);
1624 outw(smc->cfg | CFG_AUI_SELECT, ioaddr + CONFIG);
1625 if ((smc->manfid == MANFID_OSITECH) &&
1626 (smc->cardid != PRODID_OSITECH_SEVEN))
1628 smc->media_status = ((dev->if_port == 0) ? 0x0001 : 0x0002);
1630 outw(smc->cfg, ioaddr + CONFIG);
1631 if ((smc->manfid == MANFID_OSITECH) &&
1632 (smc->cardid != PRODID_OSITECH_SEVEN))
1634 smc->media_status = ((dev->if_port == 0) ? 0x0012 : 0x4001);
1642 struct smc_private *smc = netdev_priv(dev);
1666 if ((smc->manfid == MANFID_OSITECH) &&
1667 (smc->cardid != PRODID_OSITECH_SEVEN))
1684 outw(((smc->cfg & CFG_MII_SELECT) ? 0 : TCR_MONCSN) |
1685 TCR_ENABLE | TCR_PAD_EN | smc->duplex, ioaddr + TCR);
1688 if (smc->cfg & CFG_MII_SELECT) {
1692 mdio_write(dev, smc->mii_if.phy_id, 0, 0x8000);
1695 mdio_write(dev, smc->mii_if.phy_id, 4, 0x01e1);
1698 mdio_write(dev, smc->mii_if.phy_id, 0, 0x0000);
1699 mdio_write(dev, smc->mii_if.phy_id, 0, 0x1200);
1716 struct smc_private *smc = from_timer(smc, t, media);
1717 struct net_device *dev = smc->mii_if.dev;
1723 spin_lock_irqsave(&smc->lock, flags);
1733 if (smc->rx_ovrn) {
1735 smc->rx_ovrn = 0;
1744 spin_unlock_irqrestore(&smc->lock, flags);
1748 if (smc->watchdog++ && ((i>>8) & i)) {
1749 if (!smc->fast_poll)
1754 smc->fast_poll = HZ;
1756 if (smc->fast_poll) {
1757 smc->fast_poll--;
1758 smc->media.expires = jiffies + HZ/100;
1759 add_timer(&smc->media);
1763 spin_lock_irqsave(&smc->lock, flags);
1767 if (smc->cfg & CFG_MII_SELECT) {
1768 if (smc->mii_if.phy_id < 0)
1772 link = mdio_read(dev, smc->mii_if.phy_id, 1);
1775 smc->mii_if.phy_id = -1;
1780 if (link != smc->link_status) {
1781 u_short p = mdio_read(dev, smc->mii_if.phy_id, 5);
1783 smc->duplex = (((p & 0x0100) || ((p & 0x1c0) == 0x40))
1788 (p & 0x0180) ? 100 : 10, smc->duplex ? 'F' : 'H');
1791 outw(inw(ioaddr + TCR) | smc->duplex, ioaddr + TCR);
1792 smc->link_status = link;
1798 if (time_after(jiffies, smc->last_rx + HZ)) {
1799 if (smc->tx_err || (smc->media_status & EPH_16COL))
1802 smc->tx_err = 0;
1804 if (media != smc->media_status) {
1805 if ((media & smc->media_status & 1) &&
1806 ((smc->media_status ^ media) & EPH_LINK_OK))
1808 smc->media_status & EPH_LINK_OK ? "lost" : "found");
1809 else if ((media & smc->media_status & 2) &&
1810 ((smc->media_status ^ media) & EPH_16COL))
1826 smc->media_status = media;
1830 smc->media.expires = jiffies + HZ;
1831 add_timer(&smc->media);
1833 spin_unlock_irqrestore(&smc->lock, flags);
1839 struct smc_private *smc = netdev_priv(dev);
1841 if (smc->cfg & CFG_MII_SELECT) {
1842 return mii_link_ok(&smc->mii_if);
1919 struct smc_private *smc = netdev_priv(dev);
1924 spin_lock_irqsave(&smc->lock, flags);
1926 if (smc->cfg & CFG_MII_SELECT)
1927 mii_ethtool_get_link_ksettings(&smc->mii_if, ecmd);
1931 spin_unlock_irqrestore(&smc->lock, flags);
1938 struct smc_private *smc = netdev_priv(dev);
1944 spin_lock_irqsave(&smc->lock, flags);
1946 if (smc->cfg & CFG_MII_SELECT)
1947 ret = mii_ethtool_set_link_ksettings(&smc->mii_if, ecmd);
1951 spin_unlock_irqrestore(&smc->lock, flags);
1957 struct smc_private *smc = netdev_priv(dev);
1963 spin_lock_irqsave(&smc->lock, flags);
1967 spin_unlock_irqrestore(&smc->lock, flags);
1973 struct smc_private *smc = netdev_priv(dev);
1974 if (smc->cfg & CFG_MII_SELECT) {
1980 res = mii_nway_restart(&smc->mii_if);
1999 struct smc_private *smc = netdev_priv(dev);
2009 spin_lock_irqsave(&smc->lock, flags);
2012 rc = generic_mii_ioctl(&smc->mii_if, mii, cmd, NULL);
2014 spin_unlock_irqrestore(&smc->lock, flags);