diff options
author | Gary King <gking@nvidia.com> | 2010-02-15 12:58:44 -0800 |
---|---|---|
committer | Gerrit Code Review <gerrit2@git-master-01.nvidia.com> | 2010-02-15 12:58:44 -0800 |
commit | e83362b42f44a3d4801145ccab15788f3278fafc (patch) | |
tree | 323c0400e9b83e891042622cfa9d29b946b6145d | |
parent | 6b8ef3d494af9aaa3377f8675904b721970204f9 (diff) | |
parent | 3f2d6f61dbe70cb8bed9a7e69c2a9b6adae874a5 (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.c | 5 | ||||
-rw-r--r-- | drivers/usb/gadget/f_mass_storage.c | 4 | ||||
-rw-r--r-- | drivers/usb/gadget/f_mass_storage.h | 2 | ||||
-rw-r--r-- | include/linux/usb/android.h | 3 |
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. |