All of lore.kernel.org
 help / color / mirror / Atom feed
* BUG: org.bluez.Device1.Connect() makes a BR/EDR connection to an LE-only Device on initial pairing
@ 2014-04-03 21:48 Scott James Remnant
  2014-04-03 22:27 ` [PATCH 1/2] core: don't set BR/EDR support when no flags present Scott James Remnant
  0 siblings, 1 reply; 8+ messages in thread
From: Scott James Remnant @ 2014-04-03 21:48 UTC (permalink / raw)
  To: linux-bluetooth@vger.kernel.org, Johan Hedberg

The D-Bus API sequence for pairing a BR/EDR device is

  org.bluez.Device1.Pair()
  org.bluez.Device1.Connect()

The connect call is necessary after pairing successfully completes to
connect profiles, since a completed pairing does not do that
implicitly.

When this same sequence is used for an LE device, the Connect() call
fails with a Page Timeout. This is because of:

  a9f523e core: Split LE and BR/EDR states for devices

For LE devices there is only one "profile" connection to be made, ATT,
which is already established as part of the call to Pair() in order to
perform primary service discovery. And unlike the BR/EDR case, where
the ACL connection is dropped after a few seconds, the ATT connection
is then made available to other plugins (such as HoG).

Of course, the UI doesn't know this, the D-Bus API doesn't reveal that
this is really an LE device, so the UI makes the Connect() call to the
already connected device. Because of that CL, this then attempts to
bring up the BR/EDR bearer - and thus results in the Connect() call
failing because the device doesn't have one.

Scott
-- 
Scott James Remnant | Chrome OS Systems | keybuk@google.com | Google

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-04-04 16:42 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-03 21:48 BUG: org.bluez.Device1.Connect() makes a BR/EDR connection to an LE-only Device on initial pairing Scott James Remnant
2014-04-03 22:27 ` [PATCH 1/2] core: don't set BR/EDR support when no flags present Scott James Remnant
2014-04-03 22:27   ` [PATCH 2/2] core: don't try BR/EDR for LE-only devices Scott James Remnant
2014-04-04  7:25   ` [PATCH 1/2] core: don't set BR/EDR support when no flags present Johan Hedberg
2014-04-04 15:20     ` Scott James Remnant
2014-04-04 15:57       ` Marcel Holtmann
2014-04-04 16:42         ` Scott James Remnant
2014-04-04 15:59       ` Johan Hedberg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.