[PATCH BlueZ] csr_bcsp: fix link establishment

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

 



The current link-establishment implementation times out if a packet is
not received after the link is active (i.e. reception of CONF_RESP).

Fix by making sure that the link establishment loop in open is
terminated when ubcsp sets the UBCSP_PACKET_SENT flag (on reception of
CONF_RESP) rather than UBCSP_PACKET_RECEIVED (on reception of any later
packages).

---

Hi,

This patch is required in order to be able to use devices with link managers
that do not send any packets after the link has been established (i.e. after
sending CONF_RESP).

I have two devices here; one which sends an HCI_EVENT_PKT after link
establishment and one which doesn't. Both work with hciattach, but bccmd times
out during link establishment with the latter one. Both work with bccmd with
the patch applied.

It appears to me that this is a bug which has perhaps simply not been
discovered as most devices do send something after LE. The ubcsp
implementation, however, clearly sets the UBCSP_PACKET_SENT flag when reaching
the link-active state and not the received flag which csr_open_bcsp checks for.

Thanks,
Johan


 tools/csr_bcsp.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/tools/csr_bcsp.c b/tools/csr_bcsp.c
index 7bfaf5a..f7afe53 100644
--- a/tools/csr_bcsp.c
+++ b/tools/csr_bcsp.c
@@ -118,7 +118,7 @@ int csr_open_bcsp(char *device, speed_t bcsp_rate)
 	while (1) {
 		delay = ubcsp_poll(&activity);
 
-		if (activity & UBCSP_PACKET_RECEIVED)
+		if (activity & UBCSP_PACKET_SENT)
 			break;
 
 		if (delay) {
-- 
1.7.8.5

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


[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