diff mbox

[U-Boot] net/designware: do explicit port selection for 1Gb mode

Message ID 1450889192-22123-1-git-send-email-abrodkin@synopsys.com
State Accepted, archived
Commit b884c3fe6392cd1f578db9350eb7c49eda94ff53
Delegated to: Joe Hershberger
Headers show

Commit Message

Alexey Brodkin Dec. 23, 2015, 4:46 p.m. UTC
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(+)

Comments

Bin Meng Dec. 24, 2015, 2:17 a.m. UTC | #1
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>
Alexey Brodkin Jan. 11, 2016, 10:11 a.m. UTC | #2
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 mbox

Patch

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;