• Sonny Sasaka's avatar
    Bluetooth: Cancel Inquiry before Create Connection · 89e65975
    Sonny Sasaka authored
    Many controllers do not allow HCI Create Connection while it is doing
    Inquiry. This patch adds Inquiry Cancel before Create Connection in this
    case to allow the controller to do Create Connection. User space will be
    aware of this Inquiry cancellation and they may issue another discovery
    request afterwards.
    
    Sample Command Disallowed response of HCI Create Connection:
    < HCI Command: Inquiry (0x01|0x0001) plen 5
            Access code: 0x9e8b33 (General Inquiry)
            Length: 10.24s (0x08)
            Num responses: 0
    > HCI Event: Command Status (0x0f) plen 4
          Inquiry (0x01|0x0001) ncmd 2
            Status: Success (0x00)
    < HCI Command: Create Connection (0x01|0x0005) plen 13
            Address: XX:XX:XX:XX:XX:XX
            Packet type: 0xcc18
            Page scan repetition mode: R2 (0x02)
            Page scan mode: Mandatory (0x00)
            Clock offset: 0x0000
            Role switch: Allow slave (0x01)
    > HCI Event: Command Status (0x0f) plen 4
          Create Connection (0x01|0x0005) ncmd 1
            Status: Success (0x00)
    > HCI Event: Connect Complete (0x03) plen 11
            Status: Command Disallowed (0x0c)
            Handle: 65535
            Address: XX:XX:XX:XX:XX:XX
            Link type: ACL (0x01)
            Encryption: Disabled (0x00)
    Reviewed-by: default avatarAbhishek Pandit-Subedi <abhishekpandit@chromium.org>
    Reviewed-by: default avatarAlain Michaud <alainm@chromium.org>
    Signed-off-by: default avatarSonny Sasaka <sonnysasaka@chromium.org>
    Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
    89e65975
hci_conn.c 48.8 KB