Skip to contentSkip to conversation

Fix for Acer Bluetooth Optical Rechargeable Mouse

PATCH In review Lamarque Vieira Souza 3 participants 9 messages Jul 17, 2009 – Jul 23, 2009

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Fix for Acer Bluetooth Optical Rechargeable Mouse

This patch works around one problem with my Acer Bluetooth Optical
Rechargeable Mouse where the cursor gets stuck at screen's upper-left corner. Even my notebook's touchpad is not able to move cursor when the bluetooth mouse is connected to my Acer Ferrari 4005 notebook. Using input session instead of hid session solves this problem although the cursor still moves a little sluggishly with the bluetooth mouse, cursor moves correctly using the touchpad. My bluetooth mouse used to work well (no sluggish) until kernel 2.6.21, since then the problems are getting worse with each kernel release (it got sluggish in 2.6.22 and this this upper-left corner problem appeared in 2.6.28 or 2.6.27).

---

diff -Nru --show-c-function linux-2.6.30.1-orig/net/bluetooth/hidp/core.c linux-2.6.30.1-lvs/net/bluetooth/hidp/core.c
--- linux-2.6.30.1-orig/net/bluetooth/hidp/core.c 2009-07-16
23:53:04.697925121 -0300
+++ linux-2.6.30.1-lvs/net/bluetooth/hidp/core.c 2009-07-17 02:35:03.969927384
-0300
@@ -73,6 +73,43 @@ static unsigned char hidp_keycode[256] =

static unsigned char hidp_mkeyspat[] = { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
};

