diff options
author | Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> | 2013-06-01 00:38:35 +0200 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2013-06-02 09:54:45 +0200 |
commit | 52a2a1087b5924de00484f35ef5e2a73f61dbd22 (patch) | |
tree | b1887001bdf51e25024fc288552d6bead78b6f1e /COPYING | |
parent | ahci: add an observed PCI ID for Marvell 88se9172 SATA controller (diff) | |
download | linux-52a2a1087b5924de00484f35ef5e2a73f61dbd22.tar.xz linux-52a2a1087b5924de00484f35ef5e2a73f61dbd22.zip |
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
Diffstat (limited to 'COPYING')
0 files changed, 0 insertions, 0 deletions