diff options
| author | Johan Hedberg <johan.hedberg@intel.com> | 2012-07-16 16:12:17 +0300 | 
|---|---|---|
| committer | Gustavo Padovan <gustavo.padovan@collabora.co.uk> | 2012-07-17 14:48:38 -0300 | 
| commit | c826ed095d431c91f1d18f9b83b365569fcd977b (patch) | |
| tree | 5bc202ccdb9efc042626ea262a443249477c8ed4 /drivers/bluetooth | |
| parent | 95c5c22097433711de93bc377af89918c6140f77 (diff) | |
| download | olio-linux-3.10-c826ed095d431c91f1d18f9b83b365569fcd977b.tar.xz olio-linux-3.10-c826ed095d431c91f1d18f9b83b365569fcd977b.zip  | |
Bluetooth: Remove unnecessary h5_build_pkt function
The implementation of h5_build_packet can be moved into
h5_prepare_pkt since all h5_prepare_pkt does is determine whether the
packet is reliable and then call h5_build_packet.
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Diffstat (limited to 'drivers/bluetooth')
| -rw-r--r-- | drivers/bluetooth/hci_h5.c | 49 | 
1 files changed, 23 insertions, 26 deletions
diff --git a/drivers/bluetooth/hci_h5.c b/drivers/bluetooth/hci_h5.c index 8819ce81ca5..f9067ce2556 100644 --- a/drivers/bluetooth/hci_h5.c +++ b/drivers/bluetooth/hci_h5.c @@ -559,14 +559,33 @@ static void h5_slip_one_byte(struct sk_buff *skb, u8 c)  	}  } -static struct sk_buff *h5_build_pkt(struct hci_uart *hu, bool rel, u8 pkt_type, -				    const u8 *data, size_t len) +static bool valid_packet_type(u8 type) +{ +	switch (type) { +	case HCI_ACLDATA_PKT: +	case HCI_COMMAND_PKT: +	case HCI_SCODATA_PKT: +	case HCI_3WIRE_LINK_PKT: +	case HCI_3WIRE_ACK_PKT: +		return true; +	default: +		return false; +	} +} + +static struct sk_buff *h5_prepare_pkt(struct hci_uart *hu, u8 pkt_type, +				      const u8 *data, size_t len)  {  	struct h5 *h5 = hu->priv;  	struct sk_buff *nskb;  	u8 hdr[4];  	int i; +	if (!valid_packet_type(pkt_type)) { +		BT_ERR("Unknown packet type %u", pkt_type); +		return NULL; +	} +  	/*  	 * Max len of packet: (original len + 4 (H5 hdr) + 2 (crc)) * 2  	 * (because bytes 0xc0 and 0xdb are escaped, worst case is when @@ -584,7 +603,8 @@ static struct sk_buff *h5_build_pkt(struct hci_uart *hu, bool rel, u8 pkt_type,  	hdr[0] = h5->tx_ack << 3;  	h5->tx_ack_req = false; -	if (rel) { +	/* Reliable packet? */ +	if (pkt_type == HCI_ACLDATA_PKT || pkt_type == HCI_COMMAND_PKT) {  		hdr[0] |= 1 << 7;  		hdr[0] |= h5->tx_seq;  		h5->tx_seq = (h5->tx_seq + 1) % 8; @@ -610,29 +630,6 @@ static struct sk_buff *h5_build_pkt(struct hci_uart *hu, bool rel, u8 pkt_type,  	return nskb;  } -static struct sk_buff *h5_prepare_pkt(struct hci_uart *hu, u8 pkt_type, -				      const u8 *data, size_t len) -{ -	bool rel; - -	switch (pkt_type) { -	case HCI_ACLDATA_PKT: -	case HCI_COMMAND_PKT: -		rel = true; -		break; -	case HCI_SCODATA_PKT: -	case HCI_3WIRE_LINK_PKT: -	case HCI_3WIRE_ACK_PKT: -		rel = false; -		break; -	default: -		BT_ERR("Unknown packet type %u", pkt_type); -		return NULL; -	} - -	return h5_build_pkt(hu, rel, pkt_type, data, len); -} -  static struct sk_buff *h5_dequeue(struct hci_uart *hu)  {  	struct h5 *h5 = hu->priv;  |