From 4417c374e03d3135d513ef91146e101370ff5efa Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Sun, 23 Dec 2012 21:10:03 +0100 Subject: [PATCH] --- yaml --- r: 354643 b: refs/heads/master c: 48177cd83792d25a5bab7f887acc47c2c314810e h: refs/heads/master i: 354641: 75570bb78dc3d0c9f874974d59fcfe7f3300da46 354639: e600ee859dbdc4a588360532502edb094f09e83f v: v3 --- [refs] | 2 +- trunk/drivers/usb/gadget/serial.c | 43 +++++++++++++++++++++++-------- 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index 95015b92bd2d..e7b6f79ece4d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 05c062c571ee19f08deb1c12fc2dd14b92f89eb8 +refs/heads/master: 48177cd83792d25a5bab7f887acc47c2c314810e diff --git a/trunk/drivers/usb/gadget/serial.c b/trunk/drivers/usb/gadget/serial.c index 44752f531e85..bc23905800d3 100644 --- a/trunk/drivers/usb/gadget/serial.c +++ b/trunk/drivers/usb/gadget/serial.c @@ -129,19 +129,33 @@ MODULE_PARM_DESC(n_ports, "number of ports to create, default=1"); /*-------------------------------------------------------------------------*/ -static int __init serial_bind_config(struct usb_configuration *c) +static int __init serial_bind_acm_config(struct usb_configuration *c) { unsigned i; int status = 0; - for (i = 0; i < n_ports && status == 0; i++) { - if (use_acm) - status = acm_bind_config(c, i); - else if (use_obex) - status = obex_bind_config(c, i); - else - status = gser_bind_config(c, i); - } + for (i = 0; i < n_ports && status == 0; i++) + status = acm_bind_config(c, i); + return status; +} + +static int __init serial_bind_obex_config(struct usb_configuration *c) +{ + unsigned i; + int status = 0; + + for (i = 0; i < n_ports && status == 0; i++) + status = obex_bind_config(c, i); + return status; +} + +static int __init serial_bind_gser_config(struct usb_configuration *c) +{ + unsigned i; + int status = 0; + + for (i = 0; i < n_ports && status == 0; i++) + status = gser_bind_config(c, i); return status; } @@ -178,8 +192,15 @@ static int __init gs_bind(struct usb_composite_dev *cdev) } /* register our configuration */ - status = usb_add_config(cdev, &serial_config_driver, - serial_bind_config); + if (use_acm) + status = usb_add_config(cdev, &serial_config_driver, + serial_bind_acm_config); + else if (use_obex) + status = usb_add_config(cdev, &serial_config_driver, + serial_bind_obex_config); + else + status = usb_add_config(cdev, &serial_config_driver, + serial_bind_gser_config); if (status < 0) goto fail;