Enhanced Retransmission Mode (ERTM) is a new feature in BT3.0, and is a requirement for BT3.0+HS with high-speed AMP controllers. Some work had already been done to add ERTM support to BlueZ, but the high-speed feature is more demanding in terms of efficiency and needs some extended control over ERTM operation. This commit includes more robust state machines, no copying of received data, improved transmit queue management, support for extended headers, and more robust locking. Change-Id: I21aba0e3fecb02e901bb174787a37533a923c327 Signed-off-by: Mat Martineau <mathewm@codeaurora.org>