summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary King <gking@nvidia.com>2010-02-15 12:58:44 -0800
committerGerrit Code Review <gerrit2@git-master-01.nvidia.com>2010-02-15 12:58:44 -0800
commite83362b42f44a3d4801145ccab15788f3278fafc (patch)
tree323c0400e9b83e891042622cfa9d29b946b6145d
parent6b8ef3d494af9aaa3377f8675904b721970204f9 (diff)
parent3f2d6f61dbe70cb8bed9a7e69c2a9b6adae874a5 (diff)
Merge "f_mass_storage: allow platform to set bulk buffer size" into android-tegra-2.6.29
-rw-r--r--drivers/usb/gadget/android.c5
-rw-r--r--drivers/usb/gadget/f_mass_storage.c4
-rw-r--r--drivers/usb/gadget/f_mass_storage.h2
-rw-r--r--include/linux/usb/android.h3
4 files changed, 10 insertions, 4 deletions
diff --git a/drivers/usb/gadget/android.c b/drivers/usb/gadget/android.c
index d3c028d45cbc..3a9d6e69b924 100644
--- a/drivers/usb/gadget/android.c
+++ b/drivers/usb/gadget/android.c
@@ -71,6 +71,7 @@ struct android_dev {
int adb_enabled;
int nluns;
+ size_t bulk_size;
};
static atomic_t adb_enable_excl;
@@ -128,7 +129,8 @@ static int __init android_bind_config(struct usb_configuration *c)
int ret;
printk(KERN_DEBUG "android_bind_config\n");
- ret = mass_storage_function_add(dev->cdev, c, dev->nluns);
+ ret = mass_storage_function_add(dev->cdev, c, dev->nluns,
+ dev->bulk_size);
if (ret)
return ret;
return adb_function_add(dev->cdev, c);
@@ -297,6 +299,7 @@ static int __init android_probe(struct platform_device *pdev)
if (pdata->serial_number)
strings_dev[STRING_SERIAL_IDX].s = pdata->serial_number;
dev->nluns = pdata->nluns;
+ dev->bulk_size = pdata->bulk_size;
}
return 0;
diff --git a/drivers/usb/gadget/f_mass_storage.c b/drivers/usb/gadget/f_mass_storage.c
index f63f572adfe3..10edc0f77eda 100644
--- a/drivers/usb/gadget/f_mass_storage.c
+++ b/drivers/usb/gadget/f_mass_storage.c
@@ -2913,7 +2913,7 @@ static struct platform_driver fsg_platform_driver = {
};
int __init mass_storage_function_add(struct usb_composite_dev *cdev,
- struct usb_configuration *c, int nluns)
+ struct usb_configuration *c, int nluns, size_t bulk_size)
{
int rc;
struct fsg_dev *fsg;
@@ -2930,7 +2930,7 @@ int __init mass_storage_function_add(struct usb_composite_dev *cdev,
kref_init(&fsg->ref);
init_completion(&fsg->thread_notifier);
- the_fsg->buf_size = BULK_BUFFER_SIZE;
+ the_fsg->buf_size = (bulk_size) ? bulk_size : BULK_BUFFER_SIZE;
the_fsg->sdev.name = DRIVER_NAME;
the_fsg->sdev.print_name = print_switch_name;
the_fsg->sdev.print_state = print_switch_state;
diff --git a/drivers/usb/gadget/f_mass_storage.h b/drivers/usb/gadget/f_mass_storage.h
index 8e63ac0cbe93..4dd3789fcedf 100644
--- a/drivers/usb/gadget/f_mass_storage.h
+++ b/drivers/usb/gadget/f_mass_storage.h
@@ -47,6 +47,6 @@
#define __F_MASS_STORAGE_H
int mass_storage_function_add(struct usb_composite_dev *cdev,
- struct usb_configuration *c, int nluns);
+ struct usb_configuration *c, int nluns, size_t bulk_size);
#endif /* __F_MASS_STORAGE_H */
diff --git a/include/linux/usb/android.h b/include/linux/usb/android.h
index 4e7f419149d8..9c78d1e202c1 100644
--- a/include/linux/usb/android.h
+++ b/include/linux/usb/android.h
@@ -35,6 +35,9 @@ struct android_usb_platform_data {
/* number of LUNS for mass storage function */
int nluns;
+
+ /* size, in bytes, of the mass storage bulk buffer */
+ size_t bulk_size;
};
/* Platform data for "usb_mass_storage" driver.