From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753834AbcKAScv (ORCPT ); Tue, 1 Nov 2016 14:32:51 -0400 Received: from mail-bl2nam02on0095.outbound.protection.outlook.com ([104.47.38.95]:47506 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752077AbcKASct (ORCPT ); Tue, 1 Nov 2016 14:32:49 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=zach.brown@ni.com; Date: Tue, 1 Nov 2016 13:32:32 -0500 From: Zach Brown To: Boris Brezillon CC: , , , , , Subject: Re: [PATCH v3 3/5] mtd: nand: Add bb_per_lun and blocks_per_lun fields to nand_chip Message-ID: <20161101183231.GA13831@zach-desktop> References: <1477686464-7437-1-git-send-email-zach.brown@ni.com> <1477686464-7437-4-git-send-email-zach.brown@ni.com> <20161101145058.65317535@bbrezillon> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20161101145058.65317535@bbrezillon> User-Agent: Mutt/1.5.24 (2015-08-30) X-Originating-IP: [130.164.62.11] X-ClientProxiedBy: BY2PR11CA0039.namprd11.prod.outlook.com (10.163.150.49) To MWHPR04MB0625.namprd04.prod.outlook.com (10.172.166.138) X-MS-Office365-Filtering-Correlation-Id: 77ae31eb-4ef0-4d70-30b2-08d402857a28 X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB0625;2:8RpNRyn1wjM4eaGD0xVflfEz5ffXoOBB3TnAK8EBpzuv9nh1y/DpPioBBYlEiMO+qj7P/3yuMYlifKQKUxBMc0/TvNag8nfAODevlvg52rJijXEC/pYZcjRJRredlDVJVFoCPCYwh0/Nu05b5Gvf5XMY4Olmwischc8/Z+W5YOxARll6vdGSGsXUq5v/znE6wJEHyZhQVESThXDCApCT+w==;3:UVgjOHaTgnba8PMDOX0ydgYZ1D/r+j67Xp/mxvoWxjyIFrQSBI1/ST0ps5ZXTwdysxK8PtonvBkJfUl+CqQ5YnQH7tB3ZW/Y/t5uOhVm+BLMKnKqQj4qQAXhKJYtD2ipNLAtXrOOfT/JA1seDkvSMw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:MWHPR04MB0625; X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB0625;25:/XsenqRX3i7NwGVoUeF4cUMt9YJ0IQArTjjPrSwS4q1Niynm6nTprgM7YRMtTGDdj4lQpKQlGvWNJpADbO7gGjTrhIzV79lKWno8n8eK0bZ7hKSv50lrCgGL4B0V+77hHNO1Ex3Mi4jAZSLYoZVyyU52LiPeNcnzD89uq1JqkmSwAMpIpa+smtBHoBexrlrGCiM2SaG9xyAI6MnVX9XVtfa4p1z99FVEPmSqJPT+LsZOlkMJ37CIVBnycqbvgyD7KAfacoES8qfWRoxm2FCZuXyPx2ZEqz/mW8BQ97ZLXrP2z4jGmfExhCun2JcDyfrT0zva1zvScMlFcMp1rKHJg2gOxOyIaLSJf8cc+9El0E5i6SELUQxCycUevNWdDOOhjgzxrv9VoyvqKBkT4ssqGBdyDsdXiUnz0pM8/bGhNpPKBngNFC7AWADgf94vBXNKSOuB/OMNluTClW0vLWqzlf7wS5YJUgyIjBW7rBAUAvQbMVYtZeEI7wdQfzd30SCmHxKhLL9mYOo8Pyawz5qHRC5qAhapRb+DQQSsXELfB0bj+KNtDDHKx99/ng5JaW2azE0dwG+QyKLqXTSgXTBtuwZMYHm8DlTUHOoSO5TldHgM0RCx/bm8SNwM2hibucmIUA1iHphiZaQw4bZGwgzP51OopDFVc4NkjPX2U3JAFKTGRU31NME8WVJpKnVgyL5oNvWdpTGnnsFAgN0xkAPM3JWscd3+H+E0obGr4P3ARhE= X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB0625;31:aXZwE6PyKM+/4bjnEC7/4k+XsTs6upzwYITsl9+HZkvZPJpK9O3pwPu1Wi/GtD3RK+cQaP4unearaHY2I7SOqtc1A+uTyAqHh2bYXapUaWVVGsJEv/GxXC0r6R9qU8TYcPEU2G1NbhUthrou9shs5i1CcIPvenpKRq2xgPBw6mqHkKb74HpX8S1c833ywNnm3/b08dyoLS9/xXZrMeDw4haOyOC9ioTb8PxhTMlLpubYrLkX//DOYczx8mgxZveX;20:24OWHnmLx+4tLoGOpMIRi0usNsFlgdJ84PaCuLUK2hmnVCwv5RfeaMrECdb3oxqlcbs//XfTgzt8+ZZT9T9F8REMlmLUx3esr3laHnopZPjbeOnGVTpiRGPoJzRvguwxSr+NZJhsMp31s+AB7av7Xf3dz4+h85IZ2aNsN8VvsSdAxhSK5Wq6vyXrA4XPfnmwNUfIm5XAFf9HVPB6nAAiprlTa8tLpSh4BhGjp1LKNIA4MMvC/hmivuyQdqExbiFeQGBi1vuzQTpRjJWyk+1T2GVPD3V8Ler5C+LPEX0tUTDlrhhJN3WZ39SefK6rkNvm/RD129jOCLoBFYb+dhCDisRc+Coshwnapgm8mmTGOfvbocS1Yr+KNyzZ9E4oQ2/PlaJvxqDfNqDD/X4TU1jOrchAdt5eJu3rMuuO43wYF4NLnc8Et5MBOs6NS1GnKfTmyJXgmIaWG3L9ygUq7Me80n7u0+JsKK/0QNoVvEYqnLjZoibhRZI3DVB3nmMKEVfJxawWxLm9jzopKIGHrmyGz1YDHDbQi05f+De1I33zqqjOFOqQ9/2NXBXK0y1udLVBXeJ4kfTBzM+iS3QaG7dTTjGD8AFOu8PIqRkCjNDoSUE= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(145744241990776); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:MWHPR04MB0625;BCL:0;PCL:0;RULEID:;SRVR:MWHPR04MB0625; X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB0625;4:70IPT1sP/o1qCpRRQySUPEb/BV2QPgOl7gGE2s1ahkSKDS6QFT2emGmFFgfb37EG68uYnfY3QOLfNfOAs1kE0h5q4guqLk0bMU7idL2OqNJLOPIkK1KALXLXSR1byfFTqvAOSbahRCWm+YQS+7z30mrWnp5uqWn9TRAVG6ycLhrMjsPGdpPksMCW9U6NcZWD2hrwpivUAU/hUeL+FqJIXwOciU2tgAd4mIYLntgdN/8R1PK5Pn4nLKf+O4EVnjR3RnYfY0fMlPhRvvoNS/sJC7K73oZgfoDgA+SiLoEA6Wz9I8Gvx8uGfzs1ShHT/u7BYvK2uGmRXqMfyUE/zk2B5W3xKTRqcMLGRHYh+WoqVf11y0V7otjBleedTnsTZ12bgH8U+ioPNyAnv1UUxCnjJPMRiJ9XqyYSj6+TZp4GG49tzGM3PaOzDoIrucfJABSdkUi1MRFH3gTma5Rl5ys7Rg== X-Forefront-PRVS: 01136D2D90 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(7916002)(199003)(54094003)(24454002)(189002)(4001350100001)(4326007)(97756001)(50466002)(86362001)(83506001)(92566002)(66066001)(68736007)(101416001)(3846002)(33716001)(47776003)(305945005)(7736002)(97736004)(9686002)(105586002)(19580405001)(5660300001)(6116002)(46406003)(110136003)(7846002)(6916009)(106356001)(586003)(76176999)(8676002)(19580395003)(77096005)(81156014)(189998001)(2950100002)(54356999)(1076002)(6666003)(42186005)(2906002)(50986999)(81166006)(23726003)(33656002)(18370500001)(107986001);DIR:OUT;SFP:1102;SCL:1;SRVR:MWHPR04MB0625;H:zach-desktop;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;MWHPR04MB0625;23:btjsJkzroWeHrKduJXlwU/Pkzmq8GxD5+PV/v5lRc?= =?us-ascii?Q?HR3d+ATaC7VygCA7WsZ/onwwRVPwb+xGpc5eFlTG4Yr6l+HcKqLMj3+ALTfb?= =?us-ascii?Q?7pdPJni1LoVQ/6eMYCj+81sGafbqN5hpqTnNGYWlOgTbcJvj25bPKXEbeMpQ?= =?us-ascii?Q?t/7S2gkIjQY0ZM+djBJz6E+zZwFdR0R0kJkPGDYq+t6SETMpcPBclKPJafYQ?= =?us-ascii?Q?TDwpXus7bWxshpKvp9roNvfqCieEZdKGFtUvwlT8yTBpD5HdR97QyvMXRDTI?= =?us-ascii?Q?oc7qBaFOE9SBxxnQ0x6vxO+0hO/V2kmxZD60R96/hgQFmu8pyE5/lXqCW7CO?= =?us-ascii?Q?ioAkddmXbuEv0RTIqwwtLFZd0lmrINeAlBetvT6wcWh+jd4Tk6BEYO8P0oX7?= =?us-ascii?Q?22tv/tJPuHf4GIqIunCEYaDL0GQ/COXabt3IfEAKnaIRx2VMYn0FhJIZILdn?= =?us-ascii?Q?fx9HKcUH26brAYzJNup6MH+g0BCo4+WVzMMYNf3NILPHDDkJrZVGOD0RF6ZS?= =?us-ascii?Q?GNtCiQxLOvgVkNHx4WXMdnZgEGRmsiWTI7W5/QzAR5R+ga1KRlB+lzUTE8ac?= =?us-ascii?Q?9Sfe2V/gOs3IRRIvnAmP1/17BcnjuBxXVsFfv5kuGWqXOx9gxUV01hri1gee?= =?us-ascii?Q?kWFN85iRthBclPVgnJZjU4M3DrikMLeOAGkuV2/KEpY4DkQDJBxZQ1M+qsjp?= =?us-ascii?Q?78umsgN4yG662BsIMldlL2XvLifRukTqNdWeDNjalXdu7Mac2f7s4vI5BiZ0?= =?us-ascii?Q?yysuyETjFasROMWnx9r0AFco0uT+OboZbTUYBUUqCCKzQIyEfnrkOZUmj+Lo?= =?us-ascii?Q?3RiWbY0N0Z8x53cs9MM+XQijwCM6IcUI2+TXjHH+6SqX4MpcWnhmcgYbO5S+?= =?us-ascii?Q?A+/257bzvV/ANaOncG408l6L7iSmEOzrTFujyqSEPiyVGPHkaQAhipobxUey?= =?us-ascii?Q?OwFDUFEslGIrOYdZOcFylGGflLlCqmjrqmM/w3bCYCVm89GsZAriRdZbZfbm?= =?us-ascii?Q?A6zeb56eaHKJxADfesrGjD9nBCQkgHOE+vq1hM2LkbKp24lIbnMbF1qp5cnb?= =?us-ascii?Q?itGWJjAFwJCthweCw5o1jU6xgVno+msSjrhNTxGyTsf7ty1kiphq+7acBQ+3?= =?us-ascii?Q?LX75EHU9yUBHRqg7qIudiFKSLMcgHRKVlgXzDTq2VAaMIl6yoB7Vi6O+AGz8?= =?us-ascii?Q?8B+yjq3GXm93+PMse2T3UZgMR+DfOMlR7UpNPRICdfg9xrq1X/UHIte8I1f6?= =?us-ascii?Q?WrVvo/+e3TTI9MhIqY=3D?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR04MB0625;6:9ofiM6Ns/ml3FFbfzxyUqNifehVHFYbmOH+zDFTPjxGrbj1yZpmCBTbYGXpVau+MF7DadiZhRPCUr2I+PiE5lb0VK9duXek9DUKj7bKubE9Vo6Br9I70E1rv2Er6pG3WgQlWJwbERjalwgAWnNY9VeWECQHVKQIfQNACw5Z2tLKc9sXYhZKaz7FxataxTyfulfIZPcxT/Rt2V9dZZKFF6Q7SUBvSV2gmkTuj3C2HEa4nCyPbKeXHMt5l/kSoADlG/uUxmmzaj+0d95FZI2G+qoLhzmJAp9foyKe/hra+m1eGutYaPSRss4luv5qf8DaE;5:hmJjp7cfeui17VvDw1tkjEYLZ2aANqZTZ2HV3zK9HR/RT/HLrb9rSTXfOZPNGl5Zv+crWxL/5ItP3Pml/yhFlgv4++uIQxy5dZjgXK65TJD/VQQrFWFq/D1hdmZyTZtDWuHimtO+Fb8QxN+/iPRSJHqdhxywex9viTORvIBwmTA=;24:9f8yVlTp9b0PRWLSo38PRYkB/tb/78Fl5uYjKjCjrDxw33Jv8vzUnOYifbtbODmWdvTld77E8X5SfsUNsMpZHuKB3lvH/nsVb8n6ebsLEe8=;7:IZUq8qfME7SGMOsFjMlbRSVVKMZ3K3SjrHEaAsolvzM3y6aOwgcMlv55u+FToyEd92v8iSLppiQq8q7HiEp1KbXK/FL/a+aoffjiDfPC5G+oaFLs7nNeT1vBZf/9fiRgWaKOnmy9p7rm1cF9UfU4aUZuIK/KSb79KIqIkvzMw3sWI6l4Mpoa1WC9R+F4JhP49UnuUDVgDRFYILlWqaSFJLKUMMKp4DvZHWSK0/1hgagdRF+YmQipOBxkOKafcIoJN19wy1bWxZMrSX5uhebEKCpTs5ElS9O9xa/tPGX7nWvg7mZXVPjHB42VxBPv/BGJVg8mOJOMvvoBCJu1Bhy+0JPgQA/pK9gvRpie9x13AMY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: ni.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2016 18:32:46.2446 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR04MB0625 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Nov 01, 2016 at 02:50:58PM +0100, Boris Brezillon wrote: > On Fri, 28 Oct 2016 15:27:42 -0500 > Zach Brown wrote: > > > The fields bb_per_lun and blocks_per_lun are useful determining the > > number of bad blocks a MTD needs to allocate. How they are set will > > depend on if the chip is ONFI, JEDEC or a fuill-id entry in the nand_ids > > table. > > > > Signed-off-by: Zach Brown > > --- > > include/linux/mtd/nand.h | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h > > index c5d3d502..efbe439 100644 > > --- a/include/linux/mtd/nand.h > > +++ b/include/linux/mtd/nand.h > > @@ -771,6 +771,9 @@ nand_get_sdr_timings(const struct nand_data_interface *conf) > > * supported, 0 otherwise. > > * @jedec_params: [INTERN] holds the JEDEC parameter page when JEDEC is > > * supported, 0 otherwise. > > + * @bb_per_lun: [INTERN] the max number of bad blocks each LUN of a > > + * this nand device will encounter their life times. > > + * @blocks_per_lun: [INTERN] The number of PEBs in a LUN > > * @read_retries: [INTERN] the number of read retry modes supported > > * @onfi_set_features: [REPLACEABLE] set the features for ONFI nand > > * @onfi_get_features: [REPLACEABLE] get the features for ONFI nand > > @@ -853,6 +856,8 @@ struct nand_chip { > > struct nand_onfi_params onfi_params; > > struct nand_jedec_params jedec_params; > > }; > > + __le16 bb_per_lun; > > + __le32 blocks_per_lun; > > Two things I don't like here: > - you use little-endian types, while it should use native endianness. > Make it easier, and just declare those fields as int (or unsigned > int). > - you stick to the ONFI spec, while I'd prefer to see the term lun > replaced by die, and I wonder if we don't already have a field > storing the number of blocks per die (I might be wrong though). > I looked for an existing field for number of blocks per die and could not find it. Perhaps you were remembering chipsize? or numchips? I looked at how they were calculated and chipsize is a multiple of (blocks_per_lun * lun_count) so it can't be used to find blocks_per_lun without storing lun_count anyways. Let me know if you think I missed something.