diff options
author | Andrzej Pietrasiewicz <andrzej.p@samsung.com> | 2013-09-26 14:38:19 +0200 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2013-10-01 09:52:12 -0500 |
commit | 4610f19b4a7b0566f39aca490f7dde5b68e10243 (patch) | |
tree | 217d576d52e8056c2044d294332785f4a9477a74 /drivers/usb/gadget/f_mass_storage.c | |
parent | 8b903fd7f97cdeb2cd927853025e9a667379a434 (diff) | |
download | lwn-4610f19b4a7b0566f39aca490f7dde5b68e10243.tar.gz lwn-4610f19b4a7b0566f39aca490f7dde5b68e10243.zip |
usb: gadget: f_mass_storage: use usb_gstrings_attach
Prepare for handling with configfs.
Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/gadget/f_mass_storage.c')
-rw-r--r-- | drivers/usb/gadget/f_mass_storage.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/drivers/usb/gadget/f_mass_storage.c b/drivers/usb/gadget/f_mass_storage.c index 6b6c7f1b773f..32e5ab73f746 100644 --- a/drivers/usb/gadget/f_mass_storage.c +++ b/drivers/usb/gadget/f_mass_storage.c @@ -242,6 +242,11 @@ static struct usb_gadget_strings fsg_stringtab = { .strings = fsg_strings, }; +static struct usb_gadget_strings *fsg_strings_array[] = { + &fsg_stringtab, + NULL, +}; + /*-------------------------------------------------------------------------*/ struct fsg_dev; @@ -2645,6 +2650,7 @@ struct fsg_common *fsg_common_init(struct fsg_common *common, struct fsg_buffhd *bh; struct fsg_lun **curlun_it; struct fsg_lun_config *lcfg; + struct usb_string *us; int nluns, i, rc; char *pathbuf; @@ -2687,14 +2693,13 @@ struct fsg_common *fsg_common_init(struct fsg_common *common, common->ep0req = cdev->req; common->cdev = cdev; - /* Maybe allocate device-global string IDs, and patch descriptors */ - if (fsg_strings[FSG_STRING_INTERFACE].id == 0) { - rc = usb_string_id(cdev); - if (unlikely(rc < 0)) - goto error_release; - fsg_strings[FSG_STRING_INTERFACE].id = rc; - fsg_intf_desc.iInterface = rc; + us = usb_gstrings_attach(cdev, fsg_strings_array, + ARRAY_SIZE(fsg_strings)); + if (IS_ERR(us)) { + rc = PTR_ERR(us); + goto error_release; } + fsg_intf_desc.iInterface = us[FSG_STRING_INTERFACE].id; /* * Create the LUNs, open their backing files, and register the @@ -2988,11 +2993,6 @@ autoconf_fail: /****************************** ADD FUNCTION ******************************/ -static struct usb_gadget_strings *fsg_strings_array[] = { - &fsg_stringtab, - NULL, -}; - static int fsg_bind_config(struct usb_composite_dev *cdev, struct usb_configuration *c, struct fsg_common *common) @@ -3005,7 +3005,6 @@ static int fsg_bind_config(struct usb_composite_dev *cdev, return -ENOMEM; fsg->function.name = FSG_DRIVER_DESC; - fsg->function.strings = fsg_strings_array; fsg->function.bind = fsg_bind; fsg->function.unbind = fsg_unbind; fsg->function.setup = fsg_setup; |