diff options
author | Giuseppe CAVALLARO | 2014-09-01 09:17:52 +0200 |
---|---|---|
committer | David S. Miller | 2014-09-02 06:51:29 +0200 |
commit | d2afb5bdffde3da175b9ced66f70a4b453103d71 (patch) | |
tree | 250714e39756cc16c9951c50b1c3347ff9f91721 /drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c | |
parent | Merge branch 'amd-xgbe-net' (diff) | |
download | kernel-qcow2-linux-d2afb5bdffde3da175b9ced66f70a4b453103d71.tar.gz kernel-qcow2-linux-d2afb5bdffde3da175b9ced66f70a4b453103d71.tar.xz kernel-qcow2-linux-d2afb5bdffde3da175b9ced66f70a4b453103d71.zip |
stmmac: fix the rx csum feature
For new GMACs it is possible to turn-on/off the COE.
In the current driver, when disabled the Rx-checksum
via ethtool, the tool reported that csum was disabled
but the HW continued to set the IPC. Indeed this is
because the fix_features allows this. So the patch
fixes this problem by adding the set_features.
Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c')
-rw-r--r-- | drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c b/drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c index d8ef18786a1c..5efe60ea6526 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c @@ -58,7 +58,11 @@ static int dwmac1000_rx_ipc_enable(struct mac_device_info *hw) void __iomem *ioaddr = hw->pcsr; u32 value = readl(ioaddr + GMAC_CONTROL); - value |= GMAC_CONTROL_IPC; + if (hw->rx_csum) + value |= GMAC_CONTROL_IPC; + else + value &= ~GMAC_CONTROL_IPC; + writel(value, ioaddr + GMAC_CONTROL); value = readl(ioaddr + GMAC_CONTROL); |