Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 86f3a492 authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz
Browse files

icside: use ec->dma directly



* 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: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 8f173b5b
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -316,27 +316,29 @@ static int icside_dma_end(ide_drive_t *drive)

	drive->waiting_for_dma = 0;

	disable_dma(hwif->hw.dma);
	disable_dma(state->dev->dma);

	/* Teardown mappings after DMA has completed. */
	dma_unmap_sg(state->dev, hwif->sg_table, hwif->sg_nents,
		     hwif->sg_dma_direction);

	return get_dma_residue(hwif->hw.dma) != 0;
	return get_dma_residue(state->dev->dma) != 0;
}

static void icside_dma_start(ide_drive_t *drive)
{
	ide_hwif_t *hwif = HWIF(drive);
	struct icside_state *state = hwif->hwif_data;

	/* We can not enable DMA on both channels simultaneously. */
	BUG_ON(dma_channel_active(hwif->hw.dma));
	enable_dma(hwif->hw.dma);
	BUG_ON(dma_channel_active(state->dev->dma));
	enable_dma(state->dev->dma);
}

static int icside_dma_setup(ide_drive_t *drive)
{
	ide_hwif_t *hwif = HWIF(drive);
	struct icside_state *state = hwif->hwif_data;
	struct request *rq = hwif->hwgroup->rq;
	unsigned int dma_mode;

@@ -348,7 +350,7 @@ static int icside_dma_setup(ide_drive_t *drive)
	/*
	 * We can not enable DMA on both channels.
	 */
	BUG_ON(dma_channel_active(hwif->hw.dma));
	BUG_ON(dma_channel_active(state->dev->dma));

	icside_build_sglist(drive, rq);

@@ -365,14 +367,14 @@ static int icside_dma_setup(ide_drive_t *drive)
	/*
	 * Select the correct timing for this drive.
	 */
	set_dma_speed(hwif->hw.dma, drive->drive_data);
	set_dma_speed(state->dev->dma, drive->drive_data);

	/*
	 * Tell the DMA engine about the SG table and
	 * data direction.
	 */
	set_dma_sg(hwif->hw.dma, hwif->sg_table, hwif->sg_nents);
	set_dma_mode(hwif->hw.dma, dma_mode);
	set_dma_sg(state->dev->dma, hwif->sg_table, hwif->sg_nents);
	set_dma_mode(state->dev->dma, dma_mode);

	drive->waiting_for_dma = 1;

@@ -572,7 +574,6 @@ icside_register_v6(struct icside_state *state, struct expansion_card *ec)
	hwif->serialized  = 1;
	hwif->config_data = (unsigned long)ioc_base;
	hwif->select_data = sel;
	hwif->hw.dma      = ec->dma;

	mate->maskproc    = icside_maskproc;
	mate->channel     = 1;
@@ -581,7 +582,6 @@ icside_register_v6(struct icside_state *state, struct expansion_card *ec)
	mate->serialized  = 1;
	mate->config_data = (unsigned long)ioc_base;
	mate->select_data = sel | 1;
	mate->hw.dma      = ec->dma;

	if (ec->dma != NO_DMA && !request_dma(ec->dma, hwif->name)) {
		icside_dma_init(hwif);
+0 −1
Original line number Diff line number Diff line
@@ -68,7 +68,6 @@ static inline void hw_setup(hw_regs_t *hw)
		hw->io_ports[i] = CONFIG_H8300_IDE_BASE + H8300_IDE_GAP*i;
	hw->io_ports[IDE_CONTROL_OFFSET] = CONFIG_H8300_IDE_ALT;
	hw->irq = EXT_IRQ0 + CONFIG_H8300_IDE_IRQ;
	hw->dma = NO_DMA;
	hw->chipset = ide_generic;
}

+0 −1
Original line number Diff line number Diff line
@@ -40,7 +40,6 @@ static int idepnp_probe(struct pnp_dev * dev, const struct pnp_device_id *dev_id
	ide_std_init_ports(&hw, pnp_port_start(dev, 0),
				pnp_port_start(dev, 1));
	hw.irq = pnp_irq(dev, 0);
	hw.dma = NO_DMA;

	index = ide_register_hw(&hw, NULL, 1, &hwif);

+0 −1
Original line number Diff line number Diff line
@@ -678,7 +678,6 @@ void ide_setup_ports ( hw_regs_t *hw,
		}
	}
	hw->irq = irq;
	hw->dma = NO_DMA;
	hw->ack_intr = ack_intr;
/*
 *	hw->iops = iops;
+0 −1
Original line number Diff line number Diff line
@@ -51,7 +51,6 @@ static ide_hwif_t *__devinit plat_ide_locate_hwif(void __iomem *base,
	memcpy(hwif->io_ports, hwif->hw.io_ports, sizeof(hwif->hw.io_ports));
	hwif->hw.irq = hwif->irq = irq;

	hwif->hw.dma = NO_DMA;
	hwif->chipset = hwif->hw.chipset = ide_generic;

	if (mmio) {
Loading