1. 10 7月, 2007 3 次提交
    • S
      ide: make void and rename ide_dma_timeout() method · c283f5db
      Sergei Shtylyov 提交于
      Since ide_dma_timeout() method's result is discarded, make it return 'void'.
      While at it, drop 'ide_' from the method's name, drop the '__' prefix from
      the default method's name, and do some cleanups in this method driver-wise:
      
      - in ide-dma.c, au1xxx-ide.c, and pdc202xx_old.c, define/use 'hwif' variable;
      
      - in au1xxx-ide.c, get rid of commented out printk();
      
      - in sl82c105.c, get rid of unnecessary variables.
      Signed-off-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      c283f5db
    • S
      ide: make void and rename ide_dma_lostirq() method · 841d2a9b
      Sergei Shtylyov 提交于
      Since ide_dma_lostirq() method's result is discarded, make it return 'void'.
      While at it, rename the method to dma_lost_irq(), drop the '__' prefix from the
      default method's name, and do some cleanups in this method driver-wise:
      
      - in aec62xx.c, rename the method in accordance with other drivers, and get rid
        of unnecessary variables there;
      
      - in pdc202xx_old.c, define/use 'hwif' variable;
      
      - in sgiioc4.c, rearrange the code to call the resetproc() method directly.
      Signed-off-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      841d2a9b
    • B
      serverworks: always tune CSB6 · b740d884
      Bartlomiej Zolnierkiewicz 提交于
      Switch the driver to always program DMA/PIO timings and set device transfer
      mode instead of trusting BIOS on CSB6 controllers (libata pata_serverworks.c
      driver is also doing things this way and there were no problems reported so
      far).  While doing conversion I noticed that the old code had many issues:
      
      * the code was assuming that hwif->dma_status is always valid
        (which obviously isn't true if hwif->dma_base == NULL)
      
      * value of "(ultra_timing >> (4*unit)) & ~(0xF0)" expression wasn't checked
        to fit into udma_modes[5]
      
      * code validating DMA timings didn't validate corresponding PIO timings
      
      * extra CSB5 PIO register wasn't validated et all
      
      * hwif->ide_dma_off_quietly() is always called before ide_set_dma() (which in
        turn calls hwif->speedproc() method - svwks_tune_chipset() in this case)
        so the code depending on DMA capable bit of DMA status to be set was never
        executed (=> the code was never validating DMA timings despite actually
        enabling DMA if the PIO timings were OK!)
      
      * on resume driver dependend entirely on BIOS to restore timings and set
        transfer mode on the device
      
      While at it:
      
      There is no need to read PIO/MWDMA timings now so don't do it.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      Acked-by: NAlan Cox <alan@lxorguk.ukuu.org.uk>
      b740d884
  2. 08 7月, 2007 2 次提交
  3. 04 7月, 2007 8 次提交
  4. 16 6月, 2007 1 次提交
  5. 08 6月, 2007 7 次提交
    • P
      ide: Add the MCP73/77 support to PATA driver · c1183a33
      Peer Chen 提交于
      Add the MCP73/MCP77 support to PATA driver.
      
      bart: Added amd74xx_chipsets[] and amd_pci_tbl[] entries.
      bart: Bumped driver version.
      Signed-off-by: NPeer Chen <peerchen@gmail.com>
      Cc: Alan Cox <alan@redhat.com>,
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Jeff Garzik <jeff@garzik.org>
      Cc: Tejun Heo <htejun@gmail.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      c1183a33
    • S
      hpt366: disallow Ultra133 for HPT374 · 278978e9
      Sergei Shtylyov 提交于
      Eliminate UltraATA/133 support for HPT374 -- the chip isn't capable of this mode
      according to the manual, and doesn't even seem to tolerate 66 MHz DPLL clock...
      Signed-off-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Cc: Geller Sandor <wildy@petra.hos.u-szeged.hu>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      278978e9
    • J
      ide: generic IDE PCI driver, add another device exception · ea307596
      Jiri Slaby 提交于
      generic IDE PCI driver, add another device exception
      
      This device is char device and is grabbed by generic ide driver:
      00:0b.0 Class ffff: National Semiconductor Corporation 87410 IDE (rev ff) (prog-if ff)
      	Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
      
      Disallow generic IDE PCI driver to grab it by adding next condition. Also
      consolidate exceptions to one bigger 'switch (dev->vendor)'.
      Signed-off-by: NJiri Slaby <jirislaby@gmail.com>
      Cc: Ingo Korb <ml@akana.de>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      ea307596
    • L
      ide: HPA detect from resume · 0d2157f7
      Lee Trager 提交于
      Currently when system which have HPA require HPA to be detected and
      disabled upon resume from RAM or disk. The current IDE drivers do not do
      this nor does libata (obviously it since it doesn't support HPA yet).
      
      I have implemented this into the current IDE drivers and it has been
      tested by many others since 7/15/2006 in bug number 6840:
      
      	http://bugzilla.kernel.org/show_bug.cgi?id=6840
      
      and it has been confirmed to work fine with no problems.
      
      bart: added drv != NULL check to generic_ide_suspend()
      
      From: Lee Trager <lt73@cs.drexel.edu>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      0d2157f7
    • B
      it821x: RAID mode fixes · 0380dad4
      Bartlomiej Zolnierkiewicz 提交于
      The DMA support for RAID mode broke after:
      
      	commit 71ef51cc
      	Author: Jens Axboe <axboe@suse.de>
      	Date:   Fri Jul 28 09:02:17 2006 +0200
      
      	    [PATCH] it821x: fix ide dma setup bug
      
      	    Only enable dma for a valid speed setting.
      
      	    Signed-off-by: Jens Axboe <axboe@suse.de>
      
      	commit 0a8348d0
      	Author: Jens Axboe <axboe@suse.de>
      	Date:   Fri Jul 28 08:58:26 2006 +0200
      
      	    [PATCH] ide: if the id fields looks screwy, disable DMA
      
      	    It's the safer choice. Originally due to a bug in itx821x, but a
      	    generally sound thing to do.
      
      	    Signed-off-by: Jens Axboe <axboe@suse.de>
      
      However it worked by pure luck before Jens' fixes: bogus ide_dma_enable()
      usage in it821x driver combined with loosy check in ide_dma_verbose() allowed
      the hardware to operate in DMA mode.  When these problems were fixed the DMA
      support broke...
      
      The source root for the regression turned out to be that the it821x.c code
      was clearing too much of id->field_valid.  The IDE core code was using the
      original value of id->field_valid to do the tuning but later DMA got disabled
      in ide_dma_verbose() because of the incorrect id->field_valid fixup.  Fix it.
      
      While at it:
      
      * Do fixup() after probing the drives but before tuning them (which is also
        OK w.r.t. ide_undecoded_slave() fixup).  This change fixes device IDENTIFY
        data to be consistent before/after the tuning and allows us to remove extra
        re-tuning of drives from it821x_fixups().
      
      * Fake MWDMA0 enabled/supported bits in IDENTIFY data if the device has
        DMA capable bit set (this is just to tell the IDE core that DMA is
        supported since it821x firmware takes care of DMA mode programming).
      
      * Don't touch timing registers and don't program transfer modes on devices
        et all when in RAID mode - depend solely on firmware to do the tuning
        (as suggested by Alan Cox and done in libata pata_it821x driver).
      
      Thanks for testing the patch goes out to Thomas Kuther.
      
      Cc: Thomas Kuther <gimpel@sonnenkinder.org>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Jens Axboe <axboe@suse.de>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      0380dad4
    • B
      serverworks: fix CSB6 tuning logic · 1abb8a8b
      Bartlomiej Zolnierkiewicz 提交于
      Problem noticed by Joe Zbiciak, see
      
      	http://kerneltrap.org/node/8252
      
      for details.
      
      On CSB6 the driver is using BIOS settings and not programming DMA/PIO timings
      itself.  However the logic was completely broken and resulted in wrong timings
      being silently allowed (instead of being corrected by the driver).
      
      This bug would explain some data corruption/timeout issues with Serverworks
      MegaIDE in RAID mode that Alan Cox has fixed recently with:
      
      http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=2074a106f52b6371885afbd714e929d60d0e3f64
      
      For 2.6.23 we may be better off with completely switching the driver to always
      programming timings (libata pata_serverworks.c driver is doing things this way
      and there were no problems reported so far) but for 2.6.22 lets fix the bug
      in the simplest and the least intrusive way.
      
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      1abb8a8b
    • B
      serverworks: remove crappy code · ed84fad5
      Bartlomiej Zolnierkiewicz 提交于
      Remove crappy code noticed by Linus, see
      
      	http://lkml.org/lkml/2007/5/23/476
      
      for details.
      
      While at it simplify logic a bit.
      
      There should be no functionality changes caused by this patch.
      
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      ed84fad5
  6. 24 5月, 2007 5 次提交
  7. 16 5月, 2007 14 次提交