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

Commit 342cdb6d authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz
Browse files

ide: make ide_get_best_pio_mode() print info if overriding PIO mode



* Print info about overriding PIO mode in ide_get_best_pio_mode().

* Remove info about overriding PIO mode from cmd64{0,x} host drivers.

* Remove no longer needed ide_pio_data_t.overridden field.

Acked-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 328dcbb6
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -277,7 +277,7 @@ u8 ide_get_best_pio_mode (ide_drive_t *drive, u8 mode_wanted, u8 max_mode, ide_p
	} else if (!drive->id) {
		pio_mode = 0;
	} else if ((pio_mode = ide_scan_pio_blacklist(id->model)) != -1) {
		overridden = 1;
		printk(KERN_INFO "%s: is on PIO blacklist\n", drive->name);
		use_iordy = (pio_mode > 2);
	} else {
		pio_mode = id->tPIO;
@@ -303,12 +303,17 @@ u8 ide_get_best_pio_mode (ide_drive_t *drive, u8 mode_wanted, u8 max_mode, ide_p
			}
		}

		if (overridden)
			printk(KERN_INFO "%s: tPIO > 2, assuming tPIO = 2\n",
					 drive->name);

		/*
		 * Conservative "downgrade" for all pre-ATA2 drives
		 */
		if (pio_mode && pio_mode < 4) {
			pio_mode--;
			overridden = 1;
			printk(KERN_INFO "%s: applying conservative "
					 "PIO \"downgrade\"\n", drive->name);
			if (cycle_time && cycle_time < ide_pio_timings[pio_mode].cycle_time)
				cycle_time = 0; /* use standard timing */
		}
@@ -321,7 +326,6 @@ u8 ide_get_best_pio_mode (ide_drive_t *drive, u8 mode_wanted, u8 max_mode, ide_p
		d->pio_mode = pio_mode;
		d->cycle_time = cycle_time ? cycle_time : ide_pio_timings[pio_mode].cycle_time;
		d->use_iordy = use_iordy;
		d->overridden = overridden;
	}
	return pio_mode;
}
+3 −4
Original line number Diff line number Diff line
@@ -665,13 +665,12 @@ static void cmd640_tune_drive (ide_drive_t *drive, u8 mode_wanted)
	(void) ide_get_best_pio_mode (drive, mode_wanted, 5, &d);
	cmd640_set_mode (index, d.pio_mode, d.cycle_time);

	printk ("%s: selected cmd640 PIO mode%d (%dns)%s",
	printk("%s: selected cmd640 PIO mode%d (%dns)",
		drive->name,
		d.pio_mode,
		d.cycle_time,
		d.overridden ? " (overriding vendor mode)" : "");
		d.cycle_time);

	display_clocks(index);
	return;
}

#endif /* CONFIG_BLK_DEV_CMD640_ENHANCED */
+2 −3
Original line number Diff line number Diff line
@@ -227,9 +227,8 @@ static u8 cmd64x_tune_pio (ide_drive_t *drive, u8 mode_wanted)
	static const u8 arttim_regs[4] = {ARTTIM0, ARTTIM1, ARTTIM23, ARTTIM23};
	pio_mode = ide_get_best_pio_mode(drive, mode_wanted, 5, &pio);

	cmdprintk("%s: PIO mode wanted %d, selected %d (%d ns)%s\n",
		  drive->name, mode_wanted, pio_mode, pio.cycle_time,
		  pio.overridden ? " (overriding vendor mode)" : "");
	cmdprintk("%s: PIO mode wanted %d, selected %d (%d ns)\n",
		  drive->name, mode_wanted, pio_mode, pio.cycle_time);

	program_cycle_times(drive, pio.cycle_time,
			    ide_pio_timings[pio_mode].active_time);
+0 −1
Original line number Diff line number Diff line
@@ -1375,7 +1375,6 @@ typedef struct ide_pio_timings_s {
typedef struct ide_pio_data_s {
	u8 pio_mode;
	u8 use_iordy;
	u8 overridden;
	unsigned int cycle_time;
} ide_pio_data_t;