Commit d794ac7a authored by Alan Stern's avatar Alan Stern Committed by Greg Kroah-Hartman

[PATCH] USB: g_file_storage: export "stall" parameter

This patch changes the g_file_storage driver to make the "stall" module
parameter generally available; currently it is available only if the
testing version of the module has been configured.  It also fixes a typo
in a comment -- thanks, Pat!
Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 76f4af8e
...@@ -81,6 +81,10 @@ ...@@ -81,6 +81,10 @@
* removable Default false, boolean for removable media * removable Default false, boolean for removable media
* luns=N Default N = number of filenames, number of * luns=N Default N = number of filenames, number of
* LUNs to support * LUNs to support
* stall Default determined according to the type of
* USB device controller (usually true),
* boolean to permit the driver to halt
* bulk endpoints
* transport=XXX Default BBB, transport name (CB, CBI, or BBB) * transport=XXX Default BBB, transport name (CB, CBI, or BBB)
* protocol=YYY Default SCSI, protocol name (RBC, 8020 or * protocol=YYY Default SCSI, protocol name (RBC, 8020 or
* ATAPI, QIC, UFI, 8070, or SCSI; * ATAPI, QIC, UFI, 8070, or SCSI;
...@@ -91,14 +95,10 @@ ...@@ -91,14 +95,10 @@
* buflen=N Default N=16384, buffer size used (will be * buflen=N Default N=16384, buffer size used (will be
* rounded down to a multiple of * rounded down to a multiple of
* PAGE_CACHE_SIZE) * PAGE_CACHE_SIZE)
* stall Default determined according to the type of
* USB device controller (usually true),
* boolean to permit the driver to halt
* bulk endpoints
* *
* If CONFIG_USB_FILE_STORAGE_TEST is not set, only the "file", "ro", * If CONFIG_USB_FILE_STORAGE_TEST is not set, only the "file", "ro",
* "removable", and "luns" options are available; default values are used * "removable", "luns", and "stall" options are available; default values
* for everything else. * are used for everything else.
* *
* The pathnames of the backing files and the ro settings are available in * The pathnames of the backing files and the ro settings are available in
* the attribute files "file" and "ro" in the lun<n> subdirectory of the * the attribute files "file" and "ro" in the lun<n> subdirectory of the
...@@ -342,14 +342,15 @@ static struct { ...@@ -342,14 +342,15 @@ static struct {
int num_ros; int num_ros;
unsigned int nluns; unsigned int nluns;
int removable;
int can_stall;
char *transport_parm; char *transport_parm;
char *protocol_parm; char *protocol_parm;
int removable;
unsigned short vendor; unsigned short vendor;
unsigned short product; unsigned short product;
unsigned short release; unsigned short release;
unsigned int buflen; unsigned int buflen;
int can_stall;
int transport_type; int transport_type;
char *transport_name; char *transport_name;
...@@ -360,11 +361,11 @@ static struct { ...@@ -360,11 +361,11 @@ static struct {
.transport_parm = "BBB", .transport_parm = "BBB",
.protocol_parm = "SCSI", .protocol_parm = "SCSI",
.removable = 0, .removable = 0,
.can_stall = 1,
.vendor = DRIVER_VENDOR_ID, .vendor = DRIVER_VENDOR_ID,
.product = DRIVER_PRODUCT_ID, .product = DRIVER_PRODUCT_ID,
.release = 0xffff, // Use controller chip type .release = 0xffff, // Use controller chip type
.buflen = 16384, .buflen = 16384,
.can_stall = 1,
}; };
...@@ -380,6 +381,9 @@ MODULE_PARM_DESC(luns, "number of LUNs"); ...@@ -380,6 +381,9 @@ MODULE_PARM_DESC(luns, "number of LUNs");
module_param_named(removable, mod_data.removable, bool, S_IRUGO); module_param_named(removable, mod_data.removable, bool, S_IRUGO);
MODULE_PARM_DESC(removable, "true to simulate removable media"); MODULE_PARM_DESC(removable, "true to simulate removable media");
module_param_named(stall, mod_data.can_stall, bool, S_IRUGO);
MODULE_PARM_DESC(stall, "false to prevent bulk stalls");
/* In the non-TEST version, only the module parameters listed above /* In the non-TEST version, only the module parameters listed above
* are available. */ * are available. */
...@@ -404,9 +408,6 @@ MODULE_PARM_DESC(release, "USB release number"); ...@@ -404,9 +408,6 @@ MODULE_PARM_DESC(release, "USB release number");
module_param_named(buflen, mod_data.buflen, uint, S_IRUGO); module_param_named(buflen, mod_data.buflen, uint, S_IRUGO);
MODULE_PARM_DESC(buflen, "I/O buffer size"); MODULE_PARM_DESC(buflen, "I/O buffer size");
module_param_named(stall, mod_data.can_stall, bool, S_IRUGO);
MODULE_PARM_DESC(stall, "false to prevent bulk stalls");
#endif /* CONFIG_USB_FILE_STORAGE_TEST */ #endif /* CONFIG_USB_FILE_STORAGE_TEST */
...@@ -2657,7 +2658,7 @@ static int check_command(struct fsg_dev *fsg, int cmnd_size, ...@@ -2657,7 +2658,7 @@ static int check_command(struct fsg_dev *fsg, int cmnd_size,
} }
} }
/* Check that the LUN values are oonsistent */ /* Check that the LUN values are consistent */
if (transport_is_bbb()) { if (transport_is_bbb()) {
if (fsg->lun != lun) if (fsg->lun != lun)
DBG(fsg, "using LUN %d from CBW, " DBG(fsg, "using LUN %d from CBW, "
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment