summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCodrin Ciubotariu <codrin.ciubotariu@freescale.com>2015-07-24 16:52:46 +0300
committerYork Sun <yorksun@freescale.com>2015-09-21 08:29:46 -0700
commitfe91095b799d21428bd39392650ca0b06789776e (patch)
tree44fb08e2699b75d8592ed920c04185d04607d697
parent3cc8cfffb21b618a51a51e746aac709a12540b79 (diff)
drivers/net/vsc9953: Fix bug when enabling a port
When a port is enabled at init time, the initializing function touches more bits than necessary to enable a port (also touches reserved bits and default bit values). This patch fixes this issue by changing the value of the define used to enable the port and assures that no other bits are changes by replacing out_le32() with setbits_le32(). Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@freescale.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com> Reviewed-by: York Sun <yorksun@freescale.com>
-rw-r--r--drivers/net/vsc9953.c4
-rw-r--r--include/vsc9953.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/vsc9953.c b/drivers/net/vsc9953.c
index 524b979d52..2e8eec41f8 100644
--- a/drivers/net/vsc9953.c
+++ b/drivers/net/vsc9953.c
@@ -259,8 +259,8 @@ void vsc9953_init(bd_t *bis)
out_le32(&l2dev_gmii_reg->mac_cfg_status.mac_hdx_cfg, hdx_cfg);
out_le32(&l2sys_reg->sys.front_port_mode[i],
VSC9953_FRONT_PORT_MODE);
- out_le32(&l2qsys_reg->sys.switch_port_mode[i],
- VSC9953_PORT_ENA);
+ setbits_le32(&l2qsys_reg->sys.switch_port_mode[i],
+ VSC9953_PORT_ENA);
out_le32(&l2dev_gmii_reg->mac_cfg_status.mac_maxlen_cfg,
VSC9953_MAC_MAX_LEN);
out_le32(&l2sys_reg->pause_cfg.pause_cfg[i],
diff --git a/include/vsc9953.h b/include/vsc9953.h
index 6ebe141d68..6ae5fec1cb 100644
--- a/include/vsc9953.h
+++ b/include/vsc9953.h
@@ -81,7 +81,7 @@
#define VSC9953_VCAP_UPDATE_CTRL 0x01000004
/* Macros for vsc9953_qsys_sys.switch_port_mode register */
-#define VSC9953_PORT_ENA 0x00003a00
+#define VSC9953_PORT_ENA 0x00002000
#define VSC9953_MAX_PORTS 10
#define VSC9953_PORT_CHECK(port) \