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()
169 int ide_wait_stat(ide_startstop_t *startstop, ide_drive_t *drive, u8 good, in ide_wait_stat() argument
176 if (drive->max_failures && (drive->failures > drive->max_failures)) { in ide_wait_stat()
181 err = __ide_wait_stat(drive, good, bad, timeout, &stat); in ide_wait_stat()
185 *startstop = ide_error(drive, s, stat); in ide_wait_stat()
233 u8 eighty_ninty_three(ide_drive_t *drive) in eighty_ninty_three() argument
235 ide_hwif_t *hwif = drive->hwif; in eighty_ninty_three()
236 u16 *id = drive->id; in eighty_ninty_three()
244 drive->name); in eighty_ninty_three()
278 if (drive->dev_flags & IDE_DFLAG_UDMA33_WARNED) in eighty_ninty_three()
283 drive->name, in eighty_ninty_three()
286 drive->dev_flags |= IDE_DFLAG_UDMA33_WARNED; in eighty_ninty_three()
304 void ide_check_nien_quirk_list(ide_drive_t *drive) in ide_check_nien_quirk_list() argument
306 const char **list, *m = (char *)&drive->id[ATA_ID_PROD]; in ide_check_nien_quirk_list()
310 drive->dev_flags |= IDE_DFLAG_NIEN_QUIRK; in ide_check_nien_quirk_list()
315 int ide_driveid_update(ide_drive_t *drive) in ide_driveid_update() argument
324 SELECT_MASK(drive, 1); in ide_driveid_update()
325 rc = ide_dev_read_id(drive, ATA_CMD_ID_ATA, id, 1); in ide_driveid_update()
326 SELECT_MASK(drive, 0); in ide_driveid_update()
331 drive->id[ATA_ID_UDMA_MODES] = id[ATA_ID_UDMA_MODES]; in ide_driveid_update()
332 drive->id[ATA_ID_MWDMA_MODES] = id[ATA_ID_MWDMA_MODES]; in ide_driveid_update()
333 drive->id[ATA_ID_SWDMA_MODES] = id[ATA_ID_SWDMA_MODES]; in ide_driveid_update()
334 drive->id[ATA_ID_CFA_MODES] = id[ATA_ID_CFA_MODES]; in ide_driveid_update()
342 printk(KERN_ERR "%s: %s: bad status\n", drive->name, __func__); in ide_driveid_update()
347 int ide_config_drive_speed(ide_drive_t *drive, u8 speed) in ide_config_drive_speed() argument
349 ide_hwif_t *hwif = drive->hwif; in ide_config_drive_speed()
352 u16 *id = drive->id, i; in ide_config_drive_speed()
358 hwif->dma_ops->dma_host_set(drive, 0); in ide_config_drive_speed()
362 if ((speed & 0xf8) == XFER_PIO_0 && ata_id_has_iordy(drive->id) == 0) in ide_config_drive_speed()
373 tp_ops->dev_select(drive); in ide_config_drive_speed()
374 SELECT_MASK(drive, 1); in ide_config_drive_speed()
382 tp_ops->tf_load(drive, &tf, IDE_VALID_FEATURE | IDE_VALID_NSECT); in ide_config_drive_speed()
386 if (drive->dev_flags & IDE_DFLAG_NIEN_QUIRK) in ide_config_drive_speed()
389 error = __ide_wait_stat(drive, drive->ready_stat, in ide_config_drive_speed()
393 SELECT_MASK(drive, 0); in ide_config_drive_speed()
396 (void) ide_dump_status(drive, "set_drive_speed_status", stat); in ide_config_drive_speed()
411 if (speed >= XFER_SW_DMA_0 && (drive->dev_flags & IDE_DFLAG_USING_DMA)) in ide_config_drive_speed()
412 hwif->dma_ops->dma_host_set(drive, 1); in ide_config_drive_speed()
414 ide_dma_off_quietly(drive); in ide_config_drive_speed()
434 if (!drive->init_speed) in ide_config_drive_speed()
435 drive->init_speed = speed; in ide_config_drive_speed()
436 drive->current_speed = speed; in ide_config_drive_speed()
449 void __ide_set_handler(ide_drive_t *drive, ide_handler_t *handler, in __ide_set_handler() argument
452 ide_hwif_t *hwif = drive->hwif; in __ide_set_handler()
461 void ide_set_handler(ide_drive_t *drive, ide_handler_t *handler, in ide_set_handler() argument
464 ide_hwif_t *hwif = drive->hwif; in ide_set_handler()
468 __ide_set_handler(drive, handler, timeout); in ide_set_handler()
486 void ide_execute_command(ide_drive_t *drive, struct ide_cmd *cmd, in ide_execute_command() argument
489 ide_hwif_t *hwif = drive->hwif; in ide_execute_command()
495 (drive->atapi_flags & IDE_AFLAG_DRQ_INTERRUPT)) in ide_execute_command()
496 __ide_set_handler(drive, handler, timeout); in ide_execute_command()