Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1f57877a39105ec4d99d63d02058f6db6ca6abe0
Commit:     1f57877a39105ec4d99d63d02058f6db6ca6abe0
Parent:     911b237d7d327db5371a762f4d8d8cd9ea763662
Author:     Benjamin Herrenschmidt <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 5 11:14:28 2007 +1100
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Fri Dec 7 15:09:06 2007 -0500

    ibm_newemac: Cleanup/Fix RGMII MDIO support detection
    
    More than just "AXON" version of EMAC RGMII supports MDIO, so replace
    the current test with a generic property in the device-tree that
    indicates such support.
    
    Signed-off-by: Benjamin Herrenschmidt <[EMAIL PROTECTED]>
    Acked-by: Stefan Roese <[EMAIL PROTECTED]>
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 arch/powerpc/boot/dts/sequoia.dts |    1 +
 drivers/net/ibm_newemac/rgmii.c   |   20 +++++++++++---------
 drivers/net/ibm_newemac/rgmii.h   |    5 +++--
 3 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/arch/powerpc/boot/dts/sequoia.dts 
b/arch/powerpc/boot/dts/sequoia.dts
index 8833dfe..3d0dfae 100644
--- a/arch/powerpc/boot/dts/sequoia.dts
+++ b/arch/powerpc/boot/dts/sequoia.dts
@@ -245,6 +245,7 @@
                                device_type = "rgmii-interface";
                                compatible = "ibm,rgmii-440epx", "ibm,rgmii";
                                reg = <ef601000 8>;
+                               has-mdio;
                        };
 
                        EMAC0: [EMAIL PROTECTED] {
diff --git a/drivers/net/ibm_newemac/rgmii.c b/drivers/net/ibm_newemac/rgmii.c
index de41695..3287269 100644
--- a/drivers/net/ibm_newemac/rgmii.c
+++ b/drivers/net/ibm_newemac/rgmii.c
@@ -140,7 +140,7 @@ void rgmii_get_mdio(struct of_device *ofdev, int input)
 
        RGMII_DBG2(dev, "get_mdio(%d)" NL, input);
 
-       if (dev->type != RGMII_AXON)
+       if (!(dev->flags & EMAC_RGMII_FLAG_HAS_MDIO))
                return;
 
        mutex_lock(&dev->lock);
@@ -161,7 +161,7 @@ void rgmii_put_mdio(struct of_device *ofdev, int input)
 
        RGMII_DBG2(dev, "put_mdio(%d)" NL, input);
 
-       if (dev->type != RGMII_AXON)
+       if (!(dev->flags & EMAC_RGMII_FLAG_HAS_MDIO))
                return;
 
        fer = in_be32(&p->fer);
@@ -250,11 +250,13 @@ static int __devinit rgmii_probe(struct of_device *ofdev,
                goto err_free;
        }
 
-       /* Check for RGMII type */
+       /* Check for RGMII flags */
+       if (of_get_property(ofdev->node, "has-mdio", NULL))
+               dev->flags |= EMAC_RGMII_FLAG_HAS_MDIO;
+
+       /* CAB lacks the right properties, fix this up */
        if (of_device_is_compatible(ofdev->node, "ibm,rgmii-axon"))
-               dev->type = RGMII_AXON;
-       else
-               dev->type = RGMII_STANDARD;
+               dev->flags |= EMAC_RGMII_FLAG_HAS_MDIO;
 
        DBG2(dev, " Boot FER = 0x%08x, SSR = 0x%08x\n",
             in_be32(&dev->base->fer), in_be32(&dev->base->ssr));
@@ -263,9 +265,9 @@ static int __devinit rgmii_probe(struct of_device *ofdev,
        out_be32(&dev->base->fer, 0);
 
        printk(KERN_INFO
-              "RGMII %s %s initialized\n",
-              dev->type == RGMII_STANDARD ? "standard" : "axon",
-              ofdev->node->full_name);
+              "RGMII %s initialized with%s MDIO support\n",
+              ofdev->node->full_name,
+              (dev->flags & EMAC_RGMII_FLAG_HAS_MDIO) ? "" : "out");
 
        wmb();
        dev_set_drvdata(&ofdev->dev, dev);
diff --git a/drivers/net/ibm_newemac/rgmii.h b/drivers/net/ibm_newemac/rgmii.h
index 5780683..44a0f20 100644
--- a/drivers/net/ibm_newemac/rgmii.h
+++ b/drivers/net/ibm_newemac/rgmii.h
@@ -35,8 +35,9 @@ struct rgmii_regs {
 struct rgmii_instance {
        struct rgmii_regs __iomem       *base;
 
-       /* Type of RGMII bridge */
-       int                             type;
+       /* RGMII bridge flags */
+       int                             flags;
+#define EMAC_RGMII_FLAG_HAS_MDIO       0x00000001
 
        /* Only one EMAC whacks us at a time */
        struct mutex                    lock;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to