Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932957AbbGUPSO (ORCPT ); Tue, 21 Jul 2015 11:18:14 -0400 Received: from mail-bn1on0054.outbound.protection.outlook.com ([157.56.110.54]:55472 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755459AbbGUPSM (ORCPT ); Tue, 21 Jul 2015 11:18:12 -0400 Authentication-Results: spf=fail (sender IP is 66.35.236.236) smtp.mailfrom=opensource.altera.com; gmail.com; dkim=none (message not signed) header.d=none; Authentication-Results: lists.infradead.org; dkim=none (message not signed) header.d=none; From: Graham Moore To: CC: David Woodhouse , Brian Norris , , Alan Tull , Dinh Nguyen , Yves Vandervennet , Graham Moore Subject: [PATCH] mtd: nand: denali: max_banks calculation changed in revision 5.1 Date: Tue, 21 Jul 2015 09:39:31 -0500 Message-ID: <1437489571-916-1-git-send-email-grmoore@opensource.altera.com> X-Mailer: git-send-email 1.7.9.5 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [64.129.157.38] X-ClientProxiedBy: BLUPR01CA050.prod.exchangelabs.com (25.160.23.40) To BL2PR03MB436.namprd03.prod.outlook.com (10.141.92.26) X-Microsoft-Exchange-Diagnostics-untrusted: 1;BL2PR03MB436;2:lQiFGsjpw9E8hUnFWMgSq6M4zA46G7bbeaPQtfmhPKlYvE/SxWFrEnvMhlByhVcv30qRSTY5BchzMZ2w1rSj0jJLIA+vf1euI2TRANc5UFRli5uMxNX7kE7odb7XcpZl788nDjhCsOn0ZM9RG8CKjlR+i79wxEm+c13wEXBn6Rw=;3:Lpku46A2gFM2+VoEixoPpEgRW5E4okK7/jtExc0tmX5tNhrFtjH+OKSlqvJT9njPzdTrXf30phTYJaBMF81BloN4fDUmRUrP7iIG2vowzi1F/tOvB0a7P0NcKLMW8JXnFYUCwAlvXd1gpv9Iq+JGQA==;25:EYNsTiVMKfmfAqbW+aLBRk55v7i4a0X0ZQCjoj1gJXaE3Tuh3P9A2CfTFHGUy0Ui7uMpBZCsG4EoxJFg3f/DhiO/BugU2J1ELI5ZtImxdmZGb/PC1itLvvTKx3JqaIYG9pyzdwfOAQ1SR6CY4yYJqGDURqQDWOpUWA8Kay/dnoKL3K6IhRoIYMM6sLladOKjoGEukTb9+fxSfJtXePuFPxKScPd+vR09xS1hxapykrfgF5sSRulYCLKfp3X43Mb/3oy8cuuJbbu2qz1stUDt+w==;20:NdsktkGSwl0TZZp+NCoUsdjOLWwHp5SUs/VtMKd4AcP7OrrU3AeqD4w6wmBu1Uy/dzZMEuoUy8Q3ol3x6HLyq9BoSzEiflgsmElygzthOtSw49sGDf0vqfe1FpYCza8vJ/3ZLXJDhRDQVJX2o/7wn3jVuZ5AM1yhpI+V8/EQVgI= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BL2PR03MB436;UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN1PR03MB235; BL2PR03MB436: X-MS-Exchange-Organization-RulesExecuted X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:;UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(3002001);SRVR:BL2PR03MB436;BCL:0;PCL:0;RULEID:;SRVR:BL2PR03MB436;BCL:0;PCL:0;RULEID:(601004)(5005006)(3002001);SRVR:BN1PR03MB235;BCL:0;PCL:0;RULEID:;SRVR:BN1PR03MB235; X-Microsoft-Exchange-Diagnostics-untrusted: 1;BL2PR03MB436;4:Suznq1wopttB4yO9RIRKaOfmvL2S4bwFZTrA1xGN9Aze1gKg6s5mmCSB9JR1PKdflxEa8J0f1EEZAF/KCBKc9ngLtVhvCggxxcbhqwQTZvzODVUcebdeqzXP1ZKIbDVBDCOjKRHaZeMzyfqMx+o962nE7ns1ZXpZnZslEB6igmfotjfW+6J4+hhzHaf/DD+esy9IDf/H36On5P3CA+cprv4dgcnEbOiJMC+ZfE1dSo3f2R63EO6leSLLkjxjOsOL8V4JP6AGEy0RHZUh7IxZk+6D+UVTMP8Q64i2r1QRtiY= X-Forefront-PRVS: 0644578634 X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(979002)(6009001)(66066001)(19580395003)(19580405001)(5001920100001)(50466002)(5001960100002)(5003940100001)(107886002)(69596002)(189998001)(110136002)(47776003)(48376002)(92566002)(77096005)(42186005)(33646002)(122386002)(40100003)(50226001)(46102003)(229853001)(50986999)(53416004)(2351001)(86362001)(87976001)(77156002)(62966003)(4001430100001)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:BL2PR03MB436;H:lava-test-server.altera.com;FPR:;SPF:None;MLV:ovrnspm;PTR:InfoNoRecords;LANG:en; X-Microsoft-Exchange-Diagnostics-untrusted: =?us-ascii?Q?1;BL2PR03MB436;23:z9PWEWjGeI/AIT5y06pXKZk8dWpQosbwQSzuriFgUe?= =?us-ascii?Q?dbEieElQTvFrtPeOSK4nzwkribtxeBFwlwa/BOFsoVCZbTxOU+UcuOXaJa6t?= =?us-ascii?Q?+3KWlsHQytCmsINAvv/NJfFcQnEIXtvUnfH5T0oe9ynScf9A7A87J0Nzlvoi?= =?us-ascii?Q?vF9BBGcQ0ftDPDQitvYv+IvRUkbqDDZOYXzARn2wYvmdGMNqNRHSXNoPrBh0?= =?us-ascii?Q?CNApSRscd81wtARhr3OMbo/qiJDzybSkKjyO5kbEKFrS/s3eWd6AiG3eS5M1?= =?us-ascii?Q?xtP9niQsYdFH8l6HXeC3gg1Sh0Kwyk4QhMEC4Z5A+Z02mQTmIaoWRcskRBLC?= =?us-ascii?Q?OARUi96ECyFbPUIUV1eH1ENSB/Bg2kVjSNlt06kVNXwCnaDJMp2N3VKFQUUG?= =?us-ascii?Q?/xswYM4edF0CI0tsz8iZN910i+gMO4fRidPEPdfYeDbO88WRqZM6ncvMqRAK?= =?us-ascii?Q?wGeXjGAj/PrUwDcbTSMqGoO4S9tG/GXJA2Hi/8+vM1F8LChrCzX8l8Zxp5tw?= =?us-ascii?Q?ThO9xtDUY6i/DG2xooSAS6ooe+I8FE/Fi8kp1UuF+RBFhtZ53GODSmtwzQ/m?= =?us-ascii?Q?8uBE9FnPJJBN2UPh0v7cRNrrl0nbJsc5oOVxylwkYYx0dRmHQLWr1Tuz3W4Z?= =?us-ascii?Q?Zd79Rs3rtKk9Bw0/rUtJD4bgJtTiqRVzXWXjdp2L/6MpyKIA7YvXeaFcgk6T?= =?us-ascii?Q?M29vyE9sTVUhg5wvTdH1aSwsd7Dqu1t5dDc+pQ9B/eSDIOQIF1gpl9NqEHdQ?= =?us-ascii?Q?C/EA0oQEw/TokFX8yZsNChBGI1JKLjO8SW9w9qEOwRNx7Ly/TuR3ICnHNPJm?= =?us-ascii?Q?krGpWh29hN9zF/ykVdUOyHeAi4REWTbN0R5DFJckCrIX6s91TUQiNo781VEh?= =?us-ascii?Q?ov/j7KF1bnsyTTgU9KSeIh9jgzvFdlPrBa5PrbA47BbLiurpirgwuFxnSwTE?= =?us-ascii?Q?ZI5m9Fo4jLy4BHHGT1shUhuIjU/MrLolF+e/RkZA=3D=3D?= X-Microsoft-Exchange-Diagnostics-untrusted: 1;BL2PR03MB436;5:cLydjY9ge+OYpiSz8IPrrauEJ9GNJ0AKN1lqoU/Kz+Ks0rd0/KHGksivfMRVjWFxGh9CbLlwHik5cAmjeI0xl+Mj7N2+H+nVQXoG0S/FdxhI3Um47paOtm/mzWX1Kiu+o3v9YvbvJpupVpxISeT4FA==;24:MtBCyYqHHBrgGW18f7CwSL8w4Iffj+aKQieAh2989krmMCVKwswaL5Z/9/QTfCd7akvLX7CZ/Q78xG9TaoDFG30crHNmlDMMO47TAgBtVpQ=;20:74NBbqXCC7ye+70kMnwpi99vmEstqBx5J89ivLboIjdJIRr8hBgM6+r69C3PPq7I4fggN+RdkRt4QiyS7Ck+Xh4imjc+wJQ/437IZ7TY3vti68Lj/moilFh9RSsnd5hOm5Aq7WAQs+TUxcCP3bVY3HLEldxCrjU8z9VjH07irn0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL2PR03MB436 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: BL2FFO11FD054.protection.gbl X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11FD054;1:YHjjO/Z5kr3PsgzEKhuEp0quzFvT80JdZ3y++0t2nOv2CrARVj4xjtcc0m7wUm9yXsLs0d2tEfmynJFa3W+hXWbUF9VpwN8CradX8hZ9s/0aJbXu8NolkY5C2zkGr5z61BV37hee3eQzFQnz+qVunGp7EESl7piX87AScKvIYgfZrx/mw2vnikAbodjafs7JIzIb6wMwDfN2eQvHuN37gGzuJzr5pAWvu0Wg93eP7WnhidKiBy4yS89PD04pGH5lkU6cKe6p/ITTeLuZBvtobheeJQCKopzDqzzQVJWAnk7apeihX4w69HlXgqT5FHopIjmoQ30jXRPdvVYYbqM2izpoyMs926ajb5FifGvoi+gfFqMcwbPAHLLvxwBxua6IseThNV5V32SqvNr26VUPw1McLM9IyYMIHX1j/fmu7M8= X-Forefront-Antispam-Report: CIP:66.35.236.236;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(979002)(6009001)(2980300002)(339900001)(199003)(189002)(19580405001)(86362001)(19580395003)(6806004)(47776003)(16796002)(46102003)(50986999)(92566002)(107886002)(189998001)(66066001)(53416004)(110136002)(48376002)(50466002)(5001960100002)(33646002)(77096005)(106466001)(2351001)(5003940100001)(77156002)(40100003)(229853001)(62966003)(87936001)(85426001)(50226001)(105606002)(122386002)(7099028)(4001430100001)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:BN1PR03MB235;H:sj-itexedge04.altera.priv.altera.com;FPR:;SPF:Fail;MLV:ovrnspm;A:0;MX:1;PTR:InfoDomainNonexistent;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1PR03MB235;2:5Hg6MCGK7dNhTXTBDFUk+dNrANLB4gLkTpP0lyl9mVnRdAOA0awTW0/JSsFA5yUY;3:lcatXzLeAwED7rdAOBkN469sCsGNQLrT9dNWwA9LgiZk+MknSsOYJjydqaLYwzA8zz6fudDYrUQtQcCNBF/LMazboIdrHQbHKkTYmLVLYr1TN4nlKshv3fxwN1yunLYV57bWD5X1gbf04WI5/KytjTG7xL04Utr9TRfoYjCJiXuTfZLj29yUj6mUTP4znZzFNKJ/jmYO/Vskad9ZiFV/xwVJY2ANTc+tArkMm44f3nk=;25:kBnYufYeVUt26RCKyFG/Yy9/OoAxzqeAKMedMKMGHiKBMGtGtmkv9PWeIOVrYM3Mz3BwL6wCQRw+8qrUHnqhVmFGFC89hTA5n8XeNz+VE8v6XmsM9sK7AJKHrMUbyDc3pIZpSNaJOSKlu80Eqq9Cbe+9SqpNdZKOYNRhFDY4+9kHHo/bbtAVKvHzYeFbQ8HbturUxMmp4rUBoCvSSvv9TLgnH14m21Gy7FHX7qHTIpGX4hVGJ5a28QsZNMp2+2PWgJ5Bk/ed51gW3Pd+8o4L3w==;20:S0CSoeSeiuE428BJtdI2ec7tkEEY5+1VNBZseiCzCr8fzPkFQ9uagJWqnmMzbw5rIAmVPyU0vVnKR88kGOe8CtYDmOyocOoTiVUM+3rELWAHN6aHgdqRaBDg6/h2NNTYdQv28ewq0igjz8zfe9ezjy1GTUnBEcW3iu+wNnaHjus= BN1PR03MB235: X-MS-Exchange-Organization-RulesExecuted X-Microsoft-Exchange-Diagnostics: 1;BN1PR03MB235;4:/T2d+ucBUs+mfQSm7GtW86oVbO7n4K0r0EO2wKCrUlVbD148KpG5bTLarbTVfZq7k6QOyzEJEADL0lspaVfA6lutGxjSds1khH4Jv7icDxigkzu/brBNaJOzScMgRfp7LwDVR35ZOuT5g6bkbUvbhT/43QVRTluicnxE4Jb7fI5qWYlWJQAmPDQOoRMh68uVoHD7AP3TIcZ7WzOBUKOyKljoHsqnQRkvYgx78YjCpBLD7rvlN0peYx1W9l+EhsPDO3WgvpIuxQRXMsCFf77E0buu0EnBdjEctX6FyfvzPrQ= X-Forefront-PRVS: 0644578634 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN1PR03MB235;23:lCio+RHF0prv3bgatxEQDBpy8ZfUohMz2InGbkAPln?= =?us-ascii?Q?7feufhbpjIQg/8o9SsK/7mpcU8SaZrg1uYl4JoB6uK12fWJjfQ0/h/tSXcu7?= =?us-ascii?Q?Y7guCKvv1GtpD7qZHi6r6YRVabPAm4YVccUzFTR5kFnXLtMCBfLEqVXuV3M5?= =?us-ascii?Q?4a+6QmXahikpSObsLH138mcTqCS2Hx0izeoGdBmN6Uk51bjHg8OUVy5bAPiF?= =?us-ascii?Q?VrFuVU3HG/A5aeRk5vw82f25g2Jx8V2+vxJToPFoCPy2KjVqdHRBy5dHaAgj?= =?us-ascii?Q?9SaSW5qVXKnItInc5LjQe33X8oOO6gTNg7m/S1FSNfHZFZcXXtIvg/dMC/Mz?= =?us-ascii?Q?ETSt0c1DYUaDH039BSV5WgqZKDdm1sHBye3/5TeeMYh0a7BDbbFe5vyP9nsl?= =?us-ascii?Q?9STmMMUK0/KOV1CFORZkGA99K93bExXH6YCL8IjwvdCrAKFzXtOa9UwsU2jo?= =?us-ascii?Q?6Eu8YBnJ3X0tJwFdl2vjrVpCHSzZZzgHKoeMwMtQ3FDDTGzMUpC+tTpLSz7w?= =?us-ascii?Q?r5UAlXHHw6Mjxukc+Gr5ZoqKonUeI7NXTkKlN1kiy588ZtdQiv88mThrFMgM?= =?us-ascii?Q?m4jhg1fq1h/B0Bt73Tppe6mivazss/GbGkKdCO3ADwYmL//YVGxf1Dr/Xj6D?= =?us-ascii?Q?4HueEMPPGVWjMpUlv388jGKMVb8HDP7YI4Vre4YPr+liFDV09POrR9r3u24U?= =?us-ascii?Q?x+cMQm9+d8vGYs/nN94IrWHbqSOxkjOTIV+1JIbnDcii7j8hE6o2uFRlEjJc?= =?us-ascii?Q?akQDHPF+sE/Jhl1o/xxJYQk10KfCGnCIDQbyOVpVgGRhOIBfherfdx345wFE?= =?us-ascii?Q?Pb2ZZU3JM6O1D/km5k+d0Xksfc1VKXsXXblfSVbfi4H0KakfM8G1YPxHuPLP?= =?us-ascii?Q?MW/9a784mvGlFRA7k++MVErHp5DTPqEkiI2clsRPr+DtcHSKjYGg+VIBYGLy?= =?us-ascii?Q?4YcWvWJcMUjjNuAvaaiJ70m6dKuhu8iclga19GVbcQDUvzgsitsHmYn8zxL4?= =?us-ascii?Q?kn7J3Yezd5+tp3fRKA6AgU2MJXTJAShHbKFWKSPBV8zcb1sLFjS2SNC6qbHQ?= =?us-ascii?Q?s66ZboIyUWmulPmv/ry3k5qImkALGUUDzxJLuSJoTZrDoTkg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN1PR03MB235;5:sMp4RWWqOg/2FJ8VCd4aKEqEXT7hdPWFow2DA5MFs4IvhShDR2zHPI0G7ee9YIdDIa4ACKmfuJltePyBXRZi9cnFOA/VXlsYC/l6LWsB16vXM43G8PtLnHoyIqbzuDfKkjic/HfhrZbBB6IZysgU7w==;24:DEcHXoBr7fg/vGkNAGZMjEfYWPQViYThTMuOwdFu/h5cqTg2iXsph4nFitHWlDtuX51mGpmFZNOGbT7NnEdhgmFIkdYDaGFbyRrklqhO0dk=;20:HMVyMJtZMtcRMd2U5Z53YhnjLXL3ixmXZkTq0LSWst/AC4JLm8Sl4L0KnoKlbmn09qLzpd9s4LEOnFEQumNkV+d17+KYmA0Jkc2OEN/M92op3Je+ta4DRKiSDc+35Qru6Tro+3vC/qo+UDFeT36Z4yuZtFT0bjt5l1ZiSCrpygA= X-OriginatorOrg: opensource.altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jul 2015 14:45:52.4815 (UTC) X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fbd72e03-d4a5-4110-adce-614d51f2077a;Ip=[66.35.236.236];Helo=[sj-itexedge04.altera.priv.altera.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR03MB235 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1919 Lines: 54 Read Denali hardware revision number and use it to calculate max_banks, The encoding of max_banks changed in Denali revision 5.1. Signed-off-by: Graham Moore --- drivers/mtd/nand/denali.c | 11 ++++++++++- drivers/mtd/nand/denali.h | 2 ++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c index 870c7fc..a98b41e 100644 --- a/drivers/mtd/nand/denali.c +++ b/drivers/mtd/nand/denali.c @@ -458,8 +458,17 @@ static void find_valid_banks(struct denali_nand_info *denali) static void detect_max_banks(struct denali_nand_info *denali) { uint32_t features = ioread32(denali->flash_reg + FEATURES); + /* + * Read the revision register, so we can calculate the max_banks + * properly: the encoding changed from rev 5.0 to 5.1 + */ + u32 revision = MAKE_COMPARABLE_REVISION( + ioread32(denali->flash_reg + REVISION)); - denali->max_banks = 2 << (features & FEATURES__N_BANKS); + if (revision < REVISION_5_1) + denali->max_banks = 2 << (features & FEATURES__N_BANKS); + else + denali->max_banks = 1 << (features & FEATURES__N_BANKS); } static void detect_partition_feature(struct denali_nand_info *denali) diff --git a/drivers/mtd/nand/denali.h b/drivers/mtd/nand/denali.h index 145bf88..4bf13bb 100644 --- a/drivers/mtd/nand/denali.h +++ b/drivers/mtd/nand/denali.h @@ -178,6 +178,8 @@ #define REVISION 0x370 #define REVISION__VALUE 0xffff +#define MAKE_COMPARABLE_REVISION(x) swab16(x & REVISION__VALUE) +#define REVISION_5_1 0x00000501 #define ONFI_DEVICE_FEATURES 0x380 #define ONFI_DEVICE_FEATURES__VALUE 0x003f -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/