1. 23 Aug, 2005 7 commits
    • Tejun Heo's avatar
      [PATCH] libata: implement ata_poll_qc_complete and use it in polling functions · 40e8c82c
      Tejun Heo authored
      [PATCH libata-dev-2.6:upstream] implement ata_poll_qc_complete and use it in polling functions
      
       Previously, libata polling functions turned irq back on and completed
      qc commands without holding host lock.  This creates a race condition
      between the polling task and interrupts from other ports on the same
      host set or spurious interrupt from itself.
      
       This patch implements ata_poll_qc_complete which enables irq and
      completes qc atomically and convert all polling functions.
      
       Note: atapi_packet_task() didn't use to turn irq back on or clear
      ATA_FLAG_NOINTR on error exits.  This patch makes it use
      ata_poll_qc_complete which does both.
      
       Note: With this change, ALL invocations of ata_qc_complete() are now
      done under host_set lock.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
      40e8c82c
    • Tejun Heo's avatar
      [PATCH] fix atapi_packet_task vs. intr race (take 2) · c1389503
      Tejun Heo authored
      Interrupts from devices sharing the same IRQ could cause
      ata_host_intr to finish commands being processed by atapi_packet_task
      if the commands are using ATA_PROT_ATAPI_NODATA or ATA_PROT_ATAPI_DMA
      protocol.  This is because libata interrupt handler is unaware that
      interrupts are not expected during that period.  This patch adds
      ATA_FLAG_NOINTR flag to tell the interrupt handler that we're not
      expecting interrupts.
      
       Note that once proper HSM is implemented for interrupt-driven PIO,
      this should be merged into it and this flag will be removed.
      
       ahci.c is a different kind of beast, so it's left alone.
      
      * The following drivers use ata_qc_issue_prot and ata_interrupt, so
        changes in libata core will do.
      
        ata_piix sata_sil sata_svw sata_via sata_sis sata_uli
      
      * The following drivers use ata_qc_issue_prot and custom intr handler.
        They need this change to work correctly.
      
        sata_nv sata_vsc
      
      * The following drivers use custom issue function and intr handler.
        Currently all custom issue functions don't support ATAPI, so this
        change is irrelevant, updated for consistency and to avoid later
        mistakes.
      
        sata_promise sata_qstor sata_sx4
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
      c1389503
    • Martin Wilck's avatar
      [PATCH] Fix HD activity LED with ahci · c0b34ad2
      Martin Wilck authored
      Patch: fix wrong HD activity control by ahci driver
      
      The ahci driver 1.0 sets the SActive bit on every transaction,
      causing the LED to light up. The SActive bit is used only for
      native command queuing (NCQ) which the current driver version
      doesn't implement. Resetting the SActive bit is the device's
      responsibility (by sending a "Set Device Bits FIS" to the
      host adapter) but this is not required in response to
      non-NCQ commands, and (most) devices don't. Thus the LED
      stays always on. This patch fixes the LED behavior.
      
      Spec references:
      http://www.intel.com/technology/serialata/pdf/rev1_1.pdf, sec. 3.3.13, 5.5.1
      http://www.serialata.org/docs/serialata10a.pdf
      http://www.intel.com/design/storage/papers/25266401.pdf
      
      Signed-off-by: Martin.Wilck@fujitsu-siemens.com
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
      c0b34ad2
    • Daniel Drake's avatar
      [PATCH] sata_promise: Add PDC40519 id · 93090495
      Daniel Drake authored
      The Promise TX4200 is a 4-port SATA controller based on the PDC40519 chip. It
      meets the description of the 20319, so just a simple ID needs to be added to
      support this hardware. Thanks to Martin Povolný for testing.
      Signed-off-by: default avatarDaniel Drake <dsd@gentoo.org>
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
      93090495
    • Otto Meier's avatar
      [PATCH] sata_promise: Add PDC40718 id · 08b791c0
      Otto Meier authored
      Otto Meier recently submitted a patch to support the PDC40718 chip (marketed
      as SATA300 TX4, a 4-port SATA controller).
      Signed-off-by: default avatarOtto Meier <gf435@gmx.net>
      Signed-off-by: default avatarDaniel Drake <dsd@gentoo.org>
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
      08b791c0
    • Albert Lee's avatar
      [PATCH] libata: Clear ATA_QCFLAG_ACTIVE flag before calling the completion callback · 3f3791d3
      Albert Lee authored
      Description:
        After calling the completion callback, the libata error handler might be
      running and getting atapi sense data. Clearing the ATA_QCFLAG_ACTIVE flag
      at this point might interfere with the libata error handler.
      
      Changes:
         - Clear the ATA_QCFLAG_ACTIVE flag before calling the completion callback
           (and also before the error handler)
         - Add some comment
      Signed-off-by: default avatarAlbert Lee <albertcc@tw.ibm.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
      3f3791d3
    • Jeff Garzik's avatar
      443d0897
  2. 12 Aug, 2005 2 commits
  3. 11 Aug, 2005 2 commits
  4. 10 Aug, 2005 26 commits
  5. 09 Aug, 2005 3 commits