• Andre Guedes's avatar
    Bluetooth: Periodic Inquiry and Discovery · 89352e7d
    Andre Guedes authored
    By using periodic inquiry command we're not able to detect correctly
    when the controller has started inquiry.
    
    Today we have this workaround in inquiry result event handler
    to set the HCI_INQUIRY flag when it sees the first inquiry result
    event. This workaround isn't enough because the device may be
    performing an inquiry but the HCI_INQUIRY flag is not set. For
    instance, if there is no device in range, no inquiry result event
    is generated, consequently, the HCI_INQUIRY flags isn't set when
    it should so.
    
    We rely on HCI_INQUIRY flag to implement the discovery procedure
    properly. So, as we aren't able to clear/set the HCI_INQUIRY flag
    in a reliable manner, periodic inquiry events shouldn't change
    the HCI_INQUIRY flag.
    
    Thus, due to that issue and in order to keep compatibility with
    userspace, periodic inquiry events shouldn't send mgmt discovering
    events.
    
    In future, we might track if periodic inquiry is enabled or not.
    By tracking this state we'll be able to do some improvements in
    Discovery such as failing MGMT_OP_START_DISCOVERY command in case
    periodic inquiry is on. We can also send no mgmt_device_found
    event if periodic inquiry is on.
    Signed-off-by: default avatarAndre Guedes <andre.guedes@openbossa.org>
    Signed-off-by: default avatarGustavo F. Padovan <padovan@profusion.mobi>
    89352e7d
hci_event.c 71.6 KB