]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
r6040: check for absent PHY
authorFlorian Fainelli <florian@openwrt.org>
Mon, 4 May 2009 20:30:01 +0000 (20:30 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 5 May 2009 19:29:45 +0000 (12:29 -0700)
Some devices have two R6040 MACs but the second one
is not wired to any PHY, therefore the interface is
just unusable. Warn the user about that and prevent
device from registering.

Tested-by: bifferos <bifferos@yahoo.co.uk>
Signed-off-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/r6040.c

index 6f97b47d74a6931c83294644640d724fd21207de..65627253c988aad5cf8953d1b2f3c3939e7daf52 100644 (file)
@@ -742,6 +742,14 @@ static int r6040_up(struct net_device *dev)
        struct r6040_private *lp = netdev_priv(dev);
        void __iomem *ioaddr = lp->base;
        int ret;
+       u16 val;
+
+       /* Check presence of a second PHY */
+       val = r6040_phy_read(ioaddr, lp->phy_addr, 2);
+       if (val == 0xFFFF) {
+               printk(KERN_ERR DRV_NAME " no second PHY attached\n");
+               return -EIO;
+       }
 
        /* Initialise and alloc RX/TX buffers */
        r6040_init_txbufs(dev);