]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/net/stmmac/dwmac1000_core.c
stmmac: consolidate and tidy-up the COE support
[net-next-2.6.git] / drivers / net / stmmac / dwmac1000_core.c
index f1f426146f403be79ed4f20832392bfb53215d88..c18c85993179b7e862a18b5f1b8acc3951ab61a0 100644 (file)
@@ -50,6 +50,18 @@ static void dwmac1000_core_init(void __iomem *ioaddr)
 #endif
 }
 
+static int dwmac1000_rx_coe_supported(void __iomem *ioaddr)
+{
+       u32 value = readl(ioaddr + GMAC_CONTROL);
+
+       value |= GMAC_CONTROL_IPC;
+       writel(value, ioaddr + GMAC_CONTROL);
+
+       value = readl(ioaddr + GMAC_CONTROL);
+
+       return !!(value & GMAC_CONTROL_IPC);
+}
+
 static void dwmac1000_dump_regs(void __iomem *ioaddr)
 {
        int i;
@@ -202,6 +214,7 @@ static void dwmac1000_irq_status(void __iomem *ioaddr)
 
 struct stmmac_ops dwmac1000_ops = {
        .core_init = dwmac1000_core_init,
+       .rx_coe = dwmac1000_rx_coe_supported,
        .dump_regs = dwmac1000_dump_regs,
        .host_irq_status = dwmac1000_irq_status,
        .set_filter = dwmac1000_set_filter,