From patchwork Wed Feb 14 15:35:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: KOBAYASHI Yoshitake X-Patchwork-Id: 10219363 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 2C8B7601D7 for ; Wed, 14 Feb 2018 16:09:07 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1B6BE2000A for ; Wed, 14 Feb 2018 16:09:07 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 101502623D; Wed, 14 Feb 2018 16:09:07 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6C93A2000A for ; Wed, 14 Feb 2018 16:09:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1032116AbeBNQJF (ORCPT ); Wed, 14 Feb 2018 11:09:05 -0500 Received: from mfo1501.tsb.2iij.net ([210.149.48.176]:53557 "EHLO mfo.tsb.2iij.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1031979AbeBNQJE (ORCPT ); Wed, 14 Feb 2018 11:09:04 -0500 X-Greylist: delayed 1835 seconds by postgrey-1.27 at vger.kernel.org; Wed, 14 Feb 2018 11:09:04 EST Received: by mfo.tsb.2iij.net (tsb-mfo1501) id w1EFcU8c027941; Thu, 15 Feb 2018 00:38:30 +0900 Received: by mo.tsb.2iij.net (tsb-mo1500) id w1EFbuNM009691; Thu, 15 Feb 2018 00:37:56 +0900 Received: from unknown [172.27.153.190] (EHLO tsb-mr1502.hop.2iij.net) by mas1506.tsb.2iij.net(mxl_mta-7.2.4-7) with ESMTP id 4d7548a5.0.53846.00-663.108415.mas1506.tsb.2iij.net (envelope-from ); Thu, 15 Feb 2018 00:37:57 +0900 (JST) X-MXL-Hash: 5a8457d569c62f4e-5fa86ef81529849928ccf1c42f1abd8e0ddab7ef Received: from imx2.toshiba.co.jp (imx2.toshiba.co.jp [106.186.93.51]) by relay.tsb.2iij.net (tsb-mr1502) with ESMTP id w1EFbtcq005792; Thu, 15 Feb 2018 00:37:55 +0900 Received: from tsbmgw-mgw02.tsbmgw-mgw02.toshiba.co.jp ([133.199.200.50]) by imx2.toshiba.co.jp with ESMTP id w1EFbta5015190 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 15 Feb 2018 00:37:55 +0900 (JST) Received: from tsbmgw-mgw02 (localhost [127.0.0.1]) by tsbmgw-mgw02.tsbmgw-mgw02.toshiba.co.jp (8.13.8/8.14.5) with ESMTP id w1EFbtnK001003; Thu, 15 Feb 2018 00:37:55 +0900 Received: from localhost ([127.0.0.1]) by tsbmgw-mgw02 (JAMES SMTP Server 2.3.1) with SMTP ID 863; Thu, 15 Feb 2018 00:37:54 +0900 (JST) Received: from arc1.toshiba.co.jp ([133.199.194.235]) by tsbmgw-mgw02.tsbmgw-mgw02.toshiba.co.jp (8.13.8/8.14.5) with ESMTP id w1EFbsYf001000; Thu, 15 Feb 2018 00:37:54 +0900 Received: (from root@localhost) by arc1.toshiba.co.jp id w1EFbs1m010565; Thu, 15 Feb 2018 00:37:54 +0900 (JST) Received: from unknown [133.199.192.144] by arc1.toshiba.co.jp with ESMTP id AAA10564; Thu, 15 Feb 2018 00:37:54 +0900 Received: from mx11.toshiba.co.jp (mx11.toshiba.co.jp [133.199.90.141]) by ovp2.toshiba.co.jp with ESMTP id w1EFbsPm016376; Thu, 15 Feb 2018 00:37:54 +0900 (JST) Received: from BK2211.rdc.toshiba.co.jp by toshiba.co.jp id w1EFbs5J009070; Thu, 15 Feb 2018 00:37:54 +0900 (JST) Received: from vmkw1204.swc.toshiba.co.jp (localhost [127.0.0.1]) by BK2211.rdc.toshiba.co.jp (8.13.8+Sun/8.13.8) with ESMTP id w1EFbs5d024910; Thu, 15 Feb 2018 00:37:54 +0900 (JST) Received: from skerlet.swc.toshiba.co.jp (pftech04.swc.toshiba.co.jp [133.196.122.147]) by vmkw1204.swc.toshiba.co.jp (Postfix) with ESMTP id 10BCDC0462; Thu, 15 Feb 2018 00:37:54 +0900 (JST) From: KOBAYASHI Yoshitake To: boris.brezillon@free-electrons.com, richard@nod.at, dwmw2@infradead.org, computersforpeace@gmail.com, marek.vasut@gmail.com, cyrille.pitchen@wedev4u.fr, linux-mmc@vger.kernel.org Cc: linux-kernel@vger.kernel.org, KOBAYASHI Yoshitake Subject: [PATCH -next v4] mtd: nand: toshiba: Retrieve ECC requirements from extended ID Date: Thu, 15 Feb 2018 00:35:06 +0900 Message-Id: <1518622506-16606-1-git-send-email-yoshitake.kobayashi@toshiba.co.jp> X-Mailer: git-send-email 2.7.4 X-MAIL-FROM: X-SOURCE-IP: [172.27.153.190] X-Spam: exempt Sender: linux-mmc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch enables support to read the ECC strength and size from the NAND flash using Toshiba Memory SLC NAND extended-ID. This patch is based on the information of the 6th ID byte of the Toshiba Memory SLC NAND. Signed-off-by: KOBAYASHI Yoshitake --- drivers/mtd/nand/nand_toshiba.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/mtd/nand/nand_toshiba.c b/drivers/mtd/nand/nand_toshiba.c index 57df857..ab43f02 100644 --- a/drivers/mtd/nand/nand_toshiba.c +++ b/drivers/mtd/nand/nand_toshiba.c @@ -35,6 +35,32 @@ static void toshiba_nand_decode_id(struct nand_chip *chip) (chip->id.data[5] & 0x7) == 0x6 /* 24nm */ && !(chip->id.data[4] & 0x80) /* !BENAND */) mtd->oobsize = 32 * mtd->writesize >> 9; + + /* + * Extract ECC requirements from 6th id byte. + * For Toshiba SLC, ecc requrements are as follows: + * - 43nm: 1 bit ECC for each 512Byte is required. + * - 32nm: 4 bit ECC for each 512Byte is required. + * - 24nm: 8 bit ECC for each 512Byte is required. + */ + if (chip->id.len >= 6 && nand_is_slc(chip)) { + chip->ecc_step_ds = 512; + switch (chip->id.data[5] & 0x7) { + case 0x4: + chip->ecc_strength_ds = 1; + break; + case 0x5: + chip->ecc_strength_ds = 4; + break; + case 0x6: + chip->ecc_strength_ds = 8; + break; + default: + WARN(1, "Could not get ECC info"); + chip->ecc_step_ds = 0; + break; + } + } } static int toshiba_nand_init(struct nand_chip *chip)