1. 24 Jul, 2008 26 commits
  2. 23 Jul, 2008 14 commits
    • Bartlomiej Zolnierkiewicz's avatar
      ide: add ide_host_free() helper (take 2) · 8a69580e
      Bartlomiej Zolnierkiewicz authored
      
      
      * Add ide_host_free() helper and convert ide_host_remove() to use it.
      
      * Fix handling of ide_host_register() failure in ide_host_add(),
        icside.c, ide-generic.c, falconide.c and sgiioc4.c.
      
      While at it:
      
      * Fix handling of ide_host_alloc_all() failure in ide-generic.c.
      
      * Fix handling of ide_host_alloc() failure in falconide.c
        (also return the correct error value if no device is found).
      
      v2:
      * falconide build fix. (From Stephen Rothwell)
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      8a69580e
    • Bartlomiej Zolnierkiewicz's avatar
      ide: add ide_host_add() helper · 6f904d01
      Bartlomiej Zolnierkiewicz authored
      
      
      Add ide_host_add() helper which does ide_host_alloc()+ide_host_register(),
      then convert ide_setup_pci_device[s](), ide_legacy_device_add() and some
      host drivers to use it.
      
      While at it:
      
      * Fix ide_setup_pci_device[s](), ide_arm.c, gayle.c, ide-4drives.c,
        macide.c, q40ide.c, cmd640.c and cs5520.c to return correct error value.
      
      * -ENOENT -> -ENOMEM in rapide.c, ide-h8300.c, ide-generic.c, au1xxx-ide.c
        and pmac.c
      
      * -ENODEV -> -ENOMEM in palm_bk3710.c, ide_platform.c and delkin_cb.c
      
      * -1 -> -ENOMEM in ide-pnp.c
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      6f904d01
    • Bartlomiej Zolnierkiewicz's avatar
      ide: add struct ide_host (take 3) · 48c3c107
      Bartlomiej Zolnierkiewicz authored
      
      
      * Add struct ide_host which keeps pointers to host's ports.
      
      * Add ide_host_alloc[_all]() and ide_host_remove() helpers.
      
      * Pass 'struct ide_host *host' instead of 'u8 *idx' to
        ide_device_add[_all]() and rename it to ide_host_register[_all]().
      
      * Convert host drivers and core code to use struct ide_host.
      
      * Remove no longer needed ide_find_port().
      
      * Make ide_find_port_slot() static.
      
      * Unexport ide_unregister().
      
      v2:
      * Add missing 'struct ide_host *host' to macide.c.
      
      v3:
      * Fix build problem in pmac.c (s/ide_alloc_host/ide_host_alloc/)
        (Noticed by Stephen Rothwell).
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      48c3c107
    • Bartlomiej Zolnierkiewicz's avatar
      ide: add struct ide_tp_ops (take 2) · 374e042c
      Bartlomiej Zolnierkiewicz authored
      
      
      * Add struct ide_tp_ops for transport methods.
      
      * Add 'const struct ide_tp_ops *tp_ops' to struct ide_port_info
        and ide_hwif_t.
      
      * Set the default hwif->tp_ops in ide_init_port_data().
      
      * Set host driver specific hwif->tp_ops in ide_init_port().
      
      * Export ide_exec_command(), ide_read_status(), ide_read_altstatus(),
        ide_read_sff_dma_status(), ide_set_irq(), ide_tf_{load,read}()
        and ata_{in,out}put_data().
      
      * Convert host drivers and core code to use struct ide_tp_ops.
      
      * Remove no longer needed default_hwif_transport().
      
      * Cleanup ide_hwif_t from methods that are now in struct ide_tp_ops.
      
      While at it:
      
      * Use struct ide_port_info in falconide.c and q40ide.c.
      
      * Rename ata_{in,out}put_data() to ide_{in,out}put_data().
      
      v2:
      
      * Fix missing convertion in ns87415.c.
      
      There should be no functional changes caused by this patch.
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      374e042c
    • Bartlomiej Zolnierkiewicz's avatar
      ide: filter out "default" transfer mode values in set_xfer_rate() · 3b2a5c71
      Bartlomiej Zolnierkiewicz authored
      
      
      * Filter out "default" transfer mode values (0x00 - default PIO mode,
        0x01 - default PIO mode w/ IORDY disabled) in write handler for obsoleted
        /proc/ide/hd?/settings:current_speed setting.
      
        Allowing "default" transfer mode values is a dangerous thing to do as
        we don't support programming controller to the "default" transfer mode
        and devices often use different values for the default and maximum PIO
        mode (i.e. PIO2 default and PIO4 maximum) so the controller will stay
        programmed for higher PIO mode while device will use the lower PIO mode.
      
        There is no functionality loss as by using special IOCTLs device can
        still be programmed to "default" transfer modes (it is only useful for
        debugging/testing purposes anyway).
      
      * Remove no longer needed IDE_HFLAG_ABUSE_SET_DMA_MODE host flag, it was
        previously used by few host drivers to program the controller to PIO0
        timings for "default" transfer mode == 0x01 (although some host drivers
        would program invalid PIO timings instead).
      
      * Cleanup ide_set_xfer_rate() and add BUG_ON().
      Suggested-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      3b2a5c71
    • Bartlomiej Zolnierkiewicz's avatar
      ide: remove dead Virtual DMA support · ba4b2e60
      Bartlomiej Zolnierkiewicz authored
      
      
      Lets remove dead Virtual DMA support for now so it doesn't clutter
      core IDE code (it can be bring back when there is a need for it):
      
      * Remove IDE_HFLAG_VDMA host flag.
      
      * Remove ide_drive_t.vdma flag.
      
      * cs5520.c: remove stale FIXMEs, cs5520_dma_host_set() and cs5520_dma_ops
        (also there is no longer a need to set IDE_HFLAG_NO_ATAPI_DMA).
      
      There should be no functional changes caused by this patch.
      
      Cc: TAKADA Yoshihito <takada@mbf.nifty.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      ba4b2e60
    • Bartlomiej Zolnierkiewicz's avatar
      ide: remove ->INB, ->OUTB and ->OUTBSYNC methods · 761052e6
      Bartlomiej Zolnierkiewicz authored
      
      
      * Remove no longer needed ->INB, ->OUTB and ->OUTBSYNC methods.
      
      Then:
      
      * Remove no longer used default_hwif_[mm]iops() and ide_[mm_]outbsync().
      
      * Cleanup SuperIO handling in ns87415.c.
      
      There should be no functional changes caused by this patch.
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      761052e6
    • Bartlomiej Zolnierkiewicz's avatar
      ide: use ->tf_read in ide_read_error() · 92eb4380
      Bartlomiej Zolnierkiewicz authored
      
      
      * Add IDE_TFLAG_IN_FEATURE taskfile flag for reading Feature
        register and handle it in ->tf_read.
      
      * Convert ide_read_error() to use ->tf_read instead of ->INB,
        then uninline and export it.
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      92eb4380
    • Bartlomiej Zolnierkiewicz's avatar
      ide: add ->set_irq method · 6e6afb3b
      Bartlomiej Zolnierkiewicz authored
      
      
      Add ->set_irq method for setting nIEN bit of ATA Device Control
      register and use it instead of ide_set_irq().
      
      While at it:
      
      * Use ->set_irq in init_irq() and do_reset1().
      
      * Don't use HWIF() macro in ide_check_pm_state().
      
      There should be no functional changes caused by this patch.
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      6e6afb3b
    • Bartlomiej Zolnierkiewicz's avatar
      ide: add ->read_altstatus method · 1f6d8a0f
      Bartlomiej Zolnierkiewicz authored
      
      
      * Remove ide_read_altstatus() inline helper.
      
      * Add ->read_altstatus method for reading ATA Alternate Status
        register and use it instead of ->INB.
      
      There should be no functional changes caused by this patch.
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      1f6d8a0f
    • Bartlomiej Zolnierkiewicz's avatar
      ide: add ->read_status method · b73c7ee2
      Bartlomiej Zolnierkiewicz authored
      
      
      * Remove ide_read_status() inline helper.
      
      * Add ->read_status method for reading ATA Status register
        and use it instead of ->INB.
      
      While at it:
      
      * Don't use HWGROUP() macro.
      
      There should be no functional changes caused by this patch.
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      b73c7ee2
    • Bartlomiej Zolnierkiewicz's avatar
      ide: add ->exec_command method · c6dfa867
      Bartlomiej Zolnierkiewicz authored
      
      
      Add ->exec_command method for writing ATA Command register
      and use it instead of ->OUTBSYNC.
      
      There should be no functional changes caused by this patch.
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      c6dfa867
    • Bartlomiej Zolnierkiewicz's avatar
      ide: factor out simplex handling from ide_pci_dma_base() · ebb00fb5
      Bartlomiej Zolnierkiewicz authored
      
      
      * Factor out simplex handling from ide_pci_dma_base() to
        ide_pci_check_simplex().
      
      * Set hwif->dma_base early in ->init_dma method / ide_hwif_setup_dma()
        and reset it in ide_init_port() if DMA initialization fails.
      
      * Use ->read_sff_dma_status instead of ->INB in ide_pci_dma_base().
      
      There should be no functional changes caused by this patch.
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      ebb00fb5
    • Bartlomiej Zolnierkiewicz's avatar
      ide: remove ide_setup_dma() · 81e8d5a3
      Bartlomiej Zolnierkiewicz authored
      
      
      Export sff_dma_ops and then remove ide_setup_dma().
      
      There should be no functional changes caused by this patch.
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      81e8d5a3