Lines Matching full:drive

142 	ide_drive_t		*drive;  member
245 if (ide_device_get(tape->drive)) in ide_tape_get()
257 ide_drive_t *drive = tape->drive; in ide_tape_put() local
261 ide_device_put(drive); in ide_tape_put()
269 static void idetape_analyze_error(ide_drive_t *drive) in idetape_analyze_error() argument
271 idetape_tape_t *tape = drive->driver_data; in idetape_analyze_error()
272 struct ide_atapi_pc *pc = drive->failed_pc; in idetape_analyze_error()
273 struct request *rq = drive->hwif->rq; in idetape_analyze_error()
327 static int ide_tape_callback(ide_drive_t *drive, int dsc) in ide_tape_callback() argument
329 idetape_tape_t *tape = drive->driver_data; in ide_tape_callback()
330 struct ide_atapi_pc *pc = drive->pc; in ide_tape_callback()
331 struct request *rq = drive->hwif->rq; in ide_tape_callback()
339 ide_tape_handle_dsc(drive); in ide_tape_callback()
341 if (drive->failed_pc == pc) in ide_tape_callback()
342 drive->failed_pc = NULL; in ide_tape_callback()
346 idetape_analyze_error(drive); in ide_tape_callback()
379 static void ide_tape_stall_queue(ide_drive_t *drive) in ide_tape_stall_queue() argument
381 idetape_tape_t *tape = drive->driver_data; in ide_tape_stall_queue()
384 drive->hwif->rq->cmd[0], tape->dsc_poll_freq); in ide_tape_stall_queue()
388 ide_stall_queue(drive, tape->dsc_poll_freq); in ide_tape_stall_queue()
391 static void ide_tape_handle_dsc(ide_drive_t *drive) in ide_tape_handle_dsc() argument
393 idetape_tape_t *tape = drive->driver_data; in ide_tape_handle_dsc()
400 ide_tape_stall_queue(drive); in ide_tape_handle_dsc()
406 * The current Packet Command is available in drive->pc, and will not change
412 * 1. ide_tape_issue_pc will send the packet command to the drive, and will set
421 * Since the tape drive will not issue an interrupt, we have to poll for this
440 static ide_startstop_t ide_tape_issue_pc(ide_drive_t *drive, in ide_tape_issue_pc() argument
444 idetape_tape_t *tape = drive->driver_data; in ide_tape_issue_pc()
445 struct request *rq = drive->hwif->rq; in ide_tape_issue_pc()
447 if (drive->failed_pc == NULL && pc->c[0] != REQUEST_SENSE) in ide_tape_issue_pc()
448 drive->failed_pc = pc; in ide_tape_issue_pc()
451 drive->pc = pc; in ide_tape_issue_pc()
476 drive->failed_pc = NULL; in ide_tape_issue_pc()
477 drive->pc_callback(drive, 0); in ide_tape_issue_pc()
478 ide_complete_rq(drive, BLK_STS_IOERR, blk_rq_bytes(rq)); in ide_tape_issue_pc()
486 return ide_issue_pc(drive, cmd); in ide_tape_issue_pc()
516 static ide_startstop_t idetape_media_access_finished(ide_drive_t *drive) in idetape_media_access_finished() argument
518 ide_hwif_t *hwif = drive->hwif; in idetape_media_access_finished()
519 idetape_tape_t *tape = drive->driver_data; in idetape_media_access_finished()
520 struct ide_atapi_pc *pc = drive->pc; in idetape_media_access_finished()
532 ide_retry_pc(drive); in idetape_media_access_finished()
538 drive->failed_pc = NULL; in idetape_media_access_finished()
540 drive->pc_callback(drive, 0); in idetape_media_access_finished()
567 static ide_startstop_t idetape_do_request(ide_drive_t *drive, in idetape_do_request() argument
570 ide_hwif_t *hwif = drive->hwif; in idetape_do_request()
571 idetape_tape_t *tape = drive->driver_data; in idetape_do_request()
586 if (drive->failed_pc && drive->pc->c[0] == REQUEST_SENSE) { in idetape_do_request()
587 pc = drive->failed_pc; in idetape_do_request()
597 if ((drive->dev_flags & IDE_DFLAG_DSC_OVERLAP) == 0 && in idetape_do_request()
599 drive->atapi_flags |= IDE_AFLAG_IGNORE_DSC; in idetape_do_request()
601 if (drive->dev_flags & IDE_DFLAG_POST_RESET) { in idetape_do_request()
602 drive->atapi_flags |= IDE_AFLAG_IGNORE_DSC; in idetape_do_request()
603 drive->dev_flags &= ~IDE_DFLAG_POST_RESET; in idetape_do_request()
606 if (!(drive->atapi_flags & IDE_AFLAG_IGNORE_DSC) && in idetape_do_request()
616 idetape_media_access_finished(drive); in idetape_do_request()
619 return ide_do_reset(drive); in idetape_do_request()
625 ide_tape_stall_queue(drive); in idetape_do_request()
628 drive->atapi_flags &= ~IDE_AFLAG_IGNORE_DSC; in idetape_do_request()
649 idetape_media_access_finished(drive); in idetape_do_request()
656 ide_prep_sense(drive, rq); in idetape_do_request()
666 ide_map_sg(drive, &cmd); in idetape_do_request()
668 return ide_tape_issue_pc(drive, &cmd, pc); in idetape_do_request()
675 static void idetape_create_write_filemark_cmd(ide_drive_t *drive, in idetape_create_write_filemark_cmd() argument
684 static int idetape_wait_ready(ide_drive_t *drive, unsigned long timeout) in idetape_wait_ready() argument
686 idetape_tape_t *tape = drive->driver_data; in idetape_wait_ready()
691 set_bit(ilog2(IDE_AFLAG_MEDIUM_PRESENT), &drive->atapi_flags); in idetape_wait_ready()
694 if (ide_do_test_unit_ready(drive, disk) == 0) in idetape_wait_ready()
701 ide_do_start_stop(drive, disk, IDETAPE_LU_LOAD_MASK); in idetape_wait_ready()
712 static int idetape_flush_tape_buffers(ide_drive_t *drive) in idetape_flush_tape_buffers() argument
714 struct ide_tape_obj *tape = drive->driver_data; in idetape_flush_tape_buffers()
718 idetape_create_write_filemark_cmd(drive, &pc, 0); in idetape_flush_tape_buffers()
719 rc = ide_queue_pc_tail(drive, tape->disk, &pc, NULL, 0); in idetape_flush_tape_buffers()
722 idetape_wait_ready(drive, 60 * 5 * HZ); in idetape_flush_tape_buffers()
726 static int ide_tape_read_position(ide_drive_t *drive) in ide_tape_read_position() argument
728 idetape_tape_t *tape = drive->driver_data; in ide_tape_read_position()
739 if (ide_queue_pc_tail(drive, tape->disk, &pc, buf, pc.req_xfer)) in ide_tape_read_position()
752 &drive->atapi_flags); in ide_tape_read_position()
761 &drive->atapi_flags); in ide_tape_read_position()
768 static void idetape_create_locate_cmd(ide_drive_t *drive, in idetape_create_locate_cmd() argument
780 static void __ide_tape_discard_merge_buffer(ide_drive_t *drive) in __ide_tape_discard_merge_buffer() argument
782 idetape_tape_t *tape = drive->driver_data; in __ide_tape_discard_merge_buffer()
787 clear_bit(ilog2(IDE_AFLAG_FILEMARK), &drive->atapi_flags); in __ide_tape_discard_merge_buffer()
803 static int idetape_position_tape(ide_drive_t *drive, unsigned int block, in idetape_position_tape() argument
806 idetape_tape_t *tape = drive->driver_data; in idetape_position_tape()
812 __ide_tape_discard_merge_buffer(drive); in idetape_position_tape()
813 idetape_wait_ready(drive, 60 * 5 * HZ); in idetape_position_tape()
814 idetape_create_locate_cmd(drive, &pc, block, partition, skip); in idetape_position_tape()
815 ret = ide_queue_pc_tail(drive, disk, &pc, NULL, 0); in idetape_position_tape()
819 ret = ide_tape_read_position(drive); in idetape_position_tape()
825 static void ide_tape_discard_merge_buffer(ide_drive_t *drive, in ide_tape_discard_merge_buffer() argument
828 idetape_tape_t *tape = drive->driver_data; in ide_tape_discard_merge_buffer()
831 __ide_tape_discard_merge_buffer(drive); in ide_tape_discard_merge_buffer()
833 position = ide_tape_read_position(drive); in ide_tape_discard_merge_buffer()
835 if (idetape_position_tape(drive, seek, 0, 0)) { in ide_tape_discard_merge_buffer()
847 static int idetape_queue_rw_tail(ide_drive_t *drive, int cmd, int size) in idetape_queue_rw_tail() argument
849 idetape_tape_t *tape = drive->driver_data; in idetape_queue_rw_tail()
858 rq = blk_get_request(drive->queue, REQ_OP_DRV_IN, 0); in idetape_queue_rw_tail()
865 ret = blk_rq_map_kern(drive->queue, rq, tape->buf, size, in idetape_queue_rw_tail()
871 blk_execute_rq(drive->queue, tape->disk, rq, 0); in idetape_queue_rw_tail()
897 static void idetape_create_rewind_cmd(ide_drive_t *drive, in idetape_create_rewind_cmd() argument
922 static void ide_tape_flush_merge_buffer(ide_drive_t *drive) in ide_tape_flush_merge_buffer() argument
924 idetape_tape_t *tape = drive->driver_data; in ide_tape_flush_merge_buffer()
935 idetape_queue_rw_tail(drive, REQ_IDETAPE_WRITE, aligned); in ide_tape_flush_merge_buffer()
942 static int idetape_init_rw(ide_drive_t *drive, int dir) in idetape_init_rw() argument
944 idetape_tape_t *tape = drive->driver_data; in idetape_init_rw()
953 ide_tape_discard_merge_buffer(drive, 1); in idetape_init_rw()
955 ide_tape_flush_merge_buffer(drive); in idetape_init_rw()
956 idetape_flush_tape_buffers(drive); in idetape_init_rw()
976 if (drive->dev_flags & IDE_DFLAG_DSC_OVERLAP) { in idetape_init_rw()
980 rc = idetape_queue_rw_tail(drive, cmd, 0); in idetape_init_rw()
992 static void idetape_pad_zeros(ide_drive_t *drive, int bcount) in idetape_pad_zeros() argument
994 idetape_tape_t *tape = drive->driver_data; in idetape_pad_zeros()
1001 idetape_queue_rw_tail(drive, REQ_IDETAPE_WRITE, count); in idetape_pad_zeros()
1010 static int idetape_rewind_tape(ide_drive_t *drive) in idetape_rewind_tape() argument
1012 struct ide_tape_obj *tape = drive->driver_data; in idetape_rewind_tape()
1019 idetape_create_rewind_cmd(drive, &pc); in idetape_rewind_tape()
1020 ret = ide_queue_pc_tail(drive, disk, &pc, NULL, 0); in idetape_rewind_tape()
1024 ret = ide_tape_read_position(drive); in idetape_rewind_tape()
1031 static int idetape_blkdev_ioctl(ide_drive_t *drive, unsigned int cmd, in idetape_blkdev_ioctl() argument
1034 idetape_tape_t *tape = drive->driver_data; in idetape_blkdev_ioctl()
1064 static int idetape_space_over_filemarks(ide_drive_t *drive, short mt_op, in idetape_space_over_filemarks() argument
1067 idetape_tape_t *tape = drive->driver_data; in idetape_space_over_filemarks()
1087 &drive->atapi_flags)) in idetape_space_over_filemarks()
1089 ide_tape_discard_merge_buffer(drive, 0); in idetape_space_over_filemarks()
1097 return ide_queue_pc_tail(drive, disk, &pc, NULL, 0); in idetape_space_over_filemarks()
1102 retval = idetape_space_over_filemarks(drive, MTFSF, in idetape_space_over_filemarks()
1107 return idetape_space_over_filemarks(drive, MTFSF, count); in idetape_space_over_filemarks()
1134 ide_drive_t *drive = tape->drive; in idetape_chrdev_read() local
1142 if (test_bit(ilog2(IDE_AFLAG_DETECT_BS), &drive->atapi_flags)) in idetape_chrdev_read()
1148 rc = idetape_init_rw(drive, IDETAPE_DIR_READ); in idetape_chrdev_read()
1159 &drive->atapi_flags)) in idetape_chrdev_read()
1162 if (idetape_queue_rw_tail(drive, REQ_IDETAPE_READ, in idetape_chrdev_read()
1177 if (!done && test_bit(ilog2(IDE_AFLAG_FILEMARK), &drive->atapi_flags)) { in idetape_chrdev_read()
1178 idetape_space_over_filemarks(drive, MTFSF, 1); in idetape_chrdev_read()
1189 ide_drive_t *drive = tape->drive; in idetape_chrdev_write() local
1194 /* The drive is write protected. */ in idetape_chrdev_write()
1201 rc = idetape_init_rw(drive, IDETAPE_DIR_WRITE); in idetape_chrdev_write()
1210 idetape_queue_rw_tail(drive, REQ_IDETAPE_WRITE, in idetape_chrdev_write()
1228 static int idetape_write_filemark(ide_drive_t *drive) in idetape_write_filemark() argument
1230 struct ide_tape_obj *tape = drive->driver_data; in idetape_write_filemark()
1234 idetape_create_write_filemark_cmd(drive, &pc, 1); in idetape_write_filemark()
1235 if (ide_queue_pc_tail(drive, tape->disk, &pc, NULL, 0)) { in idetape_write_filemark()
1255 static int idetape_mtioctop(ide_drive_t *drive, short mt_op, int mt_count) in idetape_mtioctop() argument
1257 idetape_tape_t *tape = drive->driver_data; in idetape_mtioctop()
1272 return idetape_space_over_filemarks(drive, mt_op, mt_count); in idetape_mtioctop()
1281 ide_tape_discard_merge_buffer(drive, 1); in idetape_mtioctop()
1283 retval = idetape_write_filemark(drive); in idetape_mtioctop()
1289 ide_tape_discard_merge_buffer(drive, 0); in idetape_mtioctop()
1290 if (idetape_rewind_tape(drive)) in idetape_mtioctop()
1294 ide_tape_discard_merge_buffer(drive, 0); in idetape_mtioctop()
1295 return ide_do_start_stop(drive, disk, IDETAPE_LU_LOAD_MASK); in idetape_mtioctop()
1303 if (!ide_set_media_lock(drive, disk, 0)) in idetape_mtioctop()
1306 ide_tape_discard_merge_buffer(drive, 0); in idetape_mtioctop()
1307 retval = ide_do_start_stop(drive, disk, !IDETAPE_LU_LOAD_MASK); in idetape_mtioctop()
1310 &drive->atapi_flags); in idetape_mtioctop()
1313 ide_tape_discard_merge_buffer(drive, 0); in idetape_mtioctop()
1314 return idetape_flush_tape_buffers(drive); in idetape_mtioctop()
1316 ide_tape_discard_merge_buffer(drive, 0); in idetape_mtioctop()
1317 return ide_do_start_stop(drive, disk, in idetape_mtioctop()
1321 return ide_queue_pc_tail(drive, disk, &pc, NULL, 0); in idetape_mtioctop()
1323 (void)idetape_rewind_tape(drive); in idetape_mtioctop()
1325 return ide_queue_pc_tail(drive, disk, &pc, NULL, 0); in idetape_mtioctop()
1333 &drive->atapi_flags); in idetape_mtioctop()
1336 &drive->atapi_flags); in idetape_mtioctop()
1339 ide_tape_discard_merge_buffer(drive, 0); in idetape_mtioctop()
1340 return idetape_position_tape(drive, in idetape_mtioctop()
1343 ide_tape_discard_merge_buffer(drive, 0); in idetape_mtioctop()
1344 return idetape_position_tape(drive, 0, mt_count, 0); in idetape_mtioctop()
1348 retval = ide_set_media_lock(drive, disk, 1); in idetape_mtioctop()
1354 retval = ide_set_media_lock(drive, disk, 0); in idetape_mtioctop()
1375 ide_drive_t *drive = tape->drive; in do_idetape_chrdev_ioctl() local
1385 ide_tape_flush_merge_buffer(drive); in do_idetape_chrdev_ioctl()
1386 idetape_flush_tape_buffers(drive); in do_idetape_chrdev_ioctl()
1391 position = ide_tape_read_position(drive); in do_idetape_chrdev_ioctl()
1399 return idetape_mtioctop(drive, mtop.mt_op, mtop.mt_count); in do_idetape_chrdev_ioctl()
1417 ide_tape_discard_merge_buffer(drive, 1); in do_idetape_chrdev_ioctl()
1418 return idetape_blkdev_ioctl(drive, cmd, arg); in do_idetape_chrdev_ioctl()
1452 static void ide_tape_get_bsize_from_bdesc(ide_drive_t *drive) in ide_tape_get_bsize_from_bdesc() argument
1454 idetape_tape_t *tape = drive->driver_data; in ide_tape_get_bsize_from_bdesc()
1459 if (ide_queue_pc_tail(drive, tape->disk, &pc, buf, pc.req_xfer)) { in ide_tape_get_bsize_from_bdesc()
1480 ide_drive_t *drive; in idetape_chrdev_open() local
1495 drive = tape->drive; in idetape_chrdev_open()
1508 if (test_and_set_bit(ilog2(IDE_AFLAG_BUSY), &drive->atapi_flags)) { in idetape_chrdev_open()
1513 retval = idetape_wait_ready(drive, 60 * HZ); in idetape_chrdev_open()
1515 clear_bit(ilog2(IDE_AFLAG_BUSY), &drive->atapi_flags); in idetape_chrdev_open()
1516 printk(KERN_ERR "ide-tape: %s: drive not ready\n", tape->name); in idetape_chrdev_open()
1520 ide_tape_read_position(drive); in idetape_chrdev_open()
1521 if (!test_bit(ilog2(IDE_AFLAG_ADDRESS_VALID), &drive->atapi_flags)) in idetape_chrdev_open()
1522 (void)idetape_rewind_tape(drive); in idetape_chrdev_open()
1524 /* Read block size and write protect status from drive. */ in idetape_chrdev_open()
1525 ide_tape_get_bsize_from_bdesc(drive); in idetape_chrdev_open()
1533 /* Make sure drive isn't write protected if user wants to write. */ in idetape_chrdev_open()
1537 clear_bit(ilog2(IDE_AFLAG_BUSY), &drive->atapi_flags); in idetape_chrdev_open()
1543 /* Lock the tape drive door so user can't eject. */ in idetape_chrdev_open()
1545 if (!ide_set_media_lock(drive, tape->disk, 1)) { in idetape_chrdev_open()
1562 static void idetape_write_release(ide_drive_t *drive, unsigned int minor) in idetape_write_release() argument
1564 idetape_tape_t *tape = drive->driver_data; in idetape_write_release()
1566 ide_tape_flush_merge_buffer(drive); in idetape_write_release()
1569 idetape_pad_zeros(drive, tape->blk_size * in idetape_write_release()
1574 idetape_write_filemark(drive); in idetape_write_release()
1575 idetape_flush_tape_buffers(drive); in idetape_write_release()
1576 idetape_flush_tape_buffers(drive); in idetape_write_release()
1582 ide_drive_t *drive = tape->drive; in idetape_chrdev_release() local
1587 tape = drive->driver_data; in idetape_chrdev_release()
1592 idetape_write_release(drive, minor); in idetape_chrdev_release()
1595 ide_tape_discard_merge_buffer(drive, 1); in idetape_chrdev_release()
1599 &drive->atapi_flags)) in idetape_chrdev_release()
1600 (void) idetape_rewind_tape(drive); in idetape_chrdev_release()
1604 if (!ide_set_media_lock(drive, tape->disk, 0)) in idetape_chrdev_release()
1608 clear_bit(ilog2(IDE_AFLAG_BUSY), &drive->atapi_flags); in idetape_chrdev_release()
1616 static void idetape_get_inquiry_results(ide_drive_t *drive) in idetape_get_inquiry_results() argument
1618 idetape_tape_t *tape = drive->driver_data; in idetape_get_inquiry_results()
1624 if (ide_queue_pc_tail(drive, tape->disk, &pc, pc_buf, pc.req_xfer)) { in idetape_get_inquiry_results()
1638 drive->name, tape->name, vendor_id, product_id, fw_rev); in idetape_get_inquiry_results()
1645 static void idetape_get_mode_sense_results(ide_drive_t *drive) in idetape_get_mode_sense_results() argument
1647 idetape_tape_t *tape = drive->driver_data; in idetape_get_mode_sense_results()
1653 if (ide_queue_pc_tail(drive, tape->disk, &pc, buf, pc.req_xfer)) { in idetape_get_mode_sense_results()
1675 "(assuming 650KB/sec)\n", drive->name); in idetape_get_mode_sense_results()
1680 "(assuming 650KB/sec)\n", drive->name); in idetape_get_mode_sense_results()
1688 drive->dev_flags &= ~IDE_DFLAG_DOORLOCKING; in idetape_get_mode_sense_results()
1698 static int get_##name(ide_drive_t *drive) \
1700 idetape_tape_t *tape = drive->driver_data; \
1705 static int set_##name(ide_drive_t *drive, int arg) \
1707 idetape_tape_t *tape = drive->driver_data; \
1721 static int mulf_tdsc(ide_drive_t *drive) { return 1000; } in mulf_tdsc() argument
1722 static int divf_tdsc(ide_drive_t *drive) { return HZ; } in divf_tdsc() argument
1723 static int divf_buffer(ide_drive_t *drive) { return 2; } in divf_buffer() argument
1724 static int divf_buffer_size(ide_drive_t *drive) { return 1024; } in divf_buffer_size() argument
1758 static void idetape_setup(ide_drive_t *drive, idetape_tape_t *tape, int minor) in idetape_setup() argument
1766 drive->pc_callback = ide_tape_callback; in idetape_setup()
1768 drive->dev_flags |= IDE_DFLAG_DSC_OVERLAP; in idetape_setup()
1770 if (drive->hwif->host_flags & IDE_HFLAG_NO_DSC) { in idetape_setup()
1773 drive->dev_flags &= ~IDE_DFLAG_DSC_OVERLAP; in idetape_setup()
1777 if (strstr((char *)&drive->id[ATA_ID_PROD], "Seagate STT3401")) in idetape_setup()
1778 drive->dev_flags &= ~IDE_DFLAG_DSC_OVERLAP; in idetape_setup()
1786 idetape_get_inquiry_results(drive); in idetape_setup()
1787 idetape_get_mode_sense_results(drive); in idetape_setup()
1788 ide_tape_get_bsize_from_bdesc(drive); in idetape_setup()
1810 drive->name, tape->name, *(u16 *)&tape->caps[14], in idetape_setup()
1814 (drive->dev_flags & IDE_DFLAG_USING_DMA) ? ", DMA" : ""); in idetape_setup()
1816 ide_proc_register_driver(drive, tape->driver); in idetape_setup()
1819 static void ide_tape_remove(ide_drive_t *drive) in ide_tape_remove() argument
1821 idetape_tape_t *tape = drive->driver_data; in ide_tape_remove()
1823 ide_proc_unregister_driver(drive, tape->driver); in ide_tape_remove()
1835 ide_drive_t *drive = tape->drive; in ide_tape_release() local
1840 drive->dev_flags &= ~IDE_DFLAG_DSC_OVERLAP; in ide_tape_release()
1841 drive->driver_data = NULL; in ide_tape_release()
1854 ide_drive_t *drive = (ide_drive_t *) m->private; in idetape_name_proc_show() local
1855 idetape_tape_t *tape = drive->driver_data; in idetape_name_proc_show()
1867 static ide_proc_entry_t *ide_tape_proc_entries(ide_drive_t *drive) in ide_tape_proc_entries() argument
1872 static const struct ide_proc_devset *ide_tape_proc_devsets(ide_drive_t *drive) in ide_tape_proc_devsets() argument
1936 ide_drive_t *drive = tape->drive; in idetape_ioctl() local
1940 err = generic_ide_ioctl(drive, bdev, cmd, arg); in idetape_ioctl()
1942 err = idetape_blkdev_ioctl(drive, cmd, arg); in idetape_ioctl()
1966 static int ide_tape_probe(ide_drive_t *drive) in ide_tape_probe() argument
1974 if (!strstr(DRV_NAME, drive->driver_req)) in ide_tape_probe()
1977 if (drive->media != ide_tape) in ide_tape_probe()
1980 if ((drive->dev_flags & IDE_DFLAG_ID_READ) && in ide_tape_probe()
1981 ide_check_atapi_device(drive, DRV_NAME) == 0) { in ide_tape_probe()
1983 " the driver\n", drive->name); in ide_tape_probe()
1989 drive->name); in ide_tape_probe()
1997 ide_init_disk(g, drive); in ide_tape_probe()
1999 tape->dev.parent = &drive->gendev; in ide_tape_probe()
2001 dev_set_name(&tape->dev, "%s", dev_name(&drive->gendev)); in ide_tape_probe()
2006 tape->drive = drive; in ide_tape_probe()
2012 drive->driver_data = tape; in ide_tape_probe()
2020 idetape_setup(drive, tape, minor); in ide_tape_probe()
2022 device_create(idetape_sysfs_class, &drive->gendev, in ide_tape_probe()
2024 device_create(idetape_sysfs_class, &drive->gendev, in ide_tape_probe()