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>
master
Codrin Ciubotariu 9 years ago committed by York Sun
parent 3cc8cfffb2
commit fe91095b79
  1. 4
      drivers/net/vsc9953.c
  2. 2
      include/vsc9953.h

@ -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],

@ -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) \

Loading…
Cancel
Save