Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp311470ybi; Thu, 13 Jun 2019 16:44:14 -0700 (PDT) X-Google-Smtp-Source: APXvYqyIShHpCRyzn1VhrunYji9boIH0z2U4BkD8uIV2n8dydoyhExac5X8ojGVZCCoHn8HTXRR+ X-Received: by 2002:a17:90a:3585:: with SMTP id r5mr5891373pjb.15.1560469453977; Thu, 13 Jun 2019 16:44:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560469453; cv=none; d=google.com; s=arc-20160816; b=OKVih5NI5zbxYMAEixMMjUFeKKFNxkcRjFXU8JJ2aXnKPwxdJa9H6ZASQdulOs4n1B 2Ct237cB+OozKjKJ6NAoOxHjgH5KktvJVaf+DMkCzvEZz8207YWV3wqnsm+D/XTY3XLU glnbkWYVImVGfPbUS9XyAXmqjHdJW4PruHlkXV1PIqIpvaE4Ejlfr9KsT7YLh11SRZAM Ft7zF1cAWprRTYT5qt0Mlbmv30wfggkqREbSxi0oVEKs9d+e+TsLPr2hjK4j2g4BZcwe /FYOWQ7zHGZ6QmVADRZRyRsx+nnS+KFEVahzcByfsD+aOV+rQOzeh2vgxwtaxq3+Q49z U5NQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=c7083/wRDhjfXKIPLOR/z/xGqx+N3NzGcEXMjAPkrtk=; b=TsYn805mchIpa/jA9ayUU37h/KbexvTjT4X7uTCDU+WSHSbx+FsMHz/EvNnLAWOZL3 rv7dH6XJLBepRIz+ABSbwTz3PwrCebkC0W1g5vIhSE4aagwQ7tCG79mTntP2tyMnDje2 VwpWNXKqg/1GKXNI9TVA3eHYLoq0bbOnJXSKWLjTCibcSIOpqhNnk5ySsixOLGJ50mUq 0XVVMipOuY4bIcJ70ddl3J+7TmFmMSKRhbESJCJkOPJhxjCoI85PfTX46nOC69IrGWCo /uekVn2GYCgu2oR5efUYAag+GtLbB3Tg5C3v3c5jl4zMHMkSSuZ6FwrzQdsxcWJA+LIY rVgQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=iJ2vRTDh; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z18si858825pgv.229.2019.06.13.16.43.58; Thu, 13 Jun 2019 16:44:13 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=iJ2vRTDh; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727960AbfFMXmi (ORCPT + 99 others); Thu, 13 Jun 2019 19:42:38 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:39320 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727468AbfFMXmM (ORCPT ); Thu, 13 Jun 2019 19:42:12 -0400 Received: by mail-pl1-f196.google.com with SMTP id b7so180795pls.6 for ; Thu, 13 Jun 2019 16:42:12 -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=c7083/wRDhjfXKIPLOR/z/xGqx+N3NzGcEXMjAPkrtk=; b=iJ2vRTDhZeW4lVDaqVPjbVshWP4qjnkSnSGc+SrRGQ5aAPmwmUXkPpXZGJjODoGMiE z9Jm0f9FJ8ZQqbLU8oFkC1ru/LfZlKOFSblwIEKz0JHO/x4QY+girk7kLvPF2SnSW6iP u/ybRoaZsNnm7HpTBOdVgcftH21NcEWRLr7p8= 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=c7083/wRDhjfXKIPLOR/z/xGqx+N3NzGcEXMjAPkrtk=; b=GQYwycQbUJXfQ90vCj4A2XeEMiBnDq5VBrQQbk297Y9/4Cy/XA+g9CudaUVINnZmjD hHou/wG07eReJnWM0CYoWGbgjFf8q7rboRA4hWw1vHJT0vXI8PYEr0xES+fLbs6Zb5K1 6HMyqw+OeRNdov0tQIk0d5HlENPRlbOrTle4cMgiJ6JV6ocYs0aJgbej+0n+5RnOs6TC nS6LeH/7wa+8oNrTsHnHqYEzDxsM9+y+kqUcZdJDFlsDSoJXzCgtS8+BQZJmOfJWxgii +HaOjVNSH3riHTrlcHusus6PS8A3NM8FwGYe4uHpnYPUNEx3GQi2yZfNc/6m6Uh9ZWM0 hGDQ== X-Gm-Message-State: APjAAAWM3FhO8KmyW54+SuCap9kKKCGsAvyvzAbv6o+CbmvAPde7Pev2 Q/UFC15mtx7LIu7fIAe4ic6Yxg== X-Received: by 2002:a17:902:8d92:: with SMTP id v18mr67370527plo.211.1560469331903; Thu, 13 Jun 2019 16:42:11 -0700 (PDT) Received: from tictac2.mtv.corp.google.com ([2620:15c:202:1:24fa:e766:52c9:e3b2]) by smtp.gmail.com with ESMTPSA id p7sm781088pfp.131.2019.06.13.16.42.10 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Thu, 13 Jun 2019 16:42:11 -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 , Hans de Goede , Franky Lin , linux-kernel@vger.kernel.org, Madhan Mohan R , Hante Meuleman , YueHaibing , "David S. Miller" Subject: [PATCH v4 3/5] brcmfmac: sdio: Disable auto-tuning around commands expected to fail Date: Thu, 13 Jun 2019 16:41:51 -0700 Message-Id: <20190613234153.59309-4-dianders@chromium.org> X-Mailer: git-send-email 2.22.0.rc2.383.gf4fbbf30c2-goog In-Reply-To: <20190613234153.59309-1-dianders@chromium.org> References: <20190613234153.59309-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 v4: - Adjust to API rename (Adrian, Ulf). Changes in v3: - Expect errors for all of brcmf_sdio_kso_control() (Adrian). Changes in v2: None drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c index 4a750838d8cd..ee76593259a7 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c @@ -667,6 +667,8 @@ brcmf_sdio_kso_control(struct brcmf_sdio *bus, bool on) brcmf_dbg(TRACE, "Enter: on=%d\n", on); + sdio_retune_crc_disable(bus->sdiodev->func1); + wr_val = (on << SBSDIO_FUNC1_SLEEPCSR_KSO_SHIFT); /* 1st KSO write goes to AOS wake up core if device is asleep */ brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_SLEEPCSR, wr_val, &err); @@ -727,6 +729,8 @@ brcmf_sdio_kso_control(struct brcmf_sdio *bus, bool on) if (try_cnt > MAX_KSO_ATTEMPTS) brcmf_err("max tries: rd_val=0x%x err=%d\n", rd_val, err); + sdio_retune_crc_enable(bus->sdiodev->func1); + return err; } -- 2.22.0.rc2.383.gf4fbbf30c2-goog