1*59b4e0cdSNishad Kamdar /* SPDX-License-Identifier: GPL-2.0+ */ 2f0183a33SFelipe Balbi /* 3f0183a33SFelipe Balbi * Header file for Special Initializers for certain USB Mass Storage devices 41da177e4SLinus Torvalds * 51da177e4SLinus Torvalds * Current development and maintenance by: 61da177e4SLinus Torvalds * (c) 1999, 2000 Matthew Dharm (mdharm-usb@one-eyed-alien.net) 71da177e4SLinus Torvalds * 81da177e4SLinus Torvalds * This driver is based on the 'USB Mass Storage Class' document. This 91da177e4SLinus Torvalds * describes in detail the protocol used to communicate with such 101da177e4SLinus Torvalds * devices. Clearly, the designers had SCSI and ATAPI commands in 111da177e4SLinus Torvalds * mind when they created this document. The commands are all very 121da177e4SLinus Torvalds * similar to commands in the SCSI-II and ATAPI specifications. 131da177e4SLinus Torvalds * 141da177e4SLinus Torvalds * It is important to note that in a number of cases this class 151da177e4SLinus Torvalds * exhibits class-specific exemptions from the USB specification. 161da177e4SLinus Torvalds * Notably the usage of NAK, STALL and ACK differs from the norm, in 171da177e4SLinus Torvalds * that they are used to communicate wait, failed and OK on commands. 181da177e4SLinus Torvalds * 191da177e4SLinus Torvalds * Also, for certain devices, the interrupt endpoint is used to convey 201da177e4SLinus Torvalds * status of a command. 211da177e4SLinus Torvalds */ 221da177e4SLinus Torvalds 231da177e4SLinus Torvalds #include "usb.h" 241da177e4SLinus Torvalds #include "transport.h" 251da177e4SLinus Torvalds 26f0183a33SFelipe Balbi /* 27f0183a33SFelipe Balbi * This places the Shuttle/SCM USB<->SCSI bridge devices in multi-target 28f0183a33SFelipe Balbi * mode 29f0183a33SFelipe Balbi */ 301da177e4SLinus Torvalds int usb_stor_euscsi_init(struct us_data *us); 311da177e4SLinus Torvalds 32f0183a33SFelipe Balbi /* 33f0183a33SFelipe Balbi * This function is required to activate all four slots on the UCR-61S2B 34f0183a33SFelipe Balbi * flash reader 35f0183a33SFelipe Balbi */ 361da177e4SLinus Torvalds int usb_stor_ucr61s2b_init(struct us_data *us); 37d853d872SJohann Wilhelm 38ab4b7164SBjørn Mork /* This places the HUAWEI E220 devices in multi-port mode */ 39ab4b7164SBjørn Mork int usb_stor_huawei_e220_init(struct us_data *us); 40