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 { | struct icside_state { | ||||||
| 	unsigned int channel; |  | ||||||
| 	unsigned int enabled; |  | ||||||
| 	void __iomem *irq_port; | 	void __iomem *irq_port; | ||||||
| 	void __iomem *ioc_base; | 	void __iomem *ioc_base; | ||||||
| 	unsigned int sel; | 	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; | 	struct icside_state *state = ec->irq_data; | ||||||
| 	void __iomem *base = state->irq_port; | 	void __iomem *base = state->irq_port; | ||||||
| 
 | 
 | ||||||
| 	state->enabled = 1; |  | ||||||
| 
 |  | ||||||
| 	switch (state->channel) { |  | ||||||
| 	case 0: |  | ||||||
| 	writeb(0, base + ICS_ARCIN_V6_INTROFFSET_1); | 	writeb(0, base + ICS_ARCIN_V6_INTROFFSET_1); | ||||||
| 	readb(base + ICS_ARCIN_V6_INTROFFSET_2); | 	readb(base + ICS_ARCIN_V6_INTROFFSET_2); | ||||||
| 		break; | 
 | ||||||
| 	case 1: |  | ||||||
| 	writeb(0, base + ICS_ARCIN_V6_INTROFFSET_2); | 	writeb(0, base + ICS_ARCIN_V6_INTROFFSET_2); | ||||||
| 	readb(base + ICS_ARCIN_V6_INTROFFSET_1); | 	readb(base + ICS_ARCIN_V6_INTROFFSET_1); | ||||||
| 		break; |  | ||||||
| 	} |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /* Prototype: icside_irqdisable_arcin_v6 (struct expansion_card *ec, int irqnr)
 | /* 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; | 	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_1); | ||||||
| 	readb(state->irq_port + ICS_ARCIN_V6_INTROFFSET_2); | 	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, | 	.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 | #ifdef CONFIG_BLK_DEV_IDEDMA_ICS | ||||||
| /*
 | /*
 | ||||||
|  * SG-DMA support. |  * 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 = { | static const struct ide_port_ops icside_v6_port_ops = { | ||||||
| 	.set_dma_mode		= icside_set_dma_mode, | 	.set_dma_mode		= icside_set_dma_mode, | ||||||
| 	.maskproc		= icside_maskproc, |  | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| static void icside_dma_host_set(ide_drive_t *drive, int on) | 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)); | 	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. | 	 * 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 = { | static const struct ide_port_info icside_v6_port_info __initdata = { | ||||||
| 	.init_dma		= icside_dma_off_init, | 	.init_dma		= icside_dma_off_init, | ||||||
| 	.port_ops		= &icside_v6_no_dma_port_ops, |  | ||||||
| 	.dma_ops		= &icside_v6_dma_ops, | 	.dma_ops		= &icside_v6_dma_ops, | ||||||
| 	.host_flags		= IDE_HFLAG_SERIALIZE | IDE_HFLAG_MMIO, | 	.host_flags		= IDE_HFLAG_SERIALIZE | IDE_HFLAG_MMIO, | ||||||
| 	.mwdma_mask		= ATA_MWDMA2, | 	.mwdma_mask		= ATA_MWDMA2, | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Bartlomiej Zolnierkiewicz
						Bartlomiej Zolnierkiewicz