Lines Matching refs:drive

41 		if (ide_device_get(idkp->drive))  in ide_disk_get()
52 ide_drive_t *drive = idkp->drive; in ide_disk_put() local
56 ide_device_put(drive); in ide_disk_put()
60 sector_t ide_gd_capacity(ide_drive_t *drive) in ide_gd_capacity() argument
62 return drive->capacity64; in ide_gd_capacity()
67 static void ide_gd_remove(ide_drive_t *drive) in ide_gd_remove() argument
69 struct ide_disk_obj *idkp = drive->driver_data; in ide_gd_remove()
72 ide_proc_unregister_driver(drive, idkp->driver); in ide_gd_remove()
75 drive->disk_ops->flush(drive); in ide_gd_remove()
85 ide_drive_t *drive = idkp->drive; in ide_disk_release() local
88 drive->disk_ops = NULL; in ide_disk_release()
89 drive->driver_data = NULL; in ide_disk_release()
100 static void ide_gd_resume(ide_drive_t *drive) in ide_gd_resume() argument
102 if (ata_id_hpa_enabled(drive->id)) in ide_gd_resume()
103 (void)drive->disk_ops->get_capacity(drive); in ide_gd_resume()
119 static void ide_gd_shutdown(ide_drive_t *drive) argument
138 drive->disk_ops->flush(drive);
142 printk(KERN_INFO "Shutdown: %s\n", drive->name);
144 drive->gendev.bus->suspend(&drive->gendev, PMSG_SUSPEND);
148 static ide_proc_entry_t *ide_disk_proc_entries(ide_drive_t *drive) argument
150 return (drive->media == ide_disk) ? ide_disk_proc : ide_floppy_proc;
153 static const struct ide_proc_devset *ide_disk_proc_devsets(ide_drive_t *drive) argument
155 return (drive->media == ide_disk) ? ide_disk_settings
160 static ide_startstop_t ide_gd_do_request(ide_drive_t *drive, argument
163 return drive->disk_ops->do_request(drive, rq, sector);
188 ide_drive_t *drive; local
195 drive = idkp->drive;
201 if ((drive->dev_flags & IDE_DFLAG_REMOVABLE) && idkp->openers == 1) {
202 drive->dev_flags &= ~IDE_DFLAG_FORMAT_IN_PROGRESS;
205 ret = drive->disk_ops->init_media(drive, disk);
217 if ((drive->dev_flags & IDE_DFLAG_WP) && (mode & FMODE_WRITE)) {
227 drive->disk_ops->set_doorlock(drive, disk, 1);
228 drive->dev_flags |= IDE_DFLAG_MEDIA_CHANGED;
230 } else if (drive->dev_flags & IDE_DFLAG_FORMAT_IN_PROGRESS) {
257 ide_drive_t *drive = idkp->drive; local
263 drive->disk_ops->flush(drive);
265 if ((drive->dev_flags & IDE_DFLAG_REMOVABLE) && idkp->openers == 1) {
266 drive->disk_ops->set_doorlock(drive, disk, 0);
267 drive->dev_flags &= ~IDE_DFLAG_FORMAT_IN_PROGRESS;
279 ide_drive_t *drive = idkp->drive; local
281 geo->heads = drive->bios_head;
282 geo->sectors = drive->bios_sect;
283 geo->cylinders = (u16)drive->bios_cyl; /* truncate */
291 ide_drive_t *drive = idkp->drive; local
295 if (drive->dev_flags & IDE_DFLAG_ATTACH) {
296 drive->dev_flags &= ~IDE_DFLAG_ATTACH;
307 ret = drive->dev_flags & IDE_DFLAG_MEDIA_CHANGED;
308 drive->dev_flags &= ~IDE_DFLAG_MEDIA_CHANGED;
316 ide_drive_t *drive = idkp->drive; local
317 const struct ide_disk_ops *disk_ops = drive->disk_ops;
320 disk_ops->unlock_native_capacity(drive);
326 ide_drive_t *drive = idkp->drive; local
329 drive->disk_ops->get_capacity(drive);
331 set_capacity(disk, ide_gd_capacity(drive));
339 ide_drive_t *drive = idkp->drive; local
341 return drive->disk_ops->ioctl(drive, bdev, mode, cmd, arg);
355 static int ide_gd_probe(ide_drive_t *drive) argument
362 if (!strstr("ide-gd", drive->driver_req))
366 if (drive->media == ide_disk)
370 if (drive->media == ide_floppy)
376 if (disk_ops->check(drive, DRV_NAME) == 0) {
378 drive->name);
385 drive->name);
389 g = alloc_disk_node(IDE_DISK_MINORS, hwif_to_node(drive->hwif));
393 ide_init_disk(g, drive);
395 idkp->dev.parent = &drive->gendev;
397 dev_set_name(&idkp->dev, "%s", dev_name(&drive->gendev));
402 idkp->drive = drive;
408 drive->driver_data = idkp;
409 drive->debug_mask = debug_mask;
410 drive->disk_ops = disk_ops;
412 disk_ops->setup(drive);
414 set_capacity(g, ide_gd_capacity(drive));
418 if (drive->dev_flags & IDE_DFLAG_REMOVABLE)
422 device_add_disk(&drive->gendev, g, NULL);