+/* HIDP device quirks */
+enum {
+ HIDP_QUIRK_USE_INPUT_SESSION
+};
+
+struct quirk_id {
+ __u16 vendor;
+ __u16 product;
+ unsigned long quirks;
+};
+
+static const struct quirk_id hidp_quirks[] = {
+ {
+ /* Lamarque: Acer Bluetooth Optical Rechargeable Mouse
+ * does not work properly with hid session since 2.6.27. */
+ .vendor = 0x0458,
+ .product = 0x0058,
+ .quirks = 1 << HIDP_QUIRK_USE_INPUT_SESSION
+ },
+
+ { /* end: all zeroes */ }
+};
+
+static int quirk_test_bit(__u16 vendor, __u16 product, int quirk) +{
+ const struct quirk_id *q = &hidp_quirks[0];
+
+ while (q->vendor != vendor && q->product != product &&
+ q->vendor && q->product)
+ q++;
+
+ if (q->vendor == vendor && q->product == product)
+ return test_bit(quirk, &q->quirks);
+
+ return 0;
+}
+
static struct hidp_session *__hidp_get_session(bdaddr_t *bdaddr) {
struct hidp_session *session;
@@ -832,7 +869,9 @@ int hidp_add_connection(struct hidp_conn
session->flags = req->flags & (1 << HIDP_BLUETOOTH_VENDOR_ID);
session->idle_to = req->idle_to;

- if (req->rd_size > 0) {
+ if (req->rd_size > 0 &&
+ !quirk_test_bit(req->vendor, req->product,
+ HIDP_QUIRK_USE_INPUT_SESSION)) {
err = hidp_setup_hid(session, req); if (err && err != -ENODEV)
goto err_skb;

#1 lore raw
Quoted 10 lines · On Fri, 17 Jul 2009 03:01:43 -0300 Lamarque Vieira Souza <[email protected]>…

This patch works around one problem with my Acer Bluetooth Optical
Rechargeable Mouse where the cursor gets stuck at screen's upper-left corner. Even my notebook's touchpad is not able to move cursor when the bluetooth mouse is connected to my Acer Ferrari 4005 notebook. Using input session instead of hid session solves this problem although the cursor still moves a little sluggishly with the bluetooth mouse, cursor moves correctly using the touchpad. My bluetooth mouse used to work well (no sluggish) until kernel 2.6.21, since then the problems are getting worse with each kernel release (it got sluggish in 2.6.22 and this this upper-left corner problem appeared in 2.6.28 or 2.6.27).

The patch also adds a new general quirk infrastructure to the hidp core. That's worth noting in the changelog! I added this:

The patch adds a general quirk handling framework to the HIDP core and then uses this framework to implement a quirk for this device.

Quoted 36 lines

linux-2.6.30.1-lvs/net/bluetooth/hidp/core.c
--- linux-2.6.30.1-orig/net/bluetooth/hidp/core.c 2009-07-16
23:53:04.697925121 -0300
+++ linux-2.6.30.1-lvs/net/bluetooth/hidp/core.c 2009-07-17 02:35:03.969927384
-0300

(quoted diff) +26 -0
@@ -73,6 +73,43 @@ static unsigned char hidp_keycode[256] =
 
 static unsigned char hidp_mkeyspat[] = { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 
 };
 
+/* HIDP device quirks */
+enum {
+	HIDP_QUIRK_USE_INPUT_SESSION
+};
+
+struct quirk_id {
+	__u16 vendor;
+	__u16 product;
+	unsigned long quirks;
+};
+
+static const struct quirk_id hidp_quirks[] = {
+	{
+		/* Lamarque: Acer Bluetooth Optical Rechargeable Mouse
+		 * does not work properly with hid session since 2.6.27. */
+		.vendor = 0x0458,
+		.product = 0x0058,
+		.quirks = 1 << HIDP_QUIRK_USE_INPUT_SESSION
+	},
+
+	{ /* end: all zeroes */ }
+};
+
+static int quirk_test_bit(__u16 vendor, __u16 product, int quirk)
+{
+	const struct quirk_id *q = &hidp_quirks[0];

Review static unsigned char hidp_keycode[256] = · line 112

Quoted 10 lines
(quoted diff) +10 -0
+
+	while (q->vendor != vendor && q->product != product &&
+	       q->vendor && q->product)
+		q++;
+
+	if (q->vendor == vendor && q->product == product)
+		return test_bit(quirk, &q->quirks);
+
+	return 0;
+}

Looks OK, but...

It's a bit neater (IMO) and probably more efficient to replace the null-terminated search with a fixed-size one, using ARRAY_SIZE().

How does this look?

static const struct quirk_id hidp_quirks[] = {
	{
		/* Lamarque: Acer Bluetooth Optical Rechargeable Mouse
		 * does not work properly with hid session since 2.6.27. */
		.vendor = 0x0458,
		.product = 0x0058,
		.quirks = 1 << HIDP_QUIRK_USE_INPUT_SESSION
	},
};

static int quirk_test_bit(__u16 vendor, __u16 product, int quirk)

{
	int i;

	for (i = 0; i < ARRAY_SIZE(hidp_quirks); i++) {
		const struct quirk_id *q = hidp_quirks + i;
	
		if (q->vendor == vendor && q->product == product)
			return test_bit(quirk, &q->quirks);
	}

	return 0;
}

Incremental patch:

net/bluetooth/hidp/core.c renamed from net/bluetooth/hidp/core.c~bluetooth-fix-for-acer-bluetooth-optical-rechargeable-mouse-fix +6 -8
@@ -92,20 +92,18 @@ static const struct quirk_id hidp_quirks
 		.product = 0x0058,
 		.quirks = 1 << HIDP_QUIRK_USE_INPUT_SESSION
 	},
-
-	{ /* end: all zeroes */ }
 };
 
 static int quirk_test_bit(__u16 vendor, __u16 product, int quirk)
 {
-	const struct quirk_id *q = &hidp_quirks[0];
+	int i;
 
-	while (q->vendor != vendor && q->product != product &&
-	       q->vendor && q->product)
-		q++;
+	for (i = 0; i < ARRAY_SIZE(hidp_quirks); i++) {
+		const struct quirk_id *q = hidp_quirks + i;
 
-	if (q->vendor == vendor && q->product == product)
-		return test_bit(quirk, &q->quirks);
+		if (q->vendor == vendor && q->product == product)
+			return test_bit(quirk, &q->quirks);
+	}
 
 	return 0;
 }

_

#2 lore raw
	Hi,

Em Quinta-feira 23 Julho 2009, Andrew Morton escreveu:

Quoted 13 lines

On Fri, 17 Jul 2009 03:01:43 -0300

Quoted 10 lines · Lamarque Vieira Souza

This patch works around one problem with my Acer Bluetooth Optical
Rechargeable Mouse where the cursor gets stuck at screen's upper-left corner. Even my notebook's touchpad is not able to move cursor when the bluetooth mouse is connected to my Acer Ferrari 4005 notebook. Using input session instead of hid session solves this problem although the cursor still moves a little sluggishly with the bluetooth mouse, cursor moves correctly using the touchpad. My bluetooth mouse used to work well (no sluggish) until kernel 2.6.21, since then the problems are getting worse with each kernel release (it got sluggish in 2.6.22 and this this upper-left corner problem appeared in 2.6.28 or 2.6.27).

By the way, I have found that bug
http://bugzilla.kernel.org/show_bug.cgi?id=13314 is the cause of the sluggish in my mouse.

Quoted 6 lines

The patch also adds a new general quirk infrastructure to the hidp core. That's worth noting in the changelog! I added this:

The patch adds a general quirk handling framework to the HIDP core and then uses this framework to implement a quirk for this device.

Ok, that is better.

Quoted 49 lines
Quoted 36 lines

linux-2.6.30.1-lvs/net/bluetooth/hidp/core.c
--- linux-2.6.30.1-orig/net/bluetooth/hidp/core.c 2009-07-16
23:53:04.697925121 -0300
+++ linux-2.6.30.1-lvs/net/bluetooth/hidp/core.c 2009-07-17
02:35:03.969927384 -0300

(quoted diff) +26 -0
@@ -73,6 +73,43 @@ static unsigned char hidp_keycode[256] =
 
 static unsigned char hidp_mkeyspat[] = { 0x01, 0x01, 0x01, 0x01, 0x01,
 0x01 };
 
+/* HIDP device quirks */
+enum {
+	HIDP_QUIRK_USE_INPUT_SESSION
+};
+
+struct quirk_id {
+	__u16 vendor;
+	__u16 product;
+	unsigned long quirks;
+};
+
+static const struct quirk_id hidp_quirks[] = {
+	{
+		/* Lamarque: Acer Bluetooth Optical Rechargeable Mouse
+		 * does not work properly with hid session since 2.6.27. */
+		.vendor = 0x0458,
+		.product = 0x0058,
+		.quirks = 1 << HIDP_QUIRK_USE_INPUT_SESSION
+	},
+
+	{ /* end: all zeroes */ }
+};
+
+static int quirk_test_bit(__u16 vendor, __u16 product, int quirk)
+{
+	const struct quirk_id *q = &hidp_quirks[0];

Review static unsigned char hidp_keycode[256] = · line 112

Quoted 10 lines
(quoted diff) +10 -0
+
+	while (q->vendor != vendor && q->product != product &&
+	       q->vendor && q->product)
+		q++;
+
+	if (q->vendor == vendor && q->product == product)
+		return test_bit(quirk, &q->quirks);
+
+	return 0;
+}

Looks OK, but...

Quoted 4 lines

It's a bit neater (IMO) and probably more efficient to replace the null-terminated search with a fixed-size one, using ARRAY_SIZE().

How does this look?

It really looks better. Thanks for the tip about ARRAY_SIZE.

Quoted 59 lines
static const struct quirk_id hidp_quirks[] = {
	{
		/* Lamarque: Acer Bluetooth Optical Rechargeable Mouse
		 * does not work properly with hid session since 2.6.27. */
		.vendor = 0x0458,
		.product = 0x0058,
		.quirks = 1 << HIDP_QUIRK_USE_INPUT_SESSION
	},
};

static int quirk_test_bit(__u16 vendor, __u16 product, int quirk)

{
	int i;

	for (i = 0; i < ARRAY_SIZE(hidp_quirks); i++) {
		const struct quirk_id *q = hidp_quirks + i;

		if (q->vendor == vendor && q->product == product)
			return test_bit(quirk, &q->quirks);
	}

	return 0;
}

Incremental patch:

---
a/net/bluetooth/hidp/core.c~bluetooth-fix-for-acer-bluetooth-optical-rechar geable-mouse-fix +++ a/net/bluetooth/hidp/core.c

net/bluetooth/hidp/core.c renamed from net/bluetooth/hidp/core.c~bluetooth-fix-for-acer-bluetooth-optical-rechargeable-mouse-fix +6 -8
@@ -92,20 +92,18 @@ static const struct quirk_id hidp_quirks
 		.product = 0x0058,
 		.quirks = 1 << HIDP_QUIRK_USE_INPUT_SESSION
 	},
-
-	{ /* end: all zeroes */ }
 };
 
 static int quirk_test_bit(__u16 vendor, __u16 product, int quirk)
 {
-	const struct quirk_id *q = &hidp_quirks[0];
+	int i;
 
-	while (q->vendor != vendor && q->product != product &&
-	       q->vendor && q->product)
-		q++;
+	for (i = 0; i < ARRAY_SIZE(hidp_quirks); i++) {
+		const struct quirk_id *q = hidp_quirks + i;
 
-	if (q->vendor == vendor && q->product == product)
-		return test_bit(quirk, &q->quirks);
+		if (q->vendor == vendor && q->product == product)
+			return test_bit(quirk, &q->quirks);
+	}
 
 	return 0;
 }

