diff options
Diffstat (limited to 'drivers/ide/ide-tape.c')
-rw-r--r-- | drivers/ide/ide-tape.c | 51 |
1 files changed, 13 insertions, 38 deletions
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index 6fa6a38d8116..5d23b70c6856 100644 --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c | |||
@@ -649,31 +649,6 @@ struct idetape_id_gcw { | |||
649 | }; | 649 | }; |
650 | 650 | ||
651 | /* | 651 | /* |
652 | * INQUIRY packet command - Data Format (From Table 6-8 of QIC-157C) | ||
653 | */ | ||
654 | typedef struct { | ||
655 | unsigned device_type :5; /* Peripheral Device Type */ | ||
656 | unsigned reserved0_765 :3; /* Peripheral Qualifier - Reserved */ | ||
657 | unsigned reserved1_6t0 :7; /* Reserved */ | ||
658 | unsigned rmb :1; /* Removable Medium Bit */ | ||
659 | unsigned ansi_version :3; /* ANSI Version */ | ||
660 | unsigned ecma_version :3; /* ECMA Version */ | ||
661 | unsigned iso_version :2; /* ISO Version */ | ||
662 | unsigned response_format :4; /* Response Data Format */ | ||
663 | unsigned reserved3_45 :2; /* Reserved */ | ||
664 | unsigned reserved3_6 :1; /* TrmIOP - Reserved */ | ||
665 | unsigned reserved3_7 :1; /* AENC - Reserved */ | ||
666 | __u8 additional_length; /* Additional Length (total_length-4) */ | ||
667 | __u8 rsv5, rsv6, rsv7; /* Reserved */ | ||
668 | __u8 vendor_id[8]; /* Vendor Identification */ | ||
669 | __u8 product_id[16]; /* Product Identification */ | ||
670 | __u8 revision_level[4]; /* Revision Level */ | ||
671 | __u8 vendor_specific[20]; /* Vendor Specific - Optional */ | ||
672 | __u8 reserved56t95[40]; /* Reserved - Optional */ | ||
673 | /* Additional information may be returned */ | ||
674 | } idetape_inquiry_result_t; | ||
675 | |||
676 | /* | ||
677 | * READ POSITION packet command - Data Format (From Table 6-57) | 652 | * READ POSITION packet command - Data Format (From Table 6-57) |
678 | */ | 653 | */ |
679 | typedef struct { | 654 | typedef struct { |
@@ -3756,32 +3731,32 @@ static int idetape_identify_device (ide_drive_t *drive) | |||
3756 | return 0; | 3731 | return 0; |
3757 | } | 3732 | } |
3758 | 3733 | ||
3759 | /* | 3734 | static void idetape_get_inquiry_results(ide_drive_t *drive) |
3760 | * Use INQUIRY to get the firmware revision | ||
3761 | */ | ||
3762 | static void idetape_get_inquiry_results (ide_drive_t *drive) | ||
3763 | { | 3735 | { |
3764 | char *r; | 3736 | char *r; |
3765 | idetape_tape_t *tape = drive->driver_data; | 3737 | idetape_tape_t *tape = drive->driver_data; |
3766 | idetape_pc_t pc; | 3738 | idetape_pc_t pc; |
3767 | idetape_inquiry_result_t *inquiry; | 3739 | |
3768 | |||
3769 | idetape_create_inquiry_cmd(&pc); | 3740 | idetape_create_inquiry_cmd(&pc); |
3770 | if (idetape_queue_pc_tail(drive, &pc)) { | 3741 | if (idetape_queue_pc_tail(drive, &pc)) { |
3771 | printk(KERN_ERR "ide-tape: %s: can't get INQUIRY results\n", tape->name); | 3742 | printk(KERN_ERR "ide-tape: %s: can't get INQUIRY results\n", |
3743 | tape->name); | ||
3772 | return; | 3744 | return; |
3773 | } | 3745 | } |
3774 | inquiry = (idetape_inquiry_result_t *) pc.buffer; | 3746 | memcpy(tape->vendor_id, &pc.buffer[8], 8); |
3775 | memcpy(tape->vendor_id, inquiry->vendor_id, 8); | 3747 | memcpy(tape->product_id, &pc.buffer[16], 16); |
3776 | memcpy(tape->product_id, inquiry->product_id, 16); | 3748 | memcpy(tape->firmware_revision, &pc.buffer[32], 4); |
3777 | memcpy(tape->firmware_revision, inquiry->revision_level, 4); | 3749 | |
3778 | ide_fixstring(tape->vendor_id, 10, 0); | 3750 | ide_fixstring(tape->vendor_id, 10, 0); |
3779 | ide_fixstring(tape->product_id, 18, 0); | 3751 | ide_fixstring(tape->product_id, 18, 0); |
3780 | ide_fixstring(tape->firmware_revision, 6, 0); | 3752 | ide_fixstring(tape->firmware_revision, 6, 0); |
3781 | r = tape->firmware_revision; | 3753 | r = tape->firmware_revision; |
3782 | if (*(r + 1) == '.') | 3754 | if (*(r + 1) == '.') |
3783 | tape->firmware_revision_num = (*r - '0') * 100 + (*(r + 2) - '0') * 10 + *(r + 3) - '0'; | 3755 | tape->firmware_revision_num = (*r - '0') * 100 + |
3784 | printk(KERN_INFO "ide-tape: %s <-> %s: %s %s rev %s\n", drive->name, tape->name, tape->vendor_id, tape->product_id, tape->firmware_revision); | 3756 | (*(r + 2) - '0') * 10 + *(r + 3) - '0'; |
3757 | printk(KERN_INFO "ide-tape: %s <-> %s: %s %s rev %s\n", | ||
3758 | drive->name, tape->name, tape->vendor_id, | ||
3759 | tape->product_id, tape->firmware_revision); | ||
3785 | } | 3760 | } |
3786 | 3761 | ||
3787 | /* | 3762 | /* |