Skip to content

Commit fac52bf

Browse files
scosumarckleinebudde
authored andcommitted
can: m_can: Read register PSR only on error
Only read register PSR if there is an error indicated in irqstatus. Signed-off-by: Markus Schneider-Pargmann <[email protected]> Link: https://lore.kernel.org/all/[email protected] Signed-off-by: Marc Kleine-Budde <[email protected]>
1 parent 5775793 commit fac52bf

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

drivers/net/can/m_can/m_can.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -910,7 +910,6 @@ static int m_can_rx_handler(struct net_device *dev, int quota, u32 irqstatus)
910910
struct m_can_classdev *cdev = netdev_priv(dev);
911911
int rx_work_or_err;
912912
int work_done = 0;
913-
u32 psr;
914913

915914
if (!irqstatus)
916915
goto end;
@@ -936,13 +935,13 @@ static int m_can_rx_handler(struct net_device *dev, int quota, u32 irqstatus)
936935
}
937936
}
938937

939-
psr = m_can_read(cdev, M_CAN_PSR);
940-
941938
if (irqstatus & IR_ERR_STATE)
942-
work_done += m_can_handle_state_errors(dev, psr);
939+
work_done += m_can_handle_state_errors(dev,
940+
m_can_read(cdev, M_CAN_PSR));
943941

944942
if (irqstatus & IR_ERR_BUS_30X)
945-
work_done += m_can_handle_bus_errors(dev, irqstatus, psr);
943+
work_done += m_can_handle_bus_errors(dev, irqstatus,
944+
m_can_read(cdev, M_CAN_PSR));
946945

947946
if (irqstatus & IR_RF0N) {
948947
rx_work_or_err = m_can_do_rx_poll(dev, (quota - work_done));

0 commit comments

Comments
 (0)