aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide
Commit message (Collapse)AuthorAge
* ali14xx: fix deadlock on error handlingBartlomiej Zolnierkiewicz2007-10-19
| | | | | | | | | | Stop abusing ide_lock lock by switching to a private locking. Fixes same issue as fixed by Alan Cox in atiixp host driver with commit 6c5f8cc33eb2e10b6ab788bbe259fc142a068627. Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: constify struct ide_port_infoBartlomiej Zolnierkiewicz2007-10-19
| | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: replace ide_pci_device_t by struct ide_port_infoBartlomiej Zolnierkiewicz2007-10-19
| | | | | | | | | | | | | | | | * Rename struct ide_pci_device_s to struct ide_port_info. * Remove ide_pci_device_t typedef. While at it: * Fix __ide_pci_register_driver() comment. * Fix aec62xx_init_one() comment. * Remove unused 'cds' field from ide_hwgroup_t. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* via82cxxx: keep local ide_pci_device_t copyBartlomiej Zolnierkiewicz2007-10-19
| | | | | | | | | | | | | | | * Keep local ide_pci_device_t copy in via_init_one(). * Adjust ide_pci_device_t copy according to id->driver_data in via_init_one() and remove no longer needed second via82cxxx_chipsets[] entry. * via82cxxx_chipsets[] -> via82cxxx_chipset. * Remove IDE_HFLAGS_VIA define. * Bump driver version. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* dtc2278: set ->pio_mask also for the second portBartlomiej Zolnierkiewicz2007-10-19
| | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* au1xxx-ide: set ->autotune and ->no_io_32bit also for the slave deviceBartlomiej Zolnierkiewicz2007-10-19
| | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: remove write-only hwif->hwBartlomiej Zolnierkiewicz2007-10-19
| | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: add hwif->ack_intr hookBartlomiej Zolnierkiewicz2007-10-19
| | | | | | | | | | | * Add hwif->ack_intr hook and use it instead of hwif->hw.ack_intr. * Add missing brackets to cris-v32 and powerpc ide_ack_intr() macros. Cc: Roman Zippel <zippel@linux-m68k.org> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* icside: use ec->dma directlyBartlomiej Zolnierkiewicz2007-10-19
| | | | | | | | | | * hwif->hwif_data contains pointer to struct expansion_card so use ec->dma directly instead of caching it in hwif->hw.dma. * Remove no longer needed hw_regs_t.dma and NO_DMA define. Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: fix ide_register_hw() to check hwif->io_ports[]Bartlomiej Zolnierkiewicz2007-10-19
| | | | | | | | | | | hwif->hw.io_ports[] and hwif->io_ports[] should be the same but "4drives" support and scc_pata host driver set only hwif->io_ports[]. To compensate for this check hwif->io_ports[] instead of hwif->hw.io_ports[] in ide_register_hw() (instead of fixing "4drives" and scc_pata because hwif->hw is to be removed). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: add CONFIG_IDE_ARCH_OBSOLETE_INITBartlomiej Zolnierkiewicz2007-10-19
| | | | | | | Add CONFIG_IDE_ARCH_OBSOLETE_INIT to drivers/ide/Kconfig and use it instead of defining IDE_ARCH_OBSOLETE_INIT in <arch/ide.h>. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: add ide_find_port() helperBartlomiej Zolnierkiewicz2007-10-19
| | | | | | | | * Add ide_find_port() helper. * Convert icside, rapide and ide_platform host drivers to use it. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: add ide_device_add()Bartlomiej Zolnierkiewicz2007-10-19
| | | | | | | | | | | | | | | | | | | | * Add ide_device_add() helper and convert host drivers to use it instead of open-coded variants. * Make ide_pci_setup_ports() and do_ide_setup_pci_device() take 'u8 *idx' argument instead of 'ata_index_t *index'. * Remove no longer needed ata_index_t. * Unexport probe_hwif_init() and make it static. * Unexport ide_proc_register_port(). There should be no functionality changes caused by this patch (sgiioc4.c: ide_proc_register_port() requires hwif->present to be set and it won't be set if probe_hwif_init() fails). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: add ->fixup method to ide_hwif_tBartlomiej Zolnierkiewicz2007-10-19
| | | | | | | | | | | | | | | | | | | | | | | * Add ->fixup method to ide_hwif_t. * Set hwif->fixup in ide_pci_setup_ports() to d->fixup. * Use hwif->fixup in probe_hwif(). * Use probe_hwif_init() instead of probe_hwif_init_with_fixup() in ide_setup_pci_device(). * Add 'fixup' argument to ide_register_hw() and use it to set hwif->fixup, update all ide_register_hw() users accordingly. * Convert ide-cs/delkin_cb host drivers to use ide_register_hw(). * Restore hwif->fixup in ide_hwif_restore(). * Remove ide_register_hw_with_fixup(), probe_hwif_init_with_fixup() and 'fixup' argument from probe_hwif(). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* siimage: separate PATA and SATA methodsBartlomiej Zolnierkiewicz2007-10-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Split off sil_sata_udma_filter() from sil_udma_filter() and rename sil_udma_filter() to sil_pata_udma_filter(). * Rename siimage_busproc() to sil_sata_busproc(). * Rename siimage_reset_poll() to sil_sata_reset_poll() and in init_hwif_siimage() set ->reset_poll method only for SATA controllers. * Rename siimage_pre_reset() to sil_sata_pre_reset(), in init_hwif_siimage() set ->pre_reset method only for SATA controllers and remove redundant is_sata() call. * Add CONFIG_BLK_DEV_IDE_SATA #ifdef/#endif to pdev_is_sata() so compiler will know to throw out unused SATA code for CONFIG_BLK_DEV_IDE_SATA=n case (830 bytes saved on x86-32). * Bump driver version. Some minor cleanups while at it: * Convert sil_{pata,sata}_udma_filter() to use ATA_UDMA* defines. * In siimage_mmio_ide_dma_test_irq() move 'base' variable under 'if (SATA_ERROR_REG)' block. * Simplify sil_sata_reset_poll() a bit. * Cache is_sata() result in init_hwif_siimage() Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* aec62xx: remove aec62xx_dma_lost_irq()Bartlomiej Zolnierkiewicz2007-10-19
| | | | | | | | | * Remove aec62xx_dma_lost_irq() (generic ide_dma_lost_irq() will be used now). * Bump driver version. Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* alim15x3: use ->host_flags and ->udma_mask fields from ide_pci_device_tBartlomiej Zolnierkiewicz2007-10-19
| | | | | | | | | | | * Make a local copy of ali15x3_chipset in alim15x3_init_one() and set ->host_flags / ->udma_mask according to the controller capabilities. * Cleanup init_hwif_common_ali15x3(). * Bump driver version. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* alim15x3: fix CD_ROM DMA and PIO FIFO settings setupBartlomiej Zolnierkiewicz2007-10-19
| | | | | | | | | | | | | | | | * Setup CD_ROM DMA and PIO FIFO settings in init_chipset_ali15x3() instead of ata66_ali15x3(). The latter is called from init_hwif_common_ali15x3() only if DMA base exists (which insists m5529_revision > 0x20). This changes makes CD_ROM DMA / PIO FIFO bits being set only once and also when "idex=ata66" kernel parameter is used. * While at it move also chip_is_1543c_e setup from ata66_ali15x3() to init_chipset_ali15x3() and check if isa_dev exists before accessing it. * Bump driver version. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: add IDE_HFLAG_{IO_32BIT,UNMASK_IRQS} host flagsBartlomiej Zolnierkiewicz2007-10-19
| | | | | | | | | | | | | | Add IDE_HFLAG_{IO_32BIT,UNMASK_IRQS} host flag to tell ide_pci_setup_ports() to set drive->{io_32bit,unmask} for both drives on the interface. Convert amd74xx, sl82c105 and via82cxxx host drivers to use these new host flags. While at it: * Add IDE_HFLAGS_AMD define (amd74xx host driver). * Add IDE_HFLAGS_VIA define (via82cxxx host driver). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: add IDE_HFLAG_RQSIZE_256 host flagBartlomiej Zolnierkiewicz2007-10-19
| | | | | | | Add IDE_HFLAG_RQSIZE_256 host flag to tell ide_pci_setup_ports() to set hwif->rqsize to 256 sectors. Convert pdc202xx_old host driver to use it. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: add IDE_HFLAG_FORCE_LEGACY_IRQS host flagBartlomiej Zolnierkiewicz2007-10-19
| | | | | | | | | | | | | | | | Add IDE_HFLAG_FORCE_LEGACY_IRQS host flag to tell ide_pci_setup_ports() to always set hwif->irq to legacy IRQ 14/15 and convert generic IDE PCI and via82cxxx host drivers to use it. While at it: * Add IDE_HFLAGS_UMC define (generic IDE PCI host driver). * Remove no longer needed init_hwif_generic() (generic IDE PCI host driver). * Set d->udma_mask instead of hwif->ultra_mask (via82cxxx host driver). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: add ->chipset field to ide_pci_device_tBartlomiej Zolnierkiewicz2007-10-19
| | | | | | | | | | | Add ->chipset field to ide_pci_device_t and use it in ide_hwif_configure() to set hwif->chipset. Convert cmd64x, cy82c693, rz1000 and trm290 host drivers to use this new ability. While at it define hwif_chipset_t as u8 to save some space in hw_regs_t, ide_hwif_t and ide_pci_device_t instances. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: add hwif_register_devices() helperBartlomiej Zolnierkiewicz2007-10-19
| | | | | | | | | Add hwif_register_devices() helper to fix code duplication between probe_hwif_init_with_fixup() and ideprobe_init(). Also remove stale comment while at it. Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* serverworks: remove dead code from svwks_set_dma_mode()Bartlomiej Zolnierkiewicz2007-10-19
| | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* rz1000: set serialized flag only if mate interface existsBartlomiej Zolnierkiewicz2007-10-19
| | | | | | | Setting hwif->serialized makes sense only if the mate interface exists. Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: fix disabled ports reporting for PCI controllersBartlomiej Zolnierkiewicz2007-10-19
| | | | | | | | Report all disabled ports in ide_pci_setup_ports() (prevents the bogus warning when ide_hwif_configure()->ide_match_hwif() fails to find free ide_hwifs[] slots). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* cmd64x: always set hwif->chipset for CMD646Bartlomiej Zolnierkiewicz2007-10-19
| | | | | | | hwif->chipset should be set to ide_cmd646 also when DMA base is invalid. Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide/pci/sis5513.c: add missing "else"Adrian Bunk2007-10-19
| | | | | | | | | | | This patch adds a missing "else" that was missing in commit c77a89cd98d99819f23a4a08e5e17ee1f13f6e4d. Spotted by the Coverity checker. Signed-off-by: Adrian Bunk <bunk@kernel.org> Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>, Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* remove asm/bitops.h includesJiri Slaby2007-10-19
| | | | | | | | | | | | | remove asm/bitops.h includes including asm/bitops directly may cause compile errors. don't include it and include linux/bitops instead. next patch will deny including asm header directly. Cc: Adrian Bunk <bunk@kernel.org> Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* ide: set drive->autotune in ide_pci_setup_ports()Bartlomiej Zolnierkiewicz2007-10-18
| | | | | | | | | | | | | | | | | | | | | | | Majority of host drivers using IDE PCI layer set drive->autotune, the only exceptions are: generic.c ns87415.c rz1000.c trm290.c * no ->set_pio_mode method it821x.c: * if memory allocation fails drive->autotune won't be set (but there also won't be ->set_pio_mode method in such case) piix.c: * MPIIX controller (no ->init_hwif method so also no ->set_pio_mode method) However if there is no ->set_pio_mode method there are no changes in behavior w.r.t. PIO tuning so always set drive->autotune in ide_pci_setup_ports(). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* triflex: always tune PIOBartlomiej Zolnierkiewicz2007-10-18
| | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* opti621: always tune PIOBartlomiej Zolnierkiewicz2007-10-18
| | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* cy82c693: always tune PIOBartlomiej Zolnierkiewicz2007-10-18
| | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* cs5520: always tune PIOBartlomiej Zolnierkiewicz2007-10-18
| | | | | | | Since cs5520 uses VDMA best PIO mode was tuned anyway by ide_dma_check() but only if DMA was successfully initialized. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* alim15x3: always tune PIOBartlomiej Zolnierkiewicz2007-10-18
| | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: add IDE_HFLAG_LEGACY_IRQS host flagBartlomiej Zolnierkiewicz2007-10-18
| | | | | | | | | | | | | Add IDE_HFLAG_LEGACY_IRQS host flag to tell ide_pci_setup_ports() to set hwif->irq to legacy IRQ 14/15 (iff hwif->irq is not already set) and convert atiixp, piix, serverworks, sis5513 and slc90e66 host drivers to use it. While at it: * In piix.c add IDE_HFLAGS_PIIX define and don't use ->init_hwif for MPIIX. Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: add IDE_HFLAG_SERIALIZE host flagBartlomiej Zolnierkiewicz2007-10-18
| | | | | | | | Add IDE_HFLAG_SERIALIZE host flag to tell ide_pci_setup_ports() to set hwif/mate->serialized and convert aec62xx, cs5530 and sc1200 host drivers to use it. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: add IDE_HFLAG_ERROR_STOPS_FIFO host flagBartlomiej Zolnierkiewicz2007-10-18
| | | | | | | | Add IDE_HFLAG_ERROR_STOPS_FIFO host flag and use it instead of hwif->err_stops_fifo. As a side-effect this change fixes hwif->err_stops_fifo not being restored by ide_hwif_restore(). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* piix: add DECLARE_ICH_DEV() macroBartlomiej Zolnierkiewicz2007-10-18
| | | | | | | | | | | | | | | Add DECLARE_ICH_DEV() macro. While at it: * Add init_hwif_ich() (->init_hwif method) for ICH controllers. * Rename init_chipset_piix() to init_chipset_ich() and use it only for ICH controllers. * Remove no longer needed piix_is_ichx() helper. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* pdc202xx_old: add DECLARE_PDC2026X_DEV() macroBartlomiej Zolnierkiewicz2007-10-18
| | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* pdc202xx_new: add DECLARE_PDCNEW_DEV() macroBartlomiej Zolnierkiewicz2007-10-18
| | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* aec62xx: no need to disable UDMA in ->init_hwif method for ATP850UFBartlomiej Zolnierkiewicz2007-10-18
| | | | | | | | | | * No need to disable UDMA in ->init_hwif method for ATP850UF (and since we now always tune PIO it will be disabled by ->set_pio_mode calls anyway). * Bump driver version. Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* serverworks: remove ->init_setupBartlomiej Zolnierkiewicz2007-10-18
| | | | | | | | | | | | | | Merge init_setup_{svwks,csb6}() into svwks_init_one(). While at it: * Remove redundant dev->device checks. * Operate on a local copy of serverworks_chipsets[] entry. * Use pci_resource_start(). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* scc_pata: remove ->init_setupBartlomiej Zolnierkiewicz2007-10-18
| | | | | Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* pdc202xx_old: remove ->init_setupBartlomiej Zolnierkiewicz2007-10-18
| | | | | | | | * Split off pdc202ata4_fixup_irq() helper from init_setup_pdc202ata4(). * Merge init_setup_{pdc202ata4,pdc20265,pdc202xx}() into pdc202xx_init_one(). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* pdc202xx_new: remove ->init_setupBartlomiej Zolnierkiewicz2007-10-18
| | | | | | | | | | | | * Split off pdc20270_get_dev2() helper from init_setup_pdc20270(). * Merge init_setup_{pdcnew,pdc20270,pdc20276}() into pdc202new_init_one(). While at it: * Change KERN_ level of interrupt fixup message from KERN_WARNING to KERN_INFO. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* hpt366: remove ->init_setupBartlomiej Zolnierkiewicz2007-10-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | * Split off hpt{374,371,366}_init() helper from init_setup_hpt{374,371,366}(). * Merge init_setup_{374,372n,371,372a,302,366}() into hpt366_init_one(). While at it: * Use "HPT36x" name for HPT366/HPT368 chipsets. * Add .chip_name to struct hpt_info and use it to set set d->name. * Convert .max_ultra in struct hpt_info to .udma_mask and use it to set d->udma_mask. * Fix hpt302 to use HPT302_ALLOW_ATA133_6 define. * Change HPT366/HPT374 interrupt fixup message from KERN_WARNING to KERN_INFO. * Use the second hpt366_chipsets[] entry for HPT37x chipsets using HPT36x PCI device ID and fix .enablebits/.host_flags for HPT36x hpt366_chipsets[] entry. * Bump driver version. Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* cmd64x: remove ->init_setupBartlomiej Zolnierkiewicz2007-10-18
| | | | | | | Merge init_setup_{cmd64x,cmd646}() into cmd64x_init_one(). Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* aec62xx: remove ->init_setupBartlomiej Zolnierkiewicz2007-10-18
| | | | | | | | | | | | | Merge init_setup_{aec62xx,aec6x80}() into aec62xx_init_one(). While at it: * Use id->driver_data instead of dev->device. * Use ATA_UDMA6 define. Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: use I/O ops directly part #2 (take 2)Bartlomiej Zolnierkiewicz2007-10-18
| | | | | | | | | v2: - bump host driver versions (as suggested by Sergei) - use I/O ops directly in drivers/ide/setup-pci.c Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>