linux/drivers/net/can
Mirza Krak 39851b0e4e can: sja1000: clear interrupts on start
commit 7cecd9ab80 upstream.

According to SJA1000 data sheet error-warning (EI) interrupt is not
cleared by setting the controller in to reset-mode.

Then if we have the following case:
- system is suspended (echo mem > /sys/power/state) and SJA1000 is left
  in operating state
- A bus error condition occurs which activates EI interrupt, system is
  still suspended which means EI interrupt will be not be handled nor
  cleared.

If the above two events occur, on resume there is no way to return the
SJA1000 to operating state, except to cycle power to it.

By simply reading the IR register on start we will clear any previous
conditions that could be present.

Signed-off-by: Mirza Krak <mirza.krak@hostmobility.com>
Reported-by: Christian Magnusson <Christian.Magnusson@semcon.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2015-12-09 14:03:22 -05:00
..
c_can can: c_can: Fix default pinmux glitch at init 2015-08-10 12:21:51 -07:00
cc770 can: constify of_device_id array 2015-03-17 15:00:23 -04:00
m_can can: m_cam: m_can_fifo_write(): remove return from void function 2015-03-22 23:50:11 +01:00
mscan can: constify of_device_id array 2015-03-17 15:00:23 -04:00
sja1000 can: sja1000: clear interrupts on start 2015-12-09 14:03:22 -05:00
softing can: move can_stats.bus_off++ from can_bus_off into can_change_state 2015-01-20 13:56:53 +01:00
spi can: mcp251x: fix resume when device is down 2015-08-10 12:21:51 -07:00
usb can: pcan_usb: don't provide CAN FD bittimings by non-FD adapters 2015-09-13 09:07:51 -07:00
at91_can.c can: at91_can: use endian agnostic IO accessors 2015-03-22 23:50:12 +01:00
bfin_can.c bfin_can: Merge header file from arch dependent location 2015-03-04 09:52:49 +01:00
dev.c can: Use correct type in sizeof() in nla_put() 2015-12-09 14:03:21 -05:00
flexcan.c can: flexcan: Deferred on Regulator return EPROBE_DEFER 2015-03-22 19:20:10 +01:00
grcan.c can: constify of_device_id array 2015-03-17 15:00:23 -04:00
janz-ican3.c can: janz-ican3: fix type mismatch in assignment 2015-02-04 14:06:43 +01:00
Kconfig can: CAN_GRCAN should depend on HAS_DMA 2015-04-23 14:09:58 -04:00
led.c can: add combined rx/tx LED trigger support 2015-03-22 23:50:11 +01:00
Makefile can: Enable -D__CHECK_ENDIAN__ for sparse by default 2014-12-07 21:22:06 +01:00
pch_can.c can: move can_stats.bus_off++ from can_bus_off into can_change_state 2015-01-20 13:56:53 +01:00
rcar_can.c can: rcar_can: print signed IRQ # 2015-08-10 12:21:51 -07:00
slcan.c can: replace timestamp as unique skb attribute 2015-08-10 12:21:51 -07:00
ti_hecc.c can: move can_stats.bus_off++ from can_bus_off into can_change_state 2015-01-20 13:56:53 +01:00
vcan.c can: replace timestamp as unique skb attribute 2015-08-10 12:21:51 -07:00
xilinx_can.c net: can: xilinx_can: fix extended frame handling 2015-05-01 10:11:46 +02:00