mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
net: ethernet: bgmac: unify code of the same family
BCM471X and BCM535X are of the same family (from what I can derive from internal documents). Group them into the case statement together, which results in more code reuse. Also, use existing helper variables to make the code a little more readable too. Signed-off-by: Jon Mason <jon.mason@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
02083c3aed
commit
cb1b0f90ac
@ -192,48 +192,16 @@ static int bgmac_probe(struct bcma_device *core)
|
||||
goto err1;
|
||||
}
|
||||
|
||||
bgmac->has_robosw = !!(core->bus->sprom.boardflags_lo &
|
||||
BGMAC_BFL_ENETROBO);
|
||||
bgmac->has_robosw = !!(sprom->boardflags_lo & BGMAC_BFL_ENETROBO);
|
||||
if (bgmac->has_robosw)
|
||||
dev_warn(bgmac->dev, "Support for Roboswitch not implemented\n");
|
||||
|
||||
if (core->bus->sprom.boardflags_lo & BGMAC_BFL_ENETADM)
|
||||
if (sprom->boardflags_lo & BGMAC_BFL_ENETADM)
|
||||
dev_warn(bgmac->dev, "Support for ADMtek ethernet switch not implemented\n");
|
||||
|
||||
/* Feature Flags */
|
||||
switch (core->bus->chipinfo.id) {
|
||||
case BCMA_CHIP_ID_BCM5357:
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SET_RXQ_CLK;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_FLW_CTRL1;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SW_TYPE_PHY;
|
||||
if (core->bus->chipinfo.pkg == BCMA_PKG_ID_BCM47186) {
|
||||
bgmac->feature_flags |= BGMAC_FEAT_IOST_ATTACHED;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SW_TYPE_RGMII;
|
||||
}
|
||||
if (core->bus->chipinfo.pkg == BCMA_PKG_ID_BCM5358)
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SW_TYPE_EPHYRMII;
|
||||
break;
|
||||
case BCMA_CHIP_ID_BCM53572:
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SET_RXQ_CLK;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_FLW_CTRL1;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SW_TYPE_PHY;
|
||||
if (core->bus->chipinfo.pkg == BCMA_PKG_ID_BCM47188) {
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SW_TYPE_RGMII;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_IOST_ATTACHED;
|
||||
}
|
||||
break;
|
||||
case BCMA_CHIP_ID_BCM4749:
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SET_RXQ_CLK;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_FLW_CTRL1;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SW_TYPE_PHY;
|
||||
if (core->bus->chipinfo.pkg == 10) {
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SW_TYPE_RGMII;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_IOST_ATTACHED;
|
||||
}
|
||||
break;
|
||||
switch (ci->id) {
|
||||
/* BCM 471X/535X family */
|
||||
case BCMA_CHIP_ID_BCM4716:
|
||||
bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
|
||||
/* fallthrough */
|
||||
@ -241,13 +209,19 @@ static int bgmac_probe(struct bcma_device *core)
|
||||
bgmac->feature_flags |= BGMAC_FEAT_FLW_CTRL2;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SET_RXQ_CLK;
|
||||
break;
|
||||
/* bcm4707_family */
|
||||
case BCMA_CHIP_ID_BCM4707:
|
||||
case BCMA_CHIP_ID_BCM47094:
|
||||
case BCMA_CHIP_ID_BCM53018:
|
||||
case BCMA_CHIP_ID_BCM5357:
|
||||
case BCMA_CHIP_ID_BCM53572:
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SET_RXQ_CLK;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_NO_RESET;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_FORCE_SPEED_2500;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_FLW_CTRL1;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SW_TYPE_PHY;
|
||||
if (ci->pkg == BCMA_PKG_ID_BCM47188 ||
|
||||
ci->pkg == BCMA_PKG_ID_BCM47186) {
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SW_TYPE_RGMII;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_IOST_ATTACHED;
|
||||
}
|
||||
if (ci->pkg == BCMA_PKG_ID_BCM5358)
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SW_TYPE_EPHYRMII;
|
||||
break;
|
||||
case BCMA_CHIP_ID_BCM53573:
|
||||
bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
|
||||
@ -264,6 +238,24 @@ static int bgmac_probe(struct bcma_device *core)
|
||||
bgmac->feature_flags |= BGMAC_FEAT_CC7_IF_TYPE_RGMII;
|
||||
}
|
||||
break;
|
||||
case BCMA_CHIP_ID_BCM4749:
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SET_RXQ_CLK;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_FLW_CTRL1;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SW_TYPE_PHY;
|
||||
if (ci->pkg == 10) {
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SW_TYPE_RGMII;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_IOST_ATTACHED;
|
||||
}
|
||||
break;
|
||||
/* bcm4707_family */
|
||||
case BCMA_CHIP_ID_BCM4707:
|
||||
case BCMA_CHIP_ID_BCM47094:
|
||||
case BCMA_CHIP_ID_BCM53018:
|
||||
bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_NO_RESET;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_FORCE_SPEED_2500;
|
||||
break;
|
||||
default:
|
||||
bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
|
||||
bgmac->feature_flags |= BGMAC_FEAT_SET_RXQ_CLK;
|
||||
|
Loading…
Reference in New Issue
Block a user