diff options
-rw-r--r-- | drivers/net/8390.c | 2 | ||||
-rw-r--r-- | drivers/net/skge.c | 22 |
2 files changed, 21 insertions, 3 deletions
diff --git a/drivers/net/8390.c b/drivers/net/8390.c index 6d76f3a99b17..f87027420081 100644 --- a/drivers/net/8390.c +++ b/drivers/net/8390.c | |||
@@ -1094,7 +1094,7 @@ static void NS8390_trigger_send(struct net_device *dev, unsigned int length, | |||
1094 | 1094 | ||
1095 | outb_p(E8390_NODMA+E8390_PAGE0, e8390_base+E8390_CMD); | 1095 | outb_p(E8390_NODMA+E8390_PAGE0, e8390_base+E8390_CMD); |
1096 | 1096 | ||
1097 | if (inb_p(e8390_base) & E8390_TRANS) | 1097 | if (inb_p(e8390_base + E8390_CMD) & E8390_TRANS) |
1098 | { | 1098 | { |
1099 | printk(KERN_WARNING "%s: trigger_send() called with the transmitter busy.\n", | 1099 | printk(KERN_WARNING "%s: trigger_send() called with the transmitter busy.\n", |
1100 | dev->name); | 1100 | dev->name); |
diff --git a/drivers/net/skge.c b/drivers/net/skge.c index ae1996a3bc5c..fd398da4993b 100644 --- a/drivers/net/skge.c +++ b/drivers/net/skge.c | |||
@@ -1643,6 +1643,22 @@ static void yukon_reset(struct skge_hw *hw, int port) | |||
1643 | | GM_RXCR_UCF_ENA | GM_RXCR_MCF_ENA); | 1643 | | GM_RXCR_UCF_ENA | GM_RXCR_MCF_ENA); |
1644 | } | 1644 | } |
1645 | 1645 | ||
1646 | /* Apparently, early versions of Yukon-Lite had wrong chip_id? */ | ||
1647 | static int is_yukon_lite_a0(struct skge_hw *hw) | ||
1648 | { | ||
1649 | u32 reg; | ||
1650 | int ret; | ||
1651 | |||
1652 | if (hw->chip_id != CHIP_ID_YUKON) | ||
1653 | return 0; | ||
1654 | |||
1655 | reg = skge_read32(hw, B2_FAR); | ||
1656 | skge_write8(hw, B2_FAR + 3, 0xff); | ||
1657 | ret = (skge_read8(hw, B2_FAR + 3) != 0); | ||
1658 | skge_write32(hw, B2_FAR, reg); | ||
1659 | return ret; | ||
1660 | } | ||
1661 | |||
1646 | static void yukon_mac_init(struct skge_hw *hw, int port) | 1662 | static void yukon_mac_init(struct skge_hw *hw, int port) |
1647 | { | 1663 | { |
1648 | struct skge_port *skge = netdev_priv(hw->dev[port]); | 1664 | struct skge_port *skge = netdev_priv(hw->dev[port]); |
@@ -1758,9 +1774,11 @@ static void yukon_mac_init(struct skge_hw *hw, int port) | |||
1758 | /* Configure Rx MAC FIFO */ | 1774 | /* Configure Rx MAC FIFO */ |
1759 | skge_write16(hw, SK_REG(port, RX_GMF_FL_MSK), RX_FF_FL_DEF_MSK); | 1775 | skge_write16(hw, SK_REG(port, RX_GMF_FL_MSK), RX_FF_FL_DEF_MSK); |
1760 | reg = GMF_OPER_ON | GMF_RX_F_FL_ON; | 1776 | reg = GMF_OPER_ON | GMF_RX_F_FL_ON; |
1761 | if (hw->chip_id == CHIP_ID_YUKON_LITE && | 1777 | |
1762 | hw->chip_rev >= CHIP_REV_YU_LITE_A3) | 1778 | /* disable Rx GMAC FIFO Flush for YUKON-Lite Rev. A0 only */ |
1779 | if (is_yukon_lite_a0(hw)) | ||
1763 | reg &= ~GMF_RX_F_FL_ON; | 1780 | reg &= ~GMF_RX_F_FL_ON; |
1781 | |||
1764 | skge_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_RST_CLR); | 1782 | skge_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_RST_CLR); |
1765 | skge_write16(hw, SK_REG(port, RX_GMF_CTRL_T), reg); | 1783 | skge_write16(hw, SK_REG(port, RX_GMF_CTRL_T), reg); |
1766 | /* | 1784 | /* |