1. 01 5月, 2007 2 次提交
    • J
      [libata reset-seq] build and merge fixes · 27c78b37
      Jeff Garzik 提交于
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      27c78b37
    • T
      libata: add deadline support to prereset and reset methods · d4b2bab4
      Tejun Heo 提交于
      Add @deadline to prereset and reset methods and make them honor it.
      ata_wait_ready() which directly takes @deadline is implemented to be
      used as the wait function.  This patch is in preparation for EH timing
      improvements.
      
      * ata_wait_ready() never does busy sleep.  It's only used from EH and
        no wait in EH is that urgent.  This function also prints 'be
        patient' message automatically after 5 secs of waiting if more than
        3 secs is remaining till deadline.
      
      * ata_bus_post_reset() now fails with error code if any of its wait
        fails.  This is important because earlier reset tries will have
        shorter timeout than the spec requires.  If a device fails to
        respond before the short timeout, reset should be retried with
        longer timeout rather than silently ignoring the device.
      
        There are three behavior differences.
      
        1. Timeout is applied to both devices at once, not separately.  This
           is more consistent with what the spec says.
      
        2. When a device passes devchk but fails to become ready before
           deadline.  Previouly, post_reset would just succeed and let
           device classification remove the device.  New code fails the
           reset thus causing reset retry.  After a few times, EH will give
           up disabling the port.
      
        3. When slave device passes devchk but fails to become accessible
           (TF-wise) after reset.  Original code disables dev1 after 30s
           timeout and continues as if the device doesn't exist, while the
           patched code fails reset.  When this happens, new code fails
           reset on whole port rather than proceeding with only the primary
           device.
      
        If the failing device is suffering transient problems, new code
        retries reset which is a better behavior.  If the failing device is
        actually broken, the net effect is identical to it, but not to the
        other device sharing the channel.  In the previous code, reset would
        have succeeded after 30s thus detecting the working one.  In the new
        code, reset fails and whole port gets disabled.  IMO, it's a
        pathological case anyway (broken device sharing bus with working
        one) and doesn't really matter.
      
      * ata_bus_softreset() is changed to return error code from
        ata_bus_post_reset().  It used to return 0 unconditionally.
      
      * Spin up waiting is to be removed and not converted to honor
        deadline.
      
      * To be on the safe side, deadline is set to 40s for the time being.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      d4b2bab4
  2. 29 4月, 2007 1 次提交
    • A
      pata_sis: Clean up using cable_detect methods · 2e413f51
      Alan Cox 提交于
      This changeset revolves around the fact that all the SiS controllers have
      the same enable bits, but differing cable detection methods. Previously
      that meant each type had its own error_handler methods. Instead we can
      now implement different ->cable_detect methods and share a single
      error_handler which does the filtering by enable bits.
      
      In addition we had some auto const arrays that should be static const. I'm
      not sure if gcc already treats them intelligently but adding the static
      will make sure.
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      2e413f51
  3. 20 4月, 2007 1 次提交
    • A
      pata_sis: Fix oops on boot · f3769e9d
      Alan Cox 提交于
      A small number of SiS setups require special handling (not many judging
      by how long this dumb bug survived). A couple of Fedora 7 devel testers
      hit an Oops on pata_sis loading which is caused by terminal confusion
      between chipset as 'the chipset we have found' and chipset as 'array
      iterator'
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      f3769e9d
  4. 03 3月, 2007 1 次提交
  5. 26 2月, 2007 1 次提交
  6. 21 2月, 2007 2 次提交
    • T
      libata: s/ap->id/ap->print_id/g · 44877b4e
      Tejun Heo 提交于
      ata_port has two different id fields - id and port_no.  id is
      system-wide 1-based unique id for the port while port_no is 0-based
      host-wide port number.  The former is primarily used to identify the
      ATA port to the user in printk messages while the latter is used in
      various places in libata core and LLDs to index the port inside the
      host.
      
      The two fields feel quite similar and sometimes ap->id is used in
      place of ap->port_no, which is very difficult to spot.  This patch
      renames ap->id to ap->print_id to reduce the possibility of such bugs.
      
      Some printk messages are adjusted such that id string (ata%u[.%u])
      isn't printed twice and/or to use ata_*_printk() instead of hardcoded
      id format.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      44877b4e
    • A
      SiS warning fixes · 4bb64fb9
      Alan 提交于
      Somehow the sis_info133 external definition ended up in libata.h and that
      was included by both drivers.  However libata.h contains libata-* specific
      internals and clashing defines like DRV_NAME so this makes a mess.  Move
      the extern into the C file and remove the warnings
      
      [akpm@linux-foundation.org: create sis.h to avoid extern-decl-in-C]
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Cc: Jeff Garzik <jeff@garzik.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      4bb64fb9
  7. 10 2月, 2007 8 次提交
  8. 03 12月, 2006 1 次提交
  9. 02 12月, 2006 1 次提交
  10. 29 11月, 2006 1 次提交
  11. 29 9月, 2006 1 次提交
  12. 27 9月, 2006 2 次提交
  13. 13 9月, 2006 1 次提交
  14. 31 8月, 2006 1 次提交
  15. 30 8月, 2006 1 次提交