1. 20 May, 2006 5 commits
    • Mark Lord's avatar
      [PATCH] sata_mv: spurious interrupt workaround · e857f141
      Mark Lord authored
      The 60xx chips, and possibly others, incorrectly assert DEV_IRQ interrupts
      on a regular basis.  The cause of this is under investigation (by me and
      in theory by Marvell also), but regardless we do need to deal with these events.
      
      This patch tidies up some interrupt handler code, and ensures that we ignore
      DEV_IRQ interrupts when the drive still  has ATA_BUSY asserted.
      Signed-off-by: default avatarMark Lord <liml@rtr.ca>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      e857f141
    • Mark Lord's avatar
      [PATCH] sata_mv: chip initialization fixes · eb46d684
      Mark Lord authored
      The interface control register of the 60xx (and later) Marvell chip
      requires certain bits to always be set when writing to it.  These bits
      incorrectly read-back as zeros, so the pattern must be ORed in
      with each write of the register.  Also, bit 12 should NOT be set
      (note that Marvell's own driver also had bit-12 wrong here).
      
      While we're at it, we also now do pci_set_master() in the init code.
      Signed-off-by: default avatarMark Lord <liml@rtr.ca>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      eb46d684
    • Mark Lord's avatar
      [PATCH] sata_mv: deal with interrupt coalescing interrupts · 615ab953
      Mark Lord authored
      In some systems, it is possible that the BIOS may have enabled interrupt coalescing
      for the Marvell controllers which support it.  This patch adds code to detect/ack
      interrupts from the chip's coalescing (combing) logic.
      Signed-off-by: default avatarMark Lord <liml@rtr.ca>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      615ab953
    • Mark Lord's avatar
      [PATCH] sata_mv: prevent unnecessary double-resets · 9b358e30
      Mark Lord authored
      The mv_err_intr() function is invoked from the driver's interrupt handler,
      as well as from the timeout function.  This patch prevents it from triggering
      a one-after-the-other double reset of the controller when invoked
      from the timeout function.
      
      This also adds a check for a timeout race condition that has been observed
      to occur with this driver in earlier kernels.  This should not be needed,
      in theory, but in practice it has caught bugs.  Maybe nuke it at a later date.
      Signed-off-by: default avatarMark Lord <liml@rtr.ca>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      9b358e30
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband · 2f880b65
      Linus Torvalds authored
      * 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband:
        IB/mthca: Fix posting lists of 256 receive requests for Tavor
        IB/uverbs: Don't leak ref to mm on error path
        IB/srp: Complete correct SCSI commands on device reset
        IB/srp: Get rid of extra scsi_host_put()s if reconnection fails
        IB/srp: Don't wait for disconnection if sending DREQ fails
        IB/mthca: Make fw_cmd_doorbell default to 0
      2f880b65
  2. 19 May, 2006 16 commits
  3. 18 May, 2006 6 commits
  4. 17 May, 2006 13 commits