net: ethernet: ti: davinci_cpdma: revert "drop frame padding"
authorGrygorii Strashko <grygorii.strashko@ti.com>
Fri, 6 Aug 2021 14:28:09 +0000 (17:28 +0300)
committerJakub Kicinski <kuba@kernel.org>
Fri, 6 Aug 2021 23:18:15 +0000 (16:18 -0700)
This reverts commit 9ffc513f95ee ("net: ethernet: ti: davinci_cpdma: drop
frame padding") which has depndency from not yet merged patch [1] and so
breaks cpsw_new driver.

[1] https://patchwork.kernel.org/project/netdevbpf/patch/20210805145511.12016-1-grygorii.strashko@ti.com/
Fixes: 9ffc513f95ee ("net: ethernet: ti: davinci_cpdma: drop frame padding")
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Link: https://lore.kernel.org/r/20210806142809.15069-1-grygorii.strashko@ti.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/ti/cpsw_priv.c
drivers/net/ethernet/ti/davinci_cpdma.c
drivers/net/ethernet/ti/davinci_cpdma.h
drivers/net/ethernet/ti/davinci_emac.c

index d97a72c9ec53b0699f0bbd56d83fc19b6b639ae0..ecc2a6b7e28f226a4f08ec7f1f83772d6058787c 100644 (file)
@@ -518,6 +518,7 @@ int cpsw_init_common(struct cpsw_common *cpsw, void __iomem *ss_regs,
 
        dma_params.num_chan             = data->channels;
        dma_params.has_soft_reset       = true;
+       dma_params.min_packet_size      = CPSW_MIN_PACKET_SIZE;
        dma_params.desc_mem_size        = data->bd_ram_size;
        dma_params.desc_align           = 16;
        dma_params.has_ext_regs         = true;
index 753d94c9915a8edbe3528f518c07084e39a94380..d2eab5cd1e0c9f05f18e1b0fa8c8fcbc70ff7321 100644 (file)
@@ -1034,6 +1034,11 @@ static int cpdma_chan_submit_si(struct submit_info *si)
                return -ENOMEM;
        }
 
+       if (len < ctlr->params.min_packet_size) {
+               len = ctlr->params.min_packet_size;
+               chan->stats.runt_transmit_buff++;
+       }
+
        mode = CPDMA_DESC_OWNER | CPDMA_DESC_SOP | CPDMA_DESC_EOP;
        cpdma_desc_to_port(chan, mode, si->directed);
 
index 62151f13c7ce6e84b11cc257e094889f2c1b1c2a..d3cfe234d16a118b4b6becf889e9ba7558c45f33 100644 (file)
@@ -26,6 +26,7 @@ struct cpdma_params {
        void __iomem            *rxthresh, *rxfree;
        int                     num_chan;
        bool                    has_soft_reset;
+       int                     min_packet_size;
        dma_addr_t              desc_mem_phys;
        dma_addr_t              desc_hw_addr;
        int                     desc_mem_size;
index cd2ef0282f387cd5af99aa4b68a2900b448439f4..b1c5cbe7478b8250feafb73e8834a28c1463a496 100644 (file)
@@ -1850,6 +1850,7 @@ static int davinci_emac_probe(struct platform_device *pdev)
        dma_params.txcp                 = priv->emac_base + 0x640;
        dma_params.rxcp                 = priv->emac_base + 0x660;
        dma_params.num_chan             = EMAC_MAX_TXRX_CHANNELS;
+       dma_params.min_packet_size      = EMAC_DEF_MIN_ETHPKTSIZE;
        dma_params.desc_hw_addr         = hw_ram_addr;
        dma_params.desc_mem_size        = pdata->ctrl_ram_size;
        dma_params.desc_align           = 16;