aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/storage
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2008-11-20 14:22:18 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2009-01-07 12:59:57 -0500
commit3dae5345311271fe598a61bd01f563fc835b4217 (patch)
tree0342454943c439dd01760fb139fe04403a824fa5 /drivers/usb/storage
parent64648a9dc4d7ac0189364188207310ec6bc75bbe (diff)
USB: usb-storage: merge ATAPI and QIC-157 protocol routines
This patch (as1174) merges usb-storage's QIC-157 and ATAPI protocol routines. Since the two functions are identical, there's no reason to keep them separate. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Cc: Matthew Dharm <mdharm-usb@one-eyed-alien.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/storage')
-rw-r--r--drivers/usb/storage/protocol.c24
-rw-r--r--drivers/usb/storage/protocol.h3
-rw-r--r--drivers/usb/storage/usb.c6
3 files changed, 6 insertions, 27 deletions
diff --git a/drivers/usb/storage/protocol.c b/drivers/usb/storage/protocol.c
index 3b3357e20ea7..be441d84bc64 100644
--- a/drivers/usb/storage/protocol.c
+++ b/drivers/usb/storage/protocol.c
@@ -56,9 +56,9 @@
56 * Protocol routines 56 * Protocol routines
57 ***********************************************************************/ 57 ***********************************************************************/
58 58
59void usb_stor_qic157_command(struct scsi_cmnd *srb, struct us_data *us) 59void usb_stor_pad12_command(struct scsi_cmnd *srb, struct us_data *us)
60{ 60{
61 /* Pad the ATAPI command with zeros 61 /* Pad the SCSI command with zeros out to 12 bytes
62 * 62 *
63 * NOTE: This only works because a scsi_cmnd struct field contains 63 * NOTE: This only works because a scsi_cmnd struct field contains
64 * a unsigned char cmnd[16], so we know we have storage available 64 * a unsigned char cmnd[16], so we know we have storage available
@@ -73,26 +73,6 @@ void usb_stor_qic157_command(struct scsi_cmnd *srb, struct us_data *us)
73 usb_stor_invoke_transport(srb, us); 73 usb_stor_invoke_transport(srb, us);
74} 74}
75 75
76void usb_stor_ATAPI_command(struct scsi_cmnd *srb, struct us_data *us)
77{
78 /* Pad the ATAPI command with zeros
79 *
80 * NOTE: This only works because a scsi_cmnd struct field contains
81 * a unsigned char cmnd[16], so we know we have storage available
82 */
83
84 /* Pad the ATAPI command with zeros */
85 for (; srb->cmd_len<12; srb->cmd_len++)
86 srb->cmnd[srb->cmd_len] = 0;
87
88 /* set command length to 12 bytes */
89 srb->cmd_len = 12;
90
91 /* send the command to the transport layer */
92 usb_stor_invoke_transport(srb, us);
93}
94
95
96void usb_stor_ufi_command(struct scsi_cmnd *srb, struct us_data *us) 76void usb_stor_ufi_command(struct scsi_cmnd *srb, struct us_data *us)
97{ 77{
98 /* fix some commands -- this is a form of mode translation 78 /* fix some commands -- this is a form of mode translation
diff --git a/drivers/usb/storage/protocol.h b/drivers/usb/storage/protocol.h
index 487056ffb516..ffc3e2af0156 100644
--- a/drivers/usb/storage/protocol.h
+++ b/drivers/usb/storage/protocol.h
@@ -40,8 +40,7 @@
40#define _PROTOCOL_H_ 40#define _PROTOCOL_H_
41 41
42/* Protocol handling routines */ 42/* Protocol handling routines */
43extern void usb_stor_ATAPI_command(struct scsi_cmnd*, struct us_data*); 43extern void usb_stor_pad12_command(struct scsi_cmnd*, struct us_data*);
44extern void usb_stor_qic157_command(struct scsi_cmnd*, struct us_data*);
45extern void usb_stor_ufi_command(struct scsi_cmnd*, struct us_data*); 44extern void usb_stor_ufi_command(struct scsi_cmnd*, struct us_data*);
46extern void usb_stor_transparent_scsi_command(struct scsi_cmnd*, 45extern void usb_stor_transparent_scsi_command(struct scsi_cmnd*,
47 struct us_data*); 46 struct us_data*);
diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
index cdd009fae3cd..06c735703f4a 100644
--- a/drivers/usb/storage/usb.c
+++ b/drivers/usb/storage/usb.c
@@ -704,19 +704,19 @@ static int get_protocol(struct us_data *us)
704 704
705 case US_SC_8020: 705 case US_SC_8020:
706 us->protocol_name = "8020i"; 706 us->protocol_name = "8020i";
707 us->proto_handler = usb_stor_ATAPI_command; 707 us->proto_handler = usb_stor_pad12_command;
708 us->max_lun = 0; 708 us->max_lun = 0;
709 break; 709 break;
710 710
711 case US_SC_QIC: 711 case US_SC_QIC:
712 us->protocol_name = "QIC-157"; 712 us->protocol_name = "QIC-157";
713 us->proto_handler = usb_stor_qic157_command; 713 us->proto_handler = usb_stor_pad12_command;
714 us->max_lun = 0; 714 us->max_lun = 0;
715 break; 715 break;
716 716
717 case US_SC_8070: 717 case US_SC_8070:
718 us->protocol_name = "8070i"; 718 us->protocol_name = "8070i";
719 us->proto_handler = usb_stor_ATAPI_command; 719 us->proto_handler = usb_stor_pad12_command;
720 us->max_lun = 0; 720 us->max_lun = 0;
721 break; 721 break;
722 722