From patchwork Thu Oct 25 16:32:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: IKEGAMI Tokunori X-Patchwork-Id: 989210 X-Patchwork-Delegate: boris.brezillon@free-electrons.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=allied-telesis.co.jp Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="dKQNLwMM"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42gt3M1w3Rz9sB5 for ; Fri, 26 Oct 2018 03:33:13 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=PH23jIhkcWdg+/fwna2r5SOEOh6Rx6gVN8k+o+H+980=; b=dKQNLwMMup5lXDg4VnVi3UAc62 DapBLOxUkwlHv5UWGtihSM2VvZ28BR33UaQ6Eg3TRS70QpMIh2TNjEYYebhvLAEfwLvHeu3X6GFxz Jp1w8qsnvwwgeDffndphrTKZ8APilhPomFbMnTEhefhGxb/PVfuHrdiD9A2v1vB2hd6sRbymmrNkd /azhDOjUmjmYqn1Hz3jSzRNXyP5t0ruKHElYoT8o4kHr2a7ywgWyi3DZp+AehLfpigv87Mm9nX7Zj ak7H2bMwCvaFN9Hl3BgbtJ1u7cXkk12O+GxmpNtHddhxhwHXF73saedu+OLdOKuGjN+GlFaL9MF35 XcnWuubA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFiZ5-0004l2-4j; Thu, 25 Oct 2018 16:32:55 +0000 Received: from mail1.bemta23.messagelabs.com ([67.219.246.3]) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFiZ0-0004jJ-Jk for linux-mtd@lists.infradead.org; Thu, 25 Oct 2018 16:32:53 +0000 Received: from [67.219.246.100] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-3.bemta.az-b.us-east-1.aws.symcld.net id 55/6B-08438-620F1DB5; Thu, 25 Oct 2018 16:32:38 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNLMWRWlGSWpSXmKPExsUyLfyHiK7ah4v RBuu3qVnsblrG7sDosXlJfQBjFGtmXlJ+RQJrxublM1gLfkpVfP1/j62B8YNYFyMXh5DAXEaJ wzs3sEA4vxglll66wNbFyMnBJmAqMf3VQkYQW0RATWJr/zlGkCJmgbNMEpMnbgXq4OAQFoiRW N3ABmKyCKhKHH4qClLOK+Ao8fH9D7AxEgLyEg+Pt4ON4RRwkuj4/4QZxBYCqvnb2wJla0o87/ nOCFEfLNH/eznTBEbeBYwMqxjNkooy0zNKchMzc3QNDQx0DQ2NdI2BLCO9xCrdJL3SYt3UxOI SXUO9xPJiveLK3OScFL281JJNjMBASSlgTtvBeLU9/RCjJAeTkihvYsrFaCG+pPyUyozE4oz4 otKc1OJDjDIcHEoSvLzvgXKCRanpqRVpmTnAkIVJS3DwKInwzn8HlOYtLkjMLc5Mh0idYlSUE ue9ApIQAElklObBtcHi5BKjrJQwLyMDA4MQT0FqUW5mCar8K0ZxDkYlYd4YkO08mXklcNNfAS 1mAlo8Q+ECyOKSRISUVAOjUE7sd8PGIwEJ5laFsXKnpEuf6xvpLzzfsi1hsk1BZnqPsc/2H4u 0na0M5HYr+zNML3csuHLhjbOs1mxlXYtpjIbGvH9uci623B3SleK80+SeXn5+qvc1nxfs1xIf qa4/IM/uXrfUmvlZ4YOHX5U9HY8t26n8fXNG5pEyhcS5Dm9iLVZH6iuxFGckGmoxFxUnAgAbe 54TjgIAAA== X-Env-Sender: ikegami@allied-telesis.co.jp X-Msg-Ref: server-26.tower-384.messagelabs.com!1540485156!931210!2 X-Originating-IP: [150.87.248.20] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.14.24; banners=-,-,- X-VirusChecked: Checked Received: (qmail 4869 invoked from network); 25 Oct 2018 16:32:38 -0000 Received: from abricot-inet.allied-telesis.co.jp (HELO TKY-DS01.at.lc) (150.87.248.20) by server-26.tower-384.messagelabs.com with SMTP; 25 Oct 2018 16:32:38 -0000 Received: from swim-manx.rd.allied-telesis.co.jp ([150.87.21.50]) by TKY-DS01.at.lc with Microsoft SMTPSVC(8.0.9200.16384); Fri, 26 Oct 2018 01:32:36 +0900 Received: from ikegami-pc.rd.allied-telesis.co.jp by swim-manx.rd.allied-telesis.co.jp (AlliedTelesis SMTPRS 1.3 pl 1 ++E6B86F8C687C6288D9B5559052954DC9) with ESMTP id ; Fri, 26 Oct 2018 01:32:35 +0900 From: Tokunori Ikegami To: boris.brezillon@free-electrons.com Subject: [PATCH v3 01/11] mtd: cfi_cmdset_0002: Change do_write_oneword() to use chip_good() Date: Fri, 26 Oct 2018 01:32:09 +0900 Message-Id: <20181025163219.25788-2-ikegami@allied-telesis.co.jp> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> References: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> X-OriginalArrivalTime: 25 Oct 2018 16:32:36.0329 (UTC) FILETIME=[567DDD90:01D46C80] X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181025_093250_739643_1814F936 X-CRM114-Status: GOOD ( 18.41 ) X-Spam-Score: -0.0 (/) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [67.219.246.3 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [67.219.246.3 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tokunori Ikegami , Hauke Mehrtens , stable@vger.kernel.org, Joakim Tjernlund , Chris Packham , linux-mtd@lists.infradead.org, Koen Vandeputte , Fabio Bettoni MIME-Version: 1.0 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org In OpenWrt Project the flash write error caused on some products. Also the issue can be fixed by using chip_good() instead of chip_ready(). The chip_ready() just checks the value from flash memory twice. And the chip_good() checks the value with the expected value. Probably the issue can be fixed as checked correctly by the chip_good(). So change to use chip_good() instead of chip_ready(). Signed-off-by: Tokunori Ikegami Signed-off-by: Hauke Mehrtens Signed-off-by: Koen Vandeputte Signed-off-by: Fabio Bettoni Co-Developed-by: Hauke Mehrtens Co-Developed-by: Koen Vandeputte Co-Developed-by: Fabio Bettoni Reported-by: Fabio Bettoni Cc: Chris Packham Cc: Joakim Tjernlund Cc: Boris Brezillon Cc: linux-mtd@lists.infradead.org Cc: stable@vger.kernel.org --- Changes since v2: - Just update the commit message for the comment. Changes since v1: - Just update the commit message. Background: This is required for OpenWrt Project to result the flash write issue as below patche. Also the original patch in OpenWRT is below. The reason to use chip_good() is that just actually fix the issue. And also in the past I had fixed the erase function also as same way by the patch below. Note: The reason for the patch for erase is same. In my understanding the chip_ready() is just checked the value twice from flash. So I think that sometimes incorrect value is read twice and it is depended on the flash device behavior but not sure.. So change to use chip_good() instead of chip_ready(). drivers/mtd/chips/cfi_cmdset_0002.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c index 72428b6bfc47..251c9e1675bd 100644 --- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c @@ -1627,31 +1627,37 @@ static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip, continue; } - if (time_after(jiffies, timeo) && !chip_ready(map, adr)){ + if (chip_good(map, adr, datum)) + break; + + if (time_after(jiffies, timeo)){ xip_enable(map, chip, adr); printk(KERN_WARNING "MTD %s(): software timeout\n", __func__); xip_disable(map, chip, adr); + ret = -EIO; break; } - if (chip_ready(map, adr)) - break; - /* Latency issues. Drop the lock, wait a while and retry */ UDELAY(map, chip, adr, 1); } + /* Did we succeed? */ - if (!chip_good(map, adr, datum)) { + if (ret) { /* reset on all failures. */ map_write(map, CMD(0xF0), chip->start); /* FIXME - should have reset delay before continuing */ - if (++retry_cnt <= MAX_RETRIES) + if (++retry_cnt <= MAX_RETRIES) { + ret = 0; goto retry; + } ret = -EIO; } + xip_enable(map, chip, adr); + op_done: if (mode == FL_OTP_WRITE) otp_exit(map, chip, adr, map_bankwidth(map)); From patchwork Thu Oct 25 16:32:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: IKEGAMI Tokunori X-Patchwork-Id: 989212 X-Patchwork-Delegate: boris.brezillon@free-electrons.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=allied-telesis.co.jp Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="DL4brCBl"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42gt4c0zjBz9sB5 for ; Fri, 26 Oct 2018 03:34:24 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=Kb5locRWKxgEg9jJFP5vwg2JYcJpaBJmDrouKABE6is=; b=DL4brCBlLp5WkbpJQcnX3JEP46 ZVHURYx1XZPKCY9/V1QuRFwAsjiMzCkkojknup2FgN5f/C7Z37UqbcAFoTmZG7YqVEyYHYaEYF1Nz BaDX/cHN82zxlVfXkGYXPTprjASYiTK1tuhM1LFelkS4aSytzTvsh401Iuv9MsXUvqLjDmKB9vj7F hm+wDpPmugJu5Q4DGTIE5gRqlh38MvjplvcWN51jEvmytyxU5mwX+x6B7umaKLzgBukMwdEhTMHv6 tlKTrqraBrj5MIzbRB5SdSMNgbWrnua4hS6vMAhBueXe8BG0yT6TbEU7nx7mPvE4BlOKWFjGh7nA5 +/Es+DAw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFiaI-0005GP-6k; Thu, 25 Oct 2018 16:34:10 +0000 Received: from mail1.bemta23.messagelabs.com ([67.219.246.3]) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFiZ3-0004jJ-Bl for linux-mtd@lists.infradead.org; Thu, 25 Oct 2018 16:32:55 +0000 Received: from [67.219.246.100] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-3.bemta.az-b.us-east-1.aws.symcld.net id 11/7B-08438-720F1DB5; Thu, 25 Oct 2018 16:32:39 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrLLMWRWlGSWpSXmKPExsUyLfyHiK76h4v RBvOmqljsblrG7sDosXlJfQBjFGtmXlJ+RQJrxrqWE+wFB7kqJl38wdzA+Ieji5GLQ0hgLqPE 4Z0bWCCcX4wSN5ccZ+pi5ORgEzCVmP5qISOILSKgJrG1/xwjSBGzwH1GibNr34EVCQtESXz4d RXMZhFQldh7ZC47iM0r4Chx9sF3VhBbQkBe4uHxdrBBnAJOEh3/nzCD2EJANX97W6BsTYnnPd 8ZIeqDJZ4+ucU4gZF3ASPDKkazpKLM9IyS3MTMHF1DAwNdQ0MjXSNdQ2MzvcQq3SS90mLd1MT iEl1DvcTyYr3iytzknBS9vNSSTYzAYEkpYOrYwbi0K/0QoyQHk5Iob2LKxWghvqT8lMqMxOKM +KLSnNTiQ4wyHBxKEry874FygkWp6akVaZk5wLCFSUtw8CiJ8M5/B5TmLS5IzC3OTIdInWJUl BLnvQKSEABJZJTmwbXBYuUSo6yUMC8jAwODEE9BalFuZgmq/CtGcQ5GJWFeBZDtPJl5JXDTXw EtZgJaPEPhAsjikkSElFQDo8xdpVj2FRnxyg9X7Ll/RuN5s/3Ez1Z7F3391t5zZPdNQybLgK/ 6f4UW/+X+bxWrxPzoTa/bxRfM3dY9uy9+P5Yr1n/1q0+5P4PUTBZGv2rd1KnFsTtrZr77Nm25 77oz1wKsHSK3Tnj9okjnTIG/J79aU7Hrh/3LzjvU5pou6CoTWfox42v4CSWW4oxEQy3mouJEA CiSaJ+QAgAA X-Env-Sender: ikegami@allied-telesis.co.jp X-Msg-Ref: server-26.tower-384.messagelabs.com!1540485156!931210!3 X-Originating-IP: [150.87.248.20] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.14.24; banners=-,-,- X-VirusChecked: Checked Received: (qmail 4959 invoked from network); 25 Oct 2018 16:32:39 -0000 Received: from abricot-inet.allied-telesis.co.jp (HELO TKY-DS01.at.lc) (150.87.248.20) by server-26.tower-384.messagelabs.com with SMTP; 25 Oct 2018 16:32:39 -0000 Received: from swim-manx.rd.allied-telesis.co.jp ([150.87.21.50]) by TKY-DS01.at.lc with Microsoft SMTPSVC(8.0.9200.16384); Fri, 26 Oct 2018 01:32:36 +0900 Received: from ikegami-pc.rd.allied-telesis.co.jp by swim-manx.rd.allied-telesis.co.jp (AlliedTelesis SMTPRS 1.3 pl 1 ++E6B86F8C687C6288D9B5559052954DC9) with ESMTP id ; Fri, 26 Oct 2018 01:32:36 +0900 From: Tokunori Ikegami To: boris.brezillon@free-electrons.com Subject: [PATCH v3 02/11] mtd: cfi_cmdset_0002: Remove chip_ready() from do_write_buffer() Date: Fri, 26 Oct 2018 01:32:10 +0900 Message-Id: <20181025163219.25788-3-ikegami@allied-telesis.co.jp> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> References: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> X-OriginalArrivalTime: 25 Oct 2018 16:32:36.0346 (UTC) FILETIME=[568075A0:01D46C80] X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181025_093253_484971_5A57AC27 X-CRM114-Status: GOOD ( 10.86 ) X-Spam-Score: -0.0 (/) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [67.219.246.3 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [67.219.246.3 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tokunori Ikegami , Joakim Tjernlund , Chris Packham , linux-mtd@lists.infradead.org, Fabio Bettoni MIME-Version: 1.0 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org It is enough to use chip_good() only so chip_ready() is not necessary. For this change the order to check timeout is also needed to chagne. Signed-off-by: Tokunori Ikegami Cc: Fabio Bettoni Co: Hauke Mehrtens Co: Koen Vandeputte Cc: Chris Packham Cc: Joakim Tjernlund Cc: Boris Brezillon Cc: linux-mtd@lists.infradead.org --- Changes since v2: - None. Changes since v1: - None. drivers/mtd/chips/cfi_cmdset_0002.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c index 251c9e1675bd..c2e51768a02c 100644 --- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c @@ -1882,14 +1882,14 @@ static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip, continue; } - if (time_after(jiffies, timeo) && !chip_ready(map, adr)) - break; - if (chip_good(map, adr, datum)) { xip_enable(map, chip, adr); goto op_done; } + if (time_after(jiffies, timeo)) + break; + /* Latency issues. Drop the lock, wait a while and retry */ UDELAY(map, chip, adr, 1); } From patchwork Thu Oct 25 16:32:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: IKEGAMI Tokunori X-Patchwork-Id: 989211 X-Patchwork-Delegate: boris.brezillon@free-electrons.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=allied-telesis.co.jp Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="SZIxlX3c"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42gt3n15t5z9sB5 for ; Fri, 26 Oct 2018 03:33:41 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=ZssQicdH/FmG6meR43XcfoCkgs/hrMzHz7yYZpXdV5Y=; b=SZIxlX3cuRERxzIRQsa85KQbQJ 8qRWMCFCMW/g19DnzNzeadBbTkGv41wNLZxwFzm3rU8rnePV+YE7niIy5DNPgzk5fVH5JMVfQ0ZO2 7Msfu/zBipRDulYDhYmIu+7OFGzCKG0CS6QEL16ZqEeYMeUAIN3rD9lneVNxAo5vcXwtlmTY85Yp4 d8EZEa1bWQk6oFKhTgvi1Y+4h1lYNVn2KoPNPQCmp2n83iKwNpVD1ZCyTlanWRA6ksXCy9kWhUMOP AuJiXI8J/qOtE+WyZpkkvHmpUwvbmYuXs5QQCfGoo8KGSLL+nQUMRCJ/GbkvzpGMInSFcYExIDpyi NlSpLYOA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFiZd-0004zC-Dn; Thu, 25 Oct 2018 16:33:29 +0000 Received: from mail1.bemta23.messagelabs.com ([67.219.246.5]) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFiZ2-0004jR-E3 for linux-mtd@lists.infradead.org; Thu, 25 Oct 2018 16:32:54 +0000 Received: from [67.219.246.100] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-5.bemta.az-b.us-east-1.aws.symcld.net id 2A/B9-20483-820F1DB5; Thu, 25 Oct 2018 16:32:40 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupkkeJIrShJLcpLzFFi42KZFv5DRFfjw8V ogwknFSx2Ny1jd2D02LykPoAxijUzLym/IoE148GuJcwFFyUqJixvZW1gfCLSxcjFISQwl1Hi 8M4NLBDOL0aJtye+sXcxcnKwCZhKTH+1kBHEFhFQk9jaf44RpIhZ4D6jxNm175hAEsICMRKr5 vawgtgsAqoS947fBmvmFXCU2HbiNliNhIC8xMPj7WCDOAWcJDr+P2EGsYWAav72tkDZmhLPe7 4zQtQHS3TNfsI0gZF3ASPDKkazpKLM9IyS3MTMHF1DAwNdQ0MjXSBpZKaXWKWbpFdarJuaWFy ia6iXWF6sV1yZm5yTopeXWrKJERgsKQUMdTsYfyxNP8QoycGkJMqbmHIxWogvKT+lMiOxOCO+ qDQntfgQowwHh5IEL+97oJxgUWp6akVaZg4wbGHSEhw8SiK8898BpXmLCxJzizPTIVKnGHU5+ mZ1zGAWYsnLz0uVEue9AlIkAFKUUZoHNwIWQ5cYZaWEeRkZGBiEeApSi3IzS1DlXzGKczAqCf OuAJnCk5lXArfpFdARTEBHzFC4AHJESSJCSqqBUd+F/7DU9WPfzv7RWb710+kH/GxTPAOnyf2 a/NhB9GSF5owXVfXeOVWzZfS4ais/TQpqfRqsukO4Y8nSqMkX7julsfX0H/Hmz/NWOn13U1rj xkv/2mveWgQ0LdmZfqYmeeINyYsB789cjvfzLWfqzrgfP1dtvUSPZI2X3aOVrtyz//haXDA/r MRSnJFoqMVcVJwIAKMKiRmcAgAA X-Env-Sender: ikegami@allied-telesis.co.jp X-Msg-Ref: server-26.tower-384.messagelabs.com!1540485156!931210!4 X-Originating-IP: [150.87.248.20] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.14.24; banners=-,-,- X-VirusChecked: Checked Received: (qmail 4974 invoked from network); 25 Oct 2018 16:32:40 -0000 Received: from abricot-inet.allied-telesis.co.jp (HELO TKY-DS01.at.lc) (150.87.248.20) by server-26.tower-384.messagelabs.com with SMTP; 25 Oct 2018 16:32:40 -0000 Received: from swim-manx.rd.allied-telesis.co.jp ([150.87.21.50]) by TKY-DS01.at.lc with Microsoft SMTPSVC(8.0.9200.16384); Fri, 26 Oct 2018 01:32:36 +0900 Received: from ikegami-pc.rd.allied-telesis.co.jp by swim-manx.rd.allied-telesis.co.jp (AlliedTelesis SMTPRS 1.3 pl 1 ++E6B86F8C687C6288D9B5559052954DC9) with ESMTP id ; Fri, 26 Oct 2018 01:32:36 +0900 From: Tokunori Ikegami To: boris.brezillon@free-electrons.com Subject: [PATCH v3 03/11] mtd: cfi_cmdset_0002: Remove goto statement from do_write_buffer() Date: Fri, 26 Oct 2018 01:32:11 +0900 Message-Id: <20181025163219.25788-4-ikegami@allied-telesis.co.jp> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> References: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> X-OriginalArrivalTime: 25 Oct 2018 16:32:36.0620 (UTC) FILETIME=[56AA44C0:01D46C80] X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181025_093252_541598_8D6D1E32 X-CRM114-Status: GOOD ( 13.18 ) X-Spam-Score: -0.0 (/) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [67.219.246.5 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [67.219.246.5 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tokunori Ikegami , Joakim Tjernlund , Chris Packham , linux-mtd@lists.infradead.org, Fabio Bettoni MIME-Version: 1.0 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org For a maintainability by reducing the goto statement remove it from do_write_buffer(). Signed-off-by: Tokunori Ikegami Cc: Fabio Bettoni Co: Hauke Mehrtens Co: Koen Vandeputte Cc: Chris Packham Cc: Joakim Tjernlund Cc: Boris Brezillon Cc: linux-mtd@lists.infradead.org --- Changes since v2: - None. Changes since v1: - Split the patch v1 3/3. drivers/mtd/chips/cfi_cmdset_0002.c | 46 +++++++++++++++-------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c index c2e51768a02c..deffafab067e 100644 --- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c @@ -1884,38 +1884,40 @@ static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip, if (chip_good(map, adr, datum)) { xip_enable(map, chip, adr); - goto op_done; + break; } - if (time_after(jiffies, timeo)) + if (time_after(jiffies, timeo)) { + ret = -EIO; break; + } /* Latency issues. Drop the lock, wait a while and retry */ UDELAY(map, chip, adr, 1); } - /* - * Recovery from write-buffer programming failures requires - * the write-to-buffer-reset sequence. Since the last part - * of the sequence also works as a normal reset, we can run - * the same commands regardless of why we are here. - * See e.g. - * http://www.spansion.com/Support/Application%20Notes/MirrorBit_Write_Buffer_Prog_Page_Buffer_Read_AN.pdf - */ - cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, - cfi->device_type, NULL); - cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, - cfi->device_type, NULL); - cfi_send_gen_cmd(0xF0, cfi->addr_unlock1, chip->start, map, cfi, - cfi->device_type, NULL); - xip_enable(map, chip, adr); - /* FIXME - should have reset delay before continuing */ + if (ret) { + /* + * Recovery from write-buffer programming failures requires + * the write-to-buffer-reset sequence. Since the last part + * of the sequence also works as a normal reset, we can run + * the same commands regardless of why we are here. + * See e.g. + * http://www.spansion.com/Support/Application%20Notes/MirrorBit_Write_Buffer_Prog_Page_Buffer_Read_AN.pdf + */ + cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, + cfi->device_type, NULL); + cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, + cfi->device_type, NULL); + cfi_send_gen_cmd(0xF0, cfi->addr_unlock1, chip->start, map, cfi, + cfi->device_type, NULL); + xip_enable(map, chip, adr); + /* FIXME - should have reset delay before continuing */ - printk(KERN_WARNING "MTD %s(): software timeout, address:0x%.8lx.\n", - __func__, adr); + printk(KERN_WARNING "MTD %s(): software timeout, address:0x%.8lx.\n", + __func__, adr); + } - ret = -EIO; - op_done: chip->state = FL_READY; DISABLE_VPP(map); put_chip(map, chip, adr); From patchwork Thu Oct 25 16:32:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: IKEGAMI Tokunori X-Patchwork-Id: 989223 X-Patchwork-Delegate: boris.brezillon@free-electrons.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=allied-telesis.co.jp Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="ah4UmMHY"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42gtM517Kkz9sBk for ; Fri, 26 Oct 2018 03:46:57 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=wG4OjEJtgiHT9dJ70BIC472dbXCb3wE+gC8q6Zvr3X0=; b=ah4UmMHYnF0HodYDtqRHy6JwEa Rot6ntUCJIDImqBqRe4qn2fTfBu4sNJZXeCLRvVNqbwdsaMHMLLdEF979zrMPfgMHZcY7M3Ef4h1m 0nBIQeUNPBTuewdwTjOpotMI++gNACcsHsDKhd60dZ5JuCd1H9UGJX5rkjD6dyfw+l2Vc0A7Rs+Gf TsGcCuVXVGvI91o1/DNZkqRZFQ09ZzsGGQB2c9H0jYpzeSViP3EGmTMJSl+iMJe0qVartVcxNUfHk tL39YJIydt5SrMXgWavb2v2olp5Jtahpd6aHjcMYKAjJ8XOX2rN1crEEEbR/6EJ66gLc17G2n1JIH pIqvDaaQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFimP-0005Ei-FV; Thu, 25 Oct 2018 16:46:41 +0000 Received: from mail1.bemta23.messagelabs.com ([67.219.246.3]) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFiZ5-0004jJ-Gh for linux-mtd@lists.infradead.org; Thu, 25 Oct 2018 16:33:16 +0000 Received: from [67.219.246.100] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-3.bemta.az-b.us-east-1.aws.symcld.net id AE/8B-08438-920F1DB5; Thu, 25 Oct 2018 16:32:41 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNLMWRWlGSWpSXmKPExsUyLfyHiK7mh4v RBt/PyVrsblrG7sDosXlJfQBjFGtmXlJ+RQJrxrOFb9gLnvBWnHz/lq2B8Tp3FyMXh5DAXEaJ wzs3sEA4vxglJm2Zw9rFyMnBJmAqMf3VQkYQW0RATWJr/zlGkCJmgfuMEmfXvmPqYuTgEBZIl Jj1lx2khkVAVaL/0TMWEJtXwFFi99QVbCC2hIC8xMPj7WBzOAWcJDr+P2EGsYWAav72tkDZmh LPe74zgoyUEAiWWLswfwIj7wJGhlWMZklFmekZJbmJmTm6hgYGuoaGRrrGQJaRXmKVbpJeabF uamJxia6hXmJ5sV5xZW5yTopeXmrJJkZgoKQUMKftYLzann6IUZKDSUmUNzHlYrQQX1J+SmVG YnFGfFFpTmrxIUYZDg4lCV7e90A5waLU9NSKtMwcYMjCpCU4eJREeOe/A0rzFhck5hZnpkOkT jEqSonzXgFJCIAkMkrz4NpgcXKJUVZKmJeRgYFBiKcgtSg3swRV/hWjOAejkjBvDMh2nsy8Er jpr4AWMwEtnqFwAWRxSSJCSqqBcbKI8ZsVnIcLjI68j75l8fn+16Nvn16cxZi/fEpv0wGLo3O a1s7WXL5v9gdG5svrRQ/Wv7CSsf4x4ePtmqtbF7yfYrCStedCCcfsBWs663ZekTigl7urxOCr 1YuaV7oznfYUz16RvNnxEe/0Hb43NUvPiJ+zypJnfH69x/5ErRPz37nb/vXpC3MrsRRnJBpqM RcVJwIAiHK0Po4CAAA= X-Env-Sender: ikegami@allied-telesis.co.jp X-Msg-Ref: server-26.tower-384.messagelabs.com!1540485156!931210!5 X-Originating-IP: [150.87.248.20] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.14.24; banners=-,-,- X-VirusChecked: Checked Received: (qmail 5008 invoked from network); 25 Oct 2018 16:32:41 -0000 Received: from abricot-inet.allied-telesis.co.jp (HELO TKY-DS01.at.lc) (150.87.248.20) by server-26.tower-384.messagelabs.com with SMTP; 25 Oct 2018 16:32:41 -0000 Received: from swim-manx.rd.allied-telesis.co.jp ([150.87.21.50]) by TKY-DS01.at.lc with Microsoft SMTPSVC(8.0.9200.16384); Fri, 26 Oct 2018 01:32:36 +0900 Received: from ikegami-pc.rd.allied-telesis.co.jp by swim-manx.rd.allied-telesis.co.jp (AlliedTelesis SMTPRS 1.3 pl 1 ++E6B86F8C687C6288D9B5559052954DC9) with ESMTP id ; Fri, 26 Oct 2018 01:32:36 +0900 From: Tokunori Ikegami To: boris.brezillon@free-electrons.com Subject: [PATCH v3 04/11] mtd: cfi_cmdset_0002: Call xip_enable() once only in do_write_buffer(). Date: Fri, 26 Oct 2018 01:32:12 +0900 Message-Id: <20181025163219.25788-5-ikegami@allied-telesis.co.jp> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> References: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> X-OriginalArrivalTime: 25 Oct 2018 16:32:36.0728 (UTC) FILETIME=[56BABF80:01D46C80] X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181025_093255_656736_B691780E X-CRM114-Status: GOOD ( 10.77 ) X-Spam-Score: -0.0 (/) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [67.219.246.3 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [67.219.246.3 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tokunori Ikegami , Joakim Tjernlund , Chris Packham , linux-mtd@lists.infradead.org, Fabio Bettoni MIME-Version: 1.0 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org By the removed goto statement it can be called xip_enable() once. Also for a maintainability refactor it to call the function only once. Signed-off-by: Tokunori Ikegami Cc: Fabio Bettoni Co: Hauke Mehrtens Co: Koen Vandeputte Cc: Chris Packham Cc: Joakim Tjernlund Cc: Boris Brezillon Cc: linux-mtd@lists.infradead.org --- Changes since v2: - None. Changes since v1: - Split from the patch v1 3/3. drivers/mtd/chips/cfi_cmdset_0002.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c index deffafab067e..a3fa2d7b1ba0 100644 --- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c @@ -1882,10 +1882,8 @@ static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip, continue; } - if (chip_good(map, adr, datum)) { - xip_enable(map, chip, adr); + if (chip_good(map, adr, datum)) break; - } if (time_after(jiffies, timeo)) { ret = -EIO; @@ -1911,13 +1909,14 @@ static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip, cfi->device_type, NULL); cfi_send_gen_cmd(0xF0, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL); - xip_enable(map, chip, adr); /* FIXME - should have reset delay before continuing */ printk(KERN_WARNING "MTD %s(): software timeout, address:0x%.8lx.\n", __func__, adr); } + xip_enable(map, chip, adr); + chip->state = FL_READY; DISABLE_VPP(map); put_chip(map, chip, adr); From patchwork Thu Oct 25 16:32:13 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: IKEGAMI Tokunori X-Patchwork-Id: 989213 X-Patchwork-Delegate: boris.brezillon@free-electrons.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=allied-telesis.co.jp Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="H7dJEdOT"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42gt5N4WRyz9sBk for ; Fri, 26 Oct 2018 03:35:04 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=4mDK5LpTcLe3eV5tgvcoPz9P5kA9MP1GxK+aPx/rXu4=; b=H7dJEdOTM2txVPJL4ui6JomO2z bxOs9OLrqOWEOVD0NvqAWhHkooGBrbD7qxbO0O1S9NxhGuYEVnyNJWyXd5mDYhOte7geQGEScHQO/ MNeyqirSuIxqSSwGKtA+ouBhTtb3sYprKMNGnxmoslEWTfdlQG2IUoKqnO0PPGiQr9yNV9IX2nuj8 11G/xazMRfxbS5TKYPIGzIzvLIA3lNkTUBx82xgyt9UVAnRatwF0TfJZK0V/QUB1KfJYxva4gJHED KQKjg3/MCYKCWW/2s0B8rsekw632rnFuUM3xHiwISJG8PY/TPyxL8TGXEb3MlU7348ieeotL8LOAU hsPLM/9Q==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFias-0005Uz-I5; Thu, 25 Oct 2018 16:34:46 +0000 Received: from mail1.bemta23.messagelabs.com ([67.219.246.212]) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFiZ3-0004jU-D3 for linux-mtd@lists.infradead.org; Thu, 25 Oct 2018 16:33:07 +0000 Received: from [67.219.246.100] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-2.bemta.az-b.us-east-1.aws.symcld.net id D2/17-10938-A20F1DB5; Thu, 25 Oct 2018 16:32:42 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrLLMWRWlGSWpSXmKPExsUyLfyHiK7Wh4v RBh9WSFvsblrG7sDosXlJfQBjFGtmXlJ+RQJrxqqdLxgLXilW3L20h62BsU+mi5GLQ0hgLqPE kasrWSCcX4wS989cBHI4OdgETCWmv1rICGKLCKhJbO0/xwhSxCxwn1Hi7Np3TCAJYYEEid2bt oDZLAKqEocvPWMDsXkFHCVmbHsMNkhCQF7i4fF2sEGcAk4SHf+fMIPYQkA1f3tboGxNiec93x kh6oMlrjTtYZzAyLuAkWEVo1lSUWZ6RkluYmaOrqGBga6hoZEukDQy00us0k3SKy3WTU0sLtE 11EssL9YrrsxNzknRy0st2cQIDJaUAoa6HYw/lqYfYpTkYFIS5U1MuRgtxJeUn1KZkVicEV9U mpNafIhRhoNDSYKX9z1QTrAoNT21Ii0zBxi2MGkJDh4lEd7574DSvMUFibnFmekQqVOMilLiv FdAEgIgiYzSPLg2WKxcYpSVEuZlZGBgEOIpSC3KzSxBlX/FKM7BqCTMuwJkCk9mXgnc9FdAi5 mAFs9QuACyuCQRISXVwFgo6Mk+OSWNf9YW3t11V/Z/sgkPOXV5iVbEA/6QunUxscEq/PNiJ+Q mSiZ9OXhgH0PeZp/b4mwhD/pW/J3O/4N3lQz/sT3/1220M+spuHPApNvMIuxdYLjGqrANm179 PrTLc+2n5+LePhPunNm0tyf5gfbxlyu7s1yUdr2oXD/Hrmzd2avX19crsRRnJBpqMRcVJwIAz Gro5JACAAA= X-Env-Sender: ikegami@allied-telesis.co.jp X-Msg-Ref: server-26.tower-384.messagelabs.com!1540485156!931210!6 X-Originating-IP: [150.87.248.20] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.14.24; banners=-,-,- X-VirusChecked: Checked Received: (qmail 5015 invoked from network); 25 Oct 2018 16:32:42 -0000 Received: from abricot-inet.allied-telesis.co.jp (HELO TKY-DS01.at.lc) (150.87.248.20) by server-26.tower-384.messagelabs.com with SMTP; 25 Oct 2018 16:32:42 -0000 Received: from swim-manx.rd.allied-telesis.co.jp ([150.87.21.50]) by TKY-DS01.at.lc with Microsoft SMTPSVC(8.0.9200.16384); Fri, 26 Oct 2018 01:32:37 +0900 Received: from ikegami-pc.rd.allied-telesis.co.jp by swim-manx.rd.allied-telesis.co.jp (AlliedTelesis SMTPRS 1.3 pl 1 ++E6B86F8C687C6288D9B5559052954DC9) with ESMTP id ; Fri, 26 Oct 2018 01:32:36 +0900 From: Tokunori Ikegami To: boris.brezillon@free-electrons.com Subject: [PATCH v3 05/11] mtd: cfi_cmdset_0002: Split do_write_oneword() to reduce function size Date: Fri, 26 Oct 2018 01:32:13 +0900 Message-Id: <20181025163219.25788-6-ikegami@allied-telesis.co.jp> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> References: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> X-OriginalArrivalTime: 25 Oct 2018 16:32:37.0011 (UTC) FILETIME=[56E5EE30:01D46C80] X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181025_093253_556351_1F3E4693 X-CRM114-Status: GOOD ( 16.10 ) X-Spam-Score: -0.0 (/) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [67.219.246.212 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [67.219.246.212 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tokunori Ikegami , Joakim Tjernlund , Chris Packham , linux-mtd@lists.infradead.org, Fabio Bettoni MIME-Version: 1.0 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Reduce the size of do_write_oneword() by extracting a helper function for the hardware access. Signed-off-by: Tokunori Ikegami Reviewed-by: Chris Packham Cc: Fabio Bettoni Co: Hauke Mehrtens Co: Koen Vandeputte Cc: Chris Packham Cc: Joakim Tjernlund Cc: Boris Brezillon Cc: linux-mtd@lists.infradead.org --- Changes since v2: - Just update the commit message for the comment - Add Reviewed-by tag. Changes since v1: - Add the patch. drivers/mtd/chips/cfi_cmdset_0002.c | 89 ++++++++++++++++------------- 1 file changed, 50 insertions(+), 39 deletions(-) diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c index a3fa2d7b1ba0..ae2d8bd7154e 100644 --- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c @@ -1547,11 +1547,10 @@ static int cfi_amdstd_lock_user_prot_reg(struct mtd_info *mtd, loff_t from, do_otp_lock, 1); } -static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip, - unsigned long adr, map_word datum, - int mode) +static int __xipram do_write_oneword_once(struct map_info *map, struct flchip *chip, + unsigned long adr, map_word datum, + int mode, struct cfi_private *cfi) { - struct cfi_private *cfi = map->fldrv_priv; unsigned long timeo = jiffies + HZ; /* * We use a 1ms + 1 jiffies generic timeout for writes (most devices @@ -1564,42 +1563,7 @@ static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip, */ unsigned long uWriteTimeout = (HZ / 1000) + 1; int ret = 0; - map_word oldd; - int retry_cnt = 0; - - adr += chip->start; - - mutex_lock(&chip->mutex); - ret = get_chip(map, chip, adr, mode); - if (ret) { - mutex_unlock(&chip->mutex); - return ret; - } - pr_debug("MTD %s(): WRITE 0x%.8lx(0x%.8lx)\n", - __func__, adr, datum.x[0]); - - if (mode == FL_OTP_WRITE) - otp_enter(map, chip, adr, map_bankwidth(map)); - - /* - * Check for a NOP for the case when the datum to write is already - * present - it saves time and works around buggy chips that corrupt - * data at other locations when 0xff is written to a location that - * already contains 0xff. - */ - oldd = map_read(map, adr); - if (map_word_equal(map, oldd, datum)) { - pr_debug("MTD %s(): NOP\n", - __func__); - goto op_done; - } - - XIP_INVAL_CACHED_RANGE(map, adr, map_bankwidth(map)); - ENABLE_VPP(map); - xip_disable(map, chip, adr); - - retry: cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL); cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, cfi->device_type, NULL); cfi_send_gen_cmd(0xA0, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL); @@ -1642,6 +1606,53 @@ static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip, UDELAY(map, chip, adr, 1); } + return ret; +} + +static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip, + unsigned long adr, map_word datum, + int mode) +{ + struct cfi_private *cfi = map->fldrv_priv; + int ret = 0; + map_word oldd; + int retry_cnt = 0; + + adr += chip->start; + + mutex_lock(&chip->mutex); + ret = get_chip(map, chip, adr, mode); + if (ret) { + mutex_unlock(&chip->mutex); + return ret; + } + + pr_debug("MTD %s(): WRITE 0x%.8lx(0x%.8lx)\n", + __func__, adr, datum.x[0]); + + if (mode == FL_OTP_WRITE) + otp_enter(map, chip, adr, map_bankwidth(map)); + + /* + * Check for a NOP for the case when the datum to write is already + * present - it saves time and works around buggy chips that corrupt + * data at other locations when 0xff is written to a location that + * already contains 0xff. + */ + oldd = map_read(map, adr); + if (map_word_equal(map, oldd, datum)) { + pr_debug("MTD %s(): NOP\n", + __func__); + goto op_done; + } + + XIP_INVAL_CACHED_RANGE(map, adr, map_bankwidth(map)); + ENABLE_VPP(map); + xip_disable(map, chip, adr); + + retry: + ret = do_write_oneword_once(map, chip, adr, datum, mode, cfi); + /* Did we succeed? */ if (ret) { /* reset on all failures. */ From patchwork Thu Oct 25 16:32:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: IKEGAMI Tokunori X-Patchwork-Id: 989215 X-Patchwork-Delegate: boris.brezillon@free-electrons.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=allied-telesis.co.jp Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="rN+LBXGp"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42gt6q6kLBz9sBk for ; Fri, 26 Oct 2018 03:36:19 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=ZiI2o+ePeh9GhUn906aNe3+FRqg1l85j7TfG2ZTR9Tg=; b=rN+LBXGpnh/5qbW7hnHYjTrfHI 3g1Gg8t+hztU7EWqmSUVKUhXCkf5fBO4DPm9FGoFkEmQqe7xoHEA7txIgDmZYzwzieix0+aoXbGdI RzcB9xPMrbyrbnOlF0Zy0zaBX78j3TkGz+d1CtzcM8jZqVVgdIDtbzBUHFj03+f7Twp9g7mRlZJ29 e79DszLoVeeAJj8XcsSdKvxw7x1D/gBki71U7XgnZAqgLfiw4Ny8oukbFMqmXWUPJAvW75G1H/pQD nd/UEUV1Mf8CKpPW8+VZLgmSsnnuusEMsaBDKamQLxB32XoXB9xU4NkkTl4BMF5HKlEh8sWNMbsGZ dZDunrHg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFicA-0007NR-Ar; Thu, 25 Oct 2018 16:36:06 +0000 Received: from mail1.bemta23.messagelabs.com ([67.219.246.5]) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFiZ4-0004jR-MJ for linux-mtd@lists.infradead.org; Thu, 25 Oct 2018 16:33:13 +0000 Received: from [67.219.246.100] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-5.bemta.az-b.us-east-1.aws.symcld.net id C1/E9-20483-B20F1DB5; Thu, 25 Oct 2018 16:32:43 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJLMWRWlGSWpSXmKPExsUyLfyHiK72h4v RBv8eSljsblrG7sDosXlJfQBjFGtmXlJ+RQJrxpJbS1gK1ktX/Li5m7WB8Y9YFyMXh5DAXEaJ I1dXskA4vxglXr7/xtbFyMnBJmAqMf3VQkYQW0RATWJr/zlGkCJmgfuMEmfXvmMCSQgLxEt8n d/J2sXIwcEioCrx94IYiMkr4Cix4qozSIWEgLzEw+PtYGM4BZwkOv4/YQaxhYBK/va2QNmaEs 97vjOCtEoIBEtcvMo8gZF3ASPDKkbTpKLM9IyS3MTMHF1DAwNdQ0MjXSNdM0O9xCrdJL3SYt3 UxOISXSC3vFivuDI3OSdFLy+1ZBMjMEhSCphsdzDuWJp+iFGSg0lJlDcx5WK0EF9SfkplRmJx RnxRaU5q8SFGGQ4OJQneme+AcoJFqempFWmZOcBwhUlLcPAoifDOB0nzFhck5hZnpkOkTjEqS onzXgFJCIAkMkrz4NpgMXKJUVZKmJeRgYFBiKcgtSg3swRV/hWjOAejkjDvCpApPJl5JXDTXw EtZgJaPEPhAsjikkSElFQDY/up1Nv/e+6tSJov67TVLk5uy9KOqGbjj6+2XW5LecM476plq9a Xg03t10wF3+U82K77h+/q+rDt71jfpiz+pVIrnswV/577bmrVqhAumQ3yFp59S+bsWmtvt13m tdEDliTZvAf/XBSPJJZ7uhpHVDTL31wxmzFEdBv/4ZcMYUoyCZPuS00QV2Ipzkg01GIuKk4EA DxhkeCMAgAA X-Env-Sender: ikegami@allied-telesis.co.jp X-Msg-Ref: server-26.tower-384.messagelabs.com!1540485156!931210!7 X-Originating-IP: [150.87.248.20] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.14.24; banners=-,-,- X-VirusChecked: Checked Received: (qmail 5023 invoked from network); 25 Oct 2018 16:32:43 -0000 Received: from abricot-inet.allied-telesis.co.jp (HELO TKY-DS01.at.lc) (150.87.248.20) by server-26.tower-384.messagelabs.com with SMTP; 25 Oct 2018 16:32:43 -0000 Received: from swim-manx.rd.allied-telesis.co.jp ([150.87.21.50]) by TKY-DS01.at.lc with Microsoft SMTPSVC(8.0.9200.16384); Fri, 26 Oct 2018 01:32:37 +0900 Received: from ikegami-pc.rd.allied-telesis.co.jp by swim-manx.rd.allied-telesis.co.jp (AlliedTelesis SMTPRS 1.3 pl 1 ++E6B86F8C687C6288D9B5559052954DC9) with ESMTP id ; Fri, 26 Oct 2018 01:32:36 +0900 From: Tokunori Ikegami To: boris.brezillon@free-electrons.com Subject: [PATCH v3 06/11] mtd: cfi_cmdset_0002: Split do_write_oneword() op_done goto statement Date: Fri, 26 Oct 2018 01:32:14 +0900 Message-Id: <20181025163219.25788-7-ikegami@allied-telesis.co.jp> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> References: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> X-OriginalArrivalTime: 25 Oct 2018 16:32:37.0120 (UTC) FILETIME=[56F69000:01D46C80] X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181025_093254_802018_A11B6924 X-CRM114-Status: GOOD ( 14.12 ) X-Spam-Score: -0.0 (/) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [67.219.246.5 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [67.219.246.5 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tokunori Ikegami , Joakim Tjernlund , Chris Packham , linux-mtd@lists.infradead.org, Fabio Bettoni MIME-Version: 1.0 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org To reduce function size and remove the goto statement split the op_done goto statement part into do_write_oneword_done() created a function. Also split the start part into do_write_oneword_start() to find easier pairs. Signed-off-by: Tokunori Ikegami Cc: Fabio Bettoni Co: Hauke Mehrtens Co: Koen Vandeputte Cc: Chris Packham Cc: Joakim Tjernlund Cc: Boris Brezillon Cc: linux-mtd@lists.infradead.org --- Changes since v2: - Change to split the start part of do_write_oneword() additionally. - Fix indentation to call pr_debug(). Changes since v1: - Add the patch. drivers/mtd/chips/cfi_cmdset_0002.c | 57 ++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 17 deletions(-) diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c index ae2d8bd7154e..5009c1941a50 100644 --- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c @@ -1609,6 +1609,40 @@ static int __xipram do_write_oneword_once(struct map_info *map, struct flchip *c return ret; } +static int __xipram do_write_oneword_start(struct map_info *map, + struct flchip *chip, + unsigned long adr, int mode) +{ + int ret = 0; + + mutex_lock(&chip->mutex); + + ret = get_chip(map, chip, adr, mode); + if (ret) { + mutex_unlock(&chip->mutex); + return ret; + } + + if (mode == FL_OTP_WRITE) + otp_enter(map, chip, adr, map_bankwidth(map)); + + return ret; +} + +static void __xipram do_write_oneword_done(struct map_info *map, + struct flchip *chip, + unsigned long adr, int mode) +{ + if (mode == FL_OTP_WRITE) + otp_exit(map, chip, adr, map_bankwidth(map)); + + chip->state = FL_READY; + DISABLE_VPP(map); + put_chip(map, chip, adr); + + mutex_unlock(&chip->mutex); +} + static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip, unsigned long adr, map_word datum, int mode) @@ -1620,19 +1654,14 @@ static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip, adr += chip->start; - mutex_lock(&chip->mutex); - ret = get_chip(map, chip, adr, mode); + pr_debug("MTD %s(): WRITE 0x%.8lx(0x%.8lx)\n", __func__, adr, + datum.x[0]); + + ret = do_write_oneword_start(map, chip, adr, mode); if (ret) { - mutex_unlock(&chip->mutex); return ret; } - pr_debug("MTD %s(): WRITE 0x%.8lx(0x%.8lx)\n", - __func__, adr, datum.x[0]); - - if (mode == FL_OTP_WRITE) - otp_enter(map, chip, adr, map_bankwidth(map)); - /* * Check for a NOP for the case when the datum to write is already * present - it saves time and works around buggy chips that corrupt @@ -1641,8 +1670,7 @@ static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip, */ oldd = map_read(map, adr); if (map_word_equal(map, oldd, datum)) { - pr_debug("MTD %s(): NOP\n", - __func__); + pr_debug("MTD %s(): NOP\n", __func__); goto op_done; } @@ -1670,12 +1698,7 @@ static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip, xip_enable(map, chip, adr); op_done: - if (mode == FL_OTP_WRITE) - otp_exit(map, chip, adr, map_bankwidth(map)); - chip->state = FL_READY; - DISABLE_VPP(map); - put_chip(map, chip, adr); - mutex_unlock(&chip->mutex); + do_write_oneword_done(map, chip, adr, mode); return ret; } From patchwork Thu Oct 25 16:32:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: IKEGAMI Tokunori X-Patchwork-Id: 989216 X-Patchwork-Delegate: boris.brezillon@free-electrons.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=allied-telesis.co.jp Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="T9uI8PNf"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42gt7V0TYyz9sBk for ; Fri, 26 Oct 2018 03:36:54 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=UA8r0Zx8y1k6hY93Au/mysLAWri9yZeSppysNixeBpY=; b=T9uI8PNfZTGOCF9j2sOq+supUC xsZ3y+Q4Q6fFtc0ieOYR2vBbxu0xP341OiERNRKdhXZmTGUBv8mm7i7oc7kluQtBGvhJy1R8xz74M R9h5dgRkgaqWg1M7/LZNF62nmQzLUaYrfb0sFZmvrV/5YO5No6evAkeZN/+XTJAKFjS2JTfHmKt6L PLsn54rnl7pmZ/gMe4NruQd5gdadJXca6OiYUFv/udwgNvf12IhNqK//M795vCosm95Aw5cCbdx/L erSclcNyqagK2hdUIjwUZhphGrSHyKbClGBVHob6AOfEAOY5gdL7yBQZ+vuZuuMPvVp19K1kEiraA zG/hbwvA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFici-0007e0-GX; Thu, 25 Oct 2018 16:36:40 +0000 Received: from mail1.bemta23.messagelabs.com ([67.219.246.1]) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFiZ5-0004je-CD for linux-mtd@lists.infradead.org; Thu, 25 Oct 2018 16:33:13 +0000 Received: from [67.219.246.100] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-1.bemta.az-b.us-east-1.aws.symcld.net id B6/BA-10856-C20F1DB5; Thu, 25 Oct 2018 16:32:44 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDLMWRWlGSWpSXmKPExsUyLfyHiK7Oh4v RBne7xSx2Ny1jd2D02LykPoAxijUzLym/IoE1Y/nbT8wFvdwV105UNDDe4Oxi5OIQEpjLKHHk 6koWCOcXo8TvrQuBHE4ONgFTiemvFjKC2CICahJb+88xghQxC9xnlDi79h0TSEJYIFXi4eWzY A0sAqoSH/efBWvgFXCUOHlrIViNhIC8xMPj7WBxTgEniY7/T5hBbCGgmr+9LVC2psTznu+MEP XBEm8ev2eawMi7gJFhFaNZUlFmekZJbmJmjq6hgYGuoaGRrrGukaGxXmKVbpJeabFuamJxia6 hXmJ5sV5xZW5yTopeXmrJJkZgqKQUMF/dwTi/I/0QoyQHk5Iob2LKxWghvqT8lMqMxOKM+KLS nNTiQ4wyHBxKEry874FygkWp6akVaZk5wKCFSUtw8CiJ8PqBpHmLCxJzizPTIVKnGBWlxHmvv ANKCIAkMkrz4NpgkXKJUVZKmJeRgYFBiKcgtSg3swRV/hWjOAejkjCvAsh4nsy8Erjpr4AWMw EtnqFwAWRxSSJCSqqBMYpRVHzJceNtPncsq99HPfz7fsa/qyI3Lfm2tqlrNqgveTg19szsiJ9 7P2jbTV/EzM7hekfu/2TjWRwnJp4/82NtTZSq7r5U7mN/ba8UChzZ73zBbtPvoMxEs55ts4SL 96+dqDf96r8lR9+4er3deL/DzKByb8lHj5e3TbMnX9vXenn/Sr/NU24psRRnJBpqMRcVJwIAR 94iCI8CAAA= X-Env-Sender: ikegami@allied-telesis.co.jp X-Msg-Ref: server-26.tower-384.messagelabs.com!1540485156!931210!8 X-Originating-IP: [150.87.248.20] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.14.24; banners=-,-,- X-VirusChecked: Checked Received: (qmail 5027 invoked from network); 25 Oct 2018 16:32:44 -0000 Received: from abricot-inet.allied-telesis.co.jp (HELO TKY-DS01.at.lc) (150.87.248.20) by server-26.tower-384.messagelabs.com with SMTP; 25 Oct 2018 16:32:44 -0000 Received: from swim-manx.rd.allied-telesis.co.jp ([150.87.21.50]) by TKY-DS01.at.lc with Microsoft SMTPSVC(8.0.9200.16384); Fri, 26 Oct 2018 01:32:37 +0900 Received: from ikegami-pc.rd.allied-telesis.co.jp by swim-manx.rd.allied-telesis.co.jp (AlliedTelesis SMTPRS 1.3 pl 1 ++E6B86F8C687C6288D9B5559052954DC9) with ESMTP id ; Fri, 26 Oct 2018 01:32:36 +0900 From: Tokunori Ikegami To: boris.brezillon@free-electrons.com Subject: [PATCH v3 07/11] mtd: cfi_cmdset_0002: Remove op_done goto statement from do_write_oneword() Date: Fri, 26 Oct 2018 01:32:15 +0900 Message-Id: <20181025163219.25788-8-ikegami@allied-telesis.co.jp> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> References: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> X-OriginalArrivalTime: 25 Oct 2018 16:32:37.0136 (UTC) FILETIME=[56F90100:01D46C80] X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181025_093255_536666_1BB70928 X-CRM114-Status: GOOD ( 10.45 ) X-Spam-Score: -0.0 (/) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [67.219.246.1 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [67.219.246.1 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tokunori Ikegami , Joakim Tjernlund , Chris Packham , linux-mtd@lists.infradead.org, Fabio Bettoni MIME-Version: 1.0 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org This is just to refactor the function by removing the goto statement. Signed-off-by: Tokunori Ikegami Cc: Fabio Bettoni Co: Hauke Mehrtens Co: Koen Vandeputte Cc: Chris Packham Cc: Joakim Tjernlund Cc: Boris Brezillon Cc: linux-mtd@lists.infradead.org --- Changes since v2: - Just rebased. Changes since v1: - Add the patch. drivers/mtd/chips/cfi_cmdset_0002.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c index 5009c1941a50..5fb986ea3243 100644 --- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c @@ -1671,7 +1671,8 @@ static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip, oldd = map_read(map, adr); if (map_word_equal(map, oldd, datum)) { pr_debug("MTD %s(): NOP\n", __func__); - goto op_done; + do_write_oneword_done(map, chip, adr, mode); + return ret; } XIP_INVAL_CACHED_RANGE(map, adr, map_bankwidth(map)); @@ -1697,7 +1698,6 @@ static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip, xip_enable(map, chip, adr); - op_done: do_write_oneword_done(map, chip, adr, mode); return ret; From patchwork Thu Oct 25 16:32:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: IKEGAMI Tokunori X-Patchwork-Id: 989217 X-Patchwork-Delegate: boris.brezillon@free-electrons.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=allied-telesis.co.jp Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="qdiHdCov"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42gt8q5QLTz9sBk for ; Fri, 26 Oct 2018 03:38:03 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=COePZyNrTzSfL9weyglXj0EShaepBxtIIuKMmHSncNE=; b=qdiHdCov4kXLbP7eOe/i+JTpEP DXEWAuf0YXKuqp3jNlKJHQ8vlQ/B0BTcbWCf9j+V/GLQ82dqu4jK1+P0wwlTX9dMyxjrn/YMujKlx 5mW0z5WwNq6JN4MrFEwQTTynvk0f587LJE1Mks4wq0AaDsbi8dBM0KQbShoxc1WvqfOZ9BN/Sxc6t 8Npp4+7ieOMdRHDNc9xCrmwMXzX17xLvL2s+ASsEGPx7+PIxFSUqim3Gp/SDBiFiKL1AN95zYozNC 2lkK8H/Vpp2M5QiFGbPTTSPF/2acgpIJpX4LG1ZIzXXFvfe44pEB9wxA8gJNlNaA9eERCISZyWVdv 7JP0M3ZQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFidp-000878-Ca; Thu, 25 Oct 2018 16:37:49 +0000 Received: from mail1.bemta23.messagelabs.com ([67.219.246.5]) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFiZN-0004jR-9V for linux-mtd@lists.infradead.org; Thu, 25 Oct 2018 16:33:35 +0000 Received: from [67.219.246.100] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-5.bemta.az-b.us-east-1.aws.symcld.net id B5/0A-20483-D20F1DB5; Thu, 25 Oct 2018 16:32:45 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNLMWRWlGSWpSXmKPExsUyLfyHiK7uh4v RBou3y1vsblrG7sDosXlJfQBjFGtmXlJ+RQJrxsqJBgXTeSsW3Wpka2Ccyt3FyMUhJDCXUeLI 1ZUsXYycQM4vRomDy9lBbDYBU4nprxYygtgiAmoSW/vPMYI0MAvcZ5Q4u/YdE0hCWCBZoqnzK 1gRi4CqxLE/D1hBbF4BR4kja3aB2RIC8hIPj7eD1XAKOEl0/H/CDLHMUeJvbwuUrSnxvOc7I0 R9sMSi/4vZJzDyLmBkWMVollSUmZ5RkpuYmaNraGCga2hopGsMZBnpJVbpJumVFuumJhaX6Br qJZYX6xVX5ibnpOjlpZZsYgQGSkoBc9oOxqvt6YcYJTmYlER5E1MuRgvxJeWnVGYkFmfEF5Xm pBYfYpTh4FCS4OV9D5QTLEpNT61Iy8wBhixMWoKDR0mEd/47oDRvcUFibnFmOkTqFKOilDjvF ZCEAEgiozQPrg0WJ5cYZaWEeRkZGBiEeApSi3IzS1DlXzGKczAqCfPGgGznycwrgZv+CmgxE9 DiGQoXQBaXJCKkpBoYo+UVPf3TFnX4vLr6+lRRuvOZnbEPZ/df0vvGdZdLKr17v/DD2hmbTH+ axeyY3MBlU6y2Nf33Ce/emp9T9yxc/XCVgSLjhzOp/c5uoRJRHz6nrfold3hn4KMI8Tutltz7 Fmk1uPNlTO9t/s3g2ZdcfMN31XV7zYkVmm1XhRYuPztX7NBOAT5VJZbijERDLeai4kQA0+TC2 o4CAAA= X-Env-Sender: ikegami@allied-telesis.co.jp X-Msg-Ref: server-26.tower-384.messagelabs.com!1540485156!931210!9 X-Originating-IP: [150.87.248.20] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.14.24; banners=-,-,- X-VirusChecked: Checked Received: (qmail 5031 invoked from network); 25 Oct 2018 16:32:45 -0000 Received: from abricot-inet.allied-telesis.co.jp (HELO TKY-DS01.at.lc) (150.87.248.20) by server-26.tower-384.messagelabs.com with SMTP; 25 Oct 2018 16:32:45 -0000 Received: from swim-manx.rd.allied-telesis.co.jp ([150.87.21.50]) by TKY-DS01.at.lc with Microsoft SMTPSVC(8.0.9200.16384); Fri, 26 Oct 2018 01:32:37 +0900 Received: from ikegami-pc.rd.allied-telesis.co.jp by swim-manx.rd.allied-telesis.co.jp (AlliedTelesis SMTPRS 1.3 pl 1 ++E6B86F8C687C6288D9B5559052954DC9) with ESMTP id ; Fri, 26 Oct 2018 01:32:37 +0900 From: Tokunori Ikegami To: boris.brezillon@free-electrons.com Subject: [PATCH v3 08/11] mtd: cfi_cmdset_0002: Remove retry goto statement from do_write_oneword() Date: Fri, 26 Oct 2018 01:32:16 +0900 Message-Id: <20181025163219.25788-9-ikegami@allied-telesis.co.jp> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> References: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> X-OriginalArrivalTime: 25 Oct 2018 16:32:37.0415 (UTC) FILETIME=[57239370:01D46C80] X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181025_093313_442382_CC8BF1B1 X-CRM114-Status: GOOD ( 11.74 ) X-Spam-Score: -0.0 (/) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [67.219.246.5 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [67.219.246.5 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tokunori Ikegami , Joakim Tjernlund , Chris Packham , linux-mtd@lists.infradead.org, Fabio Bettoni MIME-Version: 1.0 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org This is just to refactor the function by removing the goto statement. Change to use the for loop instead of the goto statement. Signed-off-by: Tokunori Ikegami Cc: Fabio Bettoni Co: Hauke Mehrtens Co: Koen Vandeputte Cc: Chris Packham Cc: Joakim Tjernlund Cc: Boris Brezillon Cc: linux-mtd@lists.infradead.org --- Changes since v2: - None. Changes since v1: - Add the patch. drivers/mtd/chips/cfi_cmdset_0002.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c index 5fb986ea3243..97e5b3948e20 100644 --- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c @@ -1679,21 +1679,17 @@ static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip, ENABLE_VPP(map); xip_disable(map, chip, adr); - retry: - ret = do_write_oneword_once(map, chip, adr, datum, mode, cfi); + for (retry_cnt = 0; retry_cnt < MAX_RETRIES; retry_cnt++) { + ret = do_write_oneword_once(map, chip, adr, datum, mode, cfi); + + /* Did we succeed? */ + if (!ret) + break; - /* Did we succeed? */ - if (ret) { /* reset on all failures. */ map_write(map, CMD(0xF0), chip->start); - /* FIXME - should have reset delay before continuing */ - if (++retry_cnt <= MAX_RETRIES) { - ret = 0; - goto retry; - } - - ret = -EIO; + /* FIXME - should have reset delay before continuing */ } xip_enable(map, chip, adr); From patchwork Thu Oct 25 16:32:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: IKEGAMI Tokunori X-Patchwork-Id: 989218 X-Patchwork-Delegate: boris.brezillon@free-electrons.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=allied-telesis.co.jp Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="W2cKY58E"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42gt9X27Y5z9sBk for ; Fri, 26 Oct 2018 03:38:40 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=8cP99eGzPpThdyMW5CISs2dEvTU/dK33zPDAvc1hIlg=; b=W2cKY58EA7UMPrYuOfaKaVmy4H LoeJhkd62RZwGDTvgpHfh6yd+YUBirEmV4XAY3vpAC0ByF7NzRlFNkRpAh59TFcqiXVLzpKxFBTyf m5d63DPBpfkzSslFFp+ZSRjjeAXQXW34pE03E+TOgMxho1aBLY0G+VTw0S/tPi6WVv08JebKaD4/G jT5g3NDC75KUifSW/8R2EfRAobjlwT80fKQSJQxInBBUcr0RmB1JvSeEMOuj8oBI3Si0O2E91Yhc1 xoZuTSOPfn+Yoys2LskExzUTllSf8pk8ZWLAzp0hGLKGc8A1tRGCzP91HeNpVuPUXyUIn67M3Z9gR 7aJZAfag==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFieO-0008Lm-Dx; Thu, 25 Oct 2018 16:38:24 +0000 Received: from mail1.bemta23.messagelabs.com ([67.219.246.4]) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFiZM-0004jV-Le for linux-mtd@lists.infradead.org; Thu, 25 Oct 2018 16:33:37 +0000 Received: from [67.219.246.100] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-4.bemta.az-b.us-east-1.aws.symcld.net id D6/E9-11320-E20F1DB5; Thu, 25 Oct 2018 16:32:46 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpnkeJIrShJLcpLzFFi42KZFv5DRFfvw8V og8vnZCx2Ny1jd2D02LykPoAxijUzLym/IoE1Y+u1gII3YhXbNh1lb2DcKdzFyMUhJDCXUeLI 1ZUsXYycQM4vRonV88JAbDYBU4nprxYygtgiAmoSW/vPMYI0MAvcZ5Q4u/YdE0hCWCBEYuKCX +wgNouAqsTu71OZQWxeASeJVXt3gNVICMhLPDzeDjaIEyje8f8JM8QyR4m/vS1QtqbE857vjB D1wRLb+nazTmDkXcDIsIrRLKkoMz2jJDcxM0fX0MBA19DQSNdY19DIUi+xSjdJr7RYNzWxuET XUC+xvFivuDI3OSdFLy+1ZBMjMFBSCpgbdzBubEk/xCjJwaQkypuYcjFaiC8pP6UyI7E4I76o NCe1+BCjDAeHkgQv73ugnGBRanpqRVpmDjBkYdISHDxKIrx+IGne4oLE3OLMdIjUKUZdjr5ZH TOYhVjy8vNSpcR5r7wDKhIAKcoozYMbAYufS4yyUsK8jAwMDEI8BalFuZklqPKvGMU5GJWEeR VAVvFk5pXAbXoFdAQT0BEzFC6AHFGSiJCSamB0mxcn8PvNMdabZcrmLxbP92hVnysalL3wmu/ JY5Hf3n1YYTzja2zTPnnx93kx3/aYJj6oK+A/PfFW39+rivKrf6648/HqVj6Biqle++d4s89U 51fco/nDvu1+vwhPzoTTNkkRqZd516lerZinz8HnHl5gwmWya7P/ZM9f1292q60+JRpw4GOcE ktxRqKhFnNRcSIA6nuAcZoCAAA= X-Env-Sender: ikegami@allied-telesis.co.jp X-Msg-Ref: server-26.tower-384.messagelabs.com!1540485156!931210!10 X-Originating-IP: [150.87.248.20] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.14.24; banners=-,-,- X-VirusChecked: Checked Received: (qmail 5041 invoked from network); 25 Oct 2018 16:32:46 -0000 Received: from abricot-inet.allied-telesis.co.jp (HELO TKY-DS01.at.lc) (150.87.248.20) by server-26.tower-384.messagelabs.com with SMTP; 25 Oct 2018 16:32:46 -0000 Received: from swim-manx.rd.allied-telesis.co.jp ([150.87.21.50]) by TKY-DS01.at.lc with Microsoft SMTPSVC(8.0.9200.16384); Fri, 26 Oct 2018 01:32:37 +0900 Received: from ikegami-pc.rd.allied-telesis.co.jp by swim-manx.rd.allied-telesis.co.jp (AlliedTelesis SMTPRS 1.3 pl 1 ++E6B86F8C687C6288D9B5559052954DC9) with ESMTP id ; Fri, 26 Oct 2018 01:32:37 +0900 From: Tokunori Ikegami To: boris.brezillon@free-electrons.com Subject: [PATCH v3 09/11] mtd: cfi_cmdset_0002: Split write-to-buffer-reset sequence Date: Fri, 26 Oct 2018 01:32:17 +0900 Message-Id: <20181025163219.25788-10-ikegami@allied-telesis.co.jp> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> References: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> X-OriginalArrivalTime: 25 Oct 2018 16:32:37.0543 (UTC) FILETIME=[57371B70:01D46C80] X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181025_093312_855359_3F8112F2 X-CRM114-Status: GOOD ( 12.50 ) X-Spam-Score: -0.0 (/) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [67.219.246.4 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [67.219.246.4 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tokunori Ikegami , Joakim Tjernlund , Chris Packham , linux-mtd@lists.infradead.org, Fabio Bettoni MIME-Version: 1.0 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Just refactor to split the sequence from do_write_buffer(). Signed-off-by: Tokunori Ikegami Cc: Fabio Bettoni Co: Hauke Mehrtens Co: Koen Vandeputte Cc: Chris Packham Cc: Joakim Tjernlund Cc: Boris Brezillon Cc: linux-mtd@lists.infradead.org --- Changes since v2: - None. Changes since v1: - Add the patch. drivers/mtd/chips/cfi_cmdset_0002.c | 38 +++++++++++++++++------------ 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c index 97e5b3948e20..b54599cb6ae5 100644 --- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c @@ -1823,6 +1823,27 @@ static int cfi_amdstd_write_words(struct mtd_info *mtd, loff_t to, size_t len, return 0; } +static void __xipram do_write_buffer_reset(struct map_info *map, + struct flchip *chip, + struct cfi_private *cfi) +{ + /* + * Recovery from write-buffer programming failures requires + * the write-to-buffer-reset sequence. Since the last part + * of the sequence also works as a normal reset, we can run + * the same commands regardless of why we are here. + * See e.g. + * http://www.spansion.com/Support/Application%20Notes/MirrorBit_Write_Buffer_Prog_Page_Buffer_Read_AN.pdf + */ + cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, + cfi->device_type, NULL); + cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, + cfi->device_type, NULL); + cfi_send_gen_cmd(0xF0, cfi->addr_unlock1, chip->start, map, cfi, + cfi->device_type, NULL); + + /* FIXME - should have reset delay before continuing */ +} /* * FIXME: interleaved mode not tested, and probably not supported! @@ -1925,22 +1946,7 @@ static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip, } if (ret) { - /* - * Recovery from write-buffer programming failures requires - * the write-to-buffer-reset sequence. Since the last part - * of the sequence also works as a normal reset, we can run - * the same commands regardless of why we are here. - * See e.g. - * http://www.spansion.com/Support/Application%20Notes/MirrorBit_Write_Buffer_Prog_Page_Buffer_Read_AN.pdf - */ - cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, - cfi->device_type, NULL); - cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, - cfi->device_type, NULL); - cfi_send_gen_cmd(0xF0, cfi->addr_unlock1, chip->start, map, cfi, - cfi->device_type, NULL); - /* FIXME - should have reset delay before continuing */ - + do_write_buffer_reset(map, chip, cfi); printk(KERN_WARNING "MTD %s(): software timeout, address:0x%.8lx.\n", __func__, adr); } From patchwork Thu Oct 25 16:32:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: IKEGAMI Tokunori X-Patchwork-Id: 989220 X-Patchwork-Delegate: boris.brezillon@free-electrons.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=allied-telesis.co.jp Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="SnJC+Dry"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42gtBs0W6Sz9sBk for ; Fri, 26 Oct 2018 03:39:49 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=ad+MZCErH80/vBiMhPUOmtyLabqIWk6nCThOLu6lXe8=; b=SnJC+DrysAWZ1nrivkUx15/Kwq 9+czC1YPcE87T/3wp+kOhVOfKtsx3V+1lY+rQpTQiSC/vPl1Wnyvbfg14doPFTf3pJvPIzpx/RydB EX+NX2n/yRF4K14S1NeCmOSbstJRimCi5xjUUmcNwg7MGN6orvHddzkCFBakniQrp5u+TTNctfhoA 6J3XBNgBXqP6tI1mnDDTRS2P6ieiw16fztEI0mwyWwrlFD/d4H7BjOKvyyUN9SHiG2PxTF6XpChCu VATEKFjQBKH6078r2QHdQZQAdoexvDKhkqX6JONUjPiIX+qimuNFQPGKedXOnkrO+y7UYV0OIJawr 53nGObcQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFifY-0000PW-55; Thu, 25 Oct 2018 16:39:36 +0000 Received: from mail1.bemta23.messagelabs.com ([67.219.246.5]) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFiZj-0004jR-EF for linux-mtd@lists.infradead.org; Thu, 25 Oct 2018 16:35:35 +0000 Received: from [67.219.246.100] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-5.bemta.az-b.us-east-1.aws.symcld.net id B6/2A-20483-F20F1DB5; Thu, 25 Oct 2018 16:32:47 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNLMWRWlGSWpSXmKPExsUyLfyHiK7+h4v RBssfSlrsblrG7sDosXlJfQBjFGtmXlJ+RQJrRvv2o0wFP6Urdl4+y9LA2CfexcjFISQwl1Hi yNWVLBDOL0aJ+78WsXcxcnKwCZhKTH+1kBHEFhFQk9jaf44RpIhZ4D6jxNm175i6GDk4hAUSJ JbNKwMxWQRUJZ6+rQMp5xVwkrjz4g4biC0hIC/x8Hg72BhOoHjH/yfMILaQgKPE394WKFtT4n nPd0aI+mCJiyu62Ccw8i5gZFjFaJZUlJmeUZKbmJmja2hgoGtoaKRroGtkaKSXWKWbpFdarJu aWFyia6iXWF6sV1yZm5yTopeXWrKJERgoKQUMV3YwrluafohRkoNJSZQ3MeVitBBfUn5KZUZi cUZ8UWlOavEhRhkODiUJ3pnvgHKCRanpqRVpmTnAkIVJS3DwKInwzgdJ8xYXJOYWZ6ZDpE4xK kqJ814BSQiAJDJK8+DaYHFyiVFWSpiXkYGBQYinILUoN7MEVf4VozgHo5Iw7wqQKTyZeSVw01 8BLWYCWjxD4QLI4pJEhJRUA+OCFyt9/37r71tZv9/+/PMpt1Yt+VjCMctN+lwKm1j+4kyVRbc t87I8ucrkuguvHpx2Ytq7ao63PxbLOzaoreJvbRXxeOz+7/41bkvuvRxPrTkSfYPSXq0PvXdk xawl73MmpCxqe6nEsVxVsH3Gg6YJu47L2yaLeqa9+XlfX3WTea7ennWdm+uUWIozEg21mIuKE wFSm3JfjgIAAA== X-Env-Sender: ikegami@allied-telesis.co.jp X-Msg-Ref: server-26.tower-384.messagelabs.com!1540485156!931210!11 X-Originating-IP: [150.87.248.20] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.14.24; banners=-,-,- X-VirusChecked: Checked Received: (qmail 5082 invoked from network); 25 Oct 2018 16:32:47 -0000 Received: from abricot-inet.allied-telesis.co.jp (HELO TKY-DS01.at.lc) (150.87.248.20) by server-26.tower-384.messagelabs.com with SMTP; 25 Oct 2018 16:32:47 -0000 Received: from swim-manx.rd.allied-telesis.co.jp ([150.87.21.50]) by TKY-DS01.at.lc with Microsoft SMTPSVC(8.0.9200.16384); Fri, 26 Oct 2018 01:32:37 +0900 Received: from ikegami-pc.rd.allied-telesis.co.jp by swim-manx.rd.allied-telesis.co.jp (AlliedTelesis SMTPRS 1.3 pl 1 ++E6B86F8C687C6288D9B5559052954DC9) with ESMTP id ; Fri, 26 Oct 2018 01:32:37 +0900 From: Tokunori Ikegami To: boris.brezillon@free-electrons.com Subject: [PATCH v3 10/11] mtd: cfi_cmdset_0002: Split to wait write buffer to check if completed Date: Fri, 26 Oct 2018 01:32:18 +0900 Message-Id: <20181025163219.25788-11-ikegami@allied-telesis.co.jp> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> References: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> X-OriginalArrivalTime: 25 Oct 2018 16:32:37.0558 (UTC) FILETIME=[57396560:01D46C80] X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181025_093335_579541_967DB2E9 X-CRM114-Status: GOOD ( 14.79 ) X-Spam-Note: SpamAssassin invocation failed X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tokunori Ikegami , Joakim Tjernlund , Chris Packham , linux-mtd@lists.infradead.org, Fabio Bettoni MIME-Version: 1.0 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Just refactor to split the wait from do_write_buffer(). Signed-off-by: Tokunori Ikegami Cc: Fabio Bettoni Co: Hauke Mehrtens Co: Koen Vandeputte Cc: Chris Packham Cc: Joakim Tjernlund Cc: Boris Brezillon Cc: linux-mtd@lists.infradead.org --- Changes since v2: - None. Changes since v1: - Add the patch. drivers/mtd/chips/cfi_cmdset_0002.c | 81 ++++++++++++++++------------- 1 file changed, 46 insertions(+), 35 deletions(-) diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c index b54599cb6ae5..0188187939c8 100644 --- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c @@ -1823,6 +1823,51 @@ static int cfi_amdstd_write_words(struct mtd_info *mtd, loff_t to, size_t len, return 0; } +static int __xipram do_write_buffer_wait(struct map_info *map, + struct flchip *chip, unsigned long adr, + map_word datum) +{ + unsigned long timeo; + unsigned long uWriteTimeout; + int ret = 0; + + /* + * Timeout is calculated according to CFI data, if available. + * See more comments in cfi_cmdset_0002(). + */ + uWriteTimeout = usecs_to_jiffies(chip->buffer_write_time_max); + timeo = jiffies + uWriteTimeout; + + for (;;) { + if (chip->state != FL_WRITING) { + /* Someone's suspended the write. Sleep */ + DECLARE_WAITQUEUE(wait, current); + + set_current_state(TASK_UNINTERRUPTIBLE); + add_wait_queue(&chip->wq, &wait); + mutex_unlock(&chip->mutex); + schedule(); + remove_wait_queue(&chip->wq, &wait); + timeo = jiffies + (HZ / 2); /* FIXME */ + mutex_lock(&chip->mutex); + continue; + } + + if (chip_good(map, adr, datum)) + break; + + if (time_after(jiffies, timeo)) { + ret = -EIO; + break; + } + + /* Latency issues. Drop the lock, wait a while and retry */ + UDELAY(map, chip, adr, 1); + } + + return ret; +} + static void __xipram do_write_buffer_reset(struct map_info *map, struct flchip *chip, struct cfi_private *cfi) @@ -1853,13 +1898,6 @@ static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip, int len) { struct cfi_private *cfi = map->fldrv_priv; - unsigned long timeo = jiffies + HZ; - /* - * Timeout is calculated according to CFI data, if available. - * See more comments in cfi_cmdset_0002(). - */ - unsigned long uWriteTimeout = - usecs_to_jiffies(chip->buffer_write_time_max); int ret = -EIO; unsigned long cmd_adr; int z, words; @@ -1916,34 +1954,7 @@ static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip, adr, map_bankwidth(map), chip->word_write_time); - timeo = jiffies + uWriteTimeout; - - for (;;) { - if (chip->state != FL_WRITING) { - /* Someone's suspended the write. Sleep */ - DECLARE_WAITQUEUE(wait, current); - - set_current_state(TASK_UNINTERRUPTIBLE); - add_wait_queue(&chip->wq, &wait); - mutex_unlock(&chip->mutex); - schedule(); - remove_wait_queue(&chip->wq, &wait); - timeo = jiffies + (HZ / 2); /* FIXME */ - mutex_lock(&chip->mutex); - continue; - } - - if (chip_good(map, adr, datum)) - break; - - if (time_after(jiffies, timeo)) { - ret = -EIO; - break; - } - - /* Latency issues. Drop the lock, wait a while and retry */ - UDELAY(map, chip, adr, 1); - } + ret = do_write_buffer_wait(map, chip, adr, datum); if (ret) { do_write_buffer_reset(map, chip, cfi); From patchwork Thu Oct 25 16:32:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: IKEGAMI Tokunori X-Patchwork-Id: 989219 X-Patchwork-Delegate: boris.brezillon@free-electrons.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=allied-telesis.co.jp Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="uhiWbTdu"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42gtB9652Zz9sBk for ; Fri, 26 Oct 2018 03:39:13 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=Ycv6YUDydH1QNZ4ITyVOYt7dOr20G5WwhpKMTtzNlBo=; b=uhiWbTduFtc4c66Tm+47eltpUk EB9qGc8F+ybBn/4WZgoFGlKctKmn6GJjvRxjUY/MnXIovz+SN9TyTu5rPrOCkeA0Lde2HoyTsE/F4 wA4ErLJZ2jT9TvB4ckmDOSeWS50KNXSRCiRia+GvXwIT0N6tWMwkm7esAkfLxRPQNbpH8Rrffca87 8JwjNTOJG1lk52c1bkjF4heWQjnCIm+ieawevel3zgQdVzYT7Ch1s0k70hMJrptc8fxGcAFXUmNtN ZwS7atclcdwTG+AtS2hFZKGpNi/WH+GcFdWiJkKAvA8S/jwQyx7kduUNbk9G0plrRsgLgQSMzcG7e ZzvKxCBg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFif0-0000AJ-02; Thu, 25 Oct 2018 16:39:02 +0000 Received: from mail1.bemta23.messagelabs.com ([67.219.246.1]) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFiZN-0004je-Tb for linux-mtd@lists.infradead.org; Thu, 25 Oct 2018 16:33:35 +0000 Received: from [67.219.246.100] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-1.bemta.az-b.us-east-1.aws.symcld.net id 72/FA-10856-030F1DB5; Thu, 25 Oct 2018 16:32:48 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDLMWRWlGSWpSXmKPExsUyLfyHiK7Bh4v RBn2TxS12Ny1jd2D02LykPoAxijUzLym/IoE149+l1awFU0QrprRuYG1gPC/YxcjFISQwl1Hi yNWVLBDOL0aJX1NvADmcHGwCphLTXy1kBLFFBNQktvafYwQpYha4zyhxdu07JpCEsECsxOwda 5hBbBYBVYn5j1+BNfAKOElsm/sIrEZCQF7i4fF2sDgnULzj/xOweiEBR4m/vS1QtqbE857vQD UcQPXBEp2raicw8i5gZFjFaJZUlJmeUZKbmJmja2hgoGtoaKRroGtkaKSXWKWbpFdarJuaWFy ia6iXWF6sV1yZm5yTopeXWrKJERgqKQUMV3YwrluafohRkoNJSZQ3MeVitBBfUn5KZUZicUZ8 UWlOavEhRhkODiUJ3pnvgHKCRanpqRVpmTnAoIVJS3DwKInwzgdJ8xYXJOYWZ6ZDpE4xKkqJ8 14BSQiAJDJK8+DaYJFyiVFWSpiXkYGBQYinILUoN7MEVf4VozgHo5Iw7wqQKTyZeSVw018BLW YCWjxD4QLI4pJEhJRUA2NaPK+QqfjklM62q8ed/rSLeBRtSJY5n62Q0P2hsadGUVbeYNbM11P 9IrLk2x6zs2x8H39YKFwpjfuckco8tyU8D8yN4taL/eZWvXpyicGjw4bOvvlH5j+2mer7Y+Ua 5r0T9zabfLxSpPRNSsUjOdPywOGgvMN39S9qzHi+vvG0DNP+K6JRk5RYijMSDbWYi4oTAYimc iePAgAA X-Env-Sender: ikegami@allied-telesis.co.jp X-Msg-Ref: server-26.tower-384.messagelabs.com!1540485156!931210!12 X-Originating-IP: [150.87.248.20] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.14.24; banners=-,-,- X-VirusChecked: Checked Received: (qmail 5122 invoked from network); 25 Oct 2018 16:32:48 -0000 Received: from abricot-inet.allied-telesis.co.jp (HELO TKY-DS01.at.lc) (150.87.248.20) by server-26.tower-384.messagelabs.com with SMTP; 25 Oct 2018 16:32:48 -0000 Received: from swim-manx.rd.allied-telesis.co.jp ([150.87.21.50]) by TKY-DS01.at.lc with Microsoft SMTPSVC(8.0.9200.16384); Fri, 26 Oct 2018 01:32:37 +0900 Received: from ikegami-pc.rd.allied-telesis.co.jp by swim-manx.rd.allied-telesis.co.jp (AlliedTelesis SMTPRS 1.3 pl 1 ++E6B86F8C687C6288D9B5559052954DC9) with ESMTP id ; Fri, 26 Oct 2018 01:32:37 +0900 From: Tokunori Ikegami To: boris.brezillon@free-electrons.com Subject: [PATCH v3 11/11] mtd: cfi_cmdset_0002: Split do_write_oneword() to reduce exit paths Date: Fri, 26 Oct 2018 01:32:19 +0900 Message-Id: <20181025163219.25788-12-ikegami@allied-telesis.co.jp> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> References: <20181025163219.25788-1-ikegami@allied-telesis.co.jp> X-OriginalArrivalTime: 25 Oct 2018 16:32:37.0808 (UTC) FILETIME=[575F8B00:01D46C80] X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181025_093314_143286_4AE90933 X-CRM114-Status: GOOD ( 13.76 ) X-Spam-Score: -0.0 (/) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [67.219.246.1 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [67.219.246.1 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tokunori Ikegami , Joakim Tjernlund , Chris Packham , linux-mtd@lists.infradead.org, Fabio Bettoni MIME-Version: 1.0 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org The do_write_oneword_done() is called twice at the exit paths. By splitting the retry functionality it can be reduced to call once. Signed-off-by: Tokunori Ikegami Cc: Fabio Bettoni Co: Hauke Mehrtens Co: Koen Vandeputte Cc: Chris Packham Cc: Joakim Tjernlund Cc: Boris Brezillon Cc: linux-mtd@lists.infradead.org --- Changes since v1: - Add the patch. drivers/mtd/chips/cfi_cmdset_0002.c | 39 ++++++++++++++++++----------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c index 0188187939c8..d76af85cfe59 100644 --- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c @@ -1643,25 +1643,16 @@ static void __xipram do_write_oneword_done(struct map_info *map, mutex_unlock(&chip->mutex); } -static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip, - unsigned long adr, map_word datum, - int mode) +static int __xipram do_write_oneword_retry(struct map_info *map, + struct flchip *chip, + unsigned long adr, map_word datum, + int mode) { struct cfi_private *cfi = map->fldrv_priv; int ret = 0; map_word oldd; int retry_cnt = 0; - adr += chip->start; - - pr_debug("MTD %s(): WRITE 0x%.8lx(0x%.8lx)\n", __func__, adr, - datum.x[0]); - - ret = do_write_oneword_start(map, chip, adr, mode); - if (ret) { - return ret; - } - /* * Check for a NOP for the case when the datum to write is already * present - it saves time and works around buggy chips that corrupt @@ -1671,7 +1662,6 @@ static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip, oldd = map_read(map, adr); if (map_word_equal(map, oldd, datum)) { pr_debug("MTD %s(): NOP\n", __func__); - do_write_oneword_done(map, chip, adr, mode); return ret; } @@ -1694,6 +1684,27 @@ static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip, xip_enable(map, chip, adr); + return ret; +} + +static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip, + unsigned long adr, map_word datum, + int mode) +{ + int ret = 0; + + adr += chip->start; + + pr_debug("MTD %s(): WRITE 0x%.8lx(0x%.8lx)\n", __func__, adr, + datum.x[0]); + + ret = do_write_oneword_start(map, chip, adr, mode); + if (ret) { + return ret; + } + + ret = do_write_oneword_retry(map, chip, adr, datum, mode); + do_write_oneword_done(map, chip, adr, mode); return ret;