Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/811664/?format=api
{ "id": 811664, "url": "http://patchwork.ozlabs.org/api/patches/811664/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pwm/patch/20170908153604.28383-5-romain.izard.pro@gmail.com/", "project": { "id": 38, "url": "http://patchwork.ozlabs.org/api/projects/38/?format=api", "name": "Linux PWM development", "link_name": "linux-pwm", "list_id": "linux-pwm.vger.kernel.org", "list_email": "linux-pwm@vger.kernel.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20170908153604.28383-5-romain.izard.pro@gmail.com>", "list_archive_url": null, "date": "2017-09-08T15:35:58", "name": "[v1,04/10] mtd: nand: atmel: Avoid ECC errors when leaving backup mode", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "f92141d518e589c34ed4ec9a3dfc27daa659bde9", "submitter": { "id": 8236, "url": "http://patchwork.ozlabs.org/api/people/8236/?format=api", "name": "Romain Izard", "email": "romain.izard.pro@gmail.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-pwm/patch/20170908153604.28383-5-romain.izard.pro@gmail.com/mbox/", "series": [ { "id": 2238, "url": "http://patchwork.ozlabs.org/api/series/2238/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pwm/list/?series=2238", "date": "2017-09-08T15:35:55", "name": "Various patches for SAMA5D2 backup mode", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/2238/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/811664/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/811664/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<linux-pwm-owner@vger.kernel.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": [ "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=linux-pwm-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"SYkaLzzz\"; dkim-atps=neutral" ], "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xphX24qgVz9t3F\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat, 9 Sep 2017 01:46:58 +1000 (AEST)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1756590AbdIHPg0 (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tFri, 8 Sep 2017 11:36:26 -0400", "from mail-wm0-f66.google.com ([74.125.82.66]:34590 \"EHLO\n\tmail-wm0-f66.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S932217AbdIHPgW (ORCPT\n\t<rfc822;linux-pwm@vger.kernel.org>); Fri, 8 Sep 2017 11:36:22 -0400", "by mail-wm0-f66.google.com with SMTP id l19so1982886wmi.1;\n\tFri, 08 Sep 2017 08:36:21 -0700 (PDT)", "from localhost.localdomain (146.187.3.109.rev.sfr.net.\n\t[109.3.187.146]) by smtp.gmail.com with ESMTPSA id\n\tp199sm1689224wmb.28.2017.09.08.08.36.19\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tFri, 08 Sep 2017 08:36:20 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=owFYxnK787Ud9TRMMs531N3In48svKrtFKwYj7nv/wc=;\n\tb=SYkaLzzzj42t5HwnrN5eSgC16ZyBITDEfWmxnYfpJYXZSyoBcKaZ5d34/7pCC4hkVz\n\t+dvB8S4lUzjTvaUjo28oZBqpr5A3Xg8hjojPadq+qaP/XcVYYkGxQzd8gHnLhXy2muId\n\tSks6k6SyOTRP/kQKKcc8y2E8Si+F7QFjfB6Klr3knUG/jahcCY4wD6CBX9Di1kjihyxD\n\tOaKBH0rfAQmbyp+JJS4PJ4nq0ZyGj/rJxBZn8PWWiZJ3LNnIIJI/djy0YXofMCg+K8oE\n\tQF/4ez+ia9TwrFgPpkAE4EBE7GO1U/xH1BqMaAWiAqcc1UP/7geQ+AyTa+cRoWGGjsFC\n\twvrw==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=owFYxnK787Ud9TRMMs531N3In48svKrtFKwYj7nv/wc=;\n\tb=T0jajso9ZrV9B+JELvFTGp9mVWlAIcETj2XqAbkYhH0LlgBccNj0EwlCQ1G7h/N4mK\n\tmJfZD3nj5r3ATL0/0t9BS9BXESkn8jFNToDS17OllYb19yqyFeXPpQfSZ4cvJCQ/z+IE\n\te7p+Ur1R9broEVaHnCd8TKMtoWhaUcWjtfRgEzRbK9qiYHQUP4jt+OFj/w7FPnGLayhD\n\tb59yzJmOuXVPav8LHJ8UbgJNF9FiXYBolmxVykqL0FlwJKq0nBTsSf0rwfjqdAHigQly\n\tT/hkkkc1QfCnw/xuYDCmN5/YvQwjh89ky4tqIf7dweFnhncwEyxexxWfHsevr39ViMLC\n\tgxxQ==", "X-Gm-Message-State": "AHPjjUj8ady311g09M/JfRWsbBvDtephaPB5EFmw6rnV51rxnvPaPKhZ\n\tN0DG9wYRZ+SKHg==", "X-Google-Smtp-Source": "AOwi7QCmB90PGajvrxgyno2VImub4kajbKyF2GWBVPatSuwFadgLbD+aw60VWHb+Sa34/c73B1k9+g==", "X-Received": "by 10.28.136.11 with SMTP id k11mr97555wmd.133.1504884980591;\n\tFri, 08 Sep 2017 08:36:20 -0700 (PDT)", "From": "Romain Izard <romain.izard.pro@gmail.com>", "To": "Nicolas Ferre <nicolas.ferre@microchip.com>,\n\tBoris Brezillon <boris.brezillon@free-electrons.com>,\n\tMichael Turquette <mturquette@baylibre.com>,\n\tStephen Boyd <sboyd@codeaurora.org>,\n\tLudovic Desroches <ludovic.desroches@microchip.com>,\n\tJonathan Cameron <jic23@kernel.org>, Wenyou Yang <wenyou.yang@atmel.com>,\n\tJosh Wu <rainyfeeling@outlook.com>,\n\tDavid Woodhouse <dwmw2@infradead.org>,\n\tBrian Norris <computersforpeace@gmail.com>,\n\tMarek Vasut <marek.vasut@gmail.com>,\n\tCyrille Pitchen <cyrille.pitchen@wedev4u.fr>,\n\tThierry Reding <thierry.reding@gmail.com>,\n\tRichard Genoud <richard.genoud@gmail.com>,\n\tGreg Kroah-Hartman <gregkh@linuxfoundation.org>,\n\tAlan Stern <stern@rowland.harvard.edu>", "Cc": "linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org,\n\tlinux-iio@vger.kernel.org, linux-mtd@lists.infradead.org,\n\tlinux-pwm@vger.kernel.org, linux-serial@vger.kernel.org,\n\tlinux-usb@vger.kernel.org, linux-arm-kernel@lists.infradead.org,\n\tRomain Izard <romain.izard.pro@gmail.com>", "Subject": "[PATCH v1 04/10] mtd: nand: atmel: Avoid ECC errors when leaving\n\tbackup mode", "Date": "Fri, 8 Sep 2017 17:35:58 +0200", "Message-Id": "<20170908153604.28383-5-romain.izard.pro@gmail.com>", "X-Mailer": "git-send-email 2.11.0", "In-Reply-To": "<20170908153604.28383-1-romain.izard.pro@gmail.com>", "References": "<20170908153604.28383-1-romain.izard.pro@gmail.com>", "Sender": "linux-pwm-owner@vger.kernel.org", "Precedence": "bulk", "List-ID": "<linux-pwm.vger.kernel.org>", "X-Mailing-List": "linux-pwm@vger.kernel.org" }, "content": "During backup mode, the contents of all registers will be cleared as the\nSoC will be completely powered down. For a product that boots on NAND\nFlash memory, the bootloader will obviously use the related controller\nto read the Flash and correct any detected error in the memory, before\nhandling back control to the kernel's resuming entry point.\n\nIn normal devices, it is up to the driver's suspend/resume code to\nrestore the registers in a valid state. But the PMECC is not a regular\ndevice in the driver model when used with the legacy device tree binding\nfor the Atmel NAND controller, and suspend/resume code is not called.\n\nAs in my case the bootloader leaves the PMECC controller in a programmed\nstate, and the controller is only reset at boot or after a NAND access,\nthe first NAND Flash access with the Atmel controller will report\nuncorrectable ECC errors.\n\nTo avoid this, systematically reset the PMECC controller before using\nit.\n\nSigned-off-by: Romain Izard <romain.izard.pro@gmail.com>\n---\n drivers/mtd/nand/atmel/pmecc.c | 11 +++--------\n 1 file changed, 3 insertions(+), 8 deletions(-)", "diff": "diff --git a/drivers/mtd/nand/atmel/pmecc.c b/drivers/mtd/nand/atmel/pmecc.c\nindex 8c210a5776bc..8d1208f38025 100644\n--- a/drivers/mtd/nand/atmel/pmecc.c\n+++ b/drivers/mtd/nand/atmel/pmecc.c\n@@ -777,6 +777,9 @@ int atmel_pmecc_enable(struct atmel_pmecc_user *user, int op)\n \n \tmutex_lock(&user->pmecc->lock);\n \n+\twritel(PMECC_CTRL_RST, pmecc->regs.base + ATMEL_PMECC_CTRL);\n+\twritel(PMECC_CTRL_DISABLE, pmecc->regs.base + ATMEL_PMECC_CTRL);\n+\n \tcfg = user->cache.cfg;\n \tif (op == NAND_ECC_WRITE)\n \t\tcfg |= PMECC_CFG_WRITE_OP;\n@@ -797,10 +800,6 @@ EXPORT_SYMBOL_GPL(atmel_pmecc_enable);\n \n void atmel_pmecc_disable(struct atmel_pmecc_user *user)\n {\n-\tstruct atmel_pmecc *pmecc = user->pmecc;\n-\n-\twritel(PMECC_CTRL_RST, pmecc->regs.base + ATMEL_PMECC_CTRL);\n-\twritel(PMECC_CTRL_DISABLE, pmecc->regs.base + ATMEL_PMECC_CTRL);\n \tmutex_unlock(&user->pmecc->lock);\n }\n EXPORT_SYMBOL_GPL(atmel_pmecc_disable);\n@@ -856,10 +855,6 @@ static struct atmel_pmecc *atmel_pmecc_create(struct platform_device *pdev,\n \t/* Disable all interrupts before registering the PMECC handler. */\n \twritel(0xffffffff, pmecc->regs.base + ATMEL_PMECC_IDR);\n \n-\t/* Reset the ECC engine */\n-\twritel(PMECC_CTRL_RST, pmecc->regs.base + ATMEL_PMECC_CTRL);\n-\twritel(PMECC_CTRL_DISABLE, pmecc->regs.base + ATMEL_PMECC_CTRL);\n-\n \treturn pmecc;\n }\n \n", "prefixes": [ "v1", "04/10" ] }