summaryrefslogtreecommitdiff
path: root/drivers/usb/gadget/legacy
diff options
context:
space:
mode:
authorAndrzej Pietrasiewicz <andrzej.p@samsung.com>2015-03-03 09:52:12 (GMT)
committerFelipe Balbi <balbi@ti.com>2015-03-10 20:33:35 (GMT)
commitae2dd0de57a3f6b12e30e5552033a492d6d206f7 (patch)
tree53891ded9cae65e94311f8ba4921bd6ba135c18c /drivers/usb/gadget/legacy
parent406be2ccbadb5652f5894078d0e025d90683b3e9 (diff)
downloadlinux-ae2dd0de57a3f6b12e30e5552033a492d6d206f7.tar.xz
usb: gadget: printer: standardize printer_do_config
Follow the convention of distributing source code between <something>_do_config() and <something>_bind_config(). Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/gadget/legacy')
-rw-r--r--drivers/usb/gadget/legacy/printer.c39
1 files changed, 24 insertions, 15 deletions
diff --git a/drivers/usb/gadget/legacy/printer.c b/drivers/usb/gadget/legacy/printer.c
index c865833..494cd8a 100644
--- a/drivers/usb/gadget/legacy/printer.c
+++ b/drivers/usb/gadget/legacy/printer.c
@@ -1170,7 +1170,8 @@ static struct usb_configuration printer_cfg_driver = {
.bmAttributes = USB_CONFIG_ATT_ONE | USB_CONFIG_ATT_SELFPOWER,
};
-static int __init printer_do_config(struct usb_configuration *c)
+static int f_printer_bind_config(struct usb_configuration *c, char *pnp_str,
+ unsigned q_len)
{
struct usb_gadget *gadget = c->cdev->gadget;
struct printer_dev *dev;
@@ -1180,8 +1181,6 @@ static int __init printer_do_config(struct usb_configuration *c)
u32 i;
struct usb_request *req;
- usb_ep_autoconfig_reset(gadget);
-
dev = &usb_printer_gadget;
dev->function.name = shortname;
@@ -1219,21 +1218,13 @@ static int __init printer_do_config(struct usb_configuration *c)
goto fail;
}
- if (iPNPstring)
- strlcpy(&pnp_string[2], iPNPstring, (sizeof pnp_string)-2);
+ if (pnp_str)
+ strlcpy(&pnp_string[2], pnp_str, sizeof(pnp_string) - 2);
len = strlen(pnp_string);
pnp_string[0] = (len >> 8) & 0xFF;
pnp_string[1] = len & 0xFF;
- usb_gadget_set_selfpowered(gadget);
-
- if (gadget_is_otg(gadget)) {
- otg_descriptor.bmAttributes |= USB_OTG_HNP;
- printer_cfg_driver.descriptors = otg_desc;
- printer_cfg_driver.bmAttributes |= USB_CONFIG_ATT_WAKEUP;
- }
-
spin_lock_init(&dev->lock);
mutex_init(&dev->lock_printer_io);
INIT_LIST_HEAD(&dev->tx_reqs_active);
@@ -1250,14 +1241,14 @@ static int __init printer_do_config(struct usb_configuration *c)
dev->current_rx_buf = NULL;
status = -ENOMEM;
- for (i = 0; i < QLEN; i++) {
+ for (i = 0; i < q_len; i++) {
req = printer_req_alloc(dev->in_ep, USB_BUFSIZE, GFP_KERNEL);
if (!req)
goto fail;
list_add(&req->list, &dev->tx_reqs);
}
- for (i = 0; i < QLEN; i++) {
+ for (i = 0; i < q_len; i++) {
req = printer_req_alloc(dev->out_ep, USB_BUFSIZE, GFP_KERNEL);
if (!req)
goto fail;
@@ -1276,6 +1267,24 @@ fail:
return status;
}
+static int __init printer_do_config(struct usb_configuration *c)
+{
+ struct usb_gadget *gadget = c->cdev->gadget;
+
+ usb_ep_autoconfig_reset(gadget);
+
+ usb_gadget_set_selfpowered(gadget);
+
+ if (gadget_is_otg(gadget)) {
+ otg_descriptor.bmAttributes |= USB_OTG_HNP;
+ printer_cfg_driver.descriptors = otg_desc;
+ printer_cfg_driver.bmAttributes |= USB_CONFIG_ATT_WAKEUP;
+ }
+
+ return f_printer_bind_config(c, iPNPstring, QLEN);
+
+}
+
static int __init printer_bind(struct usb_composite_dev *cdev)
{
int ret;