Commit bd203b57 authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz
Browse files

ide: use ide_tune_dma() part #2



Use ide_tune_dma() in ide-cris/it821x/pdc202xx_old/serverworks drivers.

Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 5fd216bb
Loading
Loading
Loading
Loading
+1 −13
Original line number Diff line number Diff line
@@ -1002,18 +1002,6 @@ static int cris_ide_build_dmatable (ide_drive_t *drive)
	return 1;	/* let the PIO routines handle this weirdness */
}

static int cris_config_drive_for_dma (ide_drive_t *drive)
{
	u8 speed = ide_max_dma_mode(drive);

	if (!speed)
		return 0;

	speed_cris_ide(drive, speed);

	return ide_dma_enable(drive);
}

/*
 * cris_dma_intr() is the handler for disk read/write DMA interrupts
 */
@@ -1043,7 +1031,7 @@ static ide_startstop_t cris_dma_intr (ide_drive_t *drive)

static int cris_dma_check(ide_drive_t *drive)
{
	if (ide_use_dma(drive) && cris_config_drive_for_dma(drive))
	if (ide_tune_dma(drive))
		return 0;

	return -1;
+1 −20
Original line number Diff line number Diff line
@@ -463,25 +463,6 @@ static int it821x_tune_chipset (ide_drive_t *drive, byte xferspeed)
	return ide_config_drive_speed(drive, speed);
}

/**
 *	config_chipset_for_dma	-	configure for DMA
 *	@drive: drive to configure
 *
 *	Called by the IDE layer when it wants the timings set up.
 */

static int config_chipset_for_dma (ide_drive_t *drive)
{
	u8 speed = ide_max_dma_mode(drive);

	if (speed == 0)
		return 0;

	it821x_tune_chipset(drive, speed);

	return ide_dma_enable(drive);
}

/**
 *	it821x_configure_drive_for_dma	-	set up for DMA transfers
 *	@drive: drive we are going to set up
@@ -494,7 +475,7 @@ static int config_chipset_for_dma (ide_drive_t *drive)

static int it821x_config_drive_for_dma (ide_drive_t *drive)
{
	if (ide_use_dma(drive) && config_chipset_for_dma(drive))
	if (ide_tune_dma(drive))
		return 0;

	it821x_tuneproc(drive, 255);
+1 −13
Original line number Diff line number Diff line
@@ -181,23 +181,11 @@ static void pdc_old_disable_66MHz_clock(ide_hwif_t *hwif)
	outb(clock & ~(hwif->channel ? 0x08 : 0x02), clock_reg);
}

static int config_chipset_for_dma (ide_drive_t *drive)
{
	u8 speed = ide_max_dma_mode(drive);

	if (!speed)
		return 0;

	(void)pdc202xx_tune_chipset(drive, speed);

	return ide_dma_enable(drive);
}

static int pdc202xx_config_drive_xfer_rate (ide_drive_t *drive)
{
	drive->init_speed = 0;

	if (ide_use_dma(drive) && config_chipset_for_dma(drive))
	if (ide_tune_dma(drive))
		return 0;

	if (ide_use_fast_pio(drive))
+1 −12
Original line number Diff line number Diff line
@@ -270,22 +270,11 @@ static void svwks_tune_drive (ide_drive_t *drive, u8 pio)
	(void)svwks_tune_chipset(drive, XFER_PIO_0 + pio);
}

static int config_chipset_for_dma (ide_drive_t *drive)
{
	u8 speed = ide_max_dma_mode(drive);

	if (!speed)
		return 0;

	(void) svwks_tune_chipset(drive, speed);
	return ide_dma_enable(drive);
}

static int svwks_config_drive_xfer_rate (ide_drive_t *drive)
{
	drive->init_speed = 0;

	if (ide_use_dma(drive) && config_chipset_for_dma(drive))
	if (ide_tune_dma(drive))
		return 0;

	if (ide_use_fast_pio(drive))