1. 17 Mar, 2007 7 commits
    • Bartlomiej Zolnierkiewicz's avatar
      ide: remove CONFIG_IDEDMA_{ICS,PCI}_AUTO config options · 120b9cfd
      Bartlomiej Zolnierkiewicz authored
      
      
      All modern distributions have been setting these options to "y" for ages.
      (additionally "n" cases have been obsoleted for few years).  Therefore use
      DMA by default and remove CONFIG_IDEDMA_{ICS,PCI}_AUTO (also remove no longer
      needed CONFIG_IDEDMA_AUTO).  This fixes DMA support for rare configurations
      where CONFIG_IDEDMA_{ICS,PCI}_AUTO was set to "n" but "hdparm -d 1" was used
      to enable DMA support and which were forced to PIO mode by "ide: don't allow
      DMA to be enabled if CONFIG_IDEDMA_{ICS,PCI}_AUTO=n" patch.  There is no
      functionality loss because "ide=nodma" kernel option is still available.
      
      Cc: Patrick Horn <phrh@yahoo.com>
      Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
      Cc: Russell King <rmk+lkml@arm.linux.org.uk>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      120b9cfd
    • Bartlomiej Zolnierkiewicz's avatar
      ide: don't allow DMA to be enabled if CONFIG_IDEDMA_{ICS,PCI}_AUTO=n · 6f5050a9
      Bartlomiej Zolnierkiewicz authored
      
      
      For CONFIG_IDEDMA_{ICS,PCI}_AUTO=n and/or "ide=nodma" option the host/device
      are not programmed for DMA and it is also explicitly disabled by ide_set_dma()
      (->ide_dma_check returns "-1").  However the code responsible for manually
      enabling DMA ("hdparm -d 1") has a bug which results in DMA being erroneously
      enabled - ide_set_dma() incorrectly passes "0" return value to set_using_dma().
      This may work if BIOS/firmware configured the host/device for DMA and chipset
      allows independent configuration of DMA/PIO modes but won't work after suspend
      and is generally unsafe on many chipsets (possibly including data corruption
      if the same registers are used for DMA/PIO timings).
      
      This patch fixes kernel bugzilla bug #8169 (piix host driver fixes for
      setting PIO mode exposed the problem described above).  The side-effect of
      the fix is that some rare configuration may be forced to PIO mode when DMA
      mode was previously used - this is addressed by the next patch which removes
      CONFIG_IDEDMA_{PCI,ICS}_AUTO config option completely.
      
      Thanks goes out to Patrick Horn for reporting the issue, narrowing it down
      to the specific commit and testing the fix.  Also thanks to Sergei Shtylyov
      for help in debugging the problem.
      
      Cc: Patrick Horn <phrh@yahoo.com>
      Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
      Cc: Russell King <rmk+lkml@arm.linux.org.uk>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      6f5050a9
    • Kou Ishizaki's avatar
      scc_pata: dependency fix · a1067db8
      Kou Ishizaki authored
      
      
      This patch fixes:
      * the dependency of scc_pata on BLK_DEV_IDEDMA_PCI
      * incorrect link to ide-core
      * move scc_pata from ide/ppc to ide/pci
      
      Signed-off-by: default avatarKou Ishizaki <kou.ishizaki@toshiba.co.jp>
      Signed-off-by: default avatarAkira Iguchi <akira2.iguchi@toshiba.co.jp>
      Cc: Al Viro <viro@ftp.linux.org.uk>,
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      a1067db8
    • Tejun Heo's avatar
      jmicron: make ide jmicron driver play nice with libata ones · ebbc2031
      Tejun Heo authored
      
      
      When libata is configured, the device is configured such that SATA and
      PATA ports live in separate functions with different programming
      interfaces.  pata_jmicron and ide jmicron drivers can drive only the
      PATA part.
      
      This patch makes jmicron match PCI class code such that it doesn't
      attach itself to the SATA part preventing the proper ahci driver from
      attaching.
      
      This change is suggested by Bartlomiej.
      
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Cc: Jeff Garzik <jeff@garzik.org>
      Cc: justin@jmicron.com
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      ebbc2031
    • Daniel Mack's avatar
      ide: remove static prototypes from include/asm-mips/mach-au1x00/au1xxx_ide.h · 9c67cd14
      Daniel Mack authored
      
      
      This patch removes the static prototypes from the au1xxx_ide.h, some of
      them were not even implemented. Also, they caused build breakage since
      they differed from the functions actually implemented in
      drivers/ide/mips/au1xxx-ide.c.
      
      Signed-off-by: default avatarDaniel Mack <daniel@caiaq.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      9c67cd14
    • Ralf Baechle's avatar
      ide: au1xxx: fix use of mixed declarations and code · 1918fd63
      Ralf Baechle authored
      
      
      drivers/ide/mips/au1xxx-ide.c:684: warning: ISO C90 forbids mixed declarations and code
      
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      1918fd63
    • Sergei Shtylyov's avatar
      cmd64x: fix recovery time calculation (take 3) · e277a1aa
      Sergei Shtylyov authored
      
      
      The driver wrongly takes the address setup time into account when calculating
      the PIO recovery time -- this leads to slight overclocking of the PIO modes 0
      and 1 (so, the prayers failed to help, as usual :-).  Rework the code to be
      calculating recovery clock count as a difference between the total cycle count
      and the active count (we don't need to calculate the recovery time itself since
      it's not specified for the PIO modes 0 to 2, and for modes 3 and 4 this formula
      gives enough recovery time anyway in the chip's supported PCI frequency range).
      
      This patch has been inspired by reading the datasheets and looking at what the
      libata driver does; it has been compile-tested only (as usual :-) but anyway,
      the new code gives the same or longer recovery times than the old one...
      
      Signed-off-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      e277a1aa
  2. 16 Mar, 2007 33 commits