Message ID | 1450889192-22123-1-git-send-email-abrodkin@synopsys.com |
---|---|
State | Accepted, archived |
Commit | b884c3fe6392cd1f578db9350eb7c49eda94ff53 |
Delegated to: | Joe Hershberger |
Headers | show |
On Thu, Dec 24, 2015 at 12:46 AM, Alexey Brodkin <Alexey.Brodkin@synopsys.com> wrote: > Current implementation only sets "port select" bit for non-1Gb mode. > That works fine if GMAC has just exited reset state but we may as well > change connection mode in runtime. Then we'll need to reprogram GMAC for > that new mode of operation and if previous mode was 10 or 100 Mb and new > one is 1 Gb we'll need to reset port mode bit. > > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> > Cc: Bin Meng <bmeng.cn@gmail.com> > Cc: Joe Hershberger <joe.hershberger@ni.com> > Cc: Sonic Zhang <sonic.zhang@analog.com> > cc: Simon Glass <sjg@chromium.org> > --- > drivers/net/designware.c | 2 ++ > 1 file changed, 2 insertions(+) > Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Hi Joe, On Wed, 2015-12-23 at 19:46 +0300, Alexey Brodkin wrote: > Current implementation only sets "port select" bit for non-1Gb mode. > That works fine if GMAC has just exited reset state but we may as well > change connection mode in runtime. Then we'll need to reprogram GMAC for > that new mode of operation and if previous mode was 10 or 100 Mb and new > one is 1 Gb we'll need to reset port mode bit. > > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> > Cc: Bin Meng <bmeng.cn@gmail.com> > Cc: Joe Hershberger <joe.hershberger@ni.com> > Cc: Sonic Zhang <sonic.zhang@analog.com> > cc: Simon Glass <sjg@chromium.org> > --- > drivers/net/designware.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/net/designware.c b/drivers/net/designware.c > index a6c39c3..58c6d36 100644 > --- a/drivers/net/designware.c > +++ b/drivers/net/designware.c > @@ -200,6 +200,8 @@ static void dw_adjust_link(struct eth_mac_regs *mac_p, > > if (phydev->speed != 1000) > conf |= MII_PORTSELECT; > + else > + conf &= ~MII_PORTSELECT; > > if (phydev->speed == 100) > conf |= FES_100; Any chance for that one to be applied? -Alexey
diff --git a/drivers/net/designware.c b/drivers/net/designware.c index a6c39c3..58c6d36 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -200,6 +200,8 @@ static void dw_adjust_link(struct eth_mac_regs *mac_p, if (phydev->speed != 1000) conf |= MII_PORTSELECT; + else + conf &= ~MII_PORTSELECT; if (phydev->speed == 100) conf |= FES_100;
Current implementation only sets "port select" bit for non-1Gb mode. That works fine if GMAC has just exited reset state but we may as well change connection mode in runtime. Then we'll need to reprogram GMAC for that new mode of operation and if previous mode was 10 or 100 Mb and new one is 1 Gb we'll need to reset port mode bit. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Bin Meng <bmeng.cn@gmail.com> Cc: Joe Hershberger <joe.hershberger@ni.com> Cc: Sonic Zhang <sonic.zhang@analog.com> cc: Simon Glass <sjg@chromium.org> --- drivers/net/designware.c | 2 ++ 1 file changed, 2 insertions(+)