diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-07 18:37:24 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-07 18:37:24 -0500 |
| commit | 7c7758f99d39d529a64d4f60d22129bbf2f16d74 (patch) | |
| tree | 8847b5e56812fe4c4c812cfffc78e391a91f4ebe /drivers/usb/storage/protocol.c | |
| parent | 67acd8b4b7a3f1b183ae358e1dfdb8a80e170736 (diff) | |
| parent | 8a70da82edc50aa7a4b54864babf2d72538ba1bb (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (123 commits)
wimax/i2400m: add CREDITS and MAINTAINERS entries
wimax: export linux/wimax.h and linux/wimax/i2400m.h with headers_install
i2400m: Makefile and Kconfig
i2400m/SDIO: TX and RX path backends
i2400m/SDIO: firmware upload backend
i2400m/SDIO: probe/disconnect, dev init/shutdown and reset backends
i2400m/SDIO: header for the SDIO subdriver
i2400m/USB: TX and RX path backends
i2400m/USB: firmware upload backend
i2400m/USB: probe/disconnect, dev init/shutdown and reset backends
i2400m/USB: header for the USB bus driver
i2400m: debugfs controls
i2400m: various functions for device management
i2400m: RX and TX data/control paths
i2400m: firmware loading and bootrom initialization
i2400m: linkage to the networking stack
i2400m: Generic probe/disconnect, reset and message passing
i2400m: host/device procotol and core driver definitions
i2400m: documentation and instructions for usage
wimax: Makefile, Kconfig and docbook linkage for the stack
...
Diffstat (limited to 'drivers/usb/storage/protocol.c')
| -rw-r--r-- | drivers/usb/storage/protocol.c | 24 |
1 files changed, 2 insertions, 22 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 |
