Lines 31-37
Link Here
|
31 |
|
31 |
|
32 |
#define MAX_NUM_82357A_INTERFACES 128 |
32 |
#define MAX_NUM_82357A_INTERFACES 128 |
33 |
static struct usb_interface *agilent_82357a_driver_interfaces[MAX_NUM_82357A_INTERFACES]; |
33 |
static struct usb_interface *agilent_82357a_driver_interfaces[MAX_NUM_82357A_INTERFACES]; |
34 |
static DECLARE_MUTEX(agilent_82357a_hotplug_lock); |
34 |
static DEFINE_SEMAPHORE(agilent_82357a_hotplug_lock); |
35 |
|
35 |
|
36 |
static void agilent_82357a_bulk_complete(struct urb *urb PT_REGS_ARG) |
36 |
static void agilent_82357a_bulk_complete(struct urb *urb PT_REGS_ARG) |
37 |
{ |
37 |
{ |
Lines 80-86
Link Here
|
80 |
} |
80 |
} |
81 |
usb_dev = interface_to_usbdev(a_priv->bus_interface); |
81 |
usb_dev = interface_to_usbdev(a_priv->bus_interface); |
82 |
out_pipe = usb_sndbulkpipe(usb_dev, a_priv->bulk_out_endpoint); |
82 |
out_pipe = usb_sndbulkpipe(usb_dev, a_priv->bulk_out_endpoint); |
83 |
init_MUTEX_LOCKED(&context.complete); |
83 |
sema_init(&context.complete, 0); |
84 |
context.timed_out = 0; |
84 |
context.timed_out = 0; |
85 |
usb_fill_bulk_urb(a_priv->bulk_urb, usb_dev, out_pipe, data, data_length, |
85 |
usb_fill_bulk_urb(a_priv->bulk_urb, usb_dev, out_pipe, data, data_length, |
86 |
&agilent_82357a_bulk_complete, &context); |
86 |
&agilent_82357a_bulk_complete, &context); |
Lines 170-176
Link Here
|
170 |
} |
170 |
} |
171 |
usb_dev = interface_to_usbdev(a_priv->bus_interface); |
171 |
usb_dev = interface_to_usbdev(a_priv->bus_interface); |
172 |
in_pipe = usb_rcvbulkpipe(usb_dev, AGILENT_82357_BULK_IN_ENDPOINT); |
172 |
in_pipe = usb_rcvbulkpipe(usb_dev, AGILENT_82357_BULK_IN_ENDPOINT); |
173 |
init_MUTEX_LOCKED(&context.complete); |
173 |
sema_init(&context.complete, 0); |
174 |
context.timed_out = 0; |
174 |
context.timed_out = 0; |
175 |
usb_fill_bulk_urb(a_priv->bulk_urb, usb_dev, in_pipe, data, data_length, |
175 |
usb_fill_bulk_urb(a_priv->bulk_urb, usb_dev, in_pipe, data, data_length, |
176 |
&agilent_82357a_bulk_complete, &context); |
176 |
&agilent_82357a_bulk_complete, &context); |
Lines 1142-1151
Link Here
|
1142 |
return -ENOMEM; |
1142 |
return -ENOMEM; |
1143 |
a_priv = board->private_data; |
1143 |
a_priv = board->private_data; |
1144 |
memset(a_priv, 0, sizeof(agilent_82357a_private_t)); |
1144 |
memset(a_priv, 0, sizeof(agilent_82357a_private_t)); |
1145 |
init_MUTEX(&a_priv->bulk_transfer_lock); |
1145 |
sema_init(&a_priv->bulk_transfer_lock,1); |
1146 |
init_MUTEX(&a_priv->bulk_alloc_lock); |
1146 |
sema_init(&a_priv->bulk_alloc_lock,1); |
1147 |
init_MUTEX(&a_priv->control_alloc_lock); |
1147 |
sema_init(&a_priv->control_alloc_lock,1); |
1148 |
init_MUTEX(&a_priv->interrupt_alloc_lock); |
1148 |
sema_init(&a_priv->interrupt_alloc_lock,1); |
1149 |
return 0; |
1149 |
return 0; |
1150 |
} |
1150 |
} |
1151 |
|
1151 |
|