From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eugen.Hristev at microchip.com Date: Wed, 16 Dec 2020 06:54:54 +0000 Subject: [PATCH 1/6] net: macb: use dummy descriptor for RBQP In-Reply-To: <1606987556-20217-2-git-send-email-claudiu.beznea@microchip.com> References: <1606987556-20217-1-git-send-email-claudiu.beznea@microchip.com> <1606987556-20217-2-git-send-email-claudiu.beznea@microchip.com> Message-ID: <540f6c03-7032-9512-2c4b-175e5c1e7bc5@microchip.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 03.12.2020 11:25, Claudiu Beznea wrote: > In case of multiple queues on RX side the queue scheduler > will try to use all the available configured queues (with > descriptors having TX_USED bit cleared). If at least one RBQP > points to a descriptor with a valid used bit configuration then > the reception may block as this may point to any memory. To avoid > this scenario all the queues (except queue zero) were disabled by > setting DMA descriptors with used bit set on proper RBQP. The driver > anyway uses only queue 0 for TX/RX. > > Signed-off-by: Claudiu Beznea > --- Hi Anup, Bin, Padmarao, I noticed on the mailing list that you have been actively working and testing the Macb driver on various platforms, we have this series outstanding and I want to make sure that it does not break anything on your side, so it would be appreciated if you could have a look or test it before it goes into master branch. Thanks ! Eugen > drivers/net/macb.c | 4 +++- > drivers/net/macb.h | 2 ++ > 2 files changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/macb.c b/drivers/net/macb.c > index b80a259ff757..836eb85ec96a 100644 > --- a/drivers/net/macb.c > +++ b/drivers/net/macb.c > @@ -732,8 +732,10 @@ static int gmac_init_multi_queues(struct macb_device *macb) > flush_dcache_range(macb->dummy_desc_dma, macb->dummy_desc_dma + > ALIGN(MACB_TX_DUMMY_DMA_DESC_SIZE, PKTALIGN)); > > - for (i = 1; i < num_queues; i++) > + for (i = 1; i < num_queues; i++) { > gem_writel_queue_TBQP(macb, macb->dummy_desc_dma, i - 1); > + gem_writel_queue_RBQP(macb, macb->dummy_desc_dma, i - 1); > + } > > return 0; > } > diff --git a/drivers/net/macb.h b/drivers/net/macb.h > index 9b16383eba46..28c7fe306883 100644 > --- a/drivers/net/macb.h > +++ b/drivers/net/macb.h > @@ -768,5 +768,7 @@ > #define GEM_RX_CSUM_CHECKED_MASK 2 > #define gem_writel_queue_TBQP(port, value, queue_num) \ > writel((value), (port)->regs + GEM_TBQP(queue_num)) > +#define gem_writel_queue_RBQP(port, value, queue_num) \ > + writel((value), (port)->regs + GEM_RBQP(queue_num)) > > #endif /* __DRIVERS_MACB_H__ */ >