> + if (ci->id == BCMA_CHIP_ID_BCM4707 ||
+ ci->id == BCMA_CHIP_ID_BCM53018) {
Please add a missing
if (bgmac->phyaddr != BGMAC_PHY_NOREGS)
return;
at the beginning of this 4707/53018 block
+ bcma_awrite32(core, BCMA_IOCTL,
+ bcma_aread32(core, BCMA_IOCTL) | 0x44);
Please use
BGMAC_BCMA_IOCTL_SW_CLKEN | 0x40
(unless you know 0x40, then replace it too).
quoted hunk ↗ jump to hunk
+ bgmac->mac_speed = SPEED_2500;
+ bgmac->mac_duplex = DUPLEX_FULL;
+ bgmac_mac_speed(bgmac);
Wrong indent above.
quoted hunk ↗ jump to hunk
@@ -911,7 +926,8 @@ static void bgmac_chip_reset(struct bgmac *bgmac)
bcma_core_enable(core, flags);
Look closer. Don't calculate flags and don't call bcma_core_enable for
4707 (but call it for 53018).
quoted hunk ↗ jump to hunk
- if (core->id.rev > 2) {
+ if (core->id.rev > 2 && ci->id != BCMA_CHIP_ID_BCM4707 &&
+ ci->id != BCMA_CHIP_ID_BCM53018) {
Could you put 4707 check on the separated line? I'm not pushing however.
--
Rafał