Lines Matching refs:drive
29 int ide_setting_ioctl(ide_drive_t *drive, struct block_device *bdev,
47 err = ds->get(drive);
59 err = ide_devset_execute(drive, ds, arg);
67 static int ide_get_identity_ioctl(ide_drive_t *drive, unsigned int cmd,
74 if ((drive->dev_flags & IDE_DFLAG_ID_READ) == 0) {
86 memcpy(id, drive->id, size);
97 static int ide_get_nice_ioctl(ide_drive_t *drive, unsigned long arg)
99 return put_user_long((!!(drive->dev_flags & IDE_DFLAG_DSC_OVERLAP)
101 (!!(drive->dev_flags & IDE_DFLAG_NICE1)
105 static int ide_set_nice_ioctl(ide_drive_t *drive, unsigned long arg)
111 (drive->media != ide_tape))
115 drive->dev_flags |= IDE_DFLAG_DSC_OVERLAP;
117 drive->dev_flags &= ~IDE_DFLAG_DSC_OVERLAP;
120 drive->dev_flags |= IDE_DFLAG_NICE1;
122 drive->dev_flags &= ~IDE_DFLAG_NICE1;
127 static int ide_cmd_ioctl(ide_drive_t *drive, void __user *argp)
138 rq = blk_get_request(drive->queue, REQ_OP_DRV_IN, 0);
140 blk_execute_rq(drive->queue, NULL, rq, 0);
178 xfer_rate = ide_find_dma_mode(drive, tf->nsect);
187 err = ide_raw_taskfile(drive, &cmd, buf, args[3]);
203 static int ide_task_ioctl(ide_drive_t *drive, void __user *p)
218 err = ide_no_data_taskfile(drive, &cmd);
229 static int generic_drive_reset(ide_drive_t *drive)
234 rq = blk_get_request(drive->queue, REQ_OP_DRV_IN, 0);
238 blk_execute_rq(drive->queue, NULL, rq, 1);
244 int generic_ide_ioctl(ide_drive_t *drive, struct block_device *bdev,
253 err = ide_setting_ioctl(drive, bdev, cmd, arg, ide_ioctl_settings);
262 return ide_get_identity_ioctl(drive, cmd, argp);
264 return ide_get_nice_ioctl(drive, arg);
268 return ide_set_nice_ioctl(drive, arg);
276 if (drive->media == ide_disk)
277 return ide_taskfile_ioctl(drive, arg);
283 return ide_cmd_ioctl(drive, argp);
287 return ide_task_ioctl(drive, argp);
291 return generic_drive_reset(drive);