dpaa_eth: update the buffer layout for non-A050385 erratum scenarios
Impose a larger RX private data area only when the A050385 erratum is present on the hardware. A smaller buffer size is sufficient in all other scenarios. This enables a wider range of linear Jumbo frame sizes in non-erratum scenarios, instead of turning to multi buffer Scatter/Gather frames. The maximum linear frame size is increased by 128 bytes for non-erratum arm64 platforms. Cleanup the hardware annotations header defines in the process. Fixes: 3c68b8fffb48 ("dpaa_eth: FMan erratum A050385 workaround") Signed-off-by: Camelia Groza <camelia.groza@nxp.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
04a55c944f
commit
acef159a0c
@ -174,12 +174,17 @@ MODULE_PARM_DESC(tx_timeout, "The Tx timeout in ms");
|
||||
#define DPAA_PARSE_RESULTS_SIZE sizeof(struct fman_prs_result)
|
||||
#define DPAA_TIME_STAMP_SIZE 8
|
||||
#define DPAA_HASH_RESULTS_SIZE 8
|
||||
#ifdef CONFIG_DPAA_ERRATUM_A050385
|
||||
#define DPAA_RX_PRIV_DATA_SIZE (DPAA_A050385_ALIGN - (DPAA_PARSE_RESULTS_SIZE\
|
||||
+ DPAA_TIME_STAMP_SIZE + DPAA_HASH_RESULTS_SIZE))
|
||||
#else
|
||||
#define DPAA_RX_PRIV_DATA_SIZE (u16)(DPAA_TX_PRIV_DATA_SIZE + \
|
||||
#define DPAA_HWA_SIZE (DPAA_PARSE_RESULTS_SIZE + DPAA_TIME_STAMP_SIZE \
|
||||
+ DPAA_HASH_RESULTS_SIZE)
|
||||
#define DPAA_RX_PRIV_DATA_DEFAULT_SIZE (DPAA_TX_PRIV_DATA_SIZE + \
|
||||
dpaa_rx_extra_headroom)
|
||||
#ifdef CONFIG_DPAA_ERRATUM_A050385
|
||||
#define DPAA_RX_PRIV_DATA_A050385_SIZE (DPAA_A050385_ALIGN - DPAA_HWA_SIZE)
|
||||
#define DPAA_RX_PRIV_DATA_SIZE (fman_has_errata_a050385() ? \
|
||||
DPAA_RX_PRIV_DATA_A050385_SIZE : \
|
||||
DPAA_RX_PRIV_DATA_DEFAULT_SIZE)
|
||||
#else
|
||||
#define DPAA_RX_PRIV_DATA_SIZE DPAA_RX_PRIV_DATA_DEFAULT_SIZE
|
||||
#endif
|
||||
|
||||
#define DPAA_ETH_PCD_RXQ_NUM 128
|
||||
@ -2854,8 +2859,7 @@ static inline u16 dpaa_get_headroom(struct dpaa_buffer_layout *bl)
|
||||
*
|
||||
* Also make sure the headroom is a multiple of data_align bytes
|
||||
*/
|
||||
headroom = (u16)(bl->priv_data_size + DPAA_PARSE_RESULTS_SIZE +
|
||||
DPAA_TIME_STAMP_SIZE + DPAA_HASH_RESULTS_SIZE);
|
||||
headroom = (u16)(bl->priv_data_size + DPAA_HWA_SIZE);
|
||||
|
||||
return ALIGN(headroom, DPAA_FD_DATA_ALIGNMENT);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user