Skip to content

Commit

Permalink
usb: gadget: g_serial: split the three possible functions into three …
Browse files Browse the repository at this point in the history
…bind functions

This patch factors out the three possible functions into three possible
bind functions which are passed as an argument to usb_add_config(). This
will ease the step by step converting of the individual functions to the
new function registration method.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
  • Loading branch information
Sebastian Andrzej Siewior authored and Felipe Balbi committed Jan 21, 2013
1 parent 05c062c commit 48177cd
Showing 1 changed file with 32 additions and 11 deletions.
43 changes: 32 additions & 11 deletions drivers/usb/gadget/serial.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down Expand Up @@ -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;

Expand Down

0 comments on commit 48177cd

Please sign in to comment.