1. 14 Jun, 2004 4 commits
    • Jeff Garzik's avatar
      [libata] PCI IDE command-end/irq-acknowledge cleanup · 5ae20cc7
      Jeff Garzik authored
      Restruct default irq handler (used for many PCI IDE-like SATA
      controllers) to obtain device status and acknowledge interrupts
      a bit differently.
      
      In an attempt to better attack the "ich5 screaming interrupt" problem,
      acknowledge and clear the device's INTRQ by reading the Status register
      _before_ ack'ing the controller's irq status.  This is a deviation
      from how the Linux IDE driver acknowledges interrupts, but it may
      be the best method, since the ICH5 appears to continue to assert
      the interrupt bit in the BMDMA until the device INTRQ line is cleared.
      
      Of course, SATA has no INTRQ line per se, so ICH5 essentially has
      new interrupt behavior not seen before in the PCI IDE world, while
      pretending that it's compatible with PCI IDE.  Sigh.
      
      This change affects all SATA controllers (for which there are libata
      drivers) except for sata_promise and sata_sx4.
      5ae20cc7
    • Jeff Garzik's avatar
      [libata] PCI IDE DMA code shuffling · c2356212
      Jeff Garzik authored
      PCI IDE DMA standard (or "bmdma") helper routines ata_bmdma_stop,
      ata_bmdma_ack_irq, and ata_bmdma_status are added to linux/libata.h,
      and used in libata-core.
      
      There is a minor behavior change, such that, the Alt Status register
      is read before acknowledging the bmdma interrupt.  This should be ok,
      and furthermore there will be more significant behavior changes
      in this area coming soon.
      c2356212
    • Jeff Garzik's avatar
      [libata] don't probe from workqueue · 77ca20f2
      Jeff Garzik authored
      Since we want the probe phase to call other workqueues, this is
      required to eliminate future deadlocks.
      
      Other methods would include starting a single-shot thread just for
      probing, but overall, using a separate thread for probing is pointless
      since we are already in process context when we probe.
      
      So, we simply call ata_bus_probe directly.
      77ca20f2
    • Jeff Garzik's avatar
      Merge pobox.com:/spare/repo/linux-2.6 · 8b08e769
      Jeff Garzik authored
      into pobox.com:/spare/repo/libata-2.6
      8b08e769
  2. 13 Jun, 2004 10 commits
  3. 12 Jun, 2004 26 commits