On Wed, Apr 19, 2023 at 9:33 AM Florian Fainelli f.fainelli@gmail.com wrote:
On 4/18/23 23:35, Heiner Kallweit wrote:
On 19.04.2023 02:10, Justin Chen wrote:
Add support for the Broadcom ASP 2.0 Ethernet controller which is first introduced with 72165. This controller features two distinct Ethernet ports that can be independently operated.
This patch supports:
[snip]
- intf->tx_spb_index = spb_index;
- intf->tx_spb_dma_valid = valid;
- bcmasp_intf_tx_write(intf, intf->tx_spb_dma_valid);
- if (tx_spb_ring_full(intf, MAX_SKB_FRAGS + 1))
netif_stop_queue(dev);
Here it may be better to use the new macros from include/net/netdev_queues.h. It seems your code (together with the related part in tx_poll) doesn't consider the queue restart case. In addition you should check whether using READ_ONCE()/WRITE_ONCE() is needed, e.g. in ring_full().
Thanks Heiner. Can you trim the parts you are not quoting otherwise one has to scroll all the way down to where you responded. Thanks! -- Florian
Hello Heiner,
The implementation is a locked single queue xmit. Not sure how netdev_queues.h fits into the picture here. I believe I am handling the queue restart here. +static int bcmasp_tx_poll(struct napi_struct *napi, int budget) +{ [snip] + if (released) + netif_wake_queue(intf->ndev); + + return 0; +} Let me know if I am misunderstanding the feedback here.
Thanks, Justin