1. 21 12月, 2008 1 次提交
  2. 16 12月, 2008 3 次提交
  3. 09 12月, 2008 5 次提交
  4. 02 12月, 2008 4 次提交
  5. 15 11月, 2008 1 次提交
    • T
      libata: improve phantom device detection · 6a6b97d3
      Tejun Heo 提交于
      Currently libata uses four methods to detect device presence.
      
      1. PHY status if available.
      2. TF register R/W test (only promotes presence, never demotes)
      3. device signature after reset
      4. IDENTIFY failure detection in SFF state machine
      
      Combination of the above works well in most cases but recently there
      have been a few reports where a phantom device causes unnecessary
      delay during probe.  In both cases, PHY status wasn't available.  In
      one case, it passed #2 and #3 and failed IDENTIFY with ATA_ERR which
      didn't qualify as #4.  The other failed #2 but as it passed #3 and #4,
      it still caused failure.
      
      In both cases, phantom device reported diagnostic failure, so these
      cases can be safely worked around by considering any !ATA_DRQ IDENTIFY
      failure as NODEV_HINT if diagnostic failure is set.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      6a6b97d3
  6. 11 11月, 2008 6 次提交
  7. 10 11月, 2008 1 次提交
  8. 04 11月, 2008 6 次提交
  9. 31 10月, 2008 4 次提交
    • J
      libata: add whitelist for devices with known good pata-sata bridges · 9ce8e307
      Jens Axboe 提交于
      libata currently imposes a UDMA5 max transfer rate and 200 sector max
      transfer size for SATA devices that sit behind a pata-sata bridge. Lots
      of devices have known good bridges that don't need this limit applied.
      The MTRON SSD disks are such devices. Transfer rates are increased by
      20-30% with the restriction removed.
      
      So add a "blacklist" entry for the MTRON devices, with a flag indicating
      that the bridge is known good.
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      9ce8e307
    • T
      sata_via: fix support for 5287 · b9d5b89b
      Tejun Heo 提交于
      5287 used to be treated as vt6420 but it didn't work.  It's new family
      of controllers called vt8251 which hosts four SATA ports as M/S of the
      two ATA ports.  This configuration is rather peculiar in that although
      the M/S devices are on the same port, each have its own SCR (or
      equivalent link status/control) registers which screws up the
      port-link-device hierarchy assumed by libata.  Another controller
      which falls into this category is ata_piix w/ SIDPR access.
      
      libata now has facility to deal with this class of controllers named
      slave_link.  A low level driver for such controllers can just call
      ata_slave_link_init() on the respective ports and libata will handle
      all the difficult parts like following up with single SRST after
      hardresetting both ports.
      
      This patch creates new controller class vt8251, implements slave_link
      aware init sequence and config space based SCR access for it and moves
      5287 to the new class.
      
      This patch is based on Joseph Chan's larger patch which was created
      before slave_link was implemented in libata.
      
        http://thread.gmane.org/gmane.linux.kernel.commits.mm/40640Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Joseph Chan <JosephChan@via.com.tw>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      b9d5b89b
    • R
      libata: Avoid overflow in ata_tf_to_lba48() when tf->hba_lbal > 127 · ba14a9c2
      Roland Dreier 提交于
      In ata_tf_to_lba48(), when evaluating
      
      	(tf->hob_lbal & 0xff) << 24
      
      the expression is promoted to signed int (since int can hold all values
      of u8).  However, if hob_lbal is 128 or more, then it is treated as a
      negative signed value and sign-extended when promoted to u64 to | into
      sectors, which leads to the MSB 32 bits of section getting set
      incorrectly.
      
      For example, Phillip O'Donnell <phillip.odonnell@gmail.com> reported
      that a 1.5GB drive caused:
      
          ata3.00: HPA detected: current 2930277168, native 18446744072344861488
      
      where 2930277168 == 0xAEA87B30 and 18446744072344861488 == 0xffffffffaea87b30
      which shows the problem when hob_lbal is 0xae.
      
      Fix this by adding a cast to u64, just as is used by for hob_lbah and
      hob_lbam in the function.
      Reported-by: NPhillip O'Donnell <phillip.odonnell@gmail.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      ba14a9c2
    • R
      ATA: remove excess kernel-doc notation · 5b97fbd0
      Randy Dunlap 提交于
      Remove excess kernel-doc function parameter notation from drivers/ata/:
      
      Warning(drivers/ata/libata-core.c:1622): Excess function parameter or struct member 'fn' description in 'ata_pio_queue_task'
      Warning(drivers/ata/libata-core.c:4655): Excess function parameter or struct member 'err_mask' description in 'ata_qc_complete'
      Warning(drivers/ata/ata_piix.c:751): Excess function parameter or struct member 'udma' description in 'do_pata_set_dmamode'
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      5b97fbd0
  10. 28 10月, 2008 9 次提交