summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenrik Rydberg <rydberg@euromail.se>2008-10-08 23:31:59 +0200
committerHenrik Rydberg <rydberg@euromail.se>2008-10-08 23:31:59 +0200
commitaa2d0bf085f624ad24deb0357d4fe935225ccd18 (patch)
tree4d0e71869d36bee09911803017c9355364ee743d
parent98625bc2be4a6009d4f90598c3ea111ef0f30d87 (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--CHANGES6
-rw-r--r--bcm5974-dkms-mkdeb/debian/changelog2
-rw-r--r--bcm5974.c17
-rw-r--r--dkms.conf2
4 files changed, 19 insertions, 8 deletions
diff --git a/CHANGES b/CHANGES
index 01f0cd9..2850cef 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,9 @@
1bcm5974 (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
1bcm5974 (0.64) unstable; urgency=low 7bcm5974 (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 @@
1MODULE_NAME-dkms (MODULE_VERSION) unstable; urgency=low 1MODULE_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
diff --git a/bcm5974.c b/bcm5974.c
index d3d08e3..bf6c59f 100644
--- a/bcm5974.c
+++ b/bcm5974.c
@@ -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
356static int bcm5974_wellspring_mode(struct bcm5974 *dev) 357static 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 */
483static int bcm5974_start_traffic(struct bcm5974 *dev) 487static 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/*
diff --git a/dkms.conf b/dkms.conf
index 9d8587d..aec50fa 100644
--- a/dkms.conf
+++ b/dkms.conf
@@ -1,5 +1,5 @@
1PACKAGE_NAME="bcm5974" 1PACKAGE_NAME="bcm5974"
2PACKAGE_VERSION="0.64" 2PACKAGE_VERSION="0.65"
3MAKE[0]="make -C ${kernel_source_dir} 3MAKE[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"
5BUILT_MODULE_NAME[0]="bcm5974" 5BUILT_MODULE_NAME[0]="bcm5974"