Lines Matching refs:drive

30 void SELECT_MASK(ide_drive_t *drive, int mask)  in SELECT_MASK()  argument
32 const struct ide_port_ops *port_ops = drive->hwif->port_ops; in SELECT_MASK()
35 port_ops->maskproc(drive, mask); in SELECT_MASK()
38 u8 ide_read_error(ide_drive_t *drive) in ide_read_error() argument
42 drive->hwif->tp_ops->tf_read(drive, &tf, IDE_VALID_ERROR); in ide_read_error()
105 int __ide_wait_stat(ide_drive_t *drive, u8 good, u8 bad, in __ide_wait_stat() argument
108 ide_hwif_t *hwif = drive->hwif; in __ide_wait_stat()
164 int ide_wait_stat(ide_startstop_t *startstop, ide_drive_t *drive, u8 good, in ide_wait_stat() argument
171 if (drive->max_failures && (drive->failures > drive->max_failures)) { in ide_wait_stat()
176 err = __ide_wait_stat(drive, good, bad, timeout, &stat); in ide_wait_stat()
180 *startstop = ide_error(drive, s, stat); in ide_wait_stat()
228 u8 eighty_ninty_three(ide_drive_t *drive) in eighty_ninty_three() argument
230 ide_hwif_t *hwif = drive->hwif; in eighty_ninty_three()
231 u16 *id = drive->id; in eighty_ninty_three()
239 drive->name); in eighty_ninty_three()
273 if (drive->dev_flags & IDE_DFLAG_UDMA33_WARNED) in eighty_ninty_three()
278 drive->name, in eighty_ninty_three()
281 drive->dev_flags |= IDE_DFLAG_UDMA33_WARNED; in eighty_ninty_three()
299 void ide_check_nien_quirk_list(ide_drive_t *drive) in ide_check_nien_quirk_list() argument
301 const char **list, *m = (char *)&drive->id[ATA_ID_PROD]; in ide_check_nien_quirk_list()
305 drive->dev_flags |= IDE_DFLAG_NIEN_QUIRK; in ide_check_nien_quirk_list()
310 int ide_driveid_update(ide_drive_t *drive) in ide_driveid_update() argument
319 SELECT_MASK(drive, 1); in ide_driveid_update()
320 rc = ide_dev_read_id(drive, ATA_CMD_ID_ATA, id, 1); in ide_driveid_update()
321 SELECT_MASK(drive, 0); in ide_driveid_update()
326 drive->id[ATA_ID_UDMA_MODES] = id[ATA_ID_UDMA_MODES]; in ide_driveid_update()
327 drive->id[ATA_ID_MWDMA_MODES] = id[ATA_ID_MWDMA_MODES]; in ide_driveid_update()
328 drive->id[ATA_ID_SWDMA_MODES] = id[ATA_ID_SWDMA_MODES]; in ide_driveid_update()
329 drive->id[ATA_ID_CFA_MODES] = id[ATA_ID_CFA_MODES]; in ide_driveid_update()
337 printk(KERN_ERR "%s: %s: bad status\n", drive->name, __func__); in ide_driveid_update()
342 int ide_config_drive_speed(ide_drive_t *drive, u8 speed) in ide_config_drive_speed() argument
344 ide_hwif_t *hwif = drive->hwif; in ide_config_drive_speed()
347 u16 *id = drive->id, i; in ide_config_drive_speed()
353 hwif->dma_ops->dma_host_set(drive, 0); in ide_config_drive_speed()
357 if ((speed & 0xf8) == XFER_PIO_0 && ata_id_has_iordy(drive->id) == 0) in ide_config_drive_speed()
368 tp_ops->dev_select(drive); in ide_config_drive_speed()
369 SELECT_MASK(drive, 1); in ide_config_drive_speed()
377 tp_ops->tf_load(drive, &tf, IDE_VALID_FEATURE | IDE_VALID_NSECT); in ide_config_drive_speed()
381 if (drive->dev_flags & IDE_DFLAG_NIEN_QUIRK) in ide_config_drive_speed()
384 error = __ide_wait_stat(drive, drive->ready_stat, in ide_config_drive_speed()
388 SELECT_MASK(drive, 0); in ide_config_drive_speed()
391 (void) ide_dump_status(drive, "set_drive_speed_status", stat); in ide_config_drive_speed()
406 if (speed >= XFER_SW_DMA_0 && (drive->dev_flags & IDE_DFLAG_USING_DMA)) in ide_config_drive_speed()
407 hwif->dma_ops->dma_host_set(drive, 1); in ide_config_drive_speed()
409 ide_dma_off_quietly(drive); in ide_config_drive_speed()
429 if (!drive->init_speed) in ide_config_drive_speed()
430 drive->init_speed = speed; in ide_config_drive_speed()
431 drive->current_speed = speed; in ide_config_drive_speed()
444 void __ide_set_handler(ide_drive_t *drive, ide_handler_t *handler, in __ide_set_handler() argument
447 ide_hwif_t *hwif = drive->hwif; in __ide_set_handler()
456 void ide_set_handler(ide_drive_t *drive, ide_handler_t *handler, in ide_set_handler() argument
459 ide_hwif_t *hwif = drive->hwif; in ide_set_handler()
463 __ide_set_handler(drive, handler, timeout); in ide_set_handler()
481 void ide_execute_command(ide_drive_t *drive, struct ide_cmd *cmd, in ide_execute_command() argument
484 ide_hwif_t *hwif = drive->hwif; in ide_execute_command()
490 (drive->atapi_flags & IDE_AFLAG_DRQ_INTERRUPT)) in ide_execute_command()
491 __ide_set_handler(drive, handler, timeout); in ide_execute_command()