diff options
| author | Henrik Rydberg <rydberg@euromail.se> | 2008-10-08 23:31:59 +0200 |
|---|---|---|
| committer | Henrik Rydberg <rydberg@euromail.se> | 2008-10-08 23:31:59 +0200 |
| commit | aa2d0bf085f624ad24deb0357d4fe935225ccd18 (patch) | |
| tree | 4d0e71869d36bee09911803017c9355364ee743d | |
| parent | 98625bc2be4a6009d4f90598c3ea111ef0f30d87 (diff) | |
bcm5974 (0.65) unstable; urgency=low
* Switch back to normal mode when closing
-- Henrik Rydberg <rydberg@euromail.se> Sun, 14 Sep 2008 16:06:42 +0200
| -rw-r--r-- | CHANGES | 6 | ||||
| -rw-r--r-- | bcm5974-dkms-mkdeb/debian/changelog | 2 | ||||
| -rw-r--r-- | bcm5974.c | 17 | ||||
| -rw-r--r-- | dkms.conf | 2 |
4 files changed, 19 insertions, 8 deletions
| @@ -1,3 +1,9 @@ | |||
| 1 | bcm5974 (0.65) unstable; urgency=low | ||
| 2 | |||
| 3 | * Switch back to normal mode when closing | ||
| 4 | |||
| 5 | -- Henrik Rydberg <rydberg@euromail.se> Sun, 14 Sep 2008 16:06:42 +0200 | ||
| 6 | |||
| 1 | bcm5974 (0.64) unstable; urgency=low | 7 | bcm5974 (0.64) unstable; urgency=low |
| 2 | 8 | ||
| 3 | * Finger counting improved further | 9 | * Finger counting improved further |
diff --git a/bcm5974-dkms-mkdeb/debian/changelog b/bcm5974-dkms-mkdeb/debian/changelog index f6d016a..3ea1523 100644 --- a/bcm5974-dkms-mkdeb/debian/changelog +++ b/bcm5974-dkms-mkdeb/debian/changelog | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | MODULE_NAME-dkms (MODULE_VERSION) unstable; urgency=low | 1 | MODULE_NAME-dkms (MODULE_VERSION) unstable; urgency=low |
| 2 | 2 | ||
| 3 | * Finger counting improved further | 3 | * Switch back to normal mode when closing |
| 4 | 4 | ||
| 5 | -- Henrik Rydberg <rydberg@euromail.se> DATE_STAMP | 5 | -- Henrik Rydberg <rydberg@euromail.se> DATE_STAMP |
| @@ -234,8 +234,8 @@ static inline int int2bound(const struct bcm5974_param *p, int x) | |||
| 234 | { | 234 | { |
| 235 | int s = int2scale(p, x); | 235 | int s = int2scale(p, x); |
| 236 | 236 | ||
| 237 | // return clamp_val(s, 0, p->dim - 1); | 237 | //return clamp_val(s, 0, p->dim - 1); |
| 238 | return s < 0 ? 0 : s >= p->dim ? p->dim - 1 : s; | 238 | return s < 0 ? 0 : s >= p->dim ? p->dim - 1 : s; |
| 239 | } | 239 | } |
| 240 | 240 | ||
| 241 | /* setup which logical events to report */ | 241 | /* setup which logical events to report */ |
| @@ -352,8 +352,9 @@ static int report_tp_state(struct bcm5974 *dev, int size) | |||
| 352 | #define BCM5974_WELLSPRING_MODE_REQUEST_VALUE 0x300 | 352 | #define BCM5974_WELLSPRING_MODE_REQUEST_VALUE 0x300 |
| 353 | #define BCM5974_WELLSPRING_MODE_REQUEST_INDEX 0 | 353 | #define BCM5974_WELLSPRING_MODE_REQUEST_INDEX 0 |
| 354 | #define BCM5974_WELLSPRING_MODE_VENDOR_VALUE 0x01 | 354 | #define BCM5974_WELLSPRING_MODE_VENDOR_VALUE 0x01 |
| 355 | #define BCM5974_WELLSPRING_MODE_NORMAL_VALUE 0x08 | ||
| 355 | 356 | ||
| 356 | static int bcm5974_wellspring_mode(struct bcm5974 *dev) | 357 | static int bcm5974_wellspring_mode(struct bcm5974 *dev, bool on) |
| 357 | { | 358 | { |
| 358 | char *data = kmalloc(8, GFP_KERNEL); | 359 | char *data = kmalloc(8, GFP_KERNEL); |
| 359 | int retval = 0, size; | 360 | int retval = 0, size; |
| @@ -378,7 +379,9 @@ static int bcm5974_wellspring_mode(struct bcm5974 *dev) | |||
| 378 | } | 379 | } |
| 379 | 380 | ||
| 380 | /* apply the mode switch */ | 381 | /* apply the mode switch */ |
| 381 | data[0] = BCM5974_WELLSPRING_MODE_VENDOR_VALUE; | 382 | data[0] = on ? |
| 383 | BCM5974_WELLSPRING_MODE_VENDOR_VALUE : | ||
| 384 | BCM5974_WELLSPRING_MODE_NORMAL_VALUE; | ||
| 382 | 385 | ||
| 383 | /* write configuration */ | 386 | /* write configuration */ |
| 384 | size = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0), | 387 | size = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0), |
| @@ -393,7 +396,8 @@ static int bcm5974_wellspring_mode(struct bcm5974 *dev) | |||
| 393 | goto out; | 396 | goto out; |
| 394 | } | 397 | } |
| 395 | 398 | ||
| 396 | dprintk(2, "bcm5974: switched to wellspring mode.\n"); | 399 | dprintk(2, "bcm5974: switched to %s mode.\n", |
| 400 | on ? "wellspring" : "normal"); | ||
| 397 | 401 | ||
| 398 | out: | 402 | out: |
| 399 | kfree(data); | 403 | kfree(data); |
| @@ -482,7 +486,7 @@ exit: | |||
| 482 | */ | 486 | */ |
| 483 | static int bcm5974_start_traffic(struct bcm5974 *dev) | 487 | static int bcm5974_start_traffic(struct bcm5974 *dev) |
| 484 | { | 488 | { |
| 485 | if (bcm5974_wellspring_mode(dev)) { | 489 | if (bcm5974_wellspring_mode(dev, true)) { |
| 486 | dprintk(1, "bcm5974: mode switch failed\n"); | 490 | dprintk(1, "bcm5974: mode switch failed\n"); |
| 487 | goto error; | 491 | goto error; |
| 488 | } | 492 | } |
| @@ -505,6 +509,7 @@ static void bcm5974_pause_traffic(struct bcm5974 *dev) | |||
| 505 | { | 509 | { |
| 506 | usb_kill_urb(dev->tp_urb); | 510 | usb_kill_urb(dev->tp_urb); |
| 507 | usb_kill_urb(dev->bt_urb); | 511 | usb_kill_urb(dev->bt_urb); |
| 512 | bcm5974_wellspring_mode(dev, false); | ||
| 508 | } | 513 | } |
| 509 | 514 | ||
| 510 | /* | 515 | /* |
| @@ -1,5 +1,5 @@ | |||
| 1 | PACKAGE_NAME="bcm5974" | 1 | PACKAGE_NAME="bcm5974" |
| 2 | PACKAGE_VERSION="0.64" | 2 | PACKAGE_VERSION="0.65" |
| 3 | MAKE[0]="make -C ${kernel_source_dir} | 3 | MAKE[0]="make -C ${kernel_source_dir} |
| 4 | SUBDIRS=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build modules" | 4 | SUBDIRS=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build modules" |
| 5 | BUILT_MODULE_NAME[0]="bcm5974" | 5 | BUILT_MODULE_NAME[0]="bcm5974" |
