Received: by 2002:a05:6a10:a852:0:0:0:0 with SMTP id d18csp757879pxy; Fri, 30 Apr 2021 16:07:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzedIn5K8dH3mTUkCBbo30jC9OmXnYyWbC+VswbgNGqEC64qCpoyutj7WpmEb8jYJO6i3h5 X-Received: by 2002:a63:465b:: with SMTP id v27mr3056302pgk.445.1619824039328; Fri, 30 Apr 2021 16:07:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619824039; cv=none; d=google.com; s=arc-20160816; b=zYGB4arQh0RPrJWCwaJrMg9gGGuNOKbivkRTZcZg8dOZySELre550J6Xo3EOGzTLHQ NzuqsBus8SoMfMRdH18LoUd8KMqyn6NYvkX7KsmROW//e61i7T5UGVE9CemE7LZWYMOz rL0IeMFUKuZXgpuS3wVonCfZ0f6pmM7yq19eNZiAMs2qPn/0ICSvCkDoAjezraObCqrJ KT32GqcxZlb84gIGKTMOl+bdqJJWhIpFgzXRMLlrLNL8SCrXQIwY6RZKLXPXFA7V5nkJ wfQ5tl3878vTjugOPPXHKxmLvb9x1BGx8K/wH9awAgtaZQ1XT8CZ99yuf6yY2caGqohG VzLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:to:from:dkim-signature; bh=V5yBrOEO4mBZR1eneZPct9A5ks6kiNG1RYNHqHO9WfM=; b=nykUsxHpp4jA6Kl0HQZYT9ZgmmK7qFe4NyYrkpNQZW9syPlDLpFnpoCDQf2ll0XOrm tV+n+ecbD3dlk/lU/O20XCJiUUbxxgY4F3lRLt7OqltyObdMEVCsjUcwHqpHDC30oN1M vvq1LOEA2UmLr1VLsgkUleZRIp7wDCWndDbnvfrYe1BtdaIUqV72FUSUatpXEbok69nu GijHOLc+eQNvEBMpMe4iVnbBwr1aSK7gabbv46vzO48zcNi4eX9RPfKnziIraKr79hGU KaWfnBPYLPG4OVSUArYCd8yiHzLedu4XtZXmvLpUFbpKsvYd2LbEClud480P0EUzkdVU tJ3A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=fGasIHgF; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z12si5721268pgu.160.2021.04.30.16.06.50; Fri, 30 Apr 2021 16:07:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=fGasIHgF; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230508AbhD3XFx (ORCPT + 99 others); Fri, 30 Apr 2021 19:05:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48204 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232743AbhD3XFx (ORCPT ); Fri, 30 Apr 2021 19:05:53 -0400 Received: from mail-pj1-x1034.google.com (mail-pj1-x1034.google.com [IPv6:2607:f8b0:4864:20::1034]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 52963C06174A for ; Fri, 30 Apr 2021 16:05:03 -0700 (PDT) Received: by mail-pj1-x1034.google.com with SMTP id f2-20020a17090a4a82b02900c67bf8dc69so2540399pjh.1 for ; Fri, 30 Apr 2021 16:05:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=V5yBrOEO4mBZR1eneZPct9A5ks6kiNG1RYNHqHO9WfM=; b=fGasIHgFFA9ucEjiLpA8vWyqnRIWLXbFGgJZxJDpblYtrcCTXt+xNkXcJSHyib2qeq 8vKbGyBRDuUEC+cPBnZOeoQEqo1OV4qf8Y8sQRxe2HozAcncxMq87iTWeKI339YiCM1z tmzyZTg2NGjMEGdbcr2ZVqCqqqQhBS+nXqxgkco98YOXrCpf4idPZItfq0kVhRa/z9zC SREUa/3UOGSIL99jQ15K54d4w72KMPbGNrwvg7io/IOmSTAdad5vTUspOc4TgN2xZjiA J6+sMRWBDa1P4Vy3xRYHelhHWvHf5nps3ooMf2LAtzEe4o3C24OjdZ1jlvXwsO9PT7lz q/rQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=V5yBrOEO4mBZR1eneZPct9A5ks6kiNG1RYNHqHO9WfM=; b=Mfu5fKH+ubLuTuuehHtBLgxoiOIDKK+PqhOlchtgcptDgGqr7BWm3Jra5aRitOoeGz sGQpjuU2qaQFXlgH7wYmKVuBgVmDv6PkbfNVsQaTVMugUiyTdgGi832DjX7vuHEAbNVb fTYIzP1HYGuYyyuFhOlZ3x407zMT1pzoI+UU3P0SihIS6PZbguX2SkFHcLZo7NPGaSx8 v5ILs3r4DLV6WYsjcnvK2HTzx/Z1zlAg56oeCFcwj3JfqvSMWK5qONz78O/rfDXG4lyv AhOhsp2SL8F1cxxRUhL9bB2cUtg6mDRcbz3JDSt2tIRbztFNJ5mj/5bzqdiSAUYgKPpZ tkZA== X-Gm-Message-State: AOAM531kh6QFrcOK56/dnL3XNJxwrha52b8+E4npzAlKn6JHtx8hD8je KRtFVIAwR/QATYOm/fO6TB6msmw1LLjlsg== X-Received: by 2002:a17:902:7444:b029:ed:5334:40b6 with SMTP id e4-20020a1709027444b02900ed533440b6mr7462123plt.35.1619823902582; Fri, 30 Apr 2021 16:05:02 -0700 (PDT) Received: from lvondent-mobl4.intel.com (c-71-56-157-77.hsd1.or.comcast.net. [71.56.157.77]) by smtp.gmail.com with ESMTPSA id i123sm3293758pfc.53.2021.04.30.16.05.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Apr 2021 16:05:02 -0700 (PDT) From: Luiz Augusto von Dentz To: linux-bluetooth@vger.kernel.org Subject: [PATCH] Bluetooth: btusb: Fix failing to init controllers with operation firmware Date: Fri, 30 Apr 2021 16:05:01 -0700 Message-Id: <20210430230501.603111-1-luiz.dentz@gmail.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org From: Luiz Augusto von Dentz Some firmware when operation don't may have broken versions leading to error like the following: [ 6.176482] Bluetooth: hci0: Firmware revision 0.0 build 121 week 7 2021 [ 6.177906] bluetooth hci0: Direct firmware load for intel/ibt-20-0-0.sfi failed with error -2 [ 6.177910] Bluetooth: hci0: Failed to load Intel firmware file intel/ibt-20-0-0.sfi (-2) Since we load the firmware file just to check if its version had changed comparing to the one already loaded we can just skip since the firmware is already operation. Signed-off-by: Luiz Augusto von Dentz --- drivers/bluetooth/btusb.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index 90e7e9d35805..9b84ada0aac6 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -2603,8 +2603,15 @@ static int btusb_intel_download_firmware_newgen(struct hci_dev *hdev, btusb_setup_intel_newgen_get_fw_name(ver, fwname, sizeof(fwname), "sfi"); err = request_firmware(&fw, fwname, &hdev->dev); if (err < 0) { + if (!test_bit(BTUSB_BOOTLOADER, &data->flags)) { + /* Firmware has already been loaded */ + set_bit(BTUSB_FIRMWARE_LOADED, &data->flags); + return 0; + } + bt_dev_err(hdev, "Failed to load Intel firmware file %s (%d)", fwname, err); + return err; } @@ -2754,12 +2761,24 @@ static int btusb_intel_download_firmware(struct hci_dev *hdev, err = btusb_setup_intel_new_get_fw_name(ver, params, fwname, sizeof(fwname), "sfi"); if (err < 0) { + if (!test_bit(BTUSB_BOOTLOADER, &data->flags)) { + /* Firmware has already been loaded */ + set_bit(BTUSB_FIRMWARE_LOADED, &data->flags); + return 0; + } + bt_dev_err(hdev, "Unsupported Intel firmware naming"); return -EINVAL; } err = request_firmware(&fw, fwname, &hdev->dev); if (err < 0) { + if (!test_bit(BTUSB_BOOTLOADER, &data->flags)) { + /* Firmware has already been loaded */ + set_bit(BTUSB_FIRMWARE_LOADED, &data->flags); + return 0; + } + bt_dev_err(hdev, "Failed to load Intel firmware file %s (%d)", fwname, err); return err; -- 2.30.2