[Bluetooth] Some cleanups for HCI event handling

Some minor cosmetic cleanups to the HCI event handling to make the
code easier to read and understand.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
Marcel Holtmann 2008-07-14 20:13:47 +02:00
parent e4e8e37c42
commit f383f2750a
1 changed files with 23 additions and 16 deletions

View File

@ -198,12 +198,14 @@ static void hci_cc_write_local_name(struct hci_dev *hdev, struct sk_buff *skb)
BT_DBG("%s status 0x%x", hdev->name, status); BT_DBG("%s status 0x%x", hdev->name, status);
if (status)
return;
sent = hci_sent_cmd_data(hdev, HCI_OP_WRITE_LOCAL_NAME); sent = hci_sent_cmd_data(hdev, HCI_OP_WRITE_LOCAL_NAME);
if (!sent) if (!sent)
return; return;
if (!status) memcpy(hdev->dev_name, sent, 248);
memcpy(hdev->dev_name, sent, 248);
} }
static void hci_cc_read_local_name(struct hci_dev *hdev, struct sk_buff *skb) static void hci_cc_read_local_name(struct hci_dev *hdev, struct sk_buff *skb)
@ -313,12 +315,14 @@ static void hci_cc_write_class_of_dev(struct hci_dev *hdev, struct sk_buff *skb)
BT_DBG("%s status 0x%x", hdev->name, status); BT_DBG("%s status 0x%x", hdev->name, status);
if (status)
return;
sent = hci_sent_cmd_data(hdev, HCI_OP_WRITE_CLASS_OF_DEV); sent = hci_sent_cmd_data(hdev, HCI_OP_WRITE_CLASS_OF_DEV);
if (!sent) if (!sent)
return; return;
if (!status) memcpy(hdev->dev_class, sent, 3);
memcpy(hdev->dev_class, sent, 3);
} }
static void hci_cc_read_voice_setting(struct hci_dev *hdev, struct sk_buff *skb) static void hci_cc_read_voice_setting(struct hci_dev *hdev, struct sk_buff *skb)
@ -333,7 +337,7 @@ static void hci_cc_read_voice_setting(struct hci_dev *hdev, struct sk_buff *skb)
setting = __le16_to_cpu(rp->voice_setting); setting = __le16_to_cpu(rp->voice_setting);
if (hdev->voice_setting == setting ) if (hdev->voice_setting == setting)
return; return;
hdev->voice_setting = setting; hdev->voice_setting = setting;
@ -350,28 +354,31 @@ static void hci_cc_read_voice_setting(struct hci_dev *hdev, struct sk_buff *skb)
static void hci_cc_write_voice_setting(struct hci_dev *hdev, struct sk_buff *skb) static void hci_cc_write_voice_setting(struct hci_dev *hdev, struct sk_buff *skb)
{ {
__u8 status = *((__u8 *) skb->data); __u8 status = *((__u8 *) skb->data);
__u16 setting;
void *sent; void *sent;
BT_DBG("%s status 0x%x", hdev->name, status); BT_DBG("%s status 0x%x", hdev->name, status);
if (status)
return;
sent = hci_sent_cmd_data(hdev, HCI_OP_WRITE_VOICE_SETTING); sent = hci_sent_cmd_data(hdev, HCI_OP_WRITE_VOICE_SETTING);
if (!sent) if (!sent)
return; return;
if (!status) { setting = get_unaligned_le16(sent);
__u16 setting = get_unaligned_le16(sent);
if (hdev->voice_setting != setting) { if (hdev->voice_setting == setting)
hdev->voice_setting = setting; return;
BT_DBG("%s voice setting 0x%04x", hdev->name, setting); hdev->voice_setting = setting;
if (hdev->notify) { BT_DBG("%s voice setting 0x%04x", hdev->name, setting);
tasklet_disable(&hdev->tx_task);
hdev->notify(hdev, HCI_NOTIFY_VOICE_SETTING); if (hdev->notify) {
tasklet_enable(&hdev->tx_task); tasklet_disable(&hdev->tx_task);
} hdev->notify(hdev, HCI_NOTIFY_VOICE_SETTING);
} tasklet_enable(&hdev->tx_task);
} }
} }