diff options
author | Alan Stern <stern@rowland.harvard.edu> | 2008-11-20 14:22:18 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-01-07 12:59:57 -0500 |
commit | 3dae5345311271fe598a61bd01f563fc835b4217 (patch) | |
tree | 0342454943c439dd01760fb139fe04403a824fa5 /drivers/usb/storage | |
parent | 64648a9dc4d7ac0189364188207310ec6bc75bbe (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.c | 24 | ||||
-rw-r--r-- | drivers/usb/storage/protocol.h | 3 | ||||
-rw-r--r-- | drivers/usb/storage/usb.c | 6 |
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 | ||
59 | void usb_stor_qic157_command(struct scsi_cmnd *srb, struct us_data *us) | 59 | void 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 | ||
76 | void 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 | |||
96 | void usb_stor_ufi_command(struct scsi_cmnd *srb, struct us_data *us) | 76 | void 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 */ |
43 | extern void usb_stor_ATAPI_command(struct scsi_cmnd*, struct us_data*); | 43 | extern void usb_stor_pad12_command(struct scsi_cmnd*, struct us_data*); |
44 | extern void usb_stor_qic157_command(struct scsi_cmnd*, struct us_data*); | ||
45 | extern void usb_stor_ufi_command(struct scsi_cmnd*, struct us_data*); | 44 | extern void usb_stor_ufi_command(struct scsi_cmnd*, struct us_data*); |
46 | extern void usb_stor_transparent_scsi_command(struct scsi_cmnd*, | 45 | extern 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 | ||