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

Commit 8f4dd2e4 authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz
Browse files

ide: use only ->set_pio_mode method for programming PIO modes (take 2)



Use ->set_pio_mode method to program PIO modes in ide_set_xfer_rate()
(the only place which used ->speedproc to program PIO modes) and remove
handling of PIO modes from all ->speedproc implementations.

v2:
* Fix pmac_ide_tune_chipset() comment.

There should be no functionality changes caused by this patch.

Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 0d3be723
Loading
Loading
Loading
Loading
+0 −5
Original line number Original line Diff line number Diff line
@@ -724,11 +724,6 @@ static int speed_cris_ide(ide_drive_t *drive, const u8 speed)
{
{
	int cyc = 0, dvs = 0, strobe = 0, hold = 0;
	int cyc = 0, dvs = 0, strobe = 0, hold = 0;


	if (speed >= XFER_PIO_0 && speed <= XFER_PIO_4) {
		cris_set_pio_mode(drive, speed - XFER_PIO_0);
		return ide_config_drive_speed(drive, speed);
	}

	switch(speed)
	switch(speed)
	{
	{
		case XFER_UDMA_0:
		case XFER_UDMA_0:
+12 −0
Original line number Original line Diff line number Diff line
@@ -398,6 +398,18 @@ int ide_set_xfer_rate(ide_drive_t *drive, u8 rate)


	rate = ide_rate_filter(drive, rate);
	rate = ide_rate_filter(drive, rate);


	if (rate >= XFER_PIO_0 && rate <= XFER_PIO_5) {
		if (hwif->set_pio_mode)
			hwif->set_pio_mode(drive, rate - XFER_PIO_0);

		/*
		 * FIXME: this is incorrect to return zero here but
		 * since all users of ide_set_xfer_rate() ignore
		 * the return value it is not a problem currently
		 */
		return 0;
	}

	return hwif->speedproc(drive, rate);
	return hwif->speedproc(drive, rate);
}
}


+0 −5
Original line number Original line Diff line number Diff line
@@ -177,11 +177,6 @@ static int auide_tune_chipset(ide_drive_t *drive, const u8 speed)
	mem_sttime = 0;
	mem_sttime = 0;
	mem_stcfg  = au_readl(MEM_STCFG2);
	mem_stcfg  = au_readl(MEM_STCFG2);


	if (speed >= XFER_PIO_0 && speed <= XFER_PIO_4) {
		au1xxx_set_pio_mode(drive, speed - XFER_PIO_0);
		return 0;
	}

	switch(speed) {
	switch(speed) {
#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
	case XFER_MW_DMA_2:
	case XFER_MW_DMA_2:
+0 −5
Original line number Original line Diff line number Diff line
@@ -421,11 +421,6 @@ static int ali15x3_tune_chipset(ide_drive_t *drive, const u8 speed)
	if (speed < XFER_PIO_0)
	if (speed < XFER_PIO_0)
		return 1;
		return 1;


	if (speed >= XFER_PIO_0 && speed <= XFER_PIO_5) {
		ali_tune_pio(drive, speed - XFER_PIO_0);
		return ide_config_drive_speed(drive, speed);
	}

	if (speed == XFER_UDMA_6)
	if (speed == XFER_UDMA_6)
		speed1 = 0x47;
		speed1 = 0x47;


+0 −5
Original line number Original line Diff line number Diff line
@@ -178,11 +178,6 @@ static int atiixp_speedproc(ide_drive_t *drive, const u8 speed)
	u16 tmp16;
	u16 tmp16;
	u8 pio;
	u8 pio;


	if (speed >= XFER_PIO_0 && speed <= XFER_PIO_4) {
		atiixp_tune_pio(drive, speed - XFER_PIO_0);
		return ide_config_drive_speed(drive, speed);
	}

	spin_lock_irqsave(&atiixp_lock, flags);
	spin_lock_irqsave(&atiixp_lock, flags);


	save_mdma_mode[drive->dn] = 0;
	save_mdma_mode[drive->dn] = 0;
Loading