Bluetooth: Save connection parameters in hci_conn

This patch saves the connection interval, latency and supervision
timeout parameters to hci_conn. This way, we are able to track what
values are being currently used in a given connection.

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>
Bluetooth: Add LE Conn Update Complete Event handler

This patch adds a handler for LE Conn Update Complete Event. When such
event occurs, we should update the connection parameters in hci_conn
object.

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>
Bluetooth: Remove min/max connection interval from hci_conn

The minimum and maximum connection interval values are reported
to user through a mgmt event (this event is sent during Connection
Parameter Update Procedure). Besides that, hci_conn already keeps
track of connection parameters values currently in use. That being
said, there is no reason to save minimum and maximum connection
interval values in hci_conn.

Therefore, this patch removes the minimum and maximum connection
interval from struct hci_conn. Since they are removed, this patch
also moves the connection parameters lookup to hci_req_add_le_
create_conn().

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>
Bluetooth: Export slave latency parameter

This patch exports slave latency parameter through Bluetooth debugfs
interface.  We already export minimum and maximum connection interval
parameters so it makes sense to also export slave latency parameter.

The default value is 0 and it may be changed by writing the new
value in conn_latenty file. The acceptable values range from 0x0000
to 0x01F3, according described in Core 4.1, Vol 2, 7.8.12.

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>
Bluetooth: Export supervision timeout parameter

This patch exports the supervision timeout parameter through Bluetooth
debugfs interface. We already export minimum/maximum connection interval
and latency parameters so it makes sense to also export the supervision
timeout parameter.

The default value is 0x002a and it may be changed by writing the new
value in conn_supervision_timeout file. The acceptable values range
from 0x000a to 0x0c80 according described in Core 4.1, Vol 2, 7.8.12.

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>
Bluetooth: Extend LE connection parameters infrastructure

This patch extends connection parameters infrastructure (hci_conn_
params and helper functions) to consider slave latency and supervision
timeout parameters.

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>
Bluetooth: Introduce hdev->le_auto_connect list

This patch simply adds a linked list to hdev and some helper functions
that perform basic operations such as add, delete, lookup and clear.

The hdev->le_auto_connect list will store the device addresses the
kernel should autonomously connect to.

This new linked list is needed because we want to remove the auto_connect
option from struct hci_conn_params, therefore we cannot rely on hdev->
le_conn_params list anymore.

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>
WIP: Bluetooth: Use le_auto_conn list

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>
WIP: Bluetooth: Remove auto connection from connection parameters

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>
Bluetooth: Load Connection Parameters Command

This patch introduces the Load Connection Parameters command in
Management Interface. This command is used to inform the kernel
what connection parameters should be used during connection
establishment.

This command is only supported on controllers with LE support and
it can be issued while in power on or off mode. Finally, it only
accepts connection parameters from device with identity address.

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>