From patchwork Fri Apr 26 09:08:54 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Huang Shijie X-Patchwork-Id: 239778 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:770:15f::2]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 4C6B62C01B3 for ; Fri, 26 Apr 2013 19:23:10 +1000 (EST) Received: from merlin.infradead.org ([2001:4978:20e::2]) by casper.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1UVeqf-0001SL-4n; Fri, 26 Apr 2013 09:21:48 +0000 Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1UVeqM-00065D-Oc; Fri, 26 Apr 2013 09:21:26 +0000 Received: from va3ehsobe005.messaging.microsoft.com ([216.32.180.31] helo=va3outboundpool.messaging.microsoft.com) by merlin.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1UVepx-0005zq-Uy for linux-mtd@lists.infradead.org; Fri, 26 Apr 2013 09:21:06 +0000 Received: from mail220-va3-R.bigfish.com (10.7.14.233) by VA3EHSOBE013.bigfish.com (10.7.40.63) with Microsoft SMTP Server id 14.1.225.23; Fri, 26 Apr 2013 09:20:58 +0000 Received: from mail220-va3 (localhost [127.0.0.1]) by mail220-va3-R.bigfish.com (Postfix) with ESMTP id B383464018D; Fri, 26 Apr 2013 09:20:58 +0000 (UTC) X-Forefront-Antispam-Report: CIP:70.37.183.190; KIP:(null); UIP:(null); IPV:NLI; H:mail.freescale.net; RD:none; EFVD:NLI X-SpamScore: 6 X-BigFish: VS6(z3121kzzz1f42h1fc6h1ee6h1de0h1fdah1202h1e76h1d1ah1d2ah1082kzz8275bhz2dh2a8h668h839hd24he5bhf0ah1288h12a5h12a9h12bdh12e5h137ah139eh13b6h1441h1504h1537h162dh1631h1758h1898h18e1h1946h19b5h1ad9h1b0ah1d0ch1155h) Received: from mail220-va3 (localhost.localdomain [127.0.0.1]) by mail220-va3 (MessageSwitch) id 1366968056279493_18383; Fri, 26 Apr 2013 09:20:56 +0000 (UTC) Received: from VA3EHSMHS042.bigfish.com (unknown [10.7.14.225]) by mail220-va3.bigfish.com (Postfix) with ESMTP id 38640300051; Fri, 26 Apr 2013 09:20:56 +0000 (UTC) Received: from mail.freescale.net (70.37.183.190) by VA3EHSMHS042.bigfish.com (10.7.99.52) with Microsoft SMTP Server (TLS) id 14.1.225.23; Fri, 26 Apr 2013 09:20:56 +0000 Received: from az84smr01.freescale.net (10.64.34.197) by 039-SN1MMR1-001.039d.mgd.msft.net (10.84.1.13) with Microsoft SMTP Server (TLS) id 14.2.328.11; Fri, 26 Apr 2013 09:20:55 +0000 Received: from shlinux2.ap.freescale.net (shlinux2.ap.freescale.net [10.192.224.44]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id r3Q9KZTh002714; Fri, 26 Apr 2013 02:20:52 -0700 From: Huang Shijie To: Subject: [PATCH V4 6/9] mtd: add ECC info for nand_flash_dev{} Date: Fri, 26 Apr 2013 17:08:54 +0800 Message-ID: <1366967337-5534-7-git-send-email-b32955@freescale.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1366967337-5534-1-git-send-email-b32955@freescale.com> References: <1366967337-5534-1-git-send-email-b32955@freescale.com> MIME-Version: 1.0 X-OriginatorOrg: freescale.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20130426_052102_278597_36DB2550 X-CRM114-Status: GOOD ( 10.53 ) X-Spam-Score: -2.6 (--) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-2.6 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [216.32.180.31 listed in list.dnswl.org] -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: Huang Shijie , computersforpeace@gmail.com, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, dedekind1@gmail.com X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Add an instance of an anonymous struct to store the ECC infor for full id nand chips. @ecc.strength: ECC correctability from the datasheet. @ecc.size: ECC size required by the @ecc.strength, Also add the necessary macros to make the code simple and clean. Signed-off-by: Huang Shijie --- include/linux/mtd/nand.h | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-) diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index 9b28739..5f1c0d1 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h @@ -625,6 +625,11 @@ struct nand_chip { { .name = (nm), {{ .dev_id = (devid) }}, .chipsize = (chipsz), \ .options = (opts) } +#define NAND_ECC_INFO(_strength, _size) \ + { .strength = (_strength), .size = (_size) } +#define NAND_ECC_STRENGTH(type) ((type)->ecc.strength) +#define NAND_ECC_SIZE(type) ((type)->ecc.size) + /** * struct nand_flash_dev - NAND Flash Device ID Structure * @name: a human-readable name of the NAND chip @@ -642,6 +647,12 @@ struct nand_chip { * @options: stores various chip bit options * @id_len: The valid length of the @id. * @oobsize: OOB size + * @ecc.strength: The ECC correctability from the datasheet, same as the + * @ecc_strength in nand_chip{}. + * @ecc.size: The ECC size required by the @ecc.strength, same as the + * @ecc_size in nand_chip{}. + * For example, the "4bit ECC for each 512Byte" can be set with + * NAND_ECC_INFO(4, 512). */ struct nand_flash_dev { char *name; @@ -658,6 +669,10 @@ struct nand_flash_dev { unsigned int options; uint16_t id_len; uint16_t oobsize; + struct { + uint16_t strength; + uint16_t size; + } ecc; }; /**