1. 17 Feb, 2007 9 commits
    • Kou Ishizaki's avatar
      drivers/ide: PATA driver for Celleb · bde18a2e
      Kou Ishizaki authored
      This is the patch (based on 2.6.19-rc4) for PATA controller of
      Toshiba Cell reference set(Celleb). The reference set consists
      of Cell, 512MB memory, Super Companion Chip(SCC) and some
      peripherals such as HDD, GbE, etc. You can see brief explanation
      and picture of Cell reference set at following URLs.
      
          http://www.toshiba.co.jp/about/press/2005_09/pr2001.htm
          http://cell-industries.com/toshiba_announces.php
      
      We use a drivers/ide driver because its design is more suitable for
      SCC IDE controller than libata driver. Since SCC supports only 32bit
      read/write, we must override many callbacks of ata_port_operations
      by modifying generic helpers. Each time the libata common code is
      updated, we must update those modified helpers. It is very hard for us.
      But we will try to implement the libata driver as needed.
      
      Signed-off-by: Kou Ishizaki <kou.ishizaki at toshiba.co.jp>
      Signed-off-by: Akira Iguchi <akira2.iguchi at toshiba.co.jp>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      bde18a2e
    • Sergei Shtylyov's avatar
      sl82c105: DMA support fixes · ea266ba1
      Sergei Shtylyov authored
      Fix a number of issues with the DMA support code:
      
      - driver claims support for all SW/MW DMA modes while supporting only MWDMA2;
      
      - ide_dma_check() method tries to enable DMA on the "known good" drives which
        don't support MWDMA2;
      
      - ide_dma_on() method upon failure to set drive to MWDMA2 re-tunes already
        tuned PIO mode and calls ide_dma_off() method instead of returning error;
      
      - ide_dma_off() method sets drive->current_speed while it doesn't actually
        change (only the PIO timings are re-loaded into the chip's registers);
      
      - init_hwif() method forcibly sets/resets both "drive DMA capable" bits while
        this is properly handled by ide_dma_{on,off}() methods being called later...
      Signed-off-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      ea266ba1
    • Sergei Shtylyov's avatar
      pdc202xx_old: fix PIO mode setup · fed21641
      Sergei Shtylyov authored
      Fix the driver's tuneproc() method to always set the PIO mode requested and not
      pick the best possible one, rename it to pdc202xx_tune_drive(), and change the
      calls to it accordingly; remove the preceding comment which has nothing to do
      with the code.
      
      Sergei Shtylyov wrote:
      >     The tuneproc() method should take arg 255 for auto-selecting the best PIO
      > mode, not 5 as it did here + this driver's method always auto-selected instead
      > of setting the mode it's been told to -- issue typical to drivers/ide/...
      Signed-off-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      fed21641
    • Sergei Shtylyov's avatar
      siimage: PIO1/2 taskfile transfer overclocking fix · 075cb655
      Sergei Shtylyov authored
      Fix two typos found by SiI680A documentation check.  They caused the taskfile
      transfer overclocking:
      
      - in PIO mode 1 as 0x2283 must be used for both data and taskfile transfers;
      
      - in PIO mode 2 as data and taskfile timings are swapped when writing to the
        MMIO regs.
      
      Fix coding style and trailing whitespace in enclosing statements while at it...
      Signed-off-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      
       drivers/ide/pci/siimage.c |   59 ++++++++++++++++++++++------------------------
       1 file changed, 29 insertions(+), 30 deletions(-)
      075cb655
    • Albert Lee's avatar
      ide: remove clearing bmdma status from cdrom_decode_status() (rev #4) · 6e6cd4c4
      Albert Lee authored
      patch 2/2:
        Remove clearing bmdma status from cdrom_decode_status() since ATA devices
        might need it as well.
      
        (http://lkml.org/lkml/2006/12/4/201 and http://lkml.org/lkml/2006/11/15/94)
      Signed-off-by: default avatarAlbert Lee <albertcc@tw.ibm.com>
      Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: "Adam W. Hawks" <awhawks@us.ibm.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      6e6cd4c4
    • Albert Lee's avatar
      ide: clear bmdma status in ide_intr() for ICHx controllers (revised #4) · f0dd8712
      Albert Lee authored
      patch 1/2 (revised):
      - Fix drive->waiting_for_dma to work with CDB-intr devices.
      - Do the dma status clearing in ide_intr() and add a new
        hwif->ide_dma_clear_irq for Intel ICHx controllers.
      
      Revised per Alan, Sergei and Bart's advice.
      
      Patch against 2.6.20-rc6. Tested ok on my ICH4 and pdc20275 adapters.
      Please review/apply, thanks.
      Signed-off-by: default avatarAlbert Lee <albertcc@tw.ibm.com>
      Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: "Adam W. Hawks" <awhawks@us.ibm.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      f0dd8712
    • Alan Cox's avatar
      ide-floppy: Fix unformatted media crash · fdb77da4
      Alan Cox authored
      A ZIP or similar with unformatted media will cause crashes when attempts
      are made to read/write it in some cases. This is because bs_factor is
      zero and we divide by it causing an oops.
      
      As the size of a non-accessible/non-existant media is really a bit of a
      zen question it doesn't matter if non-existant media is 512 bytes per
      sector or zero. Setting it to 1 causes us to generate 512 bytes/sector
      accesses and error properly.
      
      Based on a fix found lurking in an ancient bugzilla entry since about 2004 (ugghhh)
      Signed-off-by: default avatarAlan Cox <alan@redhat.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      fdb77da4
    • Bartlomiej Zolnierkiewicz's avatar
      atiixp/jmicron/triflex: fix PIO fallback · 39baf8a7
      Bartlomiej Zolnierkiewicz authored
      * atiixp: if DMA can't be used atiixp_config_drive_for_dma() should return 0,
        atiixp_dma_check() will tune the correct PIO mode anyway
      
      * jmicron: if DMA can't be used config_chipset_for_dma() should return 0,
        micron_config_drive_for_dma() will tune the correct PIO mode anyway
      
        config_jmicron_chipset_for_pio(drive, !speed) doesn't program
        device transfer mode for speed != 0 (only wastes some CPU cycles
        on ide_get_best_pio_mode() call) so remove it
      
      * triflex: if DMA can't be used triflex_config_drive_for_dma() should return 0,
        triflex_config_drive_xfer_rate() will tune correct PIO mode anyway
      
      Above changes also fix (theoretical) issue when ->speedproc fails to set
      device transfer mode (i.e. when ide_config_drive_speed() fails to program it)
      but one of DMA transfer modes is already enabled on the device by the BIOS.
      In such scenario ide_dma_enable() will incorrectly return true statement
      and ->ide_dma_check will try to enable DMA on the device.
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      39baf8a7
    • Bartlomiej Zolnierkiewicz's avatar
      hpt34x: hpt34x_tune_chipset() (->speedproc) fix · 296d9bcc
      Bartlomiej Zolnierkiewicz authored
      * remember to clear reg2 bits for the current device before setting mode
      * remove no longer needed hpt34x_clear_chipset()
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      296d9bcc
  2. 16 Feb, 2007 31 commits