Bluetooth: New Connection Parameter Event

This patch indroduces a new Mgmt event called "New Connection Parameter".
This event indicates to userspace that the remote device requested new
connection parameters.

The user can store the parameters values specified in this event and
load them into kernel (an upcoming patch will introduce a Mgmt command
to do that). This way, next time a connection is established to that
device, the kernel will use those parameters values instead default
ones.

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>
Bluetooth: Save connection parameters in hci_conn

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

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

When a LE Conn Update Complete 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>
WIP: Bluetooth: Introduce hdev->le_auto_connect list

This patch add the le_auto_connect list to hdev and helper funcions to
lookup, add, delete and clear.

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>