1. 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
  2. 06 1月, 2006 1 次提交
  3. 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
  4. 06 12月, 2005 1 次提交
  5. 01 12月, 2005 1 次提交
  6. 19 11月, 2005 1 次提交
  7. 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
  8. 14 11月, 2005 1 次提交
  9. 13 11月, 2005 7 次提交
  10. 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
  11. 11 11月, 2005 2 次提交
  12. 10 11月, 2005 1 次提交
  13. 07 11月, 2005 1 次提交
  14. 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
  15. 31 10月, 2005 1 次提交
  16. 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
  17. 23 10月, 2005 1 次提交
  18. 21 10月, 2005 1 次提交
  19. 19 10月, 2005 1 次提交
  20. 06 10月, 2005 3 次提交
  21. 04 10月, 2005 1 次提交
    • B
      [PATCH] libata: Marvell SATA support (DMA mode) (resend: v0.22) · 31961943
      Brett Russ 提交于
      This is my libata compatible low level driver for the Marvell SATA
      family.  Currently it runs in DMA mode on a 6081 chip.
      
      The 5xxx series parts are not yet DMA capable in this driver because
      the registers have differences that haven't been accounted for yet.
      Basically, I'm focused on the 6xxx series right now.  I apologize for
      those seeing problems on the 5xxx series, I've not had a chance to
      look at those problems yet.
      
      For those curious, the previous bug causing the SCSI timeout and
      subsequent panics was caused by an improper clear of hc_irq_cause in
      mv_host_intr().
      
      This version is running well in my environment (6081 chips,
      with/without SW raid1) and is showing equal or better performance
      compared to the Marvell driver (mv_sata) in my initial tests (timed
      dd's of reads/writes to/from memory/disk).
      
      I still need to look at the causes of occasional problems such as this:
      
      ata11: translating stat 0x35 err 0x00 to sense
      ata11: status=0x35 { DeviceFault SeekComplete CorrectedError Error }
      SCSI error : <10 0 0 0> return code = 0x8000002
      Current sda: sense key Hardware Error
      end_request: I/O error, dev sda, sector 3155010
      
      and this, seen at init time:
      
      ATA: abnormal status 0x80 on port 0xE093911C
      
      but they aren't showstoppers.
      Signed-off-by: NBrett Russ <russb@emc.com>
      Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
      31961943
  22. 09 9月, 2005 1 次提交
    • J
      [libata] minor fixes · 8add7885
      Jeff Garzik 提交于
      * sata_mv: remove pci_intx(), now that the same function is in PCI core
      * sata_sis: fix variable initialization bug, trim trailing whitespace
      8add7885
  23. 07 9月, 2005 2 次提交