From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,T_DKIMWL_WL_HIGH,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8D5F1C04AB5 for ; Mon, 3 Jun 2019 18:38:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 57CAD26A54 for ; Mon, 3 Jun 2019 18:38:05 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="OoHOFFjg" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727170AbfFCSiE (ORCPT ); Mon, 3 Jun 2019 14:38:04 -0400 Received: from mail-pl1-f193.google.com ([209.85.214.193]:33724 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727104AbfFCSiB (ORCPT ); Mon, 3 Jun 2019 14:38:01 -0400 Received: by mail-pl1-f193.google.com with SMTP id g21so7323374plq.0 for ; Mon, 03 Jun 2019 11:38:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=F8wwxq9VxptsURCry2b+aTfA85f9o72dfCgQNjFbLVk=; b=OoHOFFjgzLmkfMx69PpDw1GCFMxg+4mC3LGY9v8drB9Wns2TR4K59tgzJJx+TIUwgM xgZv1h8aB3DRO5FFXODObJQkwbi6Sr2sXsXKBfZrJCH3TG+vi6Qe/3jPtb5RsIIFhYME LCF9vDlm1NdGoKiRNrKIL9Vh4qwj9eWNIm2Lc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=F8wwxq9VxptsURCry2b+aTfA85f9o72dfCgQNjFbLVk=; b=EA0s5WC1qqC25FBykRc6qHQqo85d1DkpyTY0pAueTqx/C1EX0hOhanGDzxTKFsbIX9 c8nEA2rRsLK/efKR5KC9TZlB+i+vKNBVZUIyuL35R9/PB+HpgJMd27ftjI9Sn6q/6SFR vR03FZPrn5C15gbrxL0IYFTZ9TpO4uXiaK8739Z9nai5IupxAWV+2RBfUzz60WoDwnry ycitktMwzWNDTuWLXbwE+sWhjMV7K6A+DJGqc4k91l3Uo0IMQUWvu5CD/dlNFaYmvyxb UX6JeDCJbsBKVs3j2u1X6Ta8o7A0kz6cYqqZYqnq+FXnUrw43X5An40uEqXIekXFm1Hb QwzA== X-Gm-Message-State: APjAAAUgoUbO+JIR26wKx9M4rY0RmdYd9/xZvZOJry4nGl+HrCjjqUW2 LhNZMh6YySV1qsKvQcQBFojNKw== X-Google-Smtp-Source: APXvYqy0yhloB5894+QBKfjxD938Rjte+CYfFTXs3NtclcxDXGASENk362PIU8f/7EORJkc4NCJG+Q== X-Received: by 2002:a17:902:2ae6:: with SMTP id j93mr32669828plb.130.1559587080394; Mon, 03 Jun 2019 11:38:00 -0700 (PDT) Received: from tictac2.mtv.corp.google.com ([2620:15c:202:1:24fa:e766:52c9:e3b2]) by smtp.gmail.com with ESMTPSA id t2sm14808969pfh.166.2019.06.03.11.37.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 03 Jun 2019 11:37:59 -0700 (PDT) From: Douglas Anderson To: Ulf Hansson , Kalle Valo , Adrian Hunter , Arend van Spriel Cc: brcm80211-dev-list.pdl@broadcom.com, linux-rockchip@lists.infradead.org, Double Lo , briannorris@chromium.org, linux-wireless@vger.kernel.org, Naveen Gupta , Madhan Mohan R , mka@chromium.org, Wright Feng , Chi-Hsien Lin , netdev@vger.kernel.org, brcm80211-dev-list@cypress.com, Douglas Anderson , "David S. Miller" , Franky Lin , linux-kernel@vger.kernel.org, Hante Meuleman , YueHaibing , Michael Trimarchi Subject: [PATCH v2 3/3] brcmfmac: sdio: Disable auto-tuning around commands expected to fail Date: Mon, 3 Jun 2019 11:37:40 -0700 Message-Id: <20190603183740.239031-4-dianders@chromium.org> X-Mailer: git-send-email 2.22.0.rc1.311.g5d7573a151-goog In-Reply-To: <20190603183740.239031-1-dianders@chromium.org> References: <20190603183740.239031-1-dianders@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org There are certain cases, notably when transitioning between sleep and active state, when Broadcom SDIO WiFi cards will produce errors on the SDIO bus. This is evident from the source code where you can see that we try commands in a loop until we either get success or we've tried too many times. The comment in the code reinforces this by saying "just one write attempt may fail" Unfortunately these failures sometimes end up causing an "-EILSEQ" back to the core which triggers a retuning of the SDIO card and that blocks all traffic to the card until it's done. Let's disable retuning around the commands we expect might fail. Fixes: bd11e8bd03ca ("mmc: core: Flag re-tuning is needed on CRC errors") Signed-off-by: Douglas Anderson --- Changes in v2: None drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c index 4a750838d8cd..e0cfcc078a54 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -697,6 +698,7 @@ brcmf_sdio_kso_control(struct brcmf_sdio *bus, bool on) bmask = SBSDIO_FUNC1_SLEEPCSR_KSO_MASK; } + mmc_expect_errors_begin(bus->sdiodev->func1->card->host); do { /* reliable KSO bit set/clr: * the sdiod sleep write access is synced to PMU 32khz clk @@ -719,6 +721,7 @@ brcmf_sdio_kso_control(struct brcmf_sdio *bus, bool on) &err); } while (try_cnt++ < MAX_KSO_ATTEMPTS); + mmc_expect_errors_end(bus->sdiodev->func1->card->host); if (try_cnt > 2) brcmf_dbg(SDIO, "try_cnt=%d rd_val=0x%x err=%d\n", try_cnt, -- 2.22.0.rc1.311.g5d7573a151-goog