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
2012-07-25 15:12:11 -04:00
2013-05-14 11:13:04 -07: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
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
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
2012-07-25 15:12:11 -04:00
2013-04-11 19:38:00 -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
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
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
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
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-30 16:13:36 -07:00
2012-07-25 15:12:11 -04: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-07-25 15:12:11 -04:00
2013-04-09 14:13:28 -04:00
2012-07-25 15:12:11 -04:00
2007-07-02 10:17:42 -04:00