Re: hid-logitech-dj: 046d:c52b Problems using Logitech Unifying Receiver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Bob,

adding in CC Jiri, the HID maintainer and Nestor, the author of hid-logitech-dj.

First, thanks for putting this upstream. After ~130 comments on the two bugs, you are the first to report it on the proper mailing list.

On Sun, Feb 10, 2013 at 10:18 PM, Bob Bowles <bobjohnbowles@xxxxxxxxx> wrote:
> bob@bobDell:/$ # Launchpad Short Description:
> 046d:c52b Problems using Logitech Unifying Receiver
>
>
> bob@bobDell:/$ # Launchpad Long Description:
>
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1072082
>
> Commit that caused the regression 534a7b8e10ec55d9f521e68c20dbb3634c25b98a.
>
> I recently purchased a new Logitech K350 keyboard (UK layout) and M505
> mouse, both of which use the Logitech Unifying Receiver. I 'paired' the
> keyboard and mouse to the receiver by using the proprietary Logitech
> 'Setpoint' software on a friend's computer running Windows XP. On their
> computer, the receiver, keyboard and mouse worked perfectly.
>
> I then moved the receiver to my own computer, a new Dell Inspiron 7520 SE
> running under Ubuntu 12.04.1. I tried with no success to get the keyboard
> and mouse to work by repeatedly unplugging and re-plugging the receiver, and
> by re-booting the machine.

According to Nestor, there are some known problems with 2.4GHz receivers and USB3.
Intel even posted a document explaining those problems:

http://www.intel.com/content/www/us/en/io/universal-serial-bus/usb3-frequency-interference-paper.html

So the problem either comes from a bad firmware (which I doubt) or from those interferences, leading to a hardware failure.

>
> I experimented with solutions posted on the web, in particular in this
> thread on Ask Ubuntu
> (http://askubuntu.com/questions/128345/logitech-m515-does-not-work-after-upgrade-to-12-04/202627#202627).
> The accepted answer did not solve my problem.
>
> WORKAROUND:
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1072082/+attachment/3415472/+files/mousefix
> running this workaround script on the command line enabled the receiver. I
> added the script to crontab as suggested. The script does not cause the
> receiver to work after a reboot, but I found that a single unplug/replug
> cycle was now sufficient to restore operation of the keyboard and mouse.

If your workaround "works", then we can maybe try something on the hid-logitech-dj module to force re-probing devices in case of a USB3 failure.
Could you please test the patch at the end of this file?


>
> Potential duplicate of
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1039143 .

This bugs was filled last August, and no one reported it upstream... I was starting getting angry, but I had a quick look at the kernel's bugzilla, and I noticed that the same kind of bug was filled last October:
https://bugzilla.kernel.org/show_bug.cgi?id=49781

Anyway, here is the patch:


From: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxx>
Date: Mon, 11 Feb 2013 19:26:24 +0100
Subject: [PATCH] HID: logitech-dj: do not leave in case of -EPIPE during probe()

USB3 introduced a lot of interferences with 2.4GHz receivers [1].
This fix aims at considering error -EPIPE as non fatal, so that
if further notifications comes if the interferences are less problematic,
the receiver will still query the associated devices.

[1] http://www.intel.com/content/www/us/en/io/universal-serial-bus/usb3-frequency-interference-paper.html

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxx>
---
 drivers/hid/hid-logitech-dj.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/hid/hid-logitech-dj.c b/drivers/hid/hid-logitech-dj.c
index 3cf62be..174fcf8 100644
--- a/drivers/hid/hid-logitech-dj.c
+++ b/drivers/hid/hid-logitech-dj.c
@@ -804,9 +804,16 @@ static int logi_dj_probe(struct hid_device *hdev,
 
 	retval = logi_dj_recv_query_paired_devices(djrcv_dev);
 	if (retval < 0) {
-		dev_err(&hdev->dev, "%s:logi_dj_recv_query_paired_devices "
-			"error:%d\n", __func__, retval);
-		goto logi_dj_recv_query_paired_devices_failed;
+		if (retval != -EPIPE) {
+			dev_err(&hdev->dev, "%s:"
+				"logi_dj_recv_query_paired_devices "
+				"error:%d\n", __func__, retval);
+			goto logi_dj_recv_query_paired_devices_failed;
+		}
+		dev_err(&hdev->dev, "%s: pipe stalled when probing for "
+			"associated devices, registering them later\n",
+			__func__);
+		retval = 0;
 	}
 
 	return retval;
-- 
1.8.1.2

Cheers,
Benjamin
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux