Skip to content

Commit

Permalink
r8169: avoid late chip identifier initialisation.
Browse files Browse the repository at this point in the history
Unknown 8168 chips did not have any PLL power method set as they
did not inherit a default family soon enough. Fix it.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Realtek linux nic maintainers <nic_swsd@realtek.com>
  • Loading branch information
Francois Romieu committed May 9, 2011
1 parent 85bffe6 commit 5d320a2
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions drivers/net/r8169.c
Original file line number Diff line number Diff line change
Expand Up @@ -1606,8 +1606,9 @@ static const struct ethtool_ops rtl8169_ethtool_ops = {
};

static void rtl8169_get_mac_version(struct rtl8169_private *tp,
void __iomem *ioaddr)
struct net_device *dev, u8 default_version)
{
void __iomem *ioaddr = tp->mmio_addr;
/*
* The driver currently handles the 8168Bf and the 8168Be identically
* but they can be identified more specifically through the test below
Expand Down Expand Up @@ -1694,6 +1695,12 @@ static void rtl8169_get_mac_version(struct rtl8169_private *tp,
while ((reg & p->mask) != p->val)
p++;
tp->mac_version = p->mac_version;

if (tp->mac_version == RTL_GIGA_MAC_NONE) {
netif_notice(tp, probe, dev,
"unknown MAC, using family default\n");
tp->mac_version = default_version;
}
}

static void rtl8169_print_mac_version(struct rtl8169_private *tp)
Expand Down Expand Up @@ -3353,7 +3360,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
pci_set_master(pdev);

/* Identify chip attached to board */
rtl8169_get_mac_version(tp, ioaddr);
rtl8169_get_mac_version(tp, dev, cfg->default_ver);

/*
* Pretend we are using VLANs; This bypasses a nasty bug where
Expand All @@ -3365,13 +3372,6 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
rtl_init_mdio_ops(tp);
rtl_init_pll_power_ops(tp);

/* Use appropriate default if unknown */
if (tp->mac_version == RTL_GIGA_MAC_NONE) {
netif_notice(tp, probe, dev,
"unknown MAC, using family default\n");
tp->mac_version = cfg->default_ver;
}

rtl8169_print_mac_version(tp);

chipset = tp->mac_version;
Expand Down

0 comments on commit 5d320a2

Please sign in to comment.