On 25/09/2015 13:11, Sven Eckelmann wrote: > The length of the DMA rx buffer was always set to 0 because the function > for extracting the length was used to calculate the value for setting it. > Instead the macro has to be split in a get and set function similar to the > TX_DMA_(GET_|)PLEN(0|1) macro. > > No problem was noticed on MT7621a before this was changed and thus maybe it > was hidden by different problem which is not yet fixed.
how very weird ... lets see if there are any follow up tickets for this. John > Signed-off-by: Sven Eckelmann <s...@open-mesh.com> > --- > target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c | 2 +- > target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.h | 3 > ++- > 2 files changed, 3 insertions(+), 2 deletions(-) > > diff --git > a/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c > b/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c > index db6b197..2691cfb 100644 > --- a/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c > +++ b/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c > @@ -849,7 +849,7 @@ static int fe_poll_rx(struct napi_struct *napi, int > budget, > > dma_unmap_single(&netdev->dev, trxd.rxd1, > ring->rx_buf_size, DMA_FROM_DEVICE); > - pktlen = RX_DMA_PLEN0(trxd.rxd2); > + pktlen = RX_DMA_GET_PLEN0(trxd.rxd2); > skb->dev = netdev; > skb_put(skb, pktlen); > if (trxd.rxd4 & checksum_bit) { > diff --git > a/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.h > b/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.h > index 78e04b0..51b087c 100644 > --- a/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.h > +++ b/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.h > @@ -310,7 +310,8 @@ enum fe_work_flag { > /* rxd2 */ > #define RX_DMA_DONE BIT(31) > #define RX_DMA_LSO BIT(30) > -#define RX_DMA_PLEN0(_x) (((_x) >> 16) & 0x3fff) > +#define RX_DMA_PLEN0(_x) (((_x) & 0x3fff) << 16) > +#define RX_DMA_GET_PLEN0(_x) (((_x) >> 16) & 0x3fff) > #define RX_DMA_TAG BIT(15) > /* rxd3 */ > #define RX_DMA_TPID(_x) (((_x) >> 16) & 0xffff) > _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel