ide: remove ide_setup_ports()
PATCH 3/5 ide: remove ide_setup_ports()
ide-cris.c:
* Add cris_setup_ports() helper and use it instead of ide_setup_ports() (fixes random value being set in ->io_ports[IDE_IRQ_OFFSET]).
buddha.c:
* Add buddha_setup_ports() helper and use it instead of ide_setup_ports().
falconide.c:
* Add falconide_setup_ports() helper and use it instead of ide_setup_ports(), also fix return value of falconide_init() while at it.
gayle.c:
* Add gayle_setup_ports() helper and use it instead of ide_setup_ports().
macide.c:
* Add macide_setup_ports() helper and use it instead of ide_setup_ports() (fixes incorrect value being set in ->io_ports[IDE_IRQ_OFFSET]).
q40ide.c:
* Fix q40_ide_setup_ports() comments.
ide.c:
* Remove no longer needed ide_setup_ports().
--- drivers/ide/cris/ide-cris.c | 33 ++++++++++++------ drivers/ide/ide.c | 54 ------------------------------ drivers/ide/legacy/buddha.c | 72 +++++++++++++++++++++-------------------- drivers/ide/legacy/falconide.c | 42 +++++++++++------------ drivers/ide/legacy/gayle.c | 39 +++++++++++----------- drivers/ide/legacy/macide.c | 57 +++++++++++++++++--------------- drivers/ide/legacy/q40ide.c | 9 ----- include/linux/ide.h | 11 ------ 8 files changed, 133 insertions(+), 184 deletions(-)
drivers/ide/cris/ide-cris.c +22 -11
@@ -753,6 +753,25 @@ static void cris_set_dma_mode(ide_drive_cris_ide_set_speed (TYPE_DMA ,0 , strobe, hold); } +static void __init cris_setup_ports (hw_regs_t *hw,unsigned long base) +{ +int i; + +memset (hw,0 ,sizeof (*hw)); + +for (i =0 ; i <=7 ; i++) + hw->io_ports[i] = base +cris_ide_reg_addr (i,0 ,1 ); + +/* +* the IDE control register is at ATA address 6, +* with CS1 active instead of CS0 +*/ + hw->io_ports[IDE_CONTROL_OFFSET ] = base +cris_ide_reg_addr (6 ,1 ,0 ); + + hw->irq =ide_default_irq (0 ); + hw->ack_intr = cris_ide_ack_intr; +} +static const struct ide_port_info cris_port_info__initdata = { .chipset = ide_etrax100, .host_flags = IDE_HFLAG_NO_ATAPI_DMA |
@@ -765,24 +784,16 @@ static const struct ide_port_info cris_pstatic int __init init_e100_ide (void ) {hw_regs_t hw; -int ide_offsets[IDE_NR_PORTS ], h, i; +int h;u8 idx[4 ] = {0xff ,0xff ,0xff ,0xff };printk ("ide: ETRAX FS built-in ATA DMA controller\n" ); -for (i =IDE_DATA_OFFSET ; i <=IDE_STATUS_OFFSET ; i++) - ide_offsets[i] =cris_ide_reg_addr (i,0 ,1 ); - -/* the IDE control register is at ATA address 6, with CS1 active instead of CS0 */ - ide_offsets[IDE_CONTROL_OFFSET ] =cris_ide_reg_addr (6 ,1 ,0 ); -for (h =0 ; h <4 ; h++) {ide_hwif_t *hwif =NULL ; -ide_setup_ports (&hw,cris_ide_base_address (h), - ide_offsets, -0 ,0 , cris_ide_ack_intr, -ide_default_irq (0 )); +cris_setup_ports (&hw,cris_ide_base_address (h)); + hwif =ide_find_port (hw.io_ports[IDE_DATA_OFFSET ]);if (hwif ==NULL )continue ;
drivers/ide/ide.c +0 -54
60 lines not on this page · raw message
drivers/ide/legacy/buddha.c +37 -35
96 lines not on this page · raw message
drivers/ide/legacy/falconide.c +21 -21
74 lines not on this page · raw message
drivers/ide/legacy/gayle.c +21 -18
@@ -34,22 +34,8 @@* Offsets from one of the above bases */ -#define GAYLE_DATA 0x00 -#define GAYLE_ERROR 0x06/* see err-bits */ -#define GAYLE_NSECTOR 0x0a/* nr of sectors to read/write */ -#define GAYLE_SECTOR 0x0e/* starting sector */ -#define GAYLE_LCYL 0x12/* starting cylinder */ -#define GAYLE_HCYL 0x16/* high byte of starting cyl */ -#define GAYLE_SELECT 0x1a/* 101dhhhh , d=drive, hhhh=head */ -#define GAYLE_STATUS 0x1e/* see status-bits */ #define GAYLE_CONTROL 0x101a -static int gayle_offsets[IDE_NR_PORTS ]__initdata = { -GAYLE_DATA ,GAYLE_ERROR ,GAYLE_NSECTOR ,GAYLE_SECTOR ,GAYLE_LCYL , -GAYLE_HCYL ,GAYLE_SELECT ,GAYLE_STATUS ,-1 ,-1 -}; - -/* * These are at different offsets from the base */
@@ -106,6 +92,26 @@ static int gayle_ack_intr_a1200(ide_hwifreturn 1 ; } +static void __init gayle_setup_ports (hw_regs_t *hw,unsigned long base, +unsigned long ctl,unsigned long irq_port, +ide_ack_intr_t *ack_intr); +{ +int i; + +memset (hw,0 ,sizeof (*hw)); + + hw->io_ports[IDE_DATA_OFFSET ] = base; + +for (i =1 ; i <8 ; i++) + hw->io_ports[i] = base +2 + i *4 ; + + hw->io_ports[IDE_CONTROL_OFFSET ] = ctl; + hw->io_ports[IDE_IRQ_OFFSET ] = irq_port; + + hw->irq =IRQ_AMIGA_PORTS ; + hw->ack_intr = ack_intr; +} +/* * Probe for a Gayle IDE interface (and optionally for an IDE doubler) */
@@ -167,10 +173,7 @@ found: base = (unsigned long )ZTWO_VADDR (phys_base); ctrlport =GAYLE_HAS_CONTROL_REG ? (base +GAYLE_CONTROL ) :0 ; -ide_setup_ports (&hw, base, gayle_offsets, - ctrlport, irqport, ack_intr, -// &gayle_iops, -IRQ_AMIGA_PORTS ); +gayle_setup_ports (&hw, base, ctrlport, irqport, ack_intr); hwif =ide_find_port (base);if (hwif) {
drivers/ide/legacy/macide.c +31 -26
95 lines not on this page · raw message
drivers/ide/legacy/q40ide.c +1 -8
@@ -66,16 +66,12 @@ static int q40ide_default_irq(unsigned l/* -* This is very similar to ide_setup_ports except that addresses -* are pretranslated for q40 ISA access +* Addresses are pretranslated for Q40 ISA access. */ void q40_ide_setup_ports (hw_regs_t *hw,unsigned long base,int *offsets,unsigned long ctrl,unsigned long intr,ide_ack_intr_t *ack_intr, -/* -* ide_io_ops_t *iops, -*/ int irq) {int i;
@@ -92,9 +88,6 @@ void q40_ide_setup_ports ( hw_regs_t *hw hw->irq = irq; hw->ack_intr = ack_intr; -/* -* hw->iops = iops; -*/ }
include/linux/ide.h +0 -11
@@ -194,17 +194,6 @@ struct ide_drive_s;int ide_register_hw (hw_regs_t *,void (*)(struct ide_drive_s *),struct hwif_s **); -void ide_setup_ports (hw_regs_t *hw, -unsigned long base, -int *offsets, -unsigned long ctrl, -unsigned long intr, -ide_ack_intr_t *ack_intr, -#if 0 -ide_io_ops_t *iops, -#endif -int irq); -static inline void ide_std_init_ports (hw_regs_t *hw,unsigned long io_addr,unsigned long ctl_addr)
Quoted 21 lines · Bartlomiej Zolnierkiewicz
ide-cris.c:
* Addcris_setup_ports()helper and use it instead ofide_setup_ports()(fixes random value being set in ->io_ports[IDE_IRQ_OFFSET]).
buddha.c:
* Addbuddha_setup_ports()helper and use it instead ofide_setup_ports().
falconide.c:
* Addfalconide_setup_ports()helper and use it instead ofide_setup_ports(), also fix return value offalconide_init()while at it.
gayle.c:
* Addgayle_setup_ports()helper and use it instead ofide_setup_ports().
macide.c:
* Addmacide_setup_ports()helper and use it instead ofide_setup_ports()(fixes incorrect value being set in ->io_ports[IDE_IRQ_OFFSET]).
q40ide.c:
* Fixq40_ide_setup_ports()comments.
Quoted 6 lines
ide.c:
* Remove no longer neededide_setup_ports().Cc Mikael Starvik <[email protected]>Cc Geert Uytterhoeven <[email protected]>Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
MBR, Sergei