|
@@ -2388,6 +2388,23 @@ static irqreturn_t bcmgenet_wol_isr(int irq, void *dev_id)
|
|
return IRQ_HANDLED;
|
|
return IRQ_HANDLED;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+#ifdef CONFIG_NET_POLL_CONTROLLER
|
|
|
|
+static void bcmgenet_poll_controller(struct net_device *dev)
|
|
|
|
+{
|
|
|
|
+ struct bcmgenet_priv *priv = netdev_priv(dev);
|
|
|
|
+
|
|
|
|
+ /* Invoke the main RX/TX interrupt handler */
|
|
|
|
+ disable_irq(priv->irq0);
|
|
|
|
+ bcmgenet_isr0(priv->irq0, priv);
|
|
|
|
+ enable_irq(priv->irq0);
|
|
|
|
+
|
|
|
|
+ /* And the interrupt handler for RX/TX priority queues */
|
|
|
|
+ disable_irq(priv->irq1);
|
|
|
|
+ bcmgenet_isr1(priv->irq1, priv);
|
|
|
|
+ enable_irq(priv->irq1);
|
|
|
|
+}
|
|
|
|
+#endif
|
|
|
|
+
|
|
static void bcmgenet_umac_reset(struct bcmgenet_priv *priv)
|
|
static void bcmgenet_umac_reset(struct bcmgenet_priv *priv)
|
|
{
|
|
{
|
|
u32 reg;
|
|
u32 reg;
|
|
@@ -2939,6 +2956,9 @@ static const struct net_device_ops bcmgenet_netdev_ops = {
|
|
.ndo_set_mac_address = bcmgenet_set_mac_addr,
|
|
.ndo_set_mac_address = bcmgenet_set_mac_addr,
|
|
.ndo_do_ioctl = bcmgenet_ioctl,
|
|
.ndo_do_ioctl = bcmgenet_ioctl,
|
|
.ndo_set_features = bcmgenet_set_features,
|
|
.ndo_set_features = bcmgenet_set_features,
|
|
|
|
+#ifdef CONFIG_NET_POLL_CONTROLLER
|
|
|
|
+ .ndo_poll_controller = bcmgenet_poll_controller,
|
|
|
|
+#endif
|
|
};
|
|
};
|
|
|
|
|
|
/* Array of GENET hardware parameters/characteristics */
|
|
/* Array of GENET hardware parameters/characteristics */
|