Commit 2b993bfd authored by Claudiu Beznea's avatar Claudiu Beznea Committed by Paolo Abeni

net: ravb: Let IP-specific receive function to interrogate descriptors

ravb_poll() initial code used to interrogate the first descriptor of the
RX queue in case gPTP is false to determine if ravb_rx() should be called.
This is done for non-gPTP IPs. For gPTP IPs the driver PTP-specific
information was used to determine if receive function should be called. As
every IP has its own receive function that interrogates the RX descriptors
list in the same way the ravb_poll() was doing there is no need to double
check this in ravb_poll(). Removing the code from ravb_poll() leads to a
cleaner code.
Signed-off-by: default avatarClaudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Reviewed-by: default avatarSergey Shtylyov <s.shtylyov@omp.ru>
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 3c974cdc
...@@ -1288,25 +1288,16 @@ static int ravb_poll(struct napi_struct *napi, int budget) ...@@ -1288,25 +1288,16 @@ static int ravb_poll(struct napi_struct *napi, int budget)
struct net_device *ndev = napi->dev; struct net_device *ndev = napi->dev;
struct ravb_private *priv = netdev_priv(ndev); struct ravb_private *priv = netdev_priv(ndev);
const struct ravb_hw_info *info = priv->info; const struct ravb_hw_info *info = priv->info;
bool gptp = info->gptp || info->ccc_gac;
struct ravb_rx_desc *desc;
unsigned long flags; unsigned long flags;
int q = napi - priv->napi; int q = napi - priv->napi;
int mask = BIT(q); int mask = BIT(q);
int quota = budget; int quota = budget;
unsigned int entry;
if (!gptp) {
entry = priv->cur_rx[q] % priv->num_rx_ring[q];
desc = &priv->gbeth_rx_ring[entry];
}
/* Processing RX Descriptor Ring */ /* Processing RX Descriptor Ring */
/* Clear RX interrupt */ /* Clear RX interrupt */
ravb_write(ndev, ~(mask | RIS0_RESERVED), RIS0); ravb_write(ndev, ~(mask | RIS0_RESERVED), RIS0);
if (gptp || desc->die_dt != DT_FEMPTY) {
if (ravb_rx(ndev, &quota, q)) if (ravb_rx(ndev, &quota, q))
goto out; goto out;
}
/* Processing TX Descriptor Ring */ /* Processing TX Descriptor Ring */
spin_lock_irqsave(&priv->lock, flags); spin_lock_irqsave(&priv->lock, flags);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment