From patchwork Mon Jul 19 09:07:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aaron Ma X-Patchwork-Id: 1506857 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=canonical.com header.i=@canonical.com header.a=rsa-sha256 header.s=20210705 header.b=sRAI0MhQ; dkim-atps=neutral Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4GSwwD5h0Sz9sX3; Mon, 19 Jul 2021 19:07:24 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1m5PFB-0003X2-Sb; Mon, 19 Jul 2021 09:07:21 +0000 Received: from smtp-relay-canonical-1.internal ([10.131.114.174] helo=smtp-relay-canonical-1.canonical.com) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1m5PF6-0003WV-3M for kernel-team@lists.ubuntu.com; Mon, 19 Jul 2021 09:07:16 +0000 Received: from localhost.localdomain (unknown [222.129.38.241]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-1.canonical.com (Postfix) with ESMTPSA id EE68540325 for ; Mon, 19 Jul 2021 09:07:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1626685635; bh=7TRjcYKqoe77afgQgVSqpI3yrdts+sQ6X46KEoUhWgw=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=sRAI0MhQ8k8w+eNccZuNDYP3cGdUw/YvRUCMXYsvkxZxloZo0K34JUYdAHLfEum0s KrG4tEWfAmWR0zZ53666V1qGgJW388KY8H8YWbHRwg9om+E8YZIt9CFUU+xzM4Zof3 EoW15wUVBcxSqbTM37UmbcikAQx1saDaTy2T5bjPuNb2EqktfFUCCFYBVk/nXUB8Ne bjCgO+7xOhpTeaC5kAIf4cHlOXhG5jc8wmyE8QSU1Gj6cm/oagtNuo6X7UgmK5pT0K 6YrhfCAE9i6zAQUIaf2/Gtq04HF2k8hh1aKaTpkdvLl400+iYcOm5VlB1ww83Mv6BZ RINZPuBdTfe6Q== From: Aaron Ma To: kernel-team@lists.ubuntu.com Subject: [PATCH 1/1] mt76: mt7921: continue to probe driver when fw already downloaded Date: Mon, 19 Jul 2021 17:07:01 +0800 Message-Id: <20210719090701.429455-2-aaron.ma@canonical.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210719090701.429455-1-aaron.ma@canonical.com> References: <20210719090701.429455-1-aaron.ma@canonical.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" BugLink: https://bugs.launchpad.net/bugs/1936790 When reboot system, no power cycles, firmware is already downloaded, return -EIO will break driver as error: mt7921e: probe of 0000:03:00.0 failed with error -5 Skip firmware download and continue to probe. Signed-off-by: Aaron Ma Fixes: 1c099ab44727c ("mt76: mt7921: add MCU support") Signed-off-by: David S. Miller (cherry picked from commit c34269041185dad1bab7a34f42ef9fab967a1684) Signed-off-by: Aaron Ma --- drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c index 67dc4b4cc094..f7459ad2a073 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c @@ -910,7 +910,7 @@ static int mt7921_load_firmware(struct mt7921_dev *dev) ret = mt76_get_field(dev, MT_CONN_ON_MISC, MT_TOP_MISC2_FW_N9_RDY); if (ret) { dev_dbg(dev->mt76.dev, "Firmware is already download\n"); - return -EIO; + goto fw_loaded; } ret = mt7921_load_patch(dev); @@ -928,6 +928,7 @@ static int mt7921_load_firmware(struct mt7921_dev *dev) return -EIO; } +fw_loaded: mt76_queue_tx_cleanup(dev, dev->mt76.q_mcu[MT_MCUQ_FWDL], false); #ifdef CONFIG_PM