1. 21 2月, 2006 2 次提交
  2. 18 2月, 2006 1 次提交
  3. 18 1月, 2006 3 次提交
  4. 17 1月, 2006 2 次提交
  5. 15 1月, 2006 1 次提交
  6. 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
  7. 06 1月, 2006 1 次提交
  8. 13 12月, 2005 5 次提交
  9. 06 12月, 2005 5 次提交
  10. 01 12月, 2005 1 次提交
  11. 20 11月, 2005 1 次提交
  12. 17 11月, 2005 1 次提交
  13. 16 11月, 2005 1 次提交
    • A
      [PATCH] libata: honor the transfer cycle time speficied by the EIDE device · 75b1f2f8
      Albert Lee 提交于
        The following code segment is not functional because the transfer cycle time speficied by
        the EIDE device is later overwritten by ata_timing_quantize():
      
      	/*
      	 * If the drive is an EIDE drive, it can tell us it needs extended
      	 * PIO/MW_DMA cycle timing.
      	 */
      	if (adev->id[ATA_ID_FIELD_VALID] & 2) {	/* EIDE drive */
      		memset(&p, 0, sizeof(p));
      		(snip)
      		ata_timing_merge(&p, t, t, ATA_TIMING_CYCLE | ATA_TIMING_CYC8B);
                     <== uninitialized "t" is used here
      	}
      
      	/*
      	 * Convert the timing to bus clock counts.
      	 */
      	ata_timing_quantize(s, t, T, UT);  <== t is overwritten by quantized s
      
        The patch has been submitted for ide-timing.h before:
        http://marc.theaimsgroup.com/?l=linux-ide&m=110820013425454&w=2
        Resubmitted for libata.
      
      Changes:
        - Minor fix to honor the following transfer cycle time speficied by the device
          - id[65]: Minimum Multiword DMA transfer cycle time per word
          - id[67]: Minimum PIO transfer cycle time without flow control
          - id[68]: Minimum PIO transfer cycle time with IORDY
      Signed-off-by: NAlbert Lee <albertcc@tw.ibm.com>
      
      =======
      Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
      75b1f2f8
  14. 15 11月, 2005 3 次提交
    • J
      [libata] REQUEST SENSE handling fixes · c6e6e666
      Jeff Garzik 提交于
      - Move ATAPI check-condition handling out of the timeout handler
      - Use multi-qc-issue feature to issue REQUEST SENSE ATAPI PACKET
        command upon receiving an ATAPI check-condition.
      
      This cleans things up a lot, and eliminates a nasty recursion bug.
      c6e6e666
    • J
      [libata] minor fixes, new helpers · 2c13b7ce
      Jeff Garzik 提交于
      - in ata_dev_identify(), don't assume that all devices are either
        ATA or ATAPI.  In the future, this code will see port multipliers
        and other devices.
      - make a debugging printk less verbose
      - add new helper ata_qc_reinit()
      - add new helper BPRINTK() and port flag ATA_FLAG_DEBUGMSG, for
        fine-grained debugging use.
      2c13b7ce
    • J
      [libata] fix bugs in ATAPI padding DMA mapping code · e1410f2d
      Jeff Garzik 提交于
      The ATAPI pad-to-next-32bit-boundary code modifies the scatterlist's
      length variable, sometimes to zero.  x86-64 platform would oops if a
      zero-length scatterlist entry was asked to be mapped.  Work around this
      by ensuring that we never DMA-map a zero length buffer or SG entry.
      e1410f2d
  15. 14 11月, 2005 1 次提交
  16. 11 11月, 2005 1 次提交
  17. 09 11月, 2005 2 次提交
  18. 07 11月, 2005 1 次提交
  19. 06 11月, 2005 1 次提交
  20. 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
  21. 31 10月, 2005 2 次提交
    • J
      [libata] locking rewrite (== fix) · 005a5a06
      Jeff Garzik 提交于
      A lot of power packed into a little patch.
      
      This change eliminates the sharing between our controller-wide spinlock
      and the SCSI core's Scsi_Host lock.  As the locking in libata was
      already highly compartmentalized, always referencing our own lock, and
      never scsi_host::host_lock.
      
      As a side effect, this change eliminates a deadlock from calling
      scsi_finish_command() while inside our spinlock.
      005a5a06
    • J
      [libata] ata_tf_to_host cleanups · e5338254
      Jeff Garzik 提交于
      Integrate ata_exec() and ata_tf_to_host() into their only caller,
      ata_bus_edd().
      
      Rename ata_tf_to_host_nolock() to ata_tf_to_host().
      
      This makes locking a bit easier to review, and may help pave the way for
      future changes.
      e5338254
  22. 30 10月, 2005 3 次提交
    • J
      [libata] fix legacy IDE probing · 0f0d5192
      Jeff Garzik 提交于
      ata_pci_init_one() receives an array of struct ata_port_info.  Recent
      updates to the code had always obtained port information from
      array element 0, rather than array element N.
      
      Change to avoid hardcoding port_info[0], thereby restoring proper
      hardware information to secondary legacy ports.
      0f0d5192
    • 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