1. 16 7月, 2008 4 次提交
  2. 29 4月, 2008 6 次提交
  3. 27 4月, 2008 8 次提交
    • B
      ide: add struct ide_io_ports (take 3) · 4c3032d8
      Bartlomiej Zolnierkiewicz 提交于
      * Add struct ide_io_ports and use it instead of `unsigned long io_ports[]`
        in ide_hwif_t.
      
      * Rename io_ports[] in hw_regs_t to io_ports_array[].
      
      * Use un-named union for 'unsigned long io_ports_array[]' and 'struct
        ide_io_ports io_ports' in hw_regs_t.
      
      * Remove IDE_*_OFFSET defines.
      
      v2:
      * scc_pata.c build fix from Stephen Rothwell.
      
      v3:
      * Fix ctl_adrr typo in Sparc-specific part of ns87415.c.
        (Noticed by Andrew Morton)
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      4c3032d8
    • B
      ide: make ide_unregister() take 'ide_hwif_t *' as an argument (take 2) · 387750c3
      Bartlomiej Zolnierkiewicz 提交于
      * Make ide_unregister() take 'ide_hwif_t *hwif' instead of 'unsigned int
        index' (hwif->index) as an argument and update all users accordingly.
      
      While at it:
      
      * Remove unnecessary checks for hwif != NULL from ide-pnp.c::idepnp_remove()
        and delkin_cb.c::delkin_cb_remove().
      
      * Remove needless hwif->chipset assignment from scc_pata.c::scc_remove().
      
      v2:
      * Fixup ide_unregister() documentation.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      387750c3
    • B
      ide: constify struct ide_dma_ops · f37afdac
      Bartlomiej Zolnierkiewicz 提交于
      * Export ide_dma_exec_cmd() and __ide_dma_test_irq().
      
      * Constify struct ide_dma_ops.
      
      * Always set hwif->dma_ops to &sff_dma_ops in ide_setup_dma()
        (it is later overriden by ide_init_port() if needed) and drop
        'const struct ide_port_info *d' argument.
      
      While at it:
      
      * Rename __ide_dma_test_irq() to ide_dma_test_irq().
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      f37afdac
    • B
      ide: add struct ide_dma_ops (take 3) · 5e37bdc0
      Bartlomiej Zolnierkiewicz 提交于
      Add struct ide_dma_ops and convert core code + drivers to use it.
      
      While at it:
      
      * Drop "ide_" prefix from ->ide_dma_end and ->ide_dma_test_irq methods.
      
      * Drop "ide_" "infixes" from DMA methods.
      
      * au1xxx-ide.c:
        - use auide_dma_{test_irq,end}() directly in auide_dma_timeout()
      
      * pdc202xx_old.c:
        - drop "old_" "infixes" from DMA methods
      
      * siimage.c:
        - add siimage_dma_test_irq() helper
        - print SATA warning in siimage_init_one()
      
      * Remove no longer needed ->init_hwif implementations.
      
      v2:
      * Changes based on review from Sergei:
        - s/siimage_ide_dma_test_irq/siimage_dma_test_irq/
        - s/drive->hwif/hwif/ in idefloppy_pc_intr().
        - fix patch description w.r.t. au1xxx-ide changes
        - fix au1xxx-ide build
        - fix naming for cmd64*_dma_ops
        - drop "ide_" and "old_" infixes
        - s/hpt3xxx_dma_ops/hpt37x_dma_ops/
        - s/hpt370x_dma_ops/hpt370_dma_ops/
        - use correct DMA ops for HPT302/N, HPT371/N and HPT374
        - s/it821x_smart_dma_ops/it821x_pass_through_dma_ops/
      
      v3:
      * Two bugs slipped in v2 (noticed by Sergei):
        - use correct DMA ops for HPT374 (for real this time)
        - handle HPT370/HPT370A properly
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      5e37bdc0
    • B
      ide: remove ->cds field from ide_hwif_t (take 2) · 5e59c236
      Bartlomiej Zolnierkiewicz 提交于
      * Use hwif->name instead of cds->name in ide_allocate_dma_engine().
      
      * Use pci_name(dev) instead of cds->name in init_dma_pdc202xx().
      
      * Remove no longer needed ->cds field from ide_hwif_t.
      
      v2:
      
      * scc_pata.c also needs to be updated now (noticed by Stephen Rothwell).
      
      There should be no functional changes caused by this patch.
      
      Cc: Kou Ishizaki <kou.ishizaki@toshiba.co.jp>
      Cc: Akira Iguchi <akira2.iguchi@toshiba.co.jp>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      5e59c236
    • H
      ide: replace remaining __FUNCTION__ occurrences · eb63963a
      Harvey Harrison 提交于
      __FUNCTION__ is gcc-specific, use __func__
      
      [bart: fix checkpatch.pl errors in ide-lib.c and ppc/mpc8xx.c while at it]
      Signed-off-by: NHarvey Harrison <harvey.harrison@gmail.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      eb63963a
    • B
      ide: manage resources for PCI devices in ide_pci_enable() (take 3) · 0d1bad21
      Bartlomiej Zolnierkiewicz 提交于
      * Reserve PCI BARs 0-3 (0-1 for single port controllers) in
        ide_pci_enable() and remove ide_hwif_request_regions() call
        from ide_device_add_all() (also cleanup resource management
        in scc_pata host driver).
      
      * Fix handling of PCI BAR 4 in ide_pci_enable(), then cleanup
        ide_iomio_dma() (+ init_hwif_trm290() in trm290 host driver)
        and remove ide_release[_iomio]_dma().
      
      v2:
      * Fixup trm290 host driver.
      
      v3:
      * Because of scc_pata host driver changes we need to call
        pci_request_selected_regions() also in setup_mmio_scc().
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      0d1bad21
    • B
      ide: add struct ide_port_ops (take 2) · ac95beed
      Bartlomiej Zolnierkiewicz 提交于
      * Move hooks for port/host specific methods from ide_hwif_t to
        'struct ide_port_ops'.
      
      * Add 'const struct ide_port_ops *port_ops' to 'struct ide_port_info'
        and ide_hwif_t.
      
      * Update host drivers and core code accordingly.
      
      While at it:
      
      * Rename ata66_*() cable detect functions to *_cable_detect() to match
        the standard naming. (Suggested by Sergei Shtylyov)
      
      v2:
      * Fix build for bast-ide. (Noticed by Andrew Morton)
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      ac95beed
  4. 26 4月, 2008 3 次提交
  5. 18 4月, 2008 3 次提交
    • B
      ide: remove IDE_*_REG macros · 23579a2a
      Bartlomiej Zolnierkiewicz 提交于
      * Add IDE_{ALTSTATUS,IREASON,BCOUNTL,BCOUNTH}_OFFSET defines.
      
      * Remove IDE_*_REG macros - this results in more readable
        and slightly smaller code.
      
      There should be no functional changes caused by this patch.
      
      Cc: Borislav Petkov <petkovbb@gmail.com>
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      23579a2a
    • A
      scc_pata.c: do setup itself instead of ide_setup_pci_device() · 3d53ba87
      Akira Iguchi 提交于
      scc_pata has the different BAR configuration and using ide_setup_pci_device()
      is inappropriate. 
      
      (ide_setup_pci_device() expects a normal PCI IDE controller with
      BAR0..BAR3 either non-existant or being primary/secondary port bases
      in I/O space.)
      
      This patch do all needed setup itself instead of calling ide_setup_pci_device().
      
      [bart: minor checkpatch.pl fixes]
      Signed-off-by: NKou Ishizaki <kou.ishizaki@toshiba.co.jp>
      Signed-off-by: NAkira Iguchi <akira2.iguchi@toshiba.co.jp>
      Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      3d53ba87
    • B
      ide: remove broken/dangerous HDIO_[UNREGISTER,SCAN]_HWIF ioctls (take 3) · 93de00fd
      Bartlomiej Zolnierkiewicz 提交于
      hdparm explicitely marks HDIO_[UNREGISTER,SCAN]_HWIF ioctls as DANGEROUS
      and given the number of bugs we can assume that there are no real users:
      
      * DMA has no chance of working because DMA resources are released by
        ide_unregister() and they are never allocated again.
      
      * Since ide_init_hwif_ports() is used for ->io_ports[] setup the ioctls
        don't work for almost all hosts with "non-standard" (== non ISA-like)
        layout of IDE taskfile registers (there is a lot of such host drivers).
      
      * ide_port_init_devices() is not called when probing IDE devices so:
        - drive->autotune is never set and IDE host/devices are not programmed
          for the correct PIO/DMA transfer modes (=> possible data corruption)
        - host specific I/O 32-bit and IRQ unmasking settings are not applied
          (=> possible data corruption)
        - host specific ->port_init_devs method is not called (=> no luck with
          ht6560b, qd65xx and opti621 host drivers)
      
      * ->rw_disk method is not preserved (=> no HPT3xxN chipsets support).
      
      * ->serialized flag is not preserved (=> possible data corruption when
         using icside, aec62xx (ATP850UF chipset), cmd640, cs5530, hpt366
         (HPT3xxN chipsets), rz1000, sc1200, dtc2278 and ht6560b host drivers).
      
      * ->ack_intr method is not preserved (=> needed by ide-cris, buddha,
        gayle and macide host drivers).
      
      * ->sata_scr[] and sata_misc[] is cleared by ide_unregister() and it
        isn't initialized again (SiI3112 support needs them).
      
      * To issue an ioctl() there need to be at least one IDE device present
        in the system.
      
      * ->cable_detect method is not preserved + it is not called when probing
        IDE devices so cable detection is broken (however since DMA support is
        also broken it doesn't really matter ;-).
      
      * Some objects which may have already been freed in ide_unregister()
        are restored by ide_hwif_restore() (i.e. ->hwgroup).
      
      * ide_register_hw() may unregister unrelated IDE ports if free ide_hwifs[]
        slot cannot be found.
      
      * When IDE host drivers are modular unregistered port may be re-used by
        different host driver that owned it first causing subtle bugs.
      
      Since we now have a proper warm-plug support remove these ioctls,
      then remove no longer needed:
      - ide_register_hw() and ide_hwif_restore() functions
      - 'init_default' and 'restore' arguments of ide_unregister()
      - zeroeing of hwif->{dma,extra}_* fields in ide_unregister()
      
      As an added bonus IDE core code size shrinks by ~3kB (x86-32).
      
      v2:
      * fix ide_unregister() arguments in cleanup_module() (Andrew Morton).
      
      v3:
      * fix ide_unregister() arguments in palm_bk3710.c.
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      93de00fd
  6. 03 2月, 2008 4 次提交
    • B
      ide: fix ide_unregister() usage in host drivers · 909f4369
      Bartlomiej Zolnierkiewicz 提交于
      bast-ide.c/ide-cs.c/delkin_cb.c:
      
      * Don't set 'restore' flag for ide_unregister() when initializing new
        interface.
      
      rapide.c/ide-pnp.c/ide-cs.c/ide_platform.c/au1xxx-ide.c/delkin_cb.c/scc_pata.c:
      
      * Don't set 'init_default' and 'restore' flags for ide_unregister() when
        removing interface.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      909f4369
    • B
      ide: add 'init_default' and 'restore' arguments to ide_unregister() · f82c2b17
      Bartlomiej Zolnierkiewicz 提交于
      * Add 'init_default' (flag for calling init_hwif_default()) and 'restore'
        (flag for calling ide_hwif_restore()) arguments to ide_unregister().
      
      * Update ide_unregister() users to set 'init_default' and 'restore' flags.
      
      * No need to set 'init_default' flag in ide_register_hw() if the setup done
        by init_hwif_default() is going to be overridden by ide_init_port_hw().
      
      * No need to set 'init_default' and 'restore' flags in cleanup_module().
      
      There should be no functionality changes caused by this patch.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      f82c2b17
    • B
      ide: add ->cable_detect method to ide_hwif_t · bfa14b42
      Bartlomiej Zolnierkiewicz 提交于
      * Add ->cable_detect method to ide_hwif_t.
      
      * Call the new method in ide_init_port() if:
        - the host supports UDMA modes > UDMA2 ('hwif->ultra_mask & 78')
        - DMA initialization was successful (if hwif->dma_base is not set
          ide_init_port() sets hwif->ultra_mask to zero)
        - "idex=ata66" is not used ('hwif->cbl != ATA_CBL_PATA40_SHORT')
      
      * Convert PCI host drivers to use ->cable_detect method.
      
      While at it:
      
      * Factor out cable detection to separate functions (if not already done).
      
      * hpt366.c/it8213.c/slc90e66.c:
        - don't check cable type if "idex=ata66" is used
      
      * pdc202xx_new.c:
        - add __devinit tag to pdcnew_cable_detect()
      
      * pdc202xx_old.c:
        - rename pdc202xx_old_cable_detect() to pdc2026x_old_cable_detect()
        - add __devinit tag to pdc2026x_old_cable_detect()
      Reviewed-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      bfa14b42
    • B
      atiixp/cs5535/scc_pata: fix "idex=ata66" parameter handling · b4d1c73d
      Bartlomiej Zolnierkiewicz 提交于
      Don't override the cable type if the "idex=ata66" parameter was used.
      
      While at it:
      
      * atiixp.c: factor out cable detection to atiixp_cable_detect() from
        init_hwif_atiixp().
      
      * cs5535.c: pass 'ide_hwif_t *hwif' instead of 'struct pci_dev *dev' to
        cs5535_cable_detect().
      
      * scc_pata.c: factor out cable detection to scc_cable_detect() from
        init_hwif_scc() and remove incorrect comment.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      b4d1c73d
  7. 02 2月, 2008 1 次提交
  8. 26 1月, 2008 1 次提交
    • B
      ide: add IDE_HFLAG_ABUSE_SET_DMA_MODE host flag · 4db90a14
      Bartlomiej Zolnierkiewicz 提交于
      * Add IDE_HFLAG_ABUSE_SET_DMA_MODE host flag and use it to decide
        what to do with transfer modes < XFER_PIO_0 in ide_set_xfer_rate().
      
      * Set IDE_HFLAG_ABUSE_SET_DMA_MODE in host drivers that need it
        (aec62xx, amd74xx, cs5520, cs5535, hpt34x, hpt366, pdc202xx_old,
        serverworks, tc86c001 and via82cxxx) and cleanup ->set_dma_mode
        methods in host drivers that don't (IDE core code guarantees that
        ->set_dma_mode will be called only for modes which are present
        in SWDMA/MWDMA/UDMA masks).
      
      While at it:
      
      * Add IDE_HFLAGS_HPT34X/HPT3XX/PDC202XX/SVWKS define in
        hpt34x/hpt366/pdc202xx_old/serverworks host driver.
      
      There should be no functionality changes caused by this patch.
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      4db90a14
  9. 20 10月, 2007 2 次提交
  10. 19 10月, 2007 6 次提交
  11. 17 10月, 2007 2 次提交
    • B
      ide: remove hwif->autodma and drive->autodma · 9ff6f72f
      Bartlomiej Zolnierkiewicz 提交于
      * hpt34x.c: disable DMA masks for HPT345
        (hwif->autodma is zero so DMA won't be enabled anyway).
      
      * trm290.c: disable IDE_HFLAG_TRUST_BIOS_FOR_DMA flag
        (hwif->autodma is zero so DMA won't be enabled anyway).
      
      * Check noautodma global variable instead of drive->autodma in ide_tune_dma().
      
        This fixes handling of "ide=nodma" kernel parameter for icside, ide-cris,
        au1xxx-ide, pmac, it821x, jmicron, sgiioc4 and siimage host drivers.
      
      * Remove hwif->autodma (it was not checked by IDE core code anyway) and
        drive->autodma (was set by all host drivers - except HPT345/TRM290 special
        cases - unless "ide=nodma" was used).
      
      While at it:
      - remove needless printk() from icside.c
      - remove stale FIXME/comment from ide-probe.c
      - don't force DMA off if PCI bus-mastering had to be enabled in setup-pci.c
        (this setting was always later over-ridden by host drivers anyway)
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      9ff6f72f
    • B
      ide: use PCI_VDEVICE() macro · 9cbcc5e3
      Bartlomiej Zolnierkiewicz 提交于
      While at it:
      - make struct pci_device_id tables const
      - use PCI_DEVICE_ID_ITE_8213 define in it8213.c
      - fix comment in generic.c
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      9cbcc5e3