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

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

ide: move ide_rate_filter() calls to the upper layer (take 2)



* Move ide_rate_filter() calls from host drivers to IDE core.

* Make ide_rate_filter() static.

* Make 'speed' argument of ->speedproc const.

v2:
* Fix it8213_tune_chipset() comment.

There should be no functionality changes caused by this patch.

Acked-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 3160d541
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -248,15 +248,10 @@ static void icside_build_sglist(ide_drive_t *drive, struct request *rq)
 *	MW1	80	50	50	150	C
 *	MW2	70	25	25	120	C
 */
static int icside_set_speed(ide_drive_t *drive, u8 xfer_mode)
static int icside_set_speed(ide_drive_t *drive, const u8 xfer_mode)
{
	int on = 0, cycle_time = 0, use_dma_info = 0;

	/*
	 * Limit the transfer speed to MW_DMA_2.
	 */
	xfer_mode = ide_rate_filter(drive, xfer_mode);

	switch (xfer_mode) {
	case XFER_MW_DMA_2:
		cycle_time = 250;
+1 −3
Original line number Diff line number Diff line
@@ -722,12 +722,10 @@ static void tune_cris_ide(ide_drive_t *drive, u8 pio)
	(void)ide_config_drive_speed(drive, XFER_PIO_0 + pio);
}

static int speed_cris_ide(ide_drive_t *drive, u8 speed)
static int speed_cris_ide(ide_drive_t *drive, const u8 speed)
{
	int cyc = 0, dvs = 0, strobe = 0, hold = 0;

	speed = ide_rate_filter(drive, speed);

	if (speed >= XFER_PIO_0 && speed <= XFER_PIO_4) {
		tune_cris_ide(drive, speed - XFER_PIO_0);
		return ide_config_drive_speed(drive, speed);
+8 −9
Original line number Diff line number Diff line
@@ -79,7 +79,7 @@ EXPORT_SYMBOL(ide_xfer_verbose);
 *	TODO: check device PIO capabilities
 */

u8 ide_rate_filter(ide_drive_t *drive, u8 speed)
static u8 ide_rate_filter(ide_drive_t *drive, u8 speed)
{
	ide_hwif_t *hwif = drive->hwif;
	u8 mode = ide_find_dma_mode(drive, speed);
@@ -96,8 +96,6 @@ u8 ide_rate_filter(ide_drive_t *drive, u8 speed)
	return min(speed, mode);
}

EXPORT_SYMBOL(ide_rate_filter);

int ide_use_fast_pio(ide_drive_t *drive)
{
	struct hd_driveid *id = drive->id;
@@ -364,13 +362,14 @@ void ide_toggle_bounce(ide_drive_t *drive, int on)
 
int ide_set_xfer_rate(ide_drive_t *drive, u8 rate)
{
#ifndef CONFIG_BLK_DEV_IDEDMA
	rate = min(rate, (u8) XFER_PIO_4);
#endif
	if(HWIF(drive)->speedproc)
		return HWIF(drive)->speedproc(drive, rate);
	else
	ide_hwif_t *hwif = drive->hwif;

	if (hwif->speedproc == NULL)
		return -1;

	rate = ide_rate_filter(drive, rate);

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

static void ide_dump_opcode(ide_drive_t *drive)
+1 −3
Original line number Diff line number Diff line
@@ -175,13 +175,11 @@ static void auide_tune_drive(ide_drive_t *drive, byte pio)
	ide_config_drive_speed(drive, speed);
}

static int auide_tune_chipset (ide_drive_t *drive, u8 speed)
static int auide_tune_chipset(ide_drive_t *drive, const u8 speed)
{
	int mem_sttime;
	int mem_stcfg;

	speed = ide_rate_filter(drive, speed);

	mem_sttime = 0;
	mem_stcfg  = au_readl(MEM_STCFG2);

+2 −4
Original line number Diff line number Diff line
@@ -87,12 +87,11 @@ static u8 pci_bus_clock_list_ultra (u8 speed, struct chipset_bus_clock_list_entr
	return chipset_table->ultra_settings;
}

static int aec6210_tune_chipset (ide_drive_t *drive, u8 xferspeed)
static int aec6210_tune_chipset(ide_drive_t *drive, const u8 speed)
{
	ide_hwif_t *hwif	= HWIF(drive);
	struct pci_dev *dev	= hwif->pci_dev;
	u16 d_conf		= 0;
	u8 speed		= ide_rate_filter(drive, xferspeed);
	u8 ultra = 0, ultra_conf = 0;
	u8 tmp0 = 0, tmp1 = 0, tmp2 = 0;
	unsigned long flags;
@@ -115,11 +114,10 @@ static int aec6210_tune_chipset (ide_drive_t *drive, u8 xferspeed)
	return(ide_config_drive_speed(drive, speed));
}

static int aec6260_tune_chipset (ide_drive_t *drive, u8 xferspeed)
static int aec6260_tune_chipset(ide_drive_t *drive, const u8 speed)
{
	ide_hwif_t *hwif	= HWIF(drive);
	struct pci_dev *dev	= hwif->pci_dev;
	u8 speed	= ide_rate_filter(drive, xferspeed);
	u8 unit		= (drive->select.b.unit & 0x01);
	u8 tmp1 = 0, tmp2 = 0;
	u8 ultra = 0, drive_conf = 0, ultra_conf = 0;
Loading