02 Jul, 2007

1 commit

  • Recently the PLL input clock of pata_pdc2027x is sometimes detected
    higer than expected (e.g. 20.027 MHz compared to 16.714 MHz).
    It seems sometimes the mdelay() function is not as precise as it
    used to be. Per Alan's advice, HT or power management might affect
    the precision of mdelay().

    This patch calls gettimeofday() to mesure the time elapsed and
    calculate the PLL input clock accordingly.

    Signed-off-by: Albert Lee
    Cc: Alan Cox
    Signed-off-by: Jeff Garzik

    Albert Lee
     

01 May, 2007

1 commit

  • 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: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     

29 Apr, 2007

2 commits

  • Convert pdc_adma, pata_cs5520, pata_isapnp, pata_ixp4xx_cf,
    pata_legacy, pata_mpc52xx, pata_mpiix, pata_pcmcia, pata_pdc2027x,
    pata_platform, pata_qdi, pata_scc and pata_winbond to new init model.

    * init_one()'s now follow more consistent init order

    * cs5520 now registers one host with two ports, not two hosts. If any
    of the two ports are disabled, it's made dummy as other drivers do.

    Tested pdc_adma and pata_legacy. Both are as broken as before. The
    rest are compile tested only.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • Signed-off-by: Alan Cox

    Correct missing modefilter (crash if BAR4 unassigned)
    Use Cable Detect method
    Wrap ->set_mode instead ready for ->post_set_mode removal
    Maxtor errata as per Jeff Garzik report
    Remove duplicated private udma_mask hacking
    Signed-off-by: Jeff Garzik

    Alan Cox
     

26 Feb, 2007

1 commit


15 Feb, 2007

1 commit

  • The obsolete SA_xxx interrupt flags have been used despite the scheduled
    removal. Fixup the remaining users.

    Signed-off-by: Thomas Gleixner
    Acked-by: Ingo Molnar
    Cc: "Luck, Tony"
    Cc: Roman Zippel
    Cc: Geert Uytterhoeven
    Cc: Jeff Garzik
    Cc: Wim Van Sebroeck
    Cc: Roland Dreier
    Cc: Alessandro Zummo
    Cc: James Bottomley
    Cc: Greg KH
    Cc: Dave Airlie
    Cc: James Simmons
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     

10 Feb, 2007

3 commits

  • This patch is against each libata driver.

    Two IRQ calls are added in ata_port_operations.
    - irq_on() is used to enable interrupts.
    - irq_ack() is used to acknowledge a device interrupt.

    In most drivers, ata_irq_on() and ata_irq_ack() are used for
    irq_on and irq_ack respectively.

    In some drivers (ex: ahci, sata_sil24) which cannot use them
    as is, ata_dummy_irq_on() and ata_dummy_irq_ack() are used.

    Signed-off-by: Kou Ishizaki
    Signed-off-by: Akira Iguchi
    Signed-off-by: Jeff Garzik

    Akira Iguchi
     
  • Convert libata core layer and LLDs to use iomap.

    * managed iomap is used. Pointer to pcim_iomap_table() is cached at
    host->iomap and used through out LLDs. This basically replaces
    host->mmio_base.

    * if possible, pcim_iomap_regions() is used

    Most iomap operation conversions are taken from Jeff Garzik
    's iomap branch.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • Update libata LLDs to use devres. Core layer is already converted to
    support managed LLDs. This patch simplifies initialization and fixes
    many resource related bugs in init failure and detach path. For
    example, all converted drivers now handle ata_device_add() failure
    gracefully without excessive resource rollback code.

    As most resources are released automatically on driver detach, many
    drivers don't need or can do with much simpler ->{port|host}_stop().
    In general, stop callbacks are need iff port or host needs to be given
    commands to shut it down. Note that freezing is enough in many cases
    and ports are automatically frozen before being detached.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     

03 Dec, 2006

1 commit


02 Dec, 2006

1 commit


29 Nov, 2006

1 commit


29 Sep, 2006

1 commit


27 Sep, 2006

1 commit


25 Sep, 2006

1 commit


30 Aug, 2006

1 commit