فهرست منبع

Bluetooth: mgmt: Allow class of device changes while powered off

This patch makes it possible to set the class when powered off. When
powering on the right class of device value will be automatically
writen to the controller.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Johan Hedberg 13 سال پیش
والد
کامیت
932f5ff5e3
1فایلهای تغییر یافته به همراه5 افزوده شده و 5 حذف شده
  1. 5 5
      net/bluetooth/mgmt.c

+ 5 - 5
net/bluetooth/mgmt.c

@@ -1456,15 +1456,15 @@ static int set_dev_class(struct sock *sk, u16 index, void *data, u16 len)
 
 
 	hci_dev_lock(hdev);
 	hci_dev_lock(hdev);
 
 
+	hdev->major_class = cp->major;
+	hdev->minor_class = cp->minor;
+
 	if (!hdev_is_powered(hdev)) {
 	if (!hdev_is_powered(hdev)) {
-		err = cmd_status(sk, index, MGMT_OP_SET_DEV_CLASS,
-						MGMT_STATUS_NOT_POWERED);
+		err = cmd_complete(sk, index, MGMT_OP_SET_DEV_CLASS, 0,
+							hdev->dev_class, 3);
 		goto unlock;
 		goto unlock;
 	}
 	}
 
 
-	hdev->major_class = cp->major;
-	hdev->minor_class = cp->minor;
-
 	if (test_and_clear_bit(HCI_SERVICE_CACHE, &hdev->dev_flags)) {
 	if (test_and_clear_bit(HCI_SERVICE_CACHE, &hdev->dev_flags)) {
 		hci_dev_unlock(hdev);
 		hci_dev_unlock(hdev);
 		cancel_delayed_work_sync(&hdev->service_cache);
 		cancel_delayed_work_sync(&hdev->service_cache);