1. 08 Apr, 2009 3 commits
    • Grant Grundler's avatar
      ide: remove wmb() from ide-dma-sff.c and scc_pata.c · edafcf73
      Grant Grundler authored
      This patch:
      o replaces "mask" variable in ide_dma_end() with #define.
      o removes use of wmb() in ide-dma-sff.c and scc_pata.c.
      o is not tested - I don't have (or want) the HW.
      Signed-off-by: default avatarGrant Grundler <grundler@google.com>
      Cc: KOBAYASHI Yoshitake <yoshitake.kobayashi@toshiba.co.jp>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      edafcf73
    • Geert Uytterhoeven's avatar
      ide: falconide/q40ide - Use __ide_mm_{in,out}sw() for data · d1881207
      Geert Uytterhoeven authored
      Both of commits f94116ae ("ide: cleanup
      <asm-m68k/ide.h>") and 15a453a9 ("ide: include
      <asm/ide.h> only when needed") break falconide:
      
      | Uniform Multi-Platform E-IDE driver
      | ide: Falcon IDE controller
      | Probing IDE interface ide0...
      | hda: Sarge m68k, ATA DISK drive
      | ide0 at 0xfff00000 on irq 15 (serialized)
      | ide-gd driver 1.18
      | hda: max request size: 128KiB
      | hda: 2118816 sectors (1084 MB) w/256KiB Cache, CHS=2102/16/63
      |  hda:<4>hda: lost interrupt
      
      This happens because falconide relies on {in,out}sw() being redefined in
      <asm/ide.h>, as included by <linux/ide.h>, which is no longer the case.
      Use __ide_mm_{in,out}sw() from <asm/ide.h> instead, just like
      ide_{in,out}put_data() do.
      
      The same problem seems to exist in q40ide.
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      d1881207
    • Geert Uytterhoeven's avatar
      ide: Fix host drivers that need IRQF_SHARED · aa07573b
      Geert Uytterhoeven authored
      commit 255115fb ("ide: allow host drivers to
      specify IRQ flags") added irq_flags fields to struct ide_port_info and struct
      ide_host.  Drivers can now set ide_port_info.irq_flags = IRQF_SHARED, while
      init_irq() passes ide_host.irq_flags to request_irq().
      
      Unfortunately ide_host.irq_flags is never set, causing (on ARAnyM):
      
      | Uniform Multi-Platform E-IDE driver
      | ide: Falcon IDE controller
      | Probing IDE interface ide0...
      | hda: Sarge m68k, ATA DISK drive
      | init_irq: sa = 0
      | ide0: disabled, unable to get IRQ 15
      | ide0: failed to initialize IDE interface
      | ide0: disabling port
      
      Solve this by copying ide_port_info.irq_flags to ide_host.irq_flags in
      ide_host_alloc().
      
      This bug probably affects the following IDE host drivers:
        - buddha
        - delkin_cb
        - falconide
        - gayle
        - ide-cs
        - macide
        - q40ide
        - scc_pata
        - sgiioc4
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      aa07573b
  2. 07 Apr, 2009 37 commits