diff options
author | Giuseppe Cavallaro <peppe.cavallaro@st.com> | 2016-02-29 14:27:30 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-03-02 14:21:31 -0500 |
commit | e3ad57c96715df2989ce6c18e58faf2913b305cb (patch) | |
tree | 716a8f7f1662876b3006888c251fff7afc2e0896 /drivers/net/ethernet/stmicro/stmmac/common.h | |
parent | 293e4365a1adb1d3747dcb7d12a52950e0e232a2 (diff) | |
download | lwn-e3ad57c96715df2989ce6c18e58faf2913b305cb.tar.gz lwn-e3ad57c96715df2989ce6c18e58faf2913b305cb.zip |
stmmac: review RX/TX ring management
This patch is to rework the ring management now optimized.
The indexes into the ring buffer are always incremented, and
the entry is accessed via doing a modulo to find the "real"
position in the ring.
It is inefficient, modulo is an expensive operation.
The formula [(entry + 1) & (size - 1)] is now adopted on
a ring that is power-of-2 in size.
Then, the number of elements cannot be set by command line but
it is fixed.
Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Signed-off-by: Alexandre TORGUE <alexandre.torgue@st.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/stmicro/stmmac/common.h')
-rw-r--r-- | drivers/net/ethernet/stmicro/stmmac/common.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/common.h b/drivers/net/ethernet/stmicro/stmmac/common.h index 586a33624dd2..09291af19039 100644 --- a/drivers/net/ethernet/stmicro/stmmac/common.h +++ b/drivers/net/ethernet/stmicro/stmmac/common.h @@ -42,6 +42,10 @@ #define DWMAC_CORE_3_40 0x34 #define DWMAC_CORE_3_50 0x35 +#define DMA_TX_SIZE 512 +#define DMA_RX_SIZE 512 +#define STMMAC_GET_ENTRY(x, size) ((x + 1) & (size - 1)) + #undef FRAME_FILTER_DEBUG /* #define FRAME_FILTER_DEBUG */ |