提交 d0988a5f 编写于 作者: S Sergei Shtylyov 提交者: David S. Miller

ravb: make ravb_ptp_interrupt() *void*

When we have the ISS.CGIS bit set, we already know that gPTP interrupt has
happened, so an extra GIS register check at the end of ravb_ptp_interrupt()
seems superfluous.  We can model the gPTP interrupt  handler like all other
dedicated interrupt handlers in the driver and make it *void*.
Signed-off-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 b9aa78d4
...@@ -1045,7 +1045,7 @@ void ravb_modify(struct net_device *ndev, enum ravb_reg reg, u32 clear, ...@@ -1045,7 +1045,7 @@ void ravb_modify(struct net_device *ndev, enum ravb_reg reg, u32 clear,
u32 set); u32 set);
int ravb_wait(struct net_device *ndev, enum ravb_reg reg, u32 mask, u32 value); int ravb_wait(struct net_device *ndev, enum ravb_reg reg, u32 mask, u32 value);
irqreturn_t ravb_ptp_interrupt(struct net_device *ndev); void ravb_ptp_interrupt(struct net_device *ndev);
void ravb_ptp_init(struct net_device *ndev, struct platform_device *pdev); void ravb_ptp_init(struct net_device *ndev, struct platform_device *pdev);
void ravb_ptp_stop(struct net_device *ndev); void ravb_ptp_stop(struct net_device *ndev);
......
...@@ -807,8 +807,10 @@ static irqreturn_t ravb_interrupt(int irq, void *dev_id) ...@@ -807,8 +807,10 @@ static irqreturn_t ravb_interrupt(int irq, void *dev_id)
} }
/* gPTP interrupt status summary */ /* gPTP interrupt status summary */
if ((iss & ISS_CGIS) && ravb_ptp_interrupt(ndev) == IRQ_HANDLED) if (iss & ISS_CGIS) {
ravb_ptp_interrupt(ndev);
result = IRQ_HANDLED; result = IRQ_HANDLED;
}
mmiowb(); mmiowb();
spin_unlock(&priv->lock); spin_unlock(&priv->lock);
...@@ -838,8 +840,10 @@ static irqreturn_t ravb_multi_interrupt(int irq, void *dev_id) ...@@ -838,8 +840,10 @@ static irqreturn_t ravb_multi_interrupt(int irq, void *dev_id)
} }
/* gPTP interrupt status summary */ /* gPTP interrupt status summary */
if ((iss & ISS_CGIS) && ravb_ptp_interrupt(ndev) == IRQ_HANDLED) if (iss & ISS_CGIS) {
ravb_ptp_interrupt(ndev);
result = IRQ_HANDLED; result = IRQ_HANDLED;
}
mmiowb(); mmiowb();
spin_unlock(&priv->lock); spin_unlock(&priv->lock);
......
...@@ -296,7 +296,7 @@ static const struct ptp_clock_info ravb_ptp_info = { ...@@ -296,7 +296,7 @@ static const struct ptp_clock_info ravb_ptp_info = {
}; };
/* Caller must hold the lock */ /* Caller must hold the lock */
irqreturn_t ravb_ptp_interrupt(struct net_device *ndev) void ravb_ptp_interrupt(struct net_device *ndev)
{ {
struct ravb_private *priv = netdev_priv(ndev); struct ravb_private *priv = netdev_priv(ndev);
u32 gis = ravb_read(ndev, GIS); u32 gis = ravb_read(ndev, GIS);
...@@ -319,12 +319,7 @@ irqreturn_t ravb_ptp_interrupt(struct net_device *ndev) ...@@ -319,12 +319,7 @@ irqreturn_t ravb_ptp_interrupt(struct net_device *ndev)
} }
} }
if (gis) { ravb_write(ndev, ~gis, GIS);
ravb_write(ndev, ~gis, GIS);
return IRQ_HANDLED;
}
return IRQ_NONE;
} }
void ravb_ptp_init(struct net_device *ndev, struct platform_device *pdev) void ravb_ptp_init(struct net_device *ndev, struct platform_device *pdev)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册