aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/atm/usbatm.c
diff options
context:
space:
mode:
authorDuncan Sands <baldrick@free.fr>2006-01-17 05:16:13 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2006-01-31 20:23:39 -0500
commit35644b0cce0ab8735944dcbfceb19e9e65da9a3d (patch)
treecaa13c8519c7417fa0adf173cec98b994745c79f /drivers/usb/atm/usbatm.c
parent0ec3c7e856319b600311750d784262caa8ed94b9 (diff)
[PATCH] USBATM: add flags field
Have minidrivers and the core signal special requirements using a flags field in struct usbatm_data. For the moment this is only used to replace the need_heavy_init bind parameter, but there'll be new flags in later patches. Signed-off-by: Duncan Sands <baldrick@free.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/atm/usbatm.c')
-rw-r--r--drivers/usb/atm/usbatm.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/usb/atm/usbatm.c b/drivers/usb/atm/usbatm.c
index 779f86ecdd76..2eb8552dac12 100644
--- a/drivers/usb/atm/usbatm.c
+++ b/drivers/usb/atm/usbatm.c
@@ -969,7 +969,6 @@ int usbatm_usb_probe(struct usb_interface *intf, const struct usb_device_id *id,
969 char *buf; 969 char *buf;
970 int error = -ENOMEM; 970 int error = -ENOMEM;
971 int i, length; 971 int i, length;
972 int need_heavy;
973 972
974 dev_dbg(dev, "%s: trying driver %s with vendor=%04x, product=%04x, ifnum %2d\n", 973 dev_dbg(dev, "%s: trying driver %s with vendor=%04x, product=%04x, ifnum %2d\n",
975 __func__, driver->driver_name, 974 __func__, driver->driver_name,
@@ -1014,8 +1013,7 @@ int usbatm_usb_probe(struct usb_interface *intf, const struct usb_device_id *id,
1014 snprintf(buf, length, ")"); 1013 snprintf(buf, length, ")");
1015 1014
1016 bind: 1015 bind:
1017 need_heavy = 1; 1016 if (driver->bind && (error = driver->bind(instance, intf, id)) < 0) {
1018 if (driver->bind && (error = driver->bind(instance, intf, id, &need_heavy)) < 0) {
1019 dev_err(dev, "%s: bind failed: %d!\n", __func__, error); 1017 dev_err(dev, "%s: bind failed: %d!\n", __func__, error);
1020 goto fail_free; 1018 goto fail_free;
1021 } 1019 }
@@ -1098,7 +1096,7 @@ int usbatm_usb_probe(struct usb_interface *intf, const struct usb_device_id *id,
1098 __func__, urb->transfer_buffer, urb->transfer_buffer_length, urb); 1096 __func__, urb->transfer_buffer, urb->transfer_buffer_length, urb);
1099 } 1097 }
1100 1098
1101 if (need_heavy && driver->heavy_init) { 1099 if (!(instance->flags & UDSL_SKIP_HEAVY_INIT) && driver->heavy_init) {
1102 error = usbatm_heavy_init(instance); 1100 error = usbatm_heavy_init(instance);
1103 } else { 1101 } else {
1104 complete(&instance->thread_exited); /* pretend that heavy_init was run */ 1102 complete(&instance->thread_exited); /* pretend that heavy_init was run */