summaryrefslogtreecommitdiff
path: root/drivers/ata/ahci.h
diff options
context:
space:
mode:
authorSergei Shtylyov <sergei.shtylyov@cogentembedded.com>2013-05-31 22:38:35 (GMT)
committerTejun Heo <tj@kernel.org>2013-06-02 07:54:45 (GMT)
commit52a2a1087b5924de00484f35ef5e2a73f61dbd22 (patch)
treeb1887001bdf51e25024fc288552d6bead78b6f1e /drivers/ata/ahci.h
parentfcce9a35f8faaa1f52236c554ef1b15d99a7537e (diff)
downloadlinux-fsl-qoriq-52a2a1087b5924de00484f35ef5e2a73f61dbd22.tar.xz
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 'drivers/ata/ahci.h')
0 files changed, 0 insertions, 0 deletions