Bug: bluetooth not working after suspend/resume

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

 



Hi all:
  Since kernel.org/bugzilla is dead for a while, I sent the bug report
here in hope to get more insight.

  This is a long-lasting bug and happens across several distros with
different combinations of bluez/kernel verisions but shares much the
same symptom that bluetooth is not working after the resume. As seen
in the bug report below, it happens on a variety of different laptops
too.

  Redhat:
    https://bugzilla.redhat.com/show_bug.cgi?id=727106

  Debian:
    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=614929

  Ubuntu:
    https://launchpad.net/bugs/824144
    https://launchpad.net/bugs/824633
    https://launchpad.net/bugs/823467
    https://launchpad.net/bugs/822705

  Personally I did some investigation on the issue and found that
bluetoothd does not receive the HCI commands of read_bd_addr,
read_local_version, read_local_features, nor read_local_name. So in
bluez.plugins/hciops.c:device_devup_setup(), init_adapter() is not
called at resume.

  It can be further confirmed by the attached patch of bluez. It is
ugly but can work around the bug as reported in some of the bug
trackers above.

  I am looking for any advice to get it move on,  for the debugging
and the fixing.

  Thanks,
-kengyu
--- a/plugins/hciops.c
+++ b/plugins/hciops.c
@@ -2512,8 +2512,8 @@
 	hci_send_cmd(dev->sk, OGF_HOST_CTL, OCF_READ_STORED_LINK_KEY,
 					READ_STORED_LINK_KEY_CP_SIZE, &cp);
 
-	if (!dev->pending)
-		init_adapter(index);
+	DBG("dev->pending=%d", dev->pending);
+	init_adapter(index);
 }
 
 static void init_pending(int index)

[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux