From patchwork Wed Oct 19 22:11:18 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Jo=C3=ABl_Esponde?= X-Patchwork-Id: 684347 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2001:1868:205::9]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3szmSp49Dxz9s3T for ; Thu, 20 Oct 2016 09:14:34 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=Honeywell.com header.i=@Honeywell.com header.b=EM+CoGNd; dkim-atps=neutral Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1bwz5y-0003m3-0K; Wed, 19 Oct 2016 22:12:22 +0000 Received: from mail-bn3nam01on070c.outbound.protection.outlook.com ([2a01:111:f400:fe41::70c] helo=NAM01-BN3-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1bwz5s-0003ip-Vd for linux-mtd@lists.infradead.org; Wed, 19 Oct 2016 22:12:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Honeywell.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=RcWvL/KzY4M3GSVqPWwsa+ye3aYrxDJoTXq8us3YJqU=; b=EM+CoGNd7haBc0wN+WUINB0nJKhybsMxwb13HOrN7kPXi7vrYHeHivotl8c5D3o1ypfmkYAQ/MH+ZRU5DhvAtutekJpdD2ZJNqFEUh+IfXp7uu0nodVn0hLSK+RZdpLqTeDEPcd1rc4bqHrUm5ktQmezUyfjVPmMhIu4MZm1SwI= Received: from BY2PR07CA0028.namprd07.prod.outlook.com (10.166.107.23) by BY2PR07MB841.namprd07.prod.outlook.com (10.242.232.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.669.16; Wed, 19 Oct 2016 22:11:54 +0000 Received: from BL2FFO11FD017.protection.gbl (2a01:111:f400:7c09::114) by BY2PR07CA0028.outlook.office365.com (2a01:111:e400:7bff::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.669.12 via Frontend Transport; Wed, 19 Oct 2016 22:11:54 +0000 Authentication-Results: spf=neutral (sender IP is 199.64.221.174) smtp.mailfrom=Honeywell.com; lists.infradead.org; dkim=none (message not signed) header.d=none;lists.infradead.org; dmarc=fail action=none header.from=honeywell.com; Received-SPF: Neutral (protection.outlook.com: 199.64.221.174 is neither permitted nor denied by domain of Honeywell.com) Received: from AZ18W1049.honeywell.com (199.64.221.174) by BL2FFO11FD017.mail.protection.outlook.com (10.173.161.35) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.669.7 via Frontend Transport; Wed, 19 Oct 2016 22:11:53 +0000 Received: from az18ex5003.global.ds.honeywell.com (10.192.44.103) by AZ18W1049.honeywell.com (10.197.248.33) with Microsoft SMTP Server id 14.3.319.2; Wed, 19 Oct 2016 15:11:38 -0700 Received: from AZ18EX5005.global.ds.honeywell.com (10.192.24.136) by AZ18EX5003.global.ds.honeywell.com (10.192.24.134) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 19 Oct 2016 15:11:40 -0700 Received: from az18gw1001.honeywell.com (10.192.34.47) by AZ18EX5005.global.ds.honeywell.com (10.192.24.136) with Microsoft SMTP Server id 14.3.319.2; Wed, 19 Oct 2016 15:11:40 -0700 X-SBRS: None X-SenderGroup: SBRS_NONE X-MailFlowPolicy: $SMTP_ACCEPTED X-Attachment_Filename: X-Attachment_Filesize: None Sender_Check: Untrusted Received: from unknown (HELO ubuntu.localdomain) ([172.19.142.230]) by az18gw1001.honeywell.com with ESMTP; 19 Oct 2016 15:11:39 -0700 From: =?UTF-8?q?Jo=C3=ABl=20Esponde?= To: Subject: [PATCH] mtd: spi-nor: fixed spansion quad enable Date: Thu, 20 Oct 2016 00:11:18 +0200 Message-ID: <1476915078-98841-1-git-send-email-joel.esponde@honeywell.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-CFilter-Loop: Forwarded X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:199.64.221.174; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(7916002)(2980300002)(189002)(199003)(6916009)(81166006)(81156014)(11100500001)(50226002)(305945005)(4326007)(7846002)(36756003)(8676002)(5660300001)(189998001)(92566002)(6666003)(110136003)(626004)(8936002)(4001430100002)(2906002)(356003)(50986999)(69596002)(5003940100001)(87936001)(97736004)(86362001)(107886002)(575784001)(586003)(33646002)(105586002)(48376002)(68736007)(106466001)(2351001)(229853001)(63266004)(47776003)(45126002)(50466002)(77096005)(450100001); DIR:OUT; SFP:1102; SCL:1; SRVR:BY2PR07MB841; H:AZ18W1049.honeywell.com; FPR:; SPF:Neutral; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD017; 1:bDiFtwJSA2fk2Jin7AR0/4BdifWDr7DS7bO2Acbu+3D3XA75R9p3QllXTT5kBTgS9+4MOFpC22LEjenRCgYaV8RcCzEA8UMhXJzFwfEhmVrvvNHvfxevzJ5HGNXGj9puVnuQduOqcqMhbk3N3PcV9VQ8/EC9yZam+/mliy7ILV0zEBiL/firUDEr6iTRGCxliiv2GKj0RhKeVstVGxQPQD430QT3Jn9OyNkJcKOGmowhg26SbiNTiKz65be4nvregtA4j8YvOSamv1A8M9DiOd2HD8zJxTtNL/cv14ghTGvFnW7fdk3tdIUyJijzFgiQ39x+jjYhizwsAgYpcOaDNndKnXxcEZDJwE0mnpCyXolUCAk1bAZkkNAdQN8GZGxdjgeYlHwH4iCDVwhytUPmpLC6fr8k562ia2D5ygadkGdJyStZtGd1uvRLHRsiPnf4ygOIAvoyFFGAWiD4m8ojP3tDitcED3uhmrOY/BS8n1AHqdOdWDTDTO9AIPLzHvmQS/hrxaebfnEiOqpX6pH3R7BEC43SYjoBqQFi0F8kUzU= X-MS-Office365-Filtering-Correlation-Id: c4d6b0bb-fad2-4883-c459-08d3f86ceef8 X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB841; 2:Ep3qYrMQZsnsjyiDrLet2GWJ1e0w25BVo78P7RdcNa0i/YNWWk8h/DW2XpLeLIKhxxR8UVHvccxzYrX/WMUtk9qhKNiDwwRRjwM7VKmLagAhVHZprDYpc5IaLEcVguM6zarbGB5HCu4pR7DLzzBFSv5Z9I9JYhLMcnurE8bwOftHTshilvrd3ql59RFIIUafGsiCrwry9CS1u+L1DjPWDQ==; 3:R5qP5Fs9Di+hbHf3OA6Z0uMWSfxBvfXwPSHyv9y/bjDWpH2jIlhWu/qTvcsrYLBTVUpCR8zT1kkpKzjNKsFe/cS5X57gbZ/6Q6VNGq//4/G84uuJABMJCviaMygpe6hSUfajQeyMBc3ydpCQZHkrTzddaJRTQubgL98jpPOQAXoE0BPf0ktOPVjiUuNqVpnfEqkdgunK3gRtPrYa2lWM8GqUBzfNYXbZc6UF5PwIIeUCdSZMokT5TCDWuLjFYO01 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR07MB841; X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB841; 25:NXNgA5oJtN3AcE038cXgWSuCv5uBAhQJ7gc/G+Gkq+eIkVAgFQfcB9FX2XeUsOnliTVTnZRw5BA3TsSx2GTjSCFgh/OMC0lwjcOzMU/gswqEhJ5uOarXHQaAyYVNVYKf2zduJDzFbQ/7mozMS2ofPyAfycNj7XN1qycZsR1sFL/U8bphyEuh+Wr9oSCmCRgMephyq6uTFrV/6dxHdPP9i/65dkoiTNmpH8pDgqajKiiqxISUEZxohelJfpAWzlg4Zes08fmELAV5l3j/bIywVxn7t7XRNzoAwQ+FJHI0CCMbU4OoY9U3OpQA6YY2uj6WfEAKLvPr5dCtlNQ0cmy4RxwtCEaoXfPKYAixCQ3hwmPP09PMALl2e4cq0ZAaoK0Z51ZSu9feE6uMq0TCMc7aa0j9ko6TL/agSxLETUF7snEDQmJEeHC7f6ul5OkScUrqCEBkSEIlkpOzRRXnVC9WvWFqOwUzz+wlXukt8HCkl1KCNEXIfdyr/+1Qi0YIw7S8W0ye90DnA7ZyaogDwAs64rHOzcIRPxSG5C/WN0Vq+J9hzRY1+WVKCtztpiMoDRjnorEKhbqKEJU2ykTvgzFDFQL6nthKS7Y74zeWi85E5IH/lMblK+LaqFtvvreBxmRcuHJVp0rEJZoaB2zLEqmvN0ccvWZOt2rXDq5M/1+0HB0+bXyPnui2z6qaMMZUPytRXSWHkKUUxHajr993jKMdmLEhGlAtHvJ72CDgj31y59mSRT7P1/+WO6srMQ++HDURXVBhmf8BTIFgRR4xi6QeAZbViZnAfuFucMBEhIxEWLA= X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB841; 31:WVHZv268PG8L6s2EFjlLZGY5r5gvx/HKN1fI6GWot2L2BMJoC2Aosg1j0vls5cZyCdlpkWuqb9JS/qNGaq5TUS/zNoxW801RQs7I5tOdLQe4FHBDlDYLYNF9ueBwEeXt3n14goCCD+FVD3DvaElQb4xkdEU2J5y909rBPf6EEtoDE2QrYvElIqybrBUoqEXeaoTK5pEery1+l1acaJXiTdAPexlifVoYL/4dxHzKLUln4VsLuqBCjS5Qz7dnKBfU; 20:O0D5WlA0iRFZkKaECaVUc9TabqLu6JXBe9Lv8vMTz7OA7oFvF79Fjl4sUPu8jQlNMaXyV1AG7fTeL1Wsn54+AqoLzjpe9LctAFUQBe66Ti3W4z7YKYWPlY45siar/EhKc4ZiuS/61krNqjItP/cDPxE/s0hnMGUN5Xsn2W9rvpXgI/RzO0cVCuw5L/14jmwdXBHmLZG/EmfQh9GoV16Ahpv+gkXWt/WLfiF20bp4F+U1BXe9RCTraaQSqAQfbYI1Pm8RB4fS2pMCimP93FM42VFcyobhvtxU7mm0vn1WxU9MiMNzQcpFL8yXaxe3BN0TBNHEYEfZWD51YYiqp74reJcTyx6eMdl7Yy7hpMiNWd7eNgAeGq50HkQTFzg14JzZpkGpV+I4/w/GKDgiJ8dpm05MBjDC0BxA7Fd9QKiyUmPqDNgDiJvUiFlft5Ku1++e9GWj3AQ3kp86EMQKR4+ECbl/qckVrQ4E/lB36U6z4S7Uuw4GaJCmLk0pXAp56NEsCFjlSjIyt9kJSnvQTKHNKz14Pd+2tVOt/wan6c70/YFolf+aaiVX+lWiDtNyzGbXCrEOLj62ScRxMJTsL5iTg6gLUMpyTwvsrj8DcjNb8r4= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(13023025)(13018025)(13017025)(13024025)(13015025)(3002001)(10201501046)(6055026); SRVR:BY2PR07MB841; BCL:0; PCL:0; RULEID:; SRVR:BY2PR07MB841; X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB841; 4:MD+P+9EcP8gdxuedLdJImWrBX2x8kQf2rzEGw4g3LuMgkEIKmgzVF8x9bhhtuygyqq+oARFDpRg5MpYOWhQmkGtymYSeIt5s52z+h13ZuDPDLI3tyqsao240y/ajv2ikY2EZQiej0Ai3gRyGStUxt5poFT55PP/gMtCKjtucOiBssBokCanWzi8DjznDTSRz1YpMz9LHfX+7JaoPRfeLqHIWRj6fTqLPTpW+yPoxkrdh5MoVFlDuKYspxh8uzUVbF3VKLwc3BIpOdlOVj3jZS2hpS3x42Vm9LlCqtxhKHKY6OEEWJeBi/42r345zA4qdSVTI3VFCXqPiIZ64LpSuyWARH/vpHljVA3sKYorNLj4w9l3ua3An3IxJlGVk+AIy/CgG6suYEy6+FKft6pFh+yGJls7vFtKgdLdfDb7p8i7RZ1x0UWu+XeSbMCL2rWYCB37cw7z1c2YdiUzE2Rv5VMhK5sRdRxmorB/ix6Yqwg1XwqmdkhsHsC1cEap26Mrudlcp3JEOXVUV2eTXZfeNtA== X-Forefront-PRVS: 0100732B76 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR07MB841; 23:b1aS5jQdHTgnj1A6dcolvOx0mlvLusGUmPDL7x3hjK?= =?us-ascii?Q?I8TEnhPGuwe7KIRIGgWA1zDGsBWvVdOrO8Dd2Ily760ggCNXk++RD26IdXhr?= =?us-ascii?Q?+tIKf4R6eS42KWbFMtzuDHSzOl3uHex15PTPxg6X2mYNtn2bIu7eK3PwEJmD?= =?us-ascii?Q?TdAotO5av1Z23amziLmEEgnCIUKKU+pfzPpGPHPetjDGnVMz2QVADQ5TXVXC?= =?us-ascii?Q?oxAFgLntAbApwqQ9UhMD+dfTOA2P+ZCalaGW2WofhlU3N8Mxh4qGuKCuI9fw?= =?us-ascii?Q?/wpYtopKGkgePTxB+rtPlAA8RSa/W6glU3haOcP0dTgon8Kv0vh5D9tUxUpN?= =?us-ascii?Q?vu7gSzsrDPnMyR9SmARzWlxOWnfNtUuHPGJMtYQ/8Pod5/pBnvtumVZpBh9F?= =?us-ascii?Q?hPfmm8s5/FhgO2aK6PJgXvT2i2UATCudaMJWdZL3za38RX1tCo5NnHJFdw22?= =?us-ascii?Q?BGRPaDP873GvrbvpXFnOKyeNgw6LL8BGQ1+jb5c+c7MzXNOJmsPvrSV5v/TZ?= =?us-ascii?Q?woxhrd3ef+dx095Y/eVF0WoXRt5KyfbuYne0f9ivjz6IaWmzTiiOXhnHgJOo?= =?us-ascii?Q?QD79fKiisGCu5ZpHsmmkA2BcMqnDG5dP5kacAWN5OpeVBPDv501YoEOJbgom?= =?us-ascii?Q?ond71bRHJRuc7Hl7NMxr/8yu2Gw/CLnLgiS+gS3/sfbuqvZHynbB9VJKOkt3?= =?us-ascii?Q?mjfxB8lZcU4D731gUxBN6CTZCLa/bPfrzaiGXePPgwVEugEvF+B5HZY63sAe?= =?us-ascii?Q?AWy2h3/3Jrc4CHEKmE8ivbWU5OTVVwkHyaquCZ2dNSSB304CnQvYREXvAvTK?= =?us-ascii?Q?PzwCtpuUtD/VkbSgUFpYPBFxgrrver+5JaWIbw52BiZi4CPLz0+roAoNrFn6?= =?us-ascii?Q?ZFiwbe+M8Wh/WU4mmVtvOvWc/bX6fg36xny7WK1hK6SsJjFjkBLartLFFjU/?= =?us-ascii?Q?uYsVf9jpB1gmWkGiDWcYO8OteGRKeSu+5jjrhH9OIxy/3bpRC6fp0nlOsC8Y?= =?us-ascii?Q?WVuBX35e6+0Omd4FFRoklcCVyVLY+pN1Fvrh5xsbnpYTbFJEyazda7QXuaev?= =?us-ascii?Q?lNPybdJeSSNFNyj3v5+Ozq5xOVGgjz5S3WHHSiTujesTFu12YzEnU/ejdO8Z?= =?us-ascii?Q?0fY3+SET+jpmIA01Z3H2LPcZE0V89rsJVCxBYS9IJaZVxH9tMUgsFgLy7wqd?= =?us-ascii?Q?MuOR0VAkBeYl8=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB841; 6:YK6+Kt65MAWH6Kf5lpDON4++CWw75ma5yJa8VFTxQs46GlbyxVqA27MOds+m1cGNCbmcEy2E5tOiODkeAQcqt/ttmmgjrv9b/UPEHspQaX7hlRbnSqP3161DNR/NGzlF/mY5ZoopEzaIvKfywJOP7xRvKT2csRAlKWQ46NhmD7Xn1Bk6yqyIKmdO3rIk6Q61lWtQsk9rFL93+CLL6XQXMNh4hfxp0If3bgQaX0IVNAlL/8An0+XyWCuxR7diiX1/UT2jUKtKEuqzvPRe9oEqGFPeWgo/BOkF4/3wzyvchENvSc8Upf1Ww3EVGihpxqE2n8L2/1P5n+1+zYGB+Zk4b3E3BLPMk0Tww6aSKK0fJB8=; 5:eRUvxfO09qPr6WMdrSWEkrtw0o7fxwsl5WmlUmXQ3BY+O4MQuOPAyMyHSibwPLxyw+4bxkUFAvagw5G01d1HuenNZKrlMPX/nqaHQpuzkgFHDEL3tX9OWEAP4szw4YwVrbqkMDZqpB/fYyyH5ROSoQ==; 24:dhm28YCM/xegP748CahdWZy6gjoLWAutcDZ0D7uNT8cn0Hzdd3t4gp/h+pVNqmoP0MD68MllRbXmDGfcF8SZrc1M0nQqW8hz/5AtPepSc2M= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB841; 7:1o/N18DOFalshQQVp4FsrDxj5Uu6pBZYEiia9f7LdpUwfbs2mtVJ8vUliLYezaATIg4wMpsFK3zoueQSMJIjfZsTVYbsROC+QWF+DNVyVjErI6n9hXxzugd1kSY0KkugVsHt7xZtnKT3qDNK28pL0qrLx8ynZkijgXdpovayZA3fMUzrPgmaguEURx5f2m5ZuL3Vzp4IpnmX6OsS+PVFP/+8kDMaDQ1jHhKjQysDjrU1WMNnX0e6Ex63vGfchkbpqJXafTHKffy7usS6JATAxTofeFndG/B21Z2+s9nZwCOjkY1CaF287OI9rZCr9KxzeKPg5whLZWT+jItg4/BYgQm4630SbX5LtG4OCb5BE/I=; 20:FMDs0yD0JojZN8XI3w8RZUWHsARssA4dj9rKrozvAzzojMhiXW4Te0i8UfgQfUxU5fpp68u6aH+MhYjziHOZcuSv5Ccx4pXCb3SWX2bv9W+mzWacBlRXiRcuE39K04wOl+5XLRNm7HiP/bAVHtqMdCG4tqcUk5Pqew6sShFAapk= X-OriginatorOrg: Honeywell.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Oct 2016 22:11:53.5376 (UTC) X-MS-Exchange-CrossTenant-Id: 96ece526-9c7d-48b0-8daf-8b93c90a5d18 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=96ece526-9c7d-48b0-8daf-8b93c90a5d18; Ip=[199.64.221.174]; Helo=[AZ18W1049.honeywell.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR07MB841 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20161019_151217_385414_4D79A6DC X-CRM114-Status: GOOD ( 12.81 ) X-Spam-Score: -2.0 (--) X-Spam-Report: SpamAssassin version 3.4.0 on bombadil.infradead.org summary: Content analysis details: (-2.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Jo=C3=ABl=20Esponde?= Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org With the S25FL127S nor flash part, each writing to the configuration register takes hundreds of ms. During that time, no more accesses to the flash should be done (even reads). This commit adds: - a pre check of the quad enable bit to avoid a useless and time consuming writing to the flash, - a wait loop after the register writing until the flash finishes its work. This issue could make rootfs mounting fail when the latter was done too much closely to this quad enable bit setting step. And in this case, a driver as UBIFS may try to recover the filesystem and may broke it completely. --- drivers/mtd/spi-nor/spi-nor.c | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c index d0fc165..df43cd7 100644 --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c @@ -1246,18 +1246,41 @@ static int spansion_quad_enable(struct spi_nor *nor) int ret; int quad_en = CR_QUAD_EN_SPAN << 8; + /* check quad enable bit + * as S25FL127S takes 200 ms to execute each write of SR & CR + * registers even if data is the same, write step will be shorted + * if not needed + */ + ret = read_cr(nor); + if (ret < 0) { + dev_err(nor->dev, "error %d reading CR\n", ret); + return ret; + } + if (ret & CR_QUAD_EN_SPAN) { + /* quad enable bit is already set */ + return 0; + } + + /* set SR & CR, enable quad I/O */ write_enable(nor); ret = write_sr_cr(nor, quad_en); if (ret < 0) { - dev_err(nor->dev, - "error while writing configuration register\n"); + dev_err(nor->dev, "error while writing SR and CR registers\n"); return -EINVAL; } - /* read back and check it */ + ret = spi_nor_wait_till_ready(nor); + if (ret) + return ret; + + /* read CR and check it */ ret = read_cr(nor); - if (!(ret > 0 && (ret & CR_QUAD_EN_SPAN))) { + if (ret < 0) { + dev_err(nor->dev, "error %d reading CR\n", ret); + return ret; + } + if (!(ret & CR_QUAD_EN_SPAN)) { dev_err(nor->dev, "Spansion Quad bit not set\n"); return -EINVAL; }