_

Signature · 3 lines
Lamarque V. Souza
http://www.geographicguide.com/brazil.htm
Linux User #57137 - http://counter.li.org/
#3 lore raw
Quoted 15 lines · On Thu, 23 Jul 2009 18:30:57 -0300 Lamarque Vieira Souza <[email protected]>…

Em Quinta-feira 23 Julho 2009, Andrew Morton escreveu:

Quoted 13 lines

On Fri, 17 Jul 2009 03:01:43 -0300

Quoted 10 lines · Lamarque Vieira Souza

This patch works around one problem with my Acer Bluetooth Optical
Rechargeable Mouse where the cursor gets stuck at screen's upper-left corner. Even my notebook's touchpad is not able to move cursor when the bluetooth mouse is connected to my Acer Ferrari 4005 notebook. Using input session instead of hid session solves this problem although the cursor still moves a little sluggishly with the bluetooth mouse, cursor moves correctly using the touchpad. My bluetooth mouse used to work well (no sluggish) until kernel 2.6.21, since then the problems are getting worse with each kernel release (it got sluggish in 2.6.22 and this this upper-left corner problem appeared in 2.6.28 or 2.6.27).

Quoted 3 lines

By the way, I have found that bug
http://bugzilla.kernel.org/show_bug.cgi?id=13314 is the cause of the sluggish in my mouse.

