Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1591453pxb; Mon, 8 Mar 2021 01:07:44 -0800 (PST) X-Google-Smtp-Source: ABdhPJyAh79q8fwmyl8koxn/oXjrTkaLtIRowBapckwdafYOWTkWM9t389dtksAFohxrgchm6qTi X-Received: by 2002:aa7:c9c9:: with SMTP id i9mr20691224edt.160.1615194464479; Mon, 08 Mar 2021 01:07:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1615194464; cv=none; d=google.com; s=arc-20160816; b=ALTSRZCo6tfBSF4sHKjNA8jA+Sx52l19bqeJ3yzLhAqBeWjNR13QjcJaHMJ1YEYlmg 44Rw/rtGZ4KSQwg0s9Ie37emJPg0khz4mOxXm/ZqXTl1J/YDQ+IrnMJ80SNl0i/8IXr8 EPOaxkCp6/myc3G2CPZkDNSKmCXXFuqebufUANJtkOm/loNzkI6JGR4tvJyHos69TjeD D5QwQTVS5eDGzZ4NDnP+fN9jWGPssmVNdFE0VNgsoS9OA2pkSws8MT0k7tSTnMpIVQaP VzdcS8uCXbl5AL9X1vPySh0rDgvIabDlYmUiuf0lnHtj+Ip+IVCv+SN/iGNmiLBPKq/k Ew7g== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=f0MkKY1UF1QqFhYKVPwOq+Ju9G4IUVvg4Cjsdu6w/3g=; b=kq49299FIrS+LmDKnCXW9VPb4mt9fpEevAC2mqy/2d2tvb7xCKmE28DCWQ88Mc+rBQ 3hYZBhI+HdV5A8l+pldanaTlWhctJYTPmVJSPXI6reybhE9YJFignB91Vjf7nv0rA1r/ IAnSigSGuZi7yZKclyW3XdvDdq2HM63RV+4FmjH54JTodLGOIcPWb7sUcHZyPwHZbGsh ntqNpSBVZNFoLALf/G/zA9g+JKGz6yiTI/C3jxIcEJT/J31mPJNKZSmYzuIUyEPdbyQt DZH35w5CLn1CQHSfLlIhLICH42YxljgQQKI53kuYeD/cC36HF2sA9PAmU/Nnouss5nEv qPJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=EhqwmCj+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-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 dc19si5947266edb.127.2021.03.08.01.07.22; Mon, 08 Mar 2021 01:07:44 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-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=EhqwmCj+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-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 S230458AbhCHJEV (ORCPT + 99 others); Mon, 8 Mar 2021 04:04:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42672 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229737AbhCHJDs (ORCPT ); Mon, 8 Mar 2021 04:03:48 -0500 Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com [IPv6:2a00:1450:4864:20::131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 58B51C06174A; Mon, 8 Mar 2021 01:03:48 -0800 (PST) Received: by mail-lf1-x131.google.com with SMTP id v9so19872294lfa.1; Mon, 08 Mar 2021 01:03:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=f0MkKY1UF1QqFhYKVPwOq+Ju9G4IUVvg4Cjsdu6w/3g=; b=EhqwmCj+hu7PZmHAM0dMG8J+JeLWiEWiHnApd2/aEUepqpPkN+ocEQ0tGtL7TtqAKk 4R/zDo7QvDGVtI7/KQCQyQSav0wAR0znPEi12SJ42mLthNUwHuNyP+e2uAEp+i80uNFL rfkQMzBVt36d2q5fQE8y39we7tZjRwFG0iCOowXcMnLmX12463GUEy2Msun90lSGFWAj ufkEQOKX2Y+lNocNAs7E1fxAzZs3UWoBo4P13A6dmlIb1l+/u3upWpixYshykkxIyvNR 0jdLr3UwHTM+j0uEupoo0RB/6Evjtxvp7GYw1rOgdgFdqM42U3QWc2z+MvboDEjgk3Sr adoA== 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=f0MkKY1UF1QqFhYKVPwOq+Ju9G4IUVvg4Cjsdu6w/3g=; b=azXb5SqkI+l5K07xImwB7xxNUWY5my50jXPIKHMKjvTJg7gwOfjk63h6qcfKIwtWYE TO2Ea+99t6JlhQoTeMsDYj/A4uZjj955PtkQorWxjq0brTH+oxxW/lG+s3kVX6k067Z5 gqavVZ5PdXS+Z/7na01/7+rSny3kgCIGHGIq6iF9wzijWw+jpLHvAxyFsUEIxstSZLmm KtfANL7CPrIK6orxCKKeGfTBuvqkkbsWYjv69lnXOiF3KvYC4uwc7rmkUHXRscl8RZ+B e1XYYn6YzxLAHFL4A4liw2xI3C1zSl05IRMmQ83EAVPULVqjhSCGwEThf5BCzo6+xgUe aRdw== X-Gm-Message-State: AOAM5311gPAu1c5LWxa70UY0c9/BIw0tPokJi/1nf138rnCve0doBY6n QJLdhYDvFWOzUzMfHakL/y8= X-Received: by 2002:a19:2242:: with SMTP id i63mr13237087lfi.643.1615194226928; Mon, 08 Mar 2021 01:03:46 -0800 (PST) Received: from localhost.lan (ip-194-187-74-233.konfederacka.maverick.com.pl. [194.187.74.233]) by smtp.gmail.com with ESMTPSA id t13sm1410346ljk.47.2021.03.08.01.03.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Mar 2021 01:03:46 -0800 (PST) From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= To: Thomas Bogendoerfer Cc: linux-mips@vger.kernel.org, Florian Fainelli , Vivek Unune , bcm-kernel-feedback-list@broadcom.com, linux-kernel@vger.kernel.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Subject: [PATCH mips/linux.git 5/5] firmware: bcm47xx_nvram: inline code checking NVRAM size Date: Mon, 8 Mar 2021 10:03:20 +0100 Message-Id: <20210308090320.9765-6-zajec5@gmail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210308090320.9765-1-zajec5@gmail.com> References: <20210308090320.9765-1-zajec5@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Rafał Miłecki Separated function was not improving code quality much (or at all). Moreover it expected possible flash end address as argument and it was returning NVRAM size. The new code always operates on offsets which means less logic and less calculations. Signed-off-by: Rafał Miłecki --- drivers/firmware/broadcom/bcm47xx_nvram.c | 25 +++++++---------------- 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/drivers/firmware/broadcom/bcm47xx_nvram.c b/drivers/firmware/broadcom/bcm47xx_nvram.c index 1d2271b1e07a..bd235833b687 100644 --- a/drivers/firmware/broadcom/bcm47xx_nvram.c +++ b/drivers/firmware/broadcom/bcm47xx_nvram.c @@ -42,18 +42,6 @@ static bool bcm47xx_nvram_is_valid(void __iomem *nvram) return ((struct nvram_header *)nvram)->magic == NVRAM_MAGIC; } -static u32 find_nvram_size(void __iomem *end) -{ - int i; - - for (i = 0; i < ARRAY_SIZE(nvram_sizes); i++) { - if (bcm47xx_nvram_is_valid(end - nvram_sizes[i])) - return nvram_sizes[i]; - } - - return 0; -} - /** * bcm47xx_nvram_copy - copy NVRAM to internal buffer */ @@ -85,7 +73,7 @@ static int bcm47xx_nvram_find_and_copy(void __iomem *flash_start, size_t res_siz { size_t flash_size; size_t offset; - u32 size; + int i; if (nvram_len) { pr_warn("nvram already initialized\n"); @@ -93,12 +81,13 @@ static int bcm47xx_nvram_find_and_copy(void __iomem *flash_start, size_t res_siz } /* TODO: when nvram is on nand flash check for bad blocks first. */ + + /* Try every possible flash size and check for NVRAM at its end */ for (flash_size = FLASH_MIN; flash_size <= res_size; flash_size <<= 1) { - /* Windowed flash access */ - size = find_nvram_size(flash_start + flash_size); - if (size) { - offset = flash_size - size; - goto found; + for (i = 0; i < ARRAY_SIZE(nvram_sizes); i++) { + offset = flash_size - nvram_sizes[i]; + if (bcm47xx_nvram_is_valid(flash_start + offset)) + goto found; } } -- 2.26.2