Sergei Shtylyov
52a2a1087b
sata_rcar: fix interrupt handling
...
The driver's interrupt handling code is too picky in deciding whether it should
handle an interrupt or not which causes completely unneeded spurious interrupts.
Thus make sata_rcar_{ata|serr}_interrupt() *void*; add ATA status register read
to sata_rcar_ata_interrupt() to clear an unexpected ATA interrupt -- it doesn't
get cleared by writing to the SATAINTSTAT register in the interrupt mode we use.
Also, in sata_rcar_ata_interrupt() we should check SATAINTSTAT register only for
enabled interrupts and we should clear only those interrupts that we have read
as active first time around, because else we have a race and risk clearing an
interrupt that can occur between read and write of the SATAINTSTAT register
and never registering it...
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: stable@vger.kernel.org
2013-06-02 00:54:45 -07:00
..
2013-05-14 11:13:04 -07:00
2013-01-03 15:57:03 -08:00
2013-05-29 10:20:35 +09:00
2013-05-14 11:13:04 -07:00
2012-07-25 15:12:11 -04:00
2013-05-16 11:06:29 -07:00
2013-03-04 17:12:46 -05:00
2013-05-14 11:13:04 -07:00
2013-04-30 18:02:53 -04:00
2013-05-22 08:31:48 +09:00
2013-05-14 11:13:04 -07:00
2012-06-29 11:38:11 -04:00
2013-05-14 11:13:04 -07:00
2013-05-14 11:13:04 -07:00
2013-01-25 15:30:23 -05:00
2010-10-21 20:21:03 -04:00
2013-02-20 17:14:03 -05:00
2013-01-21 15:41:56 -05:00
2013-02-20 17:10:53 -05:00
2012-07-25 15:12:11 -04:00
2011-10-14 13:10:42 -04:00
2012-07-25 15:12:11 -04:00
2013-04-19 22:25:51 +02:00
2012-07-25 15:12:11 -04:00
2013-04-03 19:52:10 -04:00
2013-01-03 15:57:03 -08:00
2012-08-17 13:26:51 -04:00
2012-07-25 15:12:11 -04:00
2013-01-03 15:57:03 -08:00
2012-11-28 12:40:15 -05:00
2012-07-25 15:12:11 -04:00
2013-01-03 15:57:03 -08:00
2012-07-25 15:12:11 -04:00
2012-07-25 15:12:11 -04:00
2012-11-28 12:38:41 -05:00
2012-07-25 15:12:11 -04:00
2012-07-25 15:12:11 -04:00
2013-02-20 17:13:10 -05:00
2012-07-25 15:12:11 -04:00
2012-07-25 15:12:11 -04:00
2012-07-25 15:12:11 -04:00
2012-07-25 15:12:11 -04:00
2013-01-03 15:57:03 -08:00
2013-04-11 19:38:00 -04:00
2009-03-24 22:52:39 -04:00
2012-07-25 15:12:11 -04:00
2012-07-25 15:12:11 -04:00
2013-01-03 15:57:03 -08:00
2012-07-25 15:12:11 -04:00
2013-04-03 19:53:10 -04:00
2013-01-03 15:57:03 -08:00
2012-07-25 15:12:11 -04:00
2013-02-20 11:39:05 +11:00
2012-07-25 15:12:11 -04:00
2012-07-25 15:12:11 -04:00
2012-07-25 15:12:11 -04:00
2012-07-25 15:12:11 -04:00
2012-07-25 15:12:11 -04:00
2013-04-03 19:53:30 -04:00
2013-01-03 15:57:03 -08:00
2012-07-25 15:12:11 -04:00
2012-07-25 15:12:11 -04:00
2012-07-25 15:12:11 -04:00
2013-01-03 15:57:03 -08:00
2013-03-15 12:26:03 -07:00
2012-07-25 15:12:11 -04:00
2013-04-12 15:24:12 +02:00
2012-07-25 15:12:11 -04:00
2013-01-03 15:57:03 -08:00
2013-01-03 15:57:03 -08:00
2012-07-25 15:12:11 -04:00
2013-01-03 15:57:03 -08:00
2013-01-03 15:57:03 -08:00
2012-07-25 15:12:11 -04:00
2013-03-04 17:12:52 -05:00
2012-07-25 15:12:11 -04:00
2012-07-25 15:12:11 -04:00
2013-01-03 15:57:03 -08:00
2012-07-25 15:12:11 -04:00
2013-01-03 15:57:03 -08:00
2012-07-25 15:12:11 -04:00
2012-07-25 15:12:11 -04:00
2012-07-25 15:12:11 -04:00
2012-07-25 15:12:11 -04:00
2013-05-14 11:13:04 -07:00
2012-12-14 09:43:39 -05:00
2013-04-30 16:13:36 -07:00
2013-04-30 18:02:56 -04:00
2012-11-28 12:39:09 -05:00
2013-01-03 15:57:03 -08:00
2012-07-25 15:12:11 -04:00
2013-05-14 11:13:04 -07:00
2008-01-23 05:24:15 -05:00
2012-07-25 15:12:11 -04:00
2013-06-02 00:54:45 -07:00
2012-11-28 12:39:20 -05:00
2013-05-14 11:13:04 -07:00
2012-07-25 15:12:11 -04:00
2013-04-09 14:13:28 -04:00
2013-05-14 11:13:04 -07:00
2012-07-25 15:12:11 -04:00
2013-05-14 11:13:04 -07:00
2013-01-03 15:57:03 -08:00