(cc's added)

OK, thanks. Did you test Anthony's patch on your system?

Also, you've determined that
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e4e8e37c42bdaaefcb84eeaef0dc1bc3f696f8f6
caused the problem on your machine and that reverting it fixes things up.

I'm all confused.

#4 lore raw

Em Quinta-feira 23 Julho 2009, Andrew Morton escreveu:

Quoted 19 lines

On Thu, 23 Jul 2009 18:30:57 -0300

Quoted 16 lines · Lamarque Vieira Souza

Em Quinta-feira 23 Julho 2009, Andrew Morton escreveu:

Quoted 14 lines

On Fri, 17 Jul 2009 03:01:43 -0300

Quoted 11 lines · Lamarque Vieira Souza

This patch works around one problem with my Acer Bluetooth Optical
Rechargeable Mouse where the cursor gets stuck at screen's upper-left corner. Even my notebook's touchpad is not able to move cursor when the bluetooth mouse is connected to my Acer Ferrari 4005 notebook. Using input session instead of hid session solves this problem although the cursor still moves a little sluggishly with the bluetooth mouse, cursor moves correctly using the touchpad. My bluetooth mouse used to work well (no sluggish) until kernel 2.6.21, since then the problems are getting worse with each kernel release (it got sluggish in 2.6.22 and this this upper-left corner problem appeared in 2.6.28 or 2.6.27).

Quoted 7 lines
Quoted 3 lines

By the way, I have found that bug
http://bugzilla.kernel.org/show_bug.cgi?id=13314 is the cause of the sluggish in my mouse.

(cc's added)

OK, thanks. Did you test Anthony's patch on your system?

Yes, I did.

Quoted 6 lines

Also, you've determined that
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h
=e4e8e37c42bdaaefcb84eeaef0dc1bc3f696f8f6 caused the problem on your machine and that reverting it fixes things up.

I'm all confused.

Signature · 3 lines
Lamarque V. Souza
http://www.geographicguide.com/brazil.htm
Linux User #57137 - http://counter.li.org/
#5 lore raw
Quoted 24 lines · On Thu, 23 Jul 2009 19:00:58 -0300 Lamarque Vieira Souza <[email protected]>…

Em Quinta-feira 23 Julho 2009, Andrew Morton escreveu:

Quoted 23 lines

On Thu, 23 Jul 2009 18:30:57 -0300

Quoted 19 lines · Lamarque Vieira Souza

Em Quinta-feira 23 Julho 2009, Andrew Morton escreveu:

Quoted 14 lines

On Fri, 17 Jul 2009 03:01:43 -0300

Quoted 11 lines · Lamarque Vieira Souza

This patch works around one problem with my Acer Bluetooth Optical
Rechargeable Mouse where the cursor gets stuck at screen's upper-left corner. Even my notebook's touchpad is not able to move cursor when the bluetooth mouse is connected to my Acer Ferrari 4005 notebook. Using input session instead of hid session solves this problem although the cursor still moves a little sluggishly with the bluetooth mouse, cursor moves correctly using the touchpad. My bluetooth mouse used to work well (no sluggish) until kernel 2.6.21, since then the problems are getting worse with each kernel release (it got sluggish in 2.6.22 and this this upper-left corner problem appeared in 2.6.28 or 2.6.27).

By the way, I have found that bug
http://bugzilla.kernel.org/show_bug.cgi?id=13314 is the cause of the sluggish in my mouse.

Quoted 5 lines
Quoted 3 lines

(cc's added)

OK, thanks. Did you test Anthony's patch on your system?

Yes, I did.

Did it fix the bug?

If so, does that mean that you think we should merge Anthony's patch instead of yours?

Quoted 6 lines
Quoted 6 lines

Also, you've determined that
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h
=e4e8e37c42bdaaefcb84eeaef0dc1bc3f696f8f6 caused the problem on your machine and that reverting it fixes things up.

I'm all confused.

#6 lore raw

Em Quinta-feira 23 Julho 2009, Andrew Morton escreveu:

Quoted 28 lines

On Thu, 23 Jul 2009 19:00:58 -0300

Quoted 25 lines · Lamarque Vieira Souza

Em Quinta-feira 23 Julho 2009, Andrew Morton escreveu:

Quoted 24 lines

On Thu, 23 Jul 2009 18:30:57 -0300

Quoted 20 lines · Lamarque Vieira Souza

Em Quinta-feira 23 Julho 2009, Andrew Morton escreveu:

Quoted 15 lines

On Fri, 17 Jul 2009 03:01:43 -0300

Quoted 12 lines · Lamarque Vieira Souza

This patch works around one problem with my Acer Bluetooth
Optical Rechargeable Mouse where the cursor gets stuck at screen's upper-left corner. Even my notebook's touchpad is not able to move cursor when the bluetooth mouse is connected to my Acer Ferrari 4005 notebook. Using input session instead of hid session solves this problem although the cursor still moves a little sluggishly with the bluetooth mouse, cursor moves correctly using the touchpad. My bluetooth mouse used to work well (no sluggish) until kernel 2.6.21, since then the problems are getting worse with each kernel release (it got sluggish in 2.6.22 and this this upper-left corner problem appeared in 2.6.28 or 2.6.27).

By the way, I have found that bug
http://bugzilla.kernel.org/show_bug.cgi?id=13314 is the cause of the sluggish in my mouse.

Quoted 7 lines
Quoted 5 lines
Quoted 3 lines

(cc's added)

OK, thanks. Did you test Anthony's patch on your system?

Yes, I did.

Did it fix the bug?

It fixed one of the two problems I had with this mouse.

Quoted 2 lines

If so, does that mean that you think we should merge Anthony's patch instead of yours?

I need both patches for my mouse to work properly. My patch fix the problem
of cursor stucked at upper-left corner. Anthony's fix the cursor being sluggish (stutter). They are two different problems.

Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

Also, you've determined that
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=comm
it;h =e4e8e37c42bdaaefcb84eeaef0dc1bc3f696f8f6 caused the problem on your machine and that reverting it fixes things up.

I'm all confused.

Signature · 3 lines
Lamarque V. Souza
http://www.geographicguide.com/brazil.htm
Linux User #57137 - http://counter.li.org/
#7 lore raw

The patch in the bug report[1] just undoes the part of the commit that causes the stutter/sluggishness with my mouse so it isn't really a fix

[1] http://bugzilla.kernel.org/show_bug.cgi?id=3D13314

Quoted 13 lines · Lamarque Vieira Souza

Em Quinta-feira 23 Julho 2009, Andrew Morton escreveu:

Quoted 12 lines

On Thu, 23 Jul 2009 19:00:58 -0300

Quoted 9 lines · Lamarque Vieira Souza

Em Quinta-feira 23 Julho 2009, Andrew Morton escreveu:

Quoted 8 lines

On Thu, 23 Jul 2009 18:30:57 -0300

Quoted 5 lines · Lamarque Vieira Souza

Em Quinta-feira 23 Julho 2009, Andrew Morton escreveu:

Quoted 4 lines

On Fri, 17 Jul 2009 03:01:43 -0300

Quoted 1 line · Lamarque Vieira Souza

=A0 =A0 This patch works around one problem with my Acer Bluet=

ooth

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

Optical Rechargeable Mouse where the cursor gets stuck at screen's upper-left corner. Even my notebook's touchpad is not able to move cursor when the bluetooth mouse is connected to m=

y

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

Acer Ferrari 4005 notebook. Using input session instead of hid session solves this problem although the cursor still moves a little sluggishly with the bluetooth mouse, cursor moves correctly using the touchpad. My bluetooth mouse used to work well (no sluggish) until kernel 2.6.21, since then the problem=

s

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

are getting worse with each kernel release (it got sluggish in 2.6.22 and this this upper-left corner problem appeared in 2.6=

.28

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 1 line
Quoted 1 line

or 2.6.27).

=A0 =A0 =A0 =A0 By the way, I have found that bug
http://bugzilla.kernel.org/show_bug.cgi?id=3D13314 is the cause of=

the

Quoted 8 lines
Quoted 8 lines
Quoted 7 lines
Quoted 5 lines
Quoted 1 line

sluggish in my mouse.

(cc's added)

OK, thanks. =A0Did you test Anthony's patch on your system?

=A0 =A0 Yes, =A0I did.

Quoted 8 lines
Quoted 1 line

Did it fix the bug?

=A0 =A0 =A0 =A0It fixed one of the two problems I had with this mouse.

Quoted 2 lines

If so, does that mean that you think we should merge Anthony's patch instead of yours?

=A0 =A0 =A0 =A0I need both patches for my mouse to work properly. My patc=

h fix the problem

Quoted 5 lines

of cursor stucked at upper-left corner. Anthony's fix the cursor being sluggish (stutter). They are two different problems.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

Also, you've determined that
http://git.kernel.org/?p=3Dlinux/kernel/git/torvalds/linux-2.6.git;a=

=3Dcomm

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

it;h =3De4e8e37c42bdaaefcb84eeaef0dc1bc3f696f8f6 caused the problem o=

n

Quoted 10 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

your machine and that reverting it fixes things up.

I'm all confused.

--
Lamarque V. Souza
http://www.geographicguide.com/brazil.htm
Linux User #57137 - http://counter.li.org/

#8 lore raw

Em Quinta-feira 23 Julho 2009, Anthony Waters escreveu:

Quoted 2 lines

The patch in the bug report[1] just undoes the part of the commit that causes the stutter/sluggishness with my mouse so it isn't really a fix

Actually I have changed your patch to add a quirk for my bluetooth controller
(0a5c:200a), so it only undoes the change for this particular bluetooth controller. The default link policy settings mentioned in commit "[Bluetooth] Make use of the default link policy settings" does not work properly with this mouse even in Windows. In Windows the mouse is slow to react even today, increasing acceleration in mouse settings helped but then the touchpad becomes to sensitive, the mouse had always worked better in Linux than in Windows until kernel 2.6.21. In 2.6.22 the input-to-hid change happened in hci_usb module and the mouse started to behave like in Windows. In 2.6.27 the stutter problem was introduced, in 2.6.29 hci_usb module was removed and only btusb was available, but with hid+btusb+2.6.2[89] the cursor gets stucked at upper- left corner, with hid+hci_usb+2.6.28 there is only the stutter problem. Finally, after two years trying to find the causes of those problems it is working well again, better than in Windows, so please add those two patches to the kernel. I even got to the point to undo the input-to-hid change from kernels 2.6.22 until 2.6.26 and port the modified 2.6.26 bluetooth subsystem to kernels 2.6.2[789] until I find a better solution, which seems to be those two patches.

Quoted 62 lines

[1] http://bugzilla.kernel.org/show_bug.cgi?id=13314

On Thu, Jul 23, 2009 at 6:21 PM, Lamarque Vieira

Quoted 57 lines · Souza

Em Quinta-feira 23 Julho 2009, Andrew Morton escreveu:

Quoted 28 lines

On Thu, 23 Jul 2009 19:00:58 -0300

Quoted 25 lines · Lamarque Vieira Souza

Em Quinta-feira 23 Julho 2009, Andrew Morton escreveu:

Quoted 24 lines

On Thu, 23 Jul 2009 18:30:57 -0300

Quoted 20 lines · Lamarque Vieira Souza

Em Quinta-feira 23 Julho 2009, Andrew Morton escreveu:

Quoted 15 lines

On Fri, 17 Jul 2009 03:01:43 -0300

Quoted 12 lines · Lamarque Vieira Souza

This patch works around one problem with my Acer Bluetooth
Optical Rechargeable Mouse where the cursor gets stuck at screen's upper-left corner. Even my notebook's touchpad is not able to move cursor when the bluetooth mouse is connected to my Acer Ferrari 4005 notebook. Using input session instead of hid session solves this problem although the cursor still moves a little sluggishly with the bluetooth mouse, cursor moves correctly using the touchpad. My bluetooth mouse used to work well (no sluggish) until kernel 2.6.21, since then the problems are getting worse with each kernel release (it got sluggish in 2.6.22 and this this upper-left corner problem appeared in 2.6.28 or 2.6.27).

By the way, I have found that bug
http://bugzilla.kernel.org/show_bug.cgi?id=13314 is the cause of the sluggish in my mouse.

Quoted 7 lines
Quoted 5 lines
Quoted 3 lines

(cc's added)

OK, thanks. Did you test Anthony's patch on your system?

Yes, I did.

Did it fix the bug?

It fixed one of the two problems I had with this mouse.

Quoted 2 lines

If so, does that mean that you think we should merge Anthony's patch instead of yours?

I need both patches for my mouse to work properly. My patch fix
the problem of cursor stucked at upper-left corner. Anthony's fix the cursor being sluggish (stutter). They are two different problems.

Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

Also, you've determined that
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=c
omm it;h =e4e8e37c42bdaaefcb84eeaef0dc1bc3f696f8f6 caused the problem on your machine and that reverting it fixes things up.

I'm all confused.

--
Lamarque V. Souza
http://www.geographicguide.com/brazil.htm
Linux User #57137 - http://counter.li.org/

Signature · 3 lines
Lamarque V. Souza
http://www.geographicguide.com/brazil.htm
Linux User #57137 - http://counter.li.org/