diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-16 11:33:06 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-16 11:33:06 -0400 |
commit | 5206a79d7b217c139116fc6faef55d1c0e65c800 (patch) | |
tree | 334717cbd3ae9752351ec81acc088577142c8cab /drivers | |
parent | 29da7eb0ec69245c6e9b4eb5bdaa04af685f5c4f (diff) | |
parent | 3f5306927d800306ebba542438cfdf1a1c418376 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (25 commits)
[Bluetooth] Use work queue to trigger URB submission
[Bluetooth] Add locking for bt_proto array manipulation
[Bluetooth] Check if DLC is still attached to the TTY
[Bluetooth] Fix reference count when connection lookup fails
[Bluetooth] Disconnect HID interrupt channel first
[Bluetooth] Support concurrent connect requests
[Bluetooth] Make use of virtual devices tree
[Bluetooth] Handle return values from driver core functions
[Bluetooth] Fix compat ioctl for BNEP, CMTP and HIDP
[IPV6] sit: Add missing MODULE_LICENSE
[IPV6]: Remove bogus WARN_ON in Proxy-NA handling.
[IPv6] rules: Use RT6_LOOKUP_F_HAS_SADDR and fix source based selectors
[XFRM]: Fix xfrm_state_num going negative.
[NET]: reduce sizeof(struct inet_peer), cleanup, change in peer_check_expire()
NetLabel: the CIPSOv4 passthrough mapping does not pass categories correctly
NetLabel: better error handling involving mls_export_cat()
NetLabel: only deref the CIPSOv4 standard map fields when using standard mapping
[BRIDGE]: flush forwarding table when device carrier off
[NETFILTER]: ctnetlink: Remove debugging messages
[NETFILTER]: Update MAINTAINERS entry
...
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/bluetooth/bcm203x.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/drivers/bluetooth/bcm203x.c b/drivers/bluetooth/bcm203x.c index 67cdda43f229..516751754aa9 100644 --- a/drivers/bluetooth/bcm203x.c +++ b/drivers/bluetooth/bcm203x.c | |||
@@ -29,7 +29,6 @@ | |||
29 | #include <linux/slab.h> | 29 | #include <linux/slab.h> |
30 | #include <linux/types.h> | 30 | #include <linux/types.h> |
31 | #include <linux/errno.h> | 31 | #include <linux/errno.h> |
32 | #include <linux/timer.h> | ||
33 | 32 | ||
34 | #include <linux/device.h> | 33 | #include <linux/device.h> |
35 | #include <linux/firmware.h> | 34 | #include <linux/firmware.h> |
@@ -43,7 +42,7 @@ | |||
43 | #define BT_DBG(D...) | 42 | #define BT_DBG(D...) |
44 | #endif | 43 | #endif |
45 | 44 | ||
46 | #define VERSION "1.0" | 45 | #define VERSION "1.1" |
47 | 46 | ||
48 | static int ignore = 0; | 47 | static int ignore = 0; |
49 | 48 | ||
@@ -72,7 +71,7 @@ struct bcm203x_data { | |||
72 | 71 | ||
73 | unsigned long state; | 72 | unsigned long state; |
74 | 73 | ||
75 | struct timer_list timer; | 74 | struct work_struct work; |
76 | 75 | ||
77 | struct urb *urb; | 76 | struct urb *urb; |
78 | unsigned char *buffer; | 77 | unsigned char *buffer; |
@@ -105,7 +104,7 @@ static void bcm203x_complete(struct urb *urb) | |||
105 | 104 | ||
106 | data->state = BCM203X_SELECT_MEMORY; | 105 | data->state = BCM203X_SELECT_MEMORY; |
107 | 106 | ||
108 | mod_timer(&data->timer, jiffies + (HZ / 10)); | 107 | schedule_work(&data->work); |
109 | break; | 108 | break; |
110 | 109 | ||
111 | case BCM203X_SELECT_MEMORY: | 110 | case BCM203X_SELECT_MEMORY: |
@@ -158,9 +157,9 @@ static void bcm203x_complete(struct urb *urb) | |||
158 | } | 157 | } |
159 | } | 158 | } |
160 | 159 | ||
161 | static void bcm203x_timer(unsigned long user_data) | 160 | static void bcm203x_work(void *user_data) |
162 | { | 161 | { |
163 | struct bcm203x_data *data = (struct bcm203x_data *) user_data; | 162 | struct bcm203x_data *data = user_data; |
164 | 163 | ||
165 | if (usb_submit_urb(data->urb, GFP_ATOMIC) < 0) | 164 | if (usb_submit_urb(data->urb, GFP_ATOMIC) < 0) |
166 | BT_ERR("Can't submit URB"); | 165 | BT_ERR("Can't submit URB"); |
@@ -247,13 +246,11 @@ static int bcm203x_probe(struct usb_interface *intf, const struct usb_device_id | |||
247 | 246 | ||
248 | release_firmware(firmware); | 247 | release_firmware(firmware); |
249 | 248 | ||
250 | init_timer(&data->timer); | 249 | INIT_WORK(&data->work, bcm203x_work, (void *) data); |
251 | data->timer.function = bcm203x_timer; | ||
252 | data->timer.data = (unsigned long) data; | ||
253 | 250 | ||
254 | usb_set_intfdata(intf, data); | 251 | usb_set_intfdata(intf, data); |
255 | 252 | ||
256 | mod_timer(&data->timer, jiffies + HZ); | 253 | schedule_work(&data->work); |
257 | 254 | ||
258 | return 0; | 255 | return 0; |
259 | } | 256 | } |