lkml.org 
[lkml]   [2020]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 026/133] dpaa_eth: update the buffer layout for non-A050385 erratum scenarios
    Date
    From: Camelia Groza <camelia.groza@nxp.com>

    [ Upstream commit acef159a0cb2a978d62b641e2366a33ad1d5afef ]

    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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 16 ++++++++++------
    1 file changed, 10 insertions(+), 6 deletions(-)

    --- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
    +++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
    @@ -174,12 +174,17 @@ MODULE_PARM_DESC(tx_timeout, "The Tx tim
    #define DPAA_PARSE_RESULTS_SIZE sizeof(struct fman_prs_result)
    #define DPAA_TIME_STAMP_SIZE 8
    #define DPAA_HASH_RESULTS_SIZE 8
    +#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_SIZE (DPAA_A050385_ALIGN - (DPAA_PARSE_RESULTS_SIZE\
    - + DPAA_TIME_STAMP_SIZE + DPAA_HASH_RESULTS_SIZE))
    +#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 (u16)(DPAA_TX_PRIV_DATA_SIZE + \
    - dpaa_rx_extra_headroom)
    +#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(stru
    *
    * 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);
    }

    \
     
     \ /
      Last update: 2020-11-09 14:27    [W:4.060 / U:0.180 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site