forked from mirrors/linux
		
	icside: remove superfluous ->maskproc method
[inspired by pata_icside] Enabling/disabling of card IRQs is handled fine by IRQ and IDE subsystems so there is no need for custom ->maskproc method. Moreover icside_maskproc() would enable IRQ only if it was already enabled [because of 'if (state->enabled && !mask)' check]. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
		
							parent
							
								
									49d8078ad1
								
							
						
					
					
						commit
						dff8817b78
					
				
					 1 changed files with 4 additions and 60 deletions
				
			
		|  | @ -65,8 +65,6 @@ static struct cardinfo icside_cardinfo_v6_2 = { | |||
| }; | ||||
| 
 | ||||
| struct icside_state { | ||||
| 	unsigned int channel; | ||||
| 	unsigned int enabled; | ||||
| 	void __iomem *irq_port; | ||||
| 	void __iomem *ioc_base; | ||||
| 	unsigned int sel; | ||||
|  | @ -116,18 +114,11 @@ static void icside_irqenable_arcin_v6 (struct expansion_card *ec, int irqnr) | |||
| 	struct icside_state *state = ec->irq_data; | ||||
| 	void __iomem *base = state->irq_port; | ||||
| 
 | ||||
| 	state->enabled = 1; | ||||
| 	writeb(0, base + ICS_ARCIN_V6_INTROFFSET_1); | ||||
| 	readb(base + ICS_ARCIN_V6_INTROFFSET_2); | ||||
| 
 | ||||
| 	switch (state->channel) { | ||||
| 	case 0: | ||||
| 		writeb(0, base + ICS_ARCIN_V6_INTROFFSET_1); | ||||
| 		readb(base + ICS_ARCIN_V6_INTROFFSET_2); | ||||
| 		break; | ||||
| 	case 1: | ||||
| 		writeb(0, base + ICS_ARCIN_V6_INTROFFSET_2); | ||||
| 		readb(base + ICS_ARCIN_V6_INTROFFSET_1); | ||||
| 		break; | ||||
| 	} | ||||
| 	writeb(0, base + ICS_ARCIN_V6_INTROFFSET_2); | ||||
| 	readb(base + ICS_ARCIN_V6_INTROFFSET_1); | ||||
| } | ||||
| 
 | ||||
| /* Prototype: icside_irqdisable_arcin_v6 (struct expansion_card *ec, int irqnr)
 | ||||
|  | @ -137,8 +128,6 @@ static void icside_irqdisable_arcin_v6 (struct expansion_card *ec, int irqnr) | |||
| { | ||||
| 	struct icside_state *state = ec->irq_data; | ||||
| 
 | ||||
| 	state->enabled = 0; | ||||
| 
 | ||||
| 	readb(state->irq_port + ICS_ARCIN_V6_INTROFFSET_1); | ||||
| 	readb(state->irq_port + ICS_ARCIN_V6_INTROFFSET_2); | ||||
| } | ||||
|  | @ -160,44 +149,6 @@ static const expansioncard_ops_t icside_ops_arcin_v6 = { | |||
| 	.irqpending	= icside_irqpending_arcin_v6, | ||||
| }; | ||||
| 
 | ||||
| /*
 | ||||
|  * Handle routing of interrupts.  This is called before | ||||
|  * we write the command to the drive. | ||||
|  */ | ||||
| static void icside_maskproc(ide_drive_t *drive, int mask) | ||||
| { | ||||
| 	ide_hwif_t *hwif = drive->hwif; | ||||
| 	struct expansion_card *ec = ECARD_DEV(hwif->dev); | ||||
| 	struct icside_state *state = ecard_get_drvdata(ec); | ||||
| 	unsigned long flags; | ||||
| 
 | ||||
| 	local_irq_save(flags); | ||||
| 
 | ||||
| 	state->channel = hwif->channel; | ||||
| 
 | ||||
| 	if (state->enabled && !mask) { | ||||
| 		switch (hwif->channel) { | ||||
| 		case 0: | ||||
| 			writeb(0, state->irq_port + ICS_ARCIN_V6_INTROFFSET_1); | ||||
| 			readb(state->irq_port + ICS_ARCIN_V6_INTROFFSET_2); | ||||
| 			break; | ||||
| 		case 1: | ||||
| 			writeb(0, state->irq_port + ICS_ARCIN_V6_INTROFFSET_2); | ||||
| 			readb(state->irq_port + ICS_ARCIN_V6_INTROFFSET_1); | ||||
| 			break; | ||||
| 		} | ||||
| 	} else { | ||||
| 		readb(state->irq_port + ICS_ARCIN_V6_INTROFFSET_2); | ||||
| 		readb(state->irq_port + ICS_ARCIN_V6_INTROFFSET_1); | ||||
| 	} | ||||
| 
 | ||||
| 	local_irq_restore(flags); | ||||
| } | ||||
| 
 | ||||
| static const struct ide_port_ops icside_v6_no_dma_port_ops = { | ||||
| 	.maskproc		= icside_maskproc, | ||||
| }; | ||||
| 
 | ||||
| #ifdef CONFIG_BLK_DEV_IDEDMA_ICS | ||||
| /*
 | ||||
|  * SG-DMA support. | ||||
|  | @ -275,7 +226,6 @@ static void icside_set_dma_mode(ide_drive_t *drive, const u8 xfer_mode) | |||
| 
 | ||||
| static const struct ide_port_ops icside_v6_port_ops = { | ||||
| 	.set_dma_mode		= icside_set_dma_mode, | ||||
| 	.maskproc		= icside_maskproc, | ||||
| }; | ||||
| 
 | ||||
| static void icside_dma_host_set(ide_drive_t *drive, int on) | ||||
|  | @ -319,11 +269,6 @@ static int icside_dma_setup(ide_drive_t *drive, struct ide_cmd *cmd) | |||
| 	 */ | ||||
| 	BUG_ON(dma_channel_active(ec->dma)); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Ensure that we have the right interrupt routed. | ||||
| 	 */ | ||||
| 	icside_maskproc(drive, 0); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Route the DMA signals to the correct interface. | ||||
| 	 */ | ||||
|  | @ -452,7 +397,6 @@ icside_register_v5(struct icside_state *state, struct expansion_card *ec) | |||
| 
 | ||||
| static const struct ide_port_info icside_v6_port_info __initdata = { | ||||
| 	.init_dma		= icside_dma_off_init, | ||||
| 	.port_ops		= &icside_v6_no_dma_port_ops, | ||||
| 	.dma_ops		= &icside_v6_dma_ops, | ||||
| 	.host_flags		= IDE_HFLAG_SERIALIZE | IDE_HFLAG_MMIO, | ||||
| 	.mwdma_mask		= ATA_MWDMA2, | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Bartlomiej Zolnierkiewicz
						Bartlomiej Zolnierkiewicz