Bluetooth: hci_qca: allow max-speed to be set for QCA9377 devices
authorChristian Hewitt <christianshewitt@gmail.com>
Thu, 23 Apr 2020 01:34:30 +0000 (01:34 +0000)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 28 Apr 2020 09:49:13 +0000 (11:49 +0200)
Move the read of max-speed from device-tree out of the qca_is_wcn399x
if block so oper_speed can be set for QCA9377 devices as well.

Suggested-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/bluetooth/hci_qca.c

index 072983d..b3fd07a 100644 (file)
@@ -597,10 +597,12 @@ static int qca_open(struct hci_uart *hu)
 
        if (hu->serdev) {
                qcadev = serdev_device_get_drvdata(hu->serdev);
-               if (qca_is_wcn399x(qcadev->btsoc_type)) {
+
+               if (qca_is_wcn399x(qcadev->btsoc_type))
                        hu->init_speed = qcadev->init_speed;
+
+               if (qcadev->oper_speed)
                        hu->oper_speed = qcadev->oper_speed;
-               }
        }
 
        timer_setup(&qca->wake_retrans_timer, hci_ibs_wake_retrans_timeout, 0);
@@ -1871,6 +1873,11 @@ static int qca_serdev_probe(struct serdev_device *serdev)
        serdev_device_set_drvdata(serdev, qcadev);
        device_property_read_string(&serdev->dev, "firmware-name",
                                         &qcadev->firmware_name);
+       device_property_read_u32(&serdev->dev, "max-speed",
+                                &qcadev->oper_speed);
+       if (!qcadev->oper_speed)
+               BT_DBG("UART will pick default operating speed");
+
        if (data && qca_is_wcn399x(data->soc_type)) {
                qcadev->btsoc_type = data->soc_type;
                qcadev->bt_power = devm_kzalloc(&serdev->dev,
@@ -1895,11 +1902,6 @@ static int qca_serdev_probe(struct serdev_device *serdev)
                        return PTR_ERR(qcadev->susclk);
                }
 
-               device_property_read_u32(&serdev->dev, "max-speed",
-                                        &qcadev->oper_speed);
-               if (!qcadev->oper_speed)
-                       BT_DBG("UART will pick default operating speed");
-
                err = hci_uart_register_device(&qcadev->serdev_hu, &qca_proto);
                if (err) {
                        BT_ERR("wcn3990 serdev registration failed");