|
@@ -85,28 +85,30 @@ static struct platform_device_id fec_devtype[] = {
|
|
|
.driver_data = 0,
|
|
|
}, {
|
|
|
.name = "imx25-fec",
|
|
|
- .driver_data = FEC_QUIRK_USE_GASKET,
|
|
|
+ .driver_data = FEC_QUIRK_USE_GASKET | FEC_QUIRK_HAS_RACC,
|
|
|
}, {
|
|
|
.name = "imx27-fec",
|
|
|
- .driver_data = 0,
|
|
|
+ .driver_data = FEC_QUIRK_HAS_RACC,
|
|
|
}, {
|
|
|
.name = "imx28-fec",
|
|
|
.driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_SWAP_FRAME |
|
|
|
- FEC_QUIRK_SINGLE_MDIO,
|
|
|
+ FEC_QUIRK_SINGLE_MDIO | FEC_QUIRK_HAS_RACC,
|
|
|
}, {
|
|
|
.name = "imx6q-fec",
|
|
|
.driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT |
|
|
|
FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM |
|
|
|
- FEC_QUIRK_HAS_VLAN | FEC_QUIRK_ERR006358,
|
|
|
+ FEC_QUIRK_HAS_VLAN | FEC_QUIRK_ERR006358 |
|
|
|
+ FEC_QUIRK_HAS_RACC,
|
|
|
}, {
|
|
|
.name = "mvf600-fec",
|
|
|
- .driver_data = FEC_QUIRK_ENET_MAC,
|
|
|
+ .driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_RACC,
|
|
|
}, {
|
|
|
.name = "imx6sx-fec",
|
|
|
.driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT |
|
|
|
FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM |
|
|
|
FEC_QUIRK_HAS_VLAN | FEC_QUIRK_HAS_AVB |
|
|
|
- FEC_QUIRK_ERR007885 | FEC_QUIRK_BUG_CAPTURE,
|
|
|
+ FEC_QUIRK_ERR007885 | FEC_QUIRK_BUG_CAPTURE |
|
|
|
+ FEC_QUIRK_HAS_RACC,
|
|
|
}, {
|
|
|
/* sentinel */
|
|
|
}
|
|
@@ -970,13 +972,15 @@ fec_restart(struct net_device *ndev)
|
|
|
writel(fep->phy_speed, fep->hwp + FEC_MII_SPEED);
|
|
|
|
|
|
#if !defined(CONFIG_M5272)
|
|
|
- /* set RX checksum */
|
|
|
- val = readl(fep->hwp + FEC_RACC);
|
|
|
- if (fep->csum_flags & FLAG_RX_CSUM_ENABLED)
|
|
|
- val |= FEC_RACC_OPTIONS;
|
|
|
- else
|
|
|
- val &= ~FEC_RACC_OPTIONS;
|
|
|
- writel(val, fep->hwp + FEC_RACC);
|
|
|
+ if (fep->quirks & FEC_QUIRK_HAS_RACC) {
|
|
|
+ /* set RX checksum */
|
|
|
+ val = readl(fep->hwp + FEC_RACC);
|
|
|
+ if (fep->csum_flags & FLAG_RX_CSUM_ENABLED)
|
|
|
+ val |= FEC_RACC_OPTIONS;
|
|
|
+ else
|
|
|
+ val &= ~FEC_RACC_OPTIONS;
|
|
|
+ writel(val, fep->hwp + FEC_RACC);
|
|
|
+ }
|
|
|
#endif
|
|
|
|
|
|
/*
|