dpaa2-switch: add ENDPOINT_CHANGED to the irq_mask
authorIoana Ciornei <ioana.ciornei@nxp.com>
Tue, 19 Dec 2023 11:59:29 +0000 (13:59 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sat, 23 Dec 2023 01:18:59 +0000 (01:18 +0000)
Commit 84cba72956fd ("dpaa2-switch: integrate the MAC endpoint support")
added support for MAC endpoints in the dpaa2-switch driver but omitted
to add the ENDPOINT_CHANGED irq to the list of interrupt sources. Fix
this by extending the list of events which can raise an interrupt by
extending the mask passed to the dpsw_set_irq_mask() firmware API.

There is no user visible impact even without this patch since whenever a
switch interface is connected/disconnected from an endpoint both events
are set (LINK_CHANGED and ENDPOINT_CHANGED) and, luckily, the
LINK_CHANGED event could actually raise the interrupt and thus get the
MAC/PHY SW configuration started.

Even with this, it's better to just not rely on undocumented firmware
behavior which can change.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c

index 0f9103b1343870ff8f7b472f7563187f65500929..a355295468bdb7db60c941a819b18010450e1bb4 100644 (file)
@@ -1550,9 +1550,9 @@ out:
 
 static int dpaa2_switch_setup_irqs(struct fsl_mc_device *sw_dev)
 {
+       u32 mask = DPSW_IRQ_EVENT_LINK_CHANGED | DPSW_IRQ_EVENT_ENDPOINT_CHANGED;
        struct device *dev = &sw_dev->dev;
        struct ethsw_core *ethsw = dev_get_drvdata(dev);
-       u32 mask = DPSW_IRQ_EVENT_LINK_CHANGED;
        struct fsl_mc_device_irq *irq;
        int err;