[v3,04/16] can: m_can: Disable unused interrupts
Commit Message
There are a number of interrupts that are not used by the driver at the
moment. Disable all of these.
Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
---
drivers/net/can/m_can/m_can.c | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
Comments
On Wed, Mar 15, 2023 at 12:05:34PM +0100, Markus Schneider-Pargmann wrote:
> There are a number of interrupts that are not used by the driver at the
> moment. Disable all of these.
>
> Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
> ---
> drivers/net/can/m_can/m_can.c | 18 +++++++++++-------
> 1 file changed, 11 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c
> index 5274d9642566..e7aceeba3759 100644
> --- a/drivers/net/can/m_can/m_can.c
> +++ b/drivers/net/can/m_can/m_can.c
> @@ -1261,6 +1261,7 @@ static int m_can_set_bittiming(struct net_device *dev)
> static int m_can_chip_config(struct net_device *dev)
> {
> struct m_can_classdev *cdev = netdev_priv(dev);
> + u32 interrupts = IR_ALL_INT;
> u32 cccr, test;
> int err;
>
> @@ -1270,6 +1271,11 @@ static int m_can_chip_config(struct net_device *dev)
> return err;
> }
>
> + /* Disable unused interrupts */
> + interrupts &= ~(IR_ARA | IR_ELO | IR_DRX | IR_TEFF | IR_TEFW | IR_TFE |
> + IR_TCF | IR_HPM | IR_RF1F | IR_RF1W | IR_RF1N |
> + IR_RF0F | IR_RF0W);
> +
> m_can_config_endisable(cdev, true);
>
> /* RX Buffer/FIFO Element Size 64 bytes data field */
> @@ -1364,15 +1370,13 @@ static int m_can_chip_config(struct net_device *dev)
> m_can_write(cdev, M_CAN_TEST, test);
>
> /* Enable interrupts */
> - if (!(cdev->can.ctrlmode & CAN_CTRLMODE_BERR_REPORTING))
> + if (!(cdev->can.ctrlmode & CAN_CTRLMODE_BERR_REPORTING)) {
> if (cdev->version == 30)
> - m_can_write(cdev, M_CAN_IE, IR_ALL_INT &
> - ~(IR_ERR_LEC_30X));
> + interrupts &= ~(IR_ERR_LEC_30X);
> else
> - m_can_write(cdev, M_CAN_IE, IR_ALL_INT &
> - ~(IR_ERR_LEC_31X));
> - else
> - m_can_write(cdev, M_CAN_IE, IR_ALL_INT);
> + interrupts &= ~(IR_ERR_LEC_31X);
> + }
> + m_can_write(cdev, M_CAN_IE, interrupts);
This now enables interrupts outside the if condition.
Which was also the case prior to patch 3/16.
Perhaps it makes sense to merge patches 3/16 and 4/16?
Perhaps not :)
Regardless,
Reviewed-by: Simon Horman <simon.horman@corigine.com>
@@ -1261,6 +1261,7 @@ static int m_can_set_bittiming(struct net_device *dev)
static int m_can_chip_config(struct net_device *dev)
{
struct m_can_classdev *cdev = netdev_priv(dev);
+ u32 interrupts = IR_ALL_INT;
u32 cccr, test;
int err;
@@ -1270,6 +1271,11 @@ static int m_can_chip_config(struct net_device *dev)
return err;
}
+ /* Disable unused interrupts */
+ interrupts &= ~(IR_ARA | IR_ELO | IR_DRX | IR_TEFF | IR_TEFW | IR_TFE |
+ IR_TCF | IR_HPM | IR_RF1F | IR_RF1W | IR_RF1N |
+ IR_RF0F | IR_RF0W);
+
m_can_config_endisable(cdev, true);
/* RX Buffer/FIFO Element Size 64 bytes data field */
@@ -1364,15 +1370,13 @@ static int m_can_chip_config(struct net_device *dev)
m_can_write(cdev, M_CAN_TEST, test);
/* Enable interrupts */
- if (!(cdev->can.ctrlmode & CAN_CTRLMODE_BERR_REPORTING))
+ if (!(cdev->can.ctrlmode & CAN_CTRLMODE_BERR_REPORTING)) {
if (cdev->version == 30)
- m_can_write(cdev, M_CAN_IE, IR_ALL_INT &
- ~(IR_ERR_LEC_30X));
+ interrupts &= ~(IR_ERR_LEC_30X);
else
- m_can_write(cdev, M_CAN_IE, IR_ALL_INT &
- ~(IR_ERR_LEC_31X));
- else
- m_can_write(cdev, M_CAN_IE, IR_ALL_INT);
+ interrupts &= ~(IR_ERR_LEC_31X);
+ }
+ m_can_write(cdev, M_CAN_IE, interrupts);
/* route all interrupts to INT0 */
m_can_write(cdev, M_CAN_ILS, ILS_ALL_INT0);