Lines Matching refs:drive
93 static void qd65xx_dev_select(ide_drive_t *drive) in qd65xx_dev_select() argument
95 u8 index = (( (QD_TIMREG(drive)) & 0x80 ) >> 7) | in qd65xx_dev_select()
96 (QD_TIMREG(drive) & 0x02); in qd65xx_dev_select()
98 if (timings[index] != QD_TIMING(drive)) in qd65xx_dev_select()
99 outb(timings[index] = QD_TIMING(drive), QD_TIMREG(drive)); in qd65xx_dev_select()
101 outb(drive->select | ATA_DEVICE_OBS, drive->hwif->io_ports.device_addr); in qd65xx_dev_select()
151 static int qd_find_disk_type (ide_drive_t *drive, in qd_find_disk_type() argument
155 char *m = (char *)&drive->id[ATA_ID_PROD]; in qd_find_disk_type()
166 printk(KERN_DEBUG "%s: listed !\n", drive->name); in qd_find_disk_type()
181 static void qd_set_timing (ide_drive_t *drive, u8 timing) in qd_set_timing() argument
183 unsigned long data = (unsigned long)ide_get_drivedata(drive); in qd_set_timing()
187 ide_set_drivedata(drive, (void *)data); in qd_set_timing()
189 printk(KERN_DEBUG "%s: %#x\n", drive->name, timing); in qd_set_timing()
192 static void qd6500_set_pio_mode(ide_hwif_t *hwif, ide_drive_t *drive) in qd6500_set_pio_mode() argument
194 u16 *id = drive->id; in qd6500_set_pio_mode()
199 if (!qd_find_disk_type(drive, &active_time, &recovery_time) && in qd6500_set_pio_mode()
202 printk(KERN_INFO "%s: PIO mode%d\n", drive->name, in qd6500_set_pio_mode()
205 recovery_time = drive->id[ATA_ID_EIDE_PIO] - 120; in qd6500_set_pio_mode()
208 qd_set_timing(drive, qd6500_compute_timing(drive->hwif, in qd6500_set_pio_mode()
212 static void qd6580_set_pio_mode(ide_hwif_t *hwif, ide_drive_t *drive) in qd6580_set_pio_mode() argument
214 const u8 pio = drive->pio_mode - XFER_PIO_0; in qd6580_set_pio_mode()
221 if (drive->id && !qd_find_disk_type(drive, &active_time, &recovery_time)) { in qd6580_set_pio_mode()
222 cycle_time = ide_pio_cycle_time(drive, pio); in qd6580_set_pio_mode()
231 printk(KERN_WARNING "%s: Strange recovery time !\n",drive->name); in qd6580_set_pio_mode()
238 printk(KERN_WARNING "%s: Strange recovery time !\n",drive->name); in qd6580_set_pio_mode()
249 printk(KERN_INFO "%s: PIO mode%d\n", drive->name,pio); in qd6580_set_pio_mode()
252 if (!hwif->channel && drive->media != ide_disk) { in qd6580_set_pio_mode()
256 drive->name, hwif->name); in qd6580_set_pio_mode()
259 qd_set_timing(drive, qd6580_compute_timing(active_time, recovery_time)); in qd6580_set_pio_mode()
290 static void __init qd6500_init_dev(ide_drive_t *drive) in qd6500_init_dev() argument
292 ide_hwif_t *hwif = drive->hwif; in qd6500_init_dev()
296 ide_set_drivedata(drive, (void *)QD6500_DEF_DATA); in qd6500_init_dev()
299 static void __init qd6580_init_dev(ide_drive_t *drive) in qd6580_init_dev() argument
301 ide_hwif_t *hwif = drive->hwif; in qd6580_init_dev()
312 ide_set_drivedata(drive, (void *)((drive->dn & 1) ? t2 : t1)); in qd6580_init_dev()