Message ID | 1366790368-22327-3-git-send-email-voice.shen@atmel.com |
---|---|
State | Accepted |
Delegated to: | Joe Hershberger |
Headers | show |
Hi Bo, I'm currently applying your patches. Patch 'arm: atmel: add gmac support for sama5d3xek board' shows that this particular patch is defective ... please send a fix or I will not apply the gmac for sama5. On 04/24/2013 09:59 AM, Bo Shen wrote: > using phylib to configure phy device in macb driver > > Signed-off-by: Bo Shen <voice.shen@atmel.com> > --- > drivers/net/macb.c | 16 ++++++++++++++-- > 1 file changed, 14 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/macb.c b/drivers/net/macb.c > index 753fb96..b83d65a 100644 > --- a/drivers/net/macb.c > +++ b/drivers/net/macb.c > @@ -103,6 +103,7 @@ struct macb_device { > const struct device *dev; > struct eth_device netdev; > unsigned short phy_addr; > + struct mii_dev *bus; > }; > #define to_macb(_nd) container_of(_nd, struct macb_device, netdev) > > @@ -163,7 +164,7 @@ static u16 macb_mdio_read(struct macb_device *macb, u8 reg) > return MACB_BFEXT(DATA, frame); > } > > -#if defined(CONFIG_CMD_MII) > +#if defined(CONFIG_CMD_MII) || defined(CONFIG_PHYLIB) > > int macb_miiphy_read(const char *devname, u8 phy_adr, u8 reg, u16 *value) > { > @@ -372,6 +373,9 @@ static int macb_phy_find(struct macb_device *macb) > static int macb_phy_init(struct macb_device *macb) > { > struct eth_device *netdev = &macb->netdev; > +#ifdef CONFIG_PHYLIB > + struct phy_device *phydev; > +#endif > u32 ncfgr; > u16 phy_id, status, adv, lpa; > int media, speed, duplex; > @@ -391,6 +395,13 @@ static int macb_phy_init(struct macb_device *macb) > return 0; > } > > +#ifdef CONFIG_PHYLIB > + phydev->bus = macb->bus; phydev is uninitialized here ... > + phydev->dev = netdev; > + phydev->addr = macb->phy_addr; > + phy_config(phydev); > +#endif > + > status = macb_mdio_read(macb, MII_BMSR); > if (!(status & BMSR_LSTATUS)) { > /* Try to re-negotiate if we don't have link already. */ > @@ -574,8 +585,9 @@ int macb_eth_initialize(int id, void *regs, unsigned int phy_addr) > > eth_register(netdev); > > -#if defined(CONFIG_CMD_MII) > +#if defined(CONFIG_CMD_MII) || defined(CONFIG_PHYLIB) > miiphy_register(netdev->name, macb_miiphy_read, macb_miiphy_write); > + macb->bus = miiphy_get_dev_by_name(netdev->name); > #endif > return 0; > } >
Hi Andreas, On 8/15/2013 22:36, Andreas Bießmann wrote: > Hi Bo, > > I'm currently applying your patches. Patch 'arm: atmel: add gmac support > for sama5d3xek board' shows that this particular patch is defective ... > please send a fix or I will not apply the gmac for sama5. Thanks for point out this. The fix patch has been sent out. More information at: http://patchwork.ozlabs.org/patch/267530/ (net: macb: fix the building warning) Best Regards, Bo Shen
diff --git a/drivers/net/macb.c b/drivers/net/macb.c index 753fb96..b83d65a 100644 --- a/drivers/net/macb.c +++ b/drivers/net/macb.c @@ -103,6 +103,7 @@ struct macb_device { const struct device *dev; struct eth_device netdev; unsigned short phy_addr; + struct mii_dev *bus; }; #define to_macb(_nd) container_of(_nd, struct macb_device, netdev) @@ -163,7 +164,7 @@ static u16 macb_mdio_read(struct macb_device *macb, u8 reg) return MACB_BFEXT(DATA, frame); } -#if defined(CONFIG_CMD_MII) +#if defined(CONFIG_CMD_MII) || defined(CONFIG_PHYLIB) int macb_miiphy_read(const char *devname, u8 phy_adr, u8 reg, u16 *value) { @@ -372,6 +373,9 @@ static int macb_phy_find(struct macb_device *macb) static int macb_phy_init(struct macb_device *macb) { struct eth_device *netdev = &macb->netdev; +#ifdef CONFIG_PHYLIB + struct phy_device *phydev; +#endif u32 ncfgr; u16 phy_id, status, adv, lpa; int media, speed, duplex; @@ -391,6 +395,13 @@ static int macb_phy_init(struct macb_device *macb) return 0; } +#ifdef CONFIG_PHYLIB + phydev->bus = macb->bus; + phydev->dev = netdev; + phydev->addr = macb->phy_addr; + phy_config(phydev); +#endif + status = macb_mdio_read(macb, MII_BMSR); if (!(status & BMSR_LSTATUS)) { /* Try to re-negotiate if we don't have link already. */ @@ -574,8 +585,9 @@ int macb_eth_initialize(int id, void *regs, unsigned int phy_addr) eth_register(netdev); -#if defined(CONFIG_CMD_MII) +#if defined(CONFIG_CMD_MII) || defined(CONFIG_PHYLIB) miiphy_register(netdev->name, macb_miiphy_read, macb_miiphy_write); + macb->bus = miiphy_get_dev_by_name(netdev->name); #endif return 0; }
using phylib to configure phy device in macb driver Signed-off-by: Bo Shen <voice.shen@atmel.com> --- drivers/net/macb.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-)