Am Dienstag, 30. November 2010, 11:18:05 schrieb Stefan Seyfried:
On Tue, 30 Nov 2010 11:10:22 +0100
Stefan Seyfried wrote:
Hi,
since a few days (probably since the update to 2.6.37-rc), i'm getting
those all the time when using my Bluetooth mouse:
[280835.709269] btusb_bulk_complete: hci0 urb ffff880078654f00 failed to resubmit (1)
Has this something to do with runtime power management? It seems like it's
always 3 messages about 2 or 3 seconds after the last mouse movement.
And indeed, "echo on > /sys/bus/usb/drivers/btusb/4-2\:1.0/power/control"
makes it go away. However, is this a good idea? And is "auto" for that
feature a good idea if it leads to constant syslog spamming? Or are those
"failed to resubmit" messages mere debug output and thus should not be
logged at all unless some debugging option is chosen?
--
Hi,
as no good dead goes unpunished, here's a patch to test.
Thanks
Oliver
From 5667a03459b9b4b5cb33259115b57626bcc4ccf3 Mon Sep 17 00:00:00 2001
From: Oliver Neukum
Date: Tue, 30 Nov 2010 14:34:47 +0100
Subject: [PATCH] Bluetooth:btusb: Fix log spamming due to autosuspend
If a device is autosuspend an inability to resubmit
URBs is to be expected. Fix it by checking the error return.
Signed-off-by: Oliver Neukum
---
drivers/bluetooth/btusb.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index ab3894f..eb2ca82 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -238,7 +238,7 @@ static void btusb_intr_complete(struct urb *urb)
usb_anchor_urb(urb, &data->intr_anchor);
err = usb_submit_urb(urb, GFP_ATOMIC);
- if (err < 0) {
+ if (err < 0 && err != -EPERM) {
BT_ERR("%s urb %p failed to resubmit (%d)",
hdev->name, urb, -err);
usb_unanchor_urb(urb);
@@ -322,7 +322,7 @@ static void btusb_bulk_complete(struct urb *urb)
usb_mark_last_busy(data->udev);
err = usb_submit_urb(urb, GFP_ATOMIC);
- if (err < 0) {
+ if (err < 0 && err != -EPERM) {
BT_ERR("%s urb %p failed to resubmit (%d)",
hdev->name, urb, -err);
usb_unanchor_urb(urb);
@@ -411,7 +411,7 @@ static void btusb_isoc_complete(struct urb *urb)
usb_anchor_urb(urb, &data->isoc_anchor);
err = usb_submit_urb(urb, GFP_ATOMIC);
- if (err < 0) {
+ if (err < 0 && err != -EPERM) {
BT_ERR("%s urb %p failed to resubmit (%d)",
hdev->name, urb, -err);
usb_unanchor_urb(urb);
--
1.7.1
--
To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-kernel+help@opensuse.org