cxgb3 - fix register to stop bc/mc traffic

Use the right register to stop broadcast/multicast traffic.

Signed-off-by: Divy Le Ray <divy@chelsio.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

authored by Divy Le Ray and committed by Jeff Garzik 549f8009 d791c2bd

+5 -3
+5 -3
drivers/net/cxgb3/xgmac.c
··· 335 hwm = min(hwm, MAC_RXFIFO_SIZE - 8192); 336 lwm = min(3 * (int)mtu, MAC_RXFIFO_SIZE / 4); 337 338 - v = t3_read_reg(adap, A_XGM_RXFIFO_CFG + mac->offset); 339 if (adap->params.rev == T3_REV_B2 && 340 (t3_read_reg(adap, A_XGM_RX_CTRL + mac->offset) & F_RXEN)) { 341 disable_exact_filters(mac); 342 - t3_set_reg_field(adap, A_XGM_RXFIFO_CFG + mac->offset, 343 F_ENHASHMCAST | F_COPYALLFRAMES, F_DISBCAST); 344 345 /* drain rx FIFO */ ··· 347 A_XGM_RX_MAX_PKT_SIZE_ERR_CNT + 348 mac->offset, 349 1 << 31, 1, 20, 5)) { 350 - t3_write_reg(adap, A_XGM_RXFIFO_CFG + mac->offset, v); 351 enable_exact_filters(mac); 352 return -EIO; 353 } 354 t3_write_reg(adap, A_XGM_RX_MAX_PKT_SIZE + mac->offset, mtu); 355 enable_exact_filters(mac); 356 } else 357 t3_write_reg(adap, A_XGM_RX_MAX_PKT_SIZE + mac->offset, mtu); ··· 363 */ 364 hwm = rx_fifo_hwm(mtu); 365 lwm = min(3 * (int)mtu, MAC_RXFIFO_SIZE / 4); 366 v &= ~V_RXFIFOPAUSELWM(M_RXFIFOPAUSELWM); 367 v |= V_RXFIFOPAUSELWM(lwm / 8); 368 if (G_RXFIFOPAUSEHWM(v))
··· 335 hwm = min(hwm, MAC_RXFIFO_SIZE - 8192); 336 lwm = min(3 * (int)mtu, MAC_RXFIFO_SIZE / 4); 337 338 if (adap->params.rev == T3_REV_B2 && 339 (t3_read_reg(adap, A_XGM_RX_CTRL + mac->offset) & F_RXEN)) { 340 disable_exact_filters(mac); 341 + v = t3_read_reg(adap, A_XGM_RX_CFG + mac->offset); 342 + t3_set_reg_field(adap, A_XGM_RX_CFG + mac->offset, 343 F_ENHASHMCAST | F_COPYALLFRAMES, F_DISBCAST); 344 345 /* drain rx FIFO */ ··· 347 A_XGM_RX_MAX_PKT_SIZE_ERR_CNT + 348 mac->offset, 349 1 << 31, 1, 20, 5)) { 350 + t3_write_reg(adap, A_XGM_RX_CFG + mac->offset, v); 351 enable_exact_filters(mac); 352 return -EIO; 353 } 354 t3_write_reg(adap, A_XGM_RX_MAX_PKT_SIZE + mac->offset, mtu); 355 + t3_write_reg(adap, A_XGM_RX_CFG + mac->offset, v); 356 enable_exact_filters(mac); 357 } else 358 t3_write_reg(adap, A_XGM_RX_MAX_PKT_SIZE + mac->offset, mtu); ··· 362 */ 363 hwm = rx_fifo_hwm(mtu); 364 lwm = min(3 * (int)mtu, MAC_RXFIFO_SIZE / 4); 365 + v = t3_read_reg(adap, A_XGM_RXFIFO_CFG + mac->offset); 366 v &= ~V_RXFIFOPAUSELWM(M_RXFIFOPAUSELWM); 367 v |= V_RXFIFOPAUSELWM(lwm / 8); 368 if (G_RXFIFOPAUSEHWM(v))