1. 02 2月, 2008 8 次提交
  2. 23 1月, 2008 1 次提交
    • T
      libata: convert to chained sg · ff2aeb1e
      Tejun Heo 提交于
      libata used private sg iterator to handle padding sg.  Now that sg can
      be chained, padding can be handled using standard sg ops.  Convert to
      chained sg.
      
      * s/qc->__sg/qc->sg/
      
      * s/qc->pad_sgent/qc->extra_sg[]/.  Because chaining consumes one sg
        entry.  There need to be two extra sg entries.  The renaming is also
        for future addition of other extra sg entries.
      
      * Padding setup is moved into ata_sg_setup_extra() which is organized
        in a way that future addition of other extra sg entries is easy.
      
      * qc->orig_n_elem is unused and removed.
      
      * qc->n_elem now contains the number of sg entries that LLDs should
        map.  qc->mapped_n_elem is added to carry the original number of
        mapped sgs for unmapping.
      
      * The last sg of the original sg list is used to chain to extra sg
        list.  The original last sg is pointed to by qc->last_sg and the
        content is stored in qc->saved_last_sg.  It's restored during
        ata_sg_clean().
      
      * All sg walking code has been updated.  Unnecessary assertions and
        checks for conditions the core layer already guarantees are removed.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Cc: Jens Axboe <jens.axboe@oracle.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      ff2aeb1e
  3. 18 12月, 2007 1 次提交
  4. 05 12月, 2007 1 次提交
    • M
      sata_mv: Warn about HPT RocketRAID BIOS treatment of "Legacy" drives · 306b30f7
      Mark Lord 提交于
      The Highpoint RocketRAID boards using Marvell 7042 chips
      overwrite the 9th sector of attached drives at boot time,
      when those drives are configured as "Legacy" (the default)
      in the HighPoint BIOS.
      
      This kills GRUB, and probably other stuff.
      But it all happens *before* Linux is even loaded.
      
      So, for now we'll log a WARNING when such boards are detected,
      and advise users to configure BIOS "JBOD" volumes instead,
      which don't appear to suffer from this problem.
      Signed-off-by: NMark Lord <mlord@pobox.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      306b30f7
  5. 02 12月, 2007 2 次提交
    • M
      sata_mv: Fix broken Marvell 7042 support. · 02a121da
      Mark Lord 提交于
      sata_mv:  Fix broken Marvell 7042 support.
      
      The Marvell 7042 chip is more or less the same as the 6042 internally,
      but sports a PCIe bus.  Despite having identical SATA cores, the 7042
      does differ from its PCI bus counterparts in placment and layout of
      certain bus related registers.
      
      This patch fixes sata_mv to distinguish between the PCI bus registers
      of earlier chips, and the PCIe bus registers of the 7042.
      
      Specifically, move the offsets and bit patterns for the
      PCI/PCIe interrupt cause/mask registers into the struct mv_host_priv,
      as these values differ between the 6xxx and 7xxx series chips.
      
      This fixes the driver to not access reserved PCI addresses,
      and prevents the lockups reported in linux-2.6.24 with 7042 boards.
      
      Also add a new PCI ID for the Highpoint 2300 7042-based board
      that I'm using for testing this stuff here.
      
      Tested with Marvell 6081 + 7042 chips, on x86 & x86_64.
      Signed-off-by: NMark Lord <mlord@pobox.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      02a121da
    • S
      sata_mv: fix compilation error when enabling DEBUG · 2d79ab8f
      Saeed Bishara 提交于
      use sstatus instead status.
      Signed-off-by: NSaeed Bishara <saeed@marvell.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      2d79ab8f
  6. 29 10月, 2007 1 次提交
  7. 24 10月, 2007 1 次提交
  8. 19 10月, 2007 1 次提交
    • J
      [libata] kill ata_sg_is_last() · 3be6cbd7
      Jeff Garzik 提交于
      Short term, this works around a bug introduced by early sg-chaining
      work.
      
      Long term, removing this function eliminates a branch from a hot
      path loop in each scatter/gather table build.  Also, as this code
      demonstrates, we don't need to _track_ the end of the s/g list, as
      long as we mark it in some way.  And doing so programatically is nice.
      So its a useful cleanup, regardless of its short term effects.
      
      Based conceptually on a quick patch by Jens Axboe.
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      3be6cbd7
  9. 13 10月, 2007 7 次提交
    • T
      libata: update ata_dev_try_classify() arguments · 3f19859e
      Tejun Heo 提交于
      Make ata_dev_try_classify() take a pointer to ata_device instead of
      ata_port/port_number combination for consistency and add @present
      argument.  @present indicates whether the device seems present during
      reset.  It's the result of TF access during softreset and link
      onlineness during hardreset.  @present will be used to improve
      diagnostic failure handling.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      3f19859e
    • T
      libata: implement and use ata_port_desc() to report port configuration · cbcdd875
      Tejun Heo 提交于
      Currently, port configuration reporting has the following problems.
      
      * iomapped address is reported instead of raw address
      * report contains irrelevant fields or lacks necessary fields for
        non-SFF controllers.
      * host->irq/irq2 are there just for reporting and hacky.
      
      This patch implements and uses ata_port_desc() and
      ata_port_pbar_desc().  ata_port_desc() is almost identical to
      ata_ehi_push_desc() except that it takes @ap instead of @ehi, has no
      locking requirement, can only be used during host initialization and "
      " is used as separator instead of ", ".  ata_port_pbar_desc() is a
      helper to ease reporting of a PCI BAR or an offsetted address into it.
      
      LLD pushes whatever description it wants using the above two
      functions.  The accumulated description is printed on host
      registration after "[S/P]ATA max MAX_XFERMODE ".
      
      SFF init helpers and ata_host_activate() automatically add
      descriptions for addresses and irq respectively, so only LLDs which
      isn't standard SFF need to add custom descriptions.  In many cases,
      such controllers need to report different things anyway.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      cbcdd875
    • J
      [libata] Remove ->port_disable() hook · ac8869d5
      Jeff Garzik 提交于
      It was always set to ata_port_disable().  Removed the hook, and replaced
      the very few ap->ops->port_disable() callsites with direct calls to
      ata_port_disable().
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      ac8869d5
    • J
      [libata] Remove ->irq_ack() hook, and ata_dummy_irq_on() · 6d32d30f
      Jeff Garzik 提交于
      * ->irq_ack() is redundant to what the irq handler already
        performs... chk-status + irq-clear.  Furthermore, it is only
        called in one place, when screaming-irq-debugging is enabled,
        so we don't want to bother with a hook just for that.
      
      * ata_dummy_irq_on() is only ever used in drivers that have
        no callpath reaching ->irq_on().  Remove .irq_on hook from
        those drivers, and the now-unused ata_dummy_irq_on()
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      6d32d30f
    • T
      libata-link: linkify reset · cc0680a5
      Tejun Heo 提交于
      Make reset methods and related functions deal with ata_link instead of
      ata_port.
      
      * ata_do_reset()
      * ata_eh_reset()
      * all prereset/reset/postreset methods and related functions
      
      This patch introduces no behavior change.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      cc0680a5
    • T
      libata-link: linkify PHY-related functions · 936fd732
      Tejun Heo 提交于
      Make the following PHY-related functions to deal with ata_link instead
      of ata_port.
      
      * sata_print_link_status()
      * sata_down_spd_limit()
      * ata_set_sata_spd_limit() and friends
      * sata_link_debounce/resume()
      * sata_scr_valid/read/write/write_flush()
      * ata_link_on/offline()
      
      This patch introduces no behavior change.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      936fd732
    • T
      libata-link: introduce ata_link · 9af5c9c9
      Tejun Heo 提交于
      Introduce ata_link.  It abstracts PHY and sits between ata_port and
      ata_device.  This new level of abstraction is necessary to support
      SATA Port Multiplier, which basically adds a bunch of links (PHYs) to
      a ATA host port.  Fields related to command execution, spd_limit and
      EH are per-link and thus moved to ata_link.
      
      This patch only defines the host link.  Multiple link handling will be
      added later.  Also, a lot of ap->link derefences are added but many of
      them will be removed as each part is converted to deal directly with
      ata_link instead of ata_port.
      
      This patch introduces no behavior change.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Cc: James Bottomley <James.Bottomley@SteelEye.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      9af5c9c9
  10. 12 10月, 2007 1 次提交
    • J
      [libata] sata_mv: more S/G fixes · 6c08772e
      Jeff Garzik 提交于
      * corruption fix: we only want the lower 16 bits of length (0 == 64kb)
      
      * ditto: the upper layer sets max-phys-segments to LIBATA_MAX_PRD,
        so we must reset it to own hw-specific length.
      
      * delete unused mv_fill_sg() return value
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      6c08772e
  11. 10 10月, 2007 1 次提交
  12. 04 10月, 2007 1 次提交
  13. 31 8月, 2007 1 次提交
  14. 15 8月, 2007 1 次提交
  15. 20 7月, 2007 4 次提交
  16. 18 7月, 2007 1 次提交
  17. 13 7月, 2007 3 次提交
  18. 12 7月, 2007 2 次提交
  19. 10 7月, 2007 2 次提交