1. 30 3月, 2006 1 次提交
    • M
      [PATCH] sata_mv: three bug fixes · 63af2a5c
      Mark Lord 提交于
      (1) A DMA transfer size of 0x10000 was not being written
      as 0x0000 in the PRDs.  Fixed.
      
      (1) The DEV_IRQ interrupt cause bit happens spuriously
      during EDMA operation, and was not being ignored by the driver.
      This led to various "drive busy" errors being reported,
      with associated unpredictable behaviour.  Fixed.
      
      (2) If a SATA or PCI interrupt was received with no outstanding
      command, the interrupt handler still attempted to invoke
      ata_qc_complete(), triggering assert()/BUG_ON() behaviour
      elsewhere in libata.  Fixed.
      
      The driver still has issues with confusion after error-recovery,
      but should now  be reliable in the absence of drive errors.
      I will be looking more into the error-handling bugs next.
      Signed-Off-By: NMark Lord <mlord@pobox.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      63af2a5c
  2. 22 3月, 2006 2 次提交
  3. 21 3月, 2006 1 次提交
  4. 18 2月, 2006 1 次提交
  5. 13 2月, 2006 1 次提交
  6. 12 2月, 2006 1 次提交
  7. 10 2月, 2006 2 次提交
  8. 03 2月, 2006 1 次提交
    • J
      [libata sata_mv] do not enable PCI MSI by default · ddef9bb3
      Jeff Garzik 提交于
      Several bug reports have come in, noting that disabling CONFIG_PCI_MSI
      has fixed their problems with this driver.  This may be generic system
      issues, but there is also the probability of unimplemented hardware
      errata workarounds.  Until this ream of bug reports is sorted out, we
      can get them going in non-MSI interrupt mode.
      
      As such, this change adds an 'msi' module option, which defaults to off.
      ddef9bb3
  9. 01 2月, 2006 1 次提交
  10. 27 1月, 2006 3 次提交
  11. 06 1月, 2006 1 次提交
  12. 13 12月, 2005 1 次提交
    • J
      [libata] mark certain hardware (or drivers) with a no-atapi flag · 50630195
      Jeff Garzik 提交于
      Some hardware does not support the PACKET command at all.
      Other hardware supports ATAPI, but the driver does something nasty such
      as calling BUG() when an ATAPI command is issued.
      
      For these such cases, we mark them with a new flag, ATA_FLAG_NO_ATAPI.
      
      Initial version contributed by Ben Collins.
      50630195
  13. 06 12月, 2005 2 次提交
  14. 01 12月, 2005 1 次提交
  15. 19 11月, 2005 2 次提交
  16. 17 11月, 2005 2 次提交
    • J
      [libata sata_mv] handle lack of hardware nIEN support · a2c91a88
      Jeff Garzik 提交于
      Handle errata (it was unintentional on this h/w, whereas its intentional
      on others) whereby the nIEN bit in Device Control is ignored, leading to
      a situation where a hardware interrupt completes the qc before the
      polling code has a chance to.
      
      This will get fixed The Right Way(tm) once Albert Lee's irq-pio
      branch is merged, as the more natural PIO method on this hardware is
      interrupt-driven.
      a2c91a88
    • J
      [libata sata_mv] SATA probe, DMA boundary fixes · 22374677
      Jeff Garzik 提交于
      - DMA boundary was being handled incorrectly.  Copied the code from
        ata_fill_sg(), since Marvell has the same DMA boundary needs.
        (we can't use ata_fill_sg directly since we have different hardware
         descriptors)
      - cleaned up the SATA phy reset code, to deal with various errata
      22374677
  17. 14 11月, 2005 1 次提交
  18. 13 11月, 2005 7 次提交
  19. 12 11月, 2005 1 次提交
    • J
      [libata sata_mv] minor fixes · 095fec88
      Jeff Garzik 提交于
      - clear SError and EDMA irq cause registers, after re-init'ing the phy
      - move enums with type suffix 'U' to their own enum
      095fec88
  20. 11 11月, 2005 2 次提交
  21. 10 11月, 2005 1 次提交
  22. 07 11月, 2005 1 次提交
  23. 05 11月, 2005 1 次提交
    • J
      [libata] ATAPI pad allocation fixes/cleanup · 6037d6bb
      Jeff Garzik 提交于
      Use ata_pad_{alloc,free} in two drivers, to factor out common code.
      
      Add ata_pad_{alloc,free} to two other drivers, which needed the padding
      but had not been updated.
      6037d6bb
  24. 31 10月, 2005 1 次提交
  25. 30 10月, 2005 2 次提交
    • J
      [libata] change ata_qc_complete() to take error mask as second arg · a7dac447
      Jeff Garzik 提交于
      The second argument to ata_qc_complete() was being used for two
      purposes: communicate the ATA Status register to the completion
      function, and indicate an error.  On legacy PCI IDE hardware, the latter
      is often implicit in the former.  On more modern hardware, the driver
      often completely emulated a Status register value, passing ATA_ERR as an
      indication that something went wrong.
      
      Now that previous code changes have eliminated the need to use drv_stat
      arg to communicate the ATA Status register value, we can convert it to a
      mask of possible error classes.
      
      This will lead to more flexible error handling in the future.
      a7dac447
    • J
      [libata] remove ata_chk_err(), ->check_err() hook. · 0169e284
      Jeff Garzik 提交于
      We now depend on ->tf_read() to provide us with the contents
      of the Error shadow register.
      0169e284