Message ID | 1607598951-2340-2-git-send-email-loic.poulain@linaro.org |
---|---|
State | New |
Headers | show |
Series | [v2,1/3] bus: mhi: core: Add helper API to return number of free TREs | expand |
On Thu, Dec 10, 2020 at 12:15:50PM +0100, Loic Poulain wrote: > The RX queue size can be determined at runtime by retrieving the > number of available transfer descriptors. > > Signed-off-by: Loic Poulain <loic.poulain@linaro.org> > --- > v2: Fixed commit message typo > > drivers/net/mhi_net.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/mhi_net.c b/drivers/net/mhi_net.c > index 8e72d94..0333e07 100644 > --- a/drivers/net/mhi_net.c > +++ b/drivers/net/mhi_net.c > @@ -256,9 +256,6 @@ static int mhi_net_probe(struct mhi_device *mhi_dev, > mhi_netdev->mdev = mhi_dev; > SET_NETDEV_DEV(ndev, &mhi_dev->dev); > > - /* All MHI net channels have 128 ring elements (at least for now) */ > - mhi_netdev->rx_queue_sz = 128; > - > INIT_DELAYED_WORK(&mhi_netdev->rx_refill, mhi_net_rx_refill_work); > u64_stats_init(&mhi_netdev->stats.rx_syncp); > u64_stats_init(&mhi_netdev->stats.tx_syncp); > @@ -268,6 +265,9 @@ static int mhi_net_probe(struct mhi_device *mhi_dev, > if (err) > goto out_err; > > + /* Number of transfer descriptors determines size of the queue */ > + mhi_netdev->rx_queue_sz = mhi_get_free_desc_count(mhi_dev, DMA_FROM_DEVICE); > + This value is not static right? You might need to fetch the count in mhi_net_rx_refill_work(). Thanks, Mani > err = register_netdev(ndev); > if (err) > goto out_err; > -- > 2.7.4 >
diff --git a/drivers/net/mhi_net.c b/drivers/net/mhi_net.c index 8e72d94..0333e07 100644 --- a/drivers/net/mhi_net.c +++ b/drivers/net/mhi_net.c @@ -256,9 +256,6 @@ static int mhi_net_probe(struct mhi_device *mhi_dev, mhi_netdev->mdev = mhi_dev; SET_NETDEV_DEV(ndev, &mhi_dev->dev); - /* All MHI net channels have 128 ring elements (at least for now) */ - mhi_netdev->rx_queue_sz = 128; - INIT_DELAYED_WORK(&mhi_netdev->rx_refill, mhi_net_rx_refill_work); u64_stats_init(&mhi_netdev->stats.rx_syncp); u64_stats_init(&mhi_netdev->stats.tx_syncp); @@ -268,6 +265,9 @@ static int mhi_net_probe(struct mhi_device *mhi_dev, if (err) goto out_err; + /* Number of transfer descriptors determines size of the queue */ + mhi_netdev->rx_queue_sz = mhi_get_free_desc_count(mhi_dev, DMA_FROM_DEVICE); + err = register_netdev(ndev); if (err) goto out_err;
The RX queue size can be determined at runtime by retrieving the number of available transfer descriptors. Signed-off-by: Loic Poulain <loic.poulain@linaro.org> --- v2: Fixed commit message typo drivers/net/mhi_net.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)