1. 26 Mar, 2007 5 commits
    • Suleiman Souhlal's avatar
      ide: use correct IDE error recovery · 513daadd
      Suleiman Souhlal authored
      IDE error recovery is using IDLE IMMEDIATE if the drive is busy or has DRQ set.
      This violates the ATA spec (can only send IDLE IMMEDIATE when drive is not
      busy) and really hoses up some drives (modern drives will not be able to
      recover using this error handling).  The correct thing to do is issue a SRST
      followed by a SET FEATURES command.  This is what Western Digital recommends
      for error recovery and what Western Digital says Windows does.  It also does
      not violate the ATA spec as far as I can tell.
      
      Bart:
      * port the patch over the current tree
      * undo the recalibration code removal
      * send SET FEATURES command after checking for good drive status
      * don't check whether the current request is of REQ_TYPE_ATA_{CMD,TASK}
        type because we need to send SET FEATURES before handling any requests
      * some pre-ATA4 drives require INITIALIZE DEVICE PARAMETERS command before
        other commands (except IDENTIFY) so send SET FEATURES only if there are
        no pending drive->special requests
      * update comments and patch description
      * any bugs introduced by this patch are mine and not Suleiman's :-)
      Signed-off-by: default avatarSuleiman Souhlal <suleiman@google.com>
      Acked-by: default avatarAlan Cox <alan@redhat.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      513daadd
    • Albert Lee's avatar
      pdc202xx_new: Enable ATAPI DMA · 362ebd83
      Albert Lee authored
      [ bart: the ressurection of 2 years old patch which slipped thru the cracks
        (thanks to Sergei Shtylyov for finding it) ]
      
      These is the patch to turn on pdc202xx_new for ATAPI DMA.  When testing, it
      works fine without the (request_bufflen % 256) workaround as needed in libata.
      ide-scsi filters out (pc->request_transfer % 1024) and use PIO, so the pdc202xx
      ATAPI DMA problem is avoid.  Both ide-cd and ide-scsi won't hit the ATAPI DMA
      problem on pdc202xx_new.
      Signed-off-by: default avatarAlbert Lee <albertcc@tw.ibm.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      362ebd83
    • Patrick Ringl's avatar
      ide: cosmetic adaption of drivers/ide/Kconfig concerning SATA · b43c5f3d
      Patrick Ringl authored
      Since especially Serial ATA has it's own menu point now, I guess we can
      change the description of the deprecated SATA driver as well, since the
      new libATA subsystem is not configured through a SCSI low-level driver
      anymore, but has it's own menu point.
      
      From: Patrick Ringl <patrick_@freenet.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      b43c5f3d
    • Bartlomiej Zolnierkiewicz's avatar
      ide: fix locking for manual DMA enable/disable ("hdparm -d") · 87996204
      Bartlomiej Zolnierkiewicz authored
      Since hwif->ide_dma_check and hwif->ide_dma_on never queue any commands
      (ide_config_drive_speed() sets transfer mode using polling and has no error
      recovery) we are safe with setting hwgroup->busy for the time while DMA
      setting for a drive is changed (so it won't race against I/O commands in fly).
      
      I audited briefly all ->ide_dma_check/->ide_dma_on/->tuneproc/->speedproc
      implementations and they all look OK wrt to this change.
      
      This patch finally allowed me to close kernel bugzilla bug #8169
      (once again thanks to Patrick Horn for reporting the issue & testing patches).
      
      Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      87996204
    • Bartlomiej Zolnierkiewicz's avatar
      ide: revert "ide: fix drive side 80c cable check, take 2" for now · f68d9320
      Bartlomiej Zolnierkiewicz authored
      "ide: fix drive side 80c cable check, take 2" patch from Tejun Heo (commit
      fab59375) fixed 80c bit test (bit13 of word93)
      but we also need to fix master/slave IDENTIFY order (slave device should be
      probed first in order to make it release PDIAG- signal) and we should also
      check for pre-ATA3 slave devices (which may not release PDIAG- signal).
      
      [ Unfortunately the fact that IDE driver doesn't reset devices itself helps
        only a bit as it seems that some BIOS-es reset ATA devices after programming
        the chipset, some BIOS-es can be set to not probe/configure selected devices,
        there may be no BIOS in case of add-on cards etc. ]
      
      Since we are quite late in the release cycle and the required changes will
      affect a lot of systems just revert the fix for now.
      
      [ Please also see libata commit f31f0cc2. ]
      
      Thanks goes out to Fernando Mitio Yamada for reporting the problem
      and patiently testing patches.
      Acked-by: default avatarTejun Heo <htejun@gmail.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      f68d9320
  2. 25 Mar, 2007 4 commits
  3. 24 Mar, 2007 15 commits
  4. 23 Mar, 2007 16 commits