Thread (19 messages) 19 messages, 3 authors, 2012-04-03

Re: [PATCH 03/10] stmmac: sanitize the rx coe and add the type-1 csum

flat view

From: Giuseppe CAVALLARO <hidden>
Date: 2012-04-03 13:04:32

On 4/3/2012 9:56 AM, deepaksi wrote:
Ciao Peppe,

On 4/3/2012 12:19 PM, Giuseppe CAVALLARO wrote:
quoted
[snip]
quoted
reset.
Previously, the stmmac called the dwmac1000_rx_coe_supported to verify
it could do the CSUM in Hw. If true the driver used the type 2 by
default.

I've voluntarily removed this function because not necessary anymore.
In fact, YOU improved the rx_coe from the platform. If it is passed as
STMMAC_RX_COE_NONE then it means the driver is not able to perform any
csum for the incoming frames. This is actually used on old gmac/mac
cores. In new cores, the HW cap register will be used to manage and fix
this logic.
I could restore the core you are mentioning  but just to do another
safety check at run-time in case of the user provided a broken setting
from the platform and there is not the HW cap register. Hmm, I do not
know if this actually could help indeed... just an extra check IMHO.
These are the updates required in the code.

In function dwmac1000_core_init(), you may need to set the IPC bit based
on the fact that
if rx_coe has been setup through the platform code.
This bit set is a must for the checksum offload to be enabled. Rest of
the code looks good.
Great Deepak,
sorry I had not understood your good question and thx for you call.
I was wrong and the IPC Checksum Offload has to be set in the MAC
Configuration Register (*).

static int dwmac1000_rx_coe_supported(void __iomem *ioaddr)
{
    u32 value = readl(ioaddr + GMAC_CONTROL);  |
                                               |==> :-) (*)
    value |= GMAC_CONTROL_IPC;                 |
    writel(value, ioaddr + GMAC_CONTROL);      |

    NOTE ===>>> I'm going to remove the extra check below because
                useless as I had told in my previous email.
                Is it ok for you? Let me know.

    value = readl(ioaddr + GMAC_CONTROL);

    return !!(value&  GMAC_CONTROL_IPC);
}


I'll rework it and re-send all the patches with this fix soon.

ciao
Peppe
Deepak




quoted
quoted
I hope this clears the things a bit. Sorry for the miscommunication.
No problem for the miscommunication ;-)

Let me know
Ciao
Peppe
quoted
Rgds
Deepak





quoted
quoted
Regards
Deepak
.
.
-- 
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help