1. 21 2月, 2006 1 次提交
  2. 18 1月, 2006 1 次提交
  3. 17 1月, 2006 1 次提交
  4. 07 1月, 2006 1 次提交
    • J
      [PATCH] Suspend support for libata · 9b847548
      Jens Axboe 提交于
      This patch adds suspend patch to libata, and ata_piix in particular. For
      most low level drivers, they should just need to add the 4 hooks to
      work. As I can only test ata_piix, I didn't enable it for more
      though.
      
      Suspend support is the single most important feature on a notebook, and
      most new notebooks have sata drives. It's quite embarrassing that we
      _still_ do not support this. Right now, it's perfectly possible to
      suspend the drive in mid-transfer.
      Signed-off-by: NJens Axboe <axboe@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9b847548
  5. 06 1月, 2006 1 次提交
  6. 13 12月, 2005 3 次提交
    • 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
    • T
      [PATCH] libata: remove unused qc->waiting · b5632303
      Tejun Heo 提交于
      There is no user of qc->waiting left after ata_exec_internal()
      changes.  Kill the field.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
      b5632303
    • T
      [PATCH] libata: implement ata_exec_internal() · a2a7a662
      Tejun Heo 提交于
      This patch implements ata_exec_internal() function which performs
      libata internal command execution.  Previously, this was done by each
      user by manually initializing a qc, issueing it, waiting for its
      completion and handling errors.  In addition to obvious code
      factoring, using ata_exec_internal() fixes the following bugs.
      
      * qc not freed on issue failure
      * ap->qactive clearing could race with the next internal command
      * race between timeout handling and irq
      * ignoring error condition not represented in tf->status
      
      Also, qc & hardware are not accessed anymore once it's completed,
      making internal commands more conformant with general semantics.
      ata_exec_internal() also makes it easy to issue internal commands from
      multiple threads if that becomes necessary.
      
      This patch only implements ata_exec_internal().  A following patch
      will convert all users.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      
      --
      
      Jeff, all patches have been regenerated against upstream branch as of
      today.  (575ab52a)
      
      Also, I took out a debug printk from ata_exec_internal (don't know how
      that one got left there).  Other than that, all patches are identical
      to the previous posting.
      
      Thanks. :-)
      Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
      a2a7a662
  7. 06 12月, 2005 1 次提交
  8. 15 11月, 2005 2 次提交
  9. 11 11月, 2005 2 次提交
    • A
      [PATCH] libata: propogate host private data from probe function · e99f8b5e
      Alan Cox 提交于
      This will let me chop the code size of several drivers right down. In
      many cases the actual private data is very useful and constant for a
      given host controller so being able to just pass it at probe time would
      be very useful indeed (eg with the via driver would could pass the udma
      clocking and reduce the code size, or with the AMD one the UDMA
      multiplier and the offset)
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
      e99f8b5e
    • A
      [PATCH] libata.h needs dma-mapping.h · 1c72d8d9
      Andrew Morton 提交于
      On Alpha:
      
      include/linux/libata.h: In function `ata_pad_alloc':
      include/linux/libata.h:785: warning: implicit declaration of function `dma_alloc_coherent'
      include/linux/libata.h:786: warning: assignment makes pointer from integer without a cast
      include/linux/libata.h: In function `ata_pad_free':
      include/linux/libata.h:792: warning: implicit declaration of function `dma_free_coherent'
      
      (I have a decouple-some-header-files cleanup in -mm, so it's causing some
      fallout of this nature)
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
      1c72d8d9
  10. 10 11月, 2005 1 次提交
  11. 07 11月, 2005 1 次提交
  12. 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
  13. 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
  14. 23 10月, 2005 1 次提交
  15. 22 10月, 2005 2 次提交
  16. 19 10月, 2005 2 次提交
  17. 05 10月, 2005 2 次提交
  18. 04 10月, 2005 1 次提交
    • A
      libata: bitmask based pci init functions for one or two ports · 47a86593
      Alan Cox 提交于
      This redoes the n_ports logic I proposed before as a bitmask.
      ata_pci_init_native_mode is now used with a mask allowing for mixed mode
      stuff later on. ata_pci_init_legacy_port is called with port number and
      does one port now not two. Instead it is called twice by the ata init
      logic which cleans both of them up.
      
      There are stil limits in the original code left over
      
      - IRQ/port mapping for legacy mode should be arch specific values
      - You can have one legacy mode IDE adapter per PCI root bridge on some systems
      - Doesn't handle mixed mode devices yet (but is now a lot closer to it)
      47a86593
  19. 28 9月, 2005 1 次提交
  20. 16 9月, 2005 1 次提交
  21. 30 8月, 2005 2 次提交
  22. 29 8月, 2005 1 次提交
    • J
      [libata] license change, other bits · af36d7f0
      Jeff Garzik 提交于
      - changes license of all code from OSL+GPL to plain ole GPL
        - except for NVIDIA, who hasn't yet responded about sata_nv
        - copyright holders were already contacted privately
      
      - adds info in each driver about where hardware/protocol docs may be
        obtained
      
      - where I have made major contributions, updated copyright dates
      af36d7f0
  23. 27 8月, 2005 2 次提交
  24. 23 8月, 2005 1 次提交
    • T
      [PATCH] fix atapi_packet_task vs. intr race (take 2) · c1389503
      Tejun Heo 提交于
      Interrupts from devices sharing the same IRQ could cause
      ata_host_intr to finish commands being processed by atapi_packet_task
      if the commands are using ATA_PROT_ATAPI_NODATA or ATA_PROT_ATAPI_DMA
      protocol.  This is because libata interrupt handler is unaware that
      interrupts are not expected during that period.  This patch adds
      ATA_FLAG_NOINTR flag to tell the interrupt handler that we're not
      expecting interrupts.
      
       Note that once proper HSM is implemented for interrupt-driven PIO,
      this should be merged into it and this flag will be removed.
      
       ahci.c is a different kind of beast, so it's left alone.
      
      * The following drivers use ata_qc_issue_prot and ata_interrupt, so
        changes in libata core will do.
      
        ata_piix sata_sil sata_svw sata_via sata_sis sata_uli
      
      * The following drivers use ata_qc_issue_prot and custom intr handler.
        They need this change to work correctly.
      
        sata_nv sata_vsc
      
      * The following drivers use custom issue function and intr handler.
        Currently all custom issue functions don't support ATAPI, so this
        change is irrelevant, updated for consistency and to avoid later
        mistakes.
      
        sata_promise sata_qstor sata_sx4
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
      c1389503
  25. 01 8月, 2005 1 次提交
  26. 03 6月, 2005 1 次提交
  27. 27 5月, 2005 1 次提交
    • J
      libata: Fix use-after-iounmap · aa8f0dc6
      Jeff Garzik 提交于
      Jens Axboe pointed out that the iounmap() call in libata was occurring
      too early, and some drivers (ahci, probably others) were using ioremap'd
      memory after it had been unmapped.
      
      The patch should address that problem by way of improving the libata
      driver API:
      
      * move ->host_stop() call after all ->port_stop() calls have occurred.
      
      * create default helper function ata_host_stop(), and move iounmap()
      call there.
      
      * add ->host_stop_prewalk() hook, use it in sata_qstor.c (hi Mark).
      sata_qstor appears to require the host-stop-before-port-stop ordering
      that existed prior to applying the attached patch.
      aa8f0dc6
  28. 16 5月, 2005 1 次提交
    • B
      [PATCH] libata: flush COMRESET set and clear · cdcca89e
      Brett Russ 提交于
      Updated patch to fix erroneous flush of COMRESET set and missing flush
      of COMRESET clear.  Created a new routine scr_write_flush() to try to
      prevent this in the future.  Also, this patch is based on libata-2.6
      instead of the previous libata-dev-2.6 based patch.
      Signed-off-by: NBrett Russ <russb@emc.com>
      
      Index: libata-2.6/drivers/scsi/libata-core.c
      ===================================================================
      cdcca89e
  29. 13 5月, 2005 2 次提交