Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753197AbbFANxe (ORCPT ); Mon, 1 Jun 2015 09:53:34 -0400 Received: from mail-bn1on0075.outbound.protection.outlook.com ([157.56.110.75]:53152 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751386AbbFANxZ (ORCPT ); Mon, 1 Jun 2015 09:53:25 -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: spf=none (sender IP is ) smtp.mailfrom=grmoore@opensource.altera.com; Message-ID: <556C62E2.3030808@opensource.altera.com> Date: Mon, 1 Jun 2015 08:49:22 -0500 From: Graham Moore User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130329 Thunderbird/17.0.5 MIME-Version: 1.0 To: Brian Norris CC: , David Woodhouse , , Alan Tull , "Dinh Nguyen" , Yves Vandervennet Subject: Re: [PATCH V4 2/2] mtd: spi-nor: Add driver for Cadence Quad SPI Flash Controller. References: <1427117782-14764-1-git-send-email-grmoore@opensource.altera.com> <1427117782-14764-2-git-send-email-grmoore@opensource.altera.com> <20150520222606.GQ11598@ld-irv-0074> In-Reply-To: <20150520222606.GQ11598@ld-irv-0074> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [64.129.157.38] X-ClientProxiedBy: BLUPR05CA0075.namprd05.prod.outlook.com (10.141.20.45) To BLUPR03MB439.namprd03.prod.outlook.com (10.141.78.151) X-Microsoft-Exchange-Diagnostics-untrusted: 1;BLUPR03MB439;2:PUqMI26+abebDz7KqbkQE6MKz9CZ6jQvfwuJkVfYLR99pBP4JuP+KpVPpxQmJJnR;2:HTPYGsQqhL3IpBFtU0KNb3c7fQXs/zs+RA8x4V2WIZp4rl8oVFLisgNJYXp6SYUsFEttnkwq9cZ8OT/8DFDYbKHHeXpH3DO221nAPx/F8FqqY2WvHdQiiCeuqil6TlYVRULKOmMO1m4dOFLIdvQfGw==;6:A9pFWWkarBfAgafHJ9A/UANO4wz9Icsluiq1EgwMgBqPXZ1gavGV5hDWeW9RFgJyWDya2JQVeKfq3NdJ757keQlfx6vO80cBNpdIcal/DkfbeLNSfUJO+CoXSeyXT5JKQOGLxC+WJBfVEnVaoouh+w==;3:Gt3da3xDv/5FEj/BrXTv10uco3yZgFiJhnE7VCOc5aV2AQh86FNPyKCgs420wigZE+4XAC1AlC4seBT//xr7XZJ+zB40rJC5oo9G1DsoY/BT2cCZkeku/MtKaVc4jJTviKLUnUoqLahxuVbOTTwJ5nHlcrbw443CplnDBz2ke+QtPgdCAL/V7d/EDU87pEE3ZU/iSLmLH+bVP8OVHGacuQCs92xcKcP/B8WhfPQa28v6Zs/sXyIXDo8SIn2SdrTTxsbnyqkIZTzrR8EW4wVCEwjkIVcb7lTfdp3JQbDliJqo3ruhmwRSejCxRZMJkxm4 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR03MB439;UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BL2PR03MB228; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:;UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(520003)(5005006)(3002001);SRVR:BLUPR03MB439;BCL:0;PCL:0;RULEID:;SRVR:BLUPR03MB439;BCL:0;PCL:0;RULEID:(601004)(520003)(5005006)(3002001);SRVR:BL2PR03MB228;BCL:0;PCL:0;RULEID:;SRVR:BL2PR03MB228; X-Forefront-PRVS: 05947791E4 X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(6049001)(6009001)(479174004)(189002)(24454002)(51704005)(199003)(377454003)(77096005)(62966003)(68736005)(46102003)(77156002)(50466002)(106356001)(86362001)(2950100001)(5001860100001)(92566002)(105586002)(110136002)(189998001)(40100003)(4001540100001)(4001350100001)(50986999)(5001960100002)(107886002)(122386002)(80316001)(65816999)(76176999)(54356999)(87266999)(83506001)(42186005)(59896002)(101416001)(81156007)(23676002)(1411001)(64126003)(97736004)(64706001)(66066001)(5001830100001)(65806001)(87976001)(65956001)(47776003)(33656002)(4001430100001);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR03MB439;H:[137.57.160.195];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:0;LANG:en; X-Microsoft-Exchange-Diagnostics-untrusted: =?utf-8?B?MTtCTFVQUjAzTUI0Mzk7OTpTVUMyWHhFb0gwZ3k1TFdhR0t1bDVxNjVOblpI?= =?utf-8?B?NkZOZ1NUY3F1dHJCV2RHeks5a1IxNE5OZ1dEYWYwVGhJVUxZeEJCVFpyeCtU?= =?utf-8?B?MWppSWI1SDZuT0I0bmEycitQK3hkS1Y0WXRMQ0k1L3huQjJYdjFQdVk5UDFi?= =?utf-8?B?NE9icFYrSDlqNjBVU1ZGTC9ZdHkwWDhmUE4wZlJLbnluMDlCbU9hS2FJa1Fs?= =?utf-8?B?NEFSckZYU0l1cXZlaEdwd3pGdlY5alN4enNxUDZZajF3R1lQRVhIWG1VdEs5?= =?utf-8?B?ZisyZytRRDBkcjJ4TjBKbjZvTVJscGtMM2hhN1h4azBnZEhMZUN5bnUrdmFB?= =?utf-8?B?QSs3ODd2cmNUSk9SbnJjS0NqWG9yNCtpWk95NkJqS2VEWW5LWTdLbU1qYVlv?= =?utf-8?B?TXgxbjJxQmdwWndNd2FZWCsrQUprR3VWRDJhcHVhejdOUlptajh0Z1RlNS9T?= =?utf-8?B?THFSbjdzZ3huR2hHeStBV2VsRWZkVzNVakplRTRsMVEwZk15bDZaZDcrUmVz?= =?utf-8?B?M1Q5azhVeGhOeXJjUnh5UTJwaWpaYU1UK2tsaW9xeWpuWXdLN2VBdkZ0VEs0?= =?utf-8?B?a0tHbmhkOHAzRXF2akh3Mis5MEkyaG1Camw3TGJnSUhlV1ZEZjVTdGtlSUIw?= =?utf-8?B?MG9QWlZqcFJKYVpCTVY3aGVnQlcrUWxlaW1WMG5Pa1psNHJLNmVoYk90OXhY?= =?utf-8?B?M0U2dm9pUDg1ejJpWkZMTUNCU1RyZUFhb21EU1I5YnlqZitmbmFWUEYwZ0R5?= =?utf-8?B?ZFFTZW9mOStsc3d4c3hXaFRQSW9IbStSZTFZYzVtY2RvNzBic1NVNVU1dDZy?= =?utf-8?B?dmhIVUcyYzYwSUl3QmMxYmVqcFFpZGpXcURhMG9Yd3piK1J5VGNVUDUxb05V?= =?utf-8?B?S3Q0TVZpR3o3eStPUkZBRnd0Mlhrc3JwWFFYaTBvZVpYekJWZ1RWNGRkSnhs?= =?utf-8?B?TGdzT3RGTjZjYkFaMzB0Rlplb0dxSlJUZ2Z6bi9HYlV5dks3Z1M3TXQ4WS9l?= =?utf-8?B?RkRqUU1xTURhdFlmakNROFd4T2RZVW80TXVJcUVHWkNuVnhWNWVsRzNxdDM4?= =?utf-8?B?WWMvY0dYMzJBTXRrOTBBSDRxcDhidGkyaWR4cUNtQ1B2b09LalV1ZGdtZmJl?= =?utf-8?B?M1o4ZVVvd1JkOUMzYUFUaHhtMm9hWi9hKy9QZUxqRjFLcHpBM1JqMXBsVTNr?= =?utf-8?B?dFBhbWg5ako3dmdUL2NwWDJLeFVhSEFCYmRqc0NsRXhGWWsvUVVDdDNZOEFP?= =?utf-8?B?bzZIQUhHSTZxcUxBUllkbUcwdktRU3cvdkFUci9QTXZkV2NwY2duWHRVbVoy?= =?utf-8?B?WTNMY0p1VDNCM1c5MGx2d09pc2tKdU42b3pKRWhnTFczM2ViWHU1SVhwK2NN?= =?utf-8?B?QnBsTStNYXdpOVFpN01kY282c2pJSTdSMGhZZzJEQ3BkRlBRdUZ4QUc1RG1m?= =?utf-8?B?cnQ0Z05iUWVteDdaTVpsdU0weUNFaEkyNmwrR1JaMjJYUE5ZZjlOcENuZWdZ?= =?utf-8?B?MllxZWlqNExGNVpOTUlmUUNMRm9iUWVlT3I3OW1CR3VZUmUvSURPc2JpVG16?= =?utf-8?B?Z0d5d2sycERETmZZN21sYUUwbHArbVVBY2hFTHlXN2RKK25JRHVYb0J2Q3pn?= =?utf-8?B?RjdRMzhZM3dWVWFJdFRBMkhFTlBJWEovMi9BaFN3dUozMDFpRzljUFlWOGpm?= =?utf-8?B?VGFLQ1YxS295V1RjMDM2VE5vamNmVGJxWGJ4Z1JPSGJTQ1dvQmFuZ2QvTWFu?= =?utf-8?B?NGlSS0ZxSmhHb2xGWHhmNm5KQmhmWkpCUVhhK1A2SUhDbXJtb3c5S2pvQ1ZD?= =?utf-8?Q?Y2u5FtGcjnJ?= X-Microsoft-Exchange-Diagnostics-untrusted: 1;BLUPR03MB439;3:2RW+UObZQVVAePgE/BEjrWioG9vHWt5CFtmPhK9bn52SgcMt9spEq29rwdu9hzDoTLVb1NgXbTvDnsgJMdjhbITavcH5loUibDD4RjW2JvJ4IoGFt/gZdxWsHv4wnlksWYEk/c4jyv78U0H1JU9AOg==;10:mJTMruQ9EInVnr5TzWV+tuBNidH8OXCWegtqHeA6onBLHavtsy6SvuTxzRK9deFJQp4WKE4phQ13fEHGH4hiV58I1ijlY67eKSP5RaYJwHs=;6:27nn9rvirteYR9z54Tifn89snSoAwm4I1UKTS9Z9TjwdJnnM4PgQnYbsTAhaBGaTIiX1DKRc/+wTy/fbtdNoKlaV8D93EV2ZhLD7uWd1R47cu0Z6V1uktM4/K3QFWt2AubuwfCq6K2nVwbVViEndmw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR03MB439 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: BN1BFFO11FD042.protection.gbl X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD042;1:YKMp7IBi5sKSx67ocfpzyIU7TLNEipjmQGm4BAjzuD3eC/1tJg4ZPTD2pH5lzTxMM/G/eCnvZc9pNNDGtiW8cjndQT26Z6rIX32RBhzhBydQIYJ5z1MH9W89v3EISaUUqbWh2k03E8AqF28q5bRF9W2Wh/n6MvKWScNi4tef2fD/gjg+LnMrPHYztQTDazFjYCEW1L6CuBvMPw3rWPHKfAvw4T0T7Uf0H8HYQkG37zqSWZ7LSIKx4OyCtU1KZCtAi3cdNbQV+Erl4zHJJa00NA== X-Forefront-Antispam-Report: CIP:66.35.236.236;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(339900001)(24454002)(479174004)(199003)(51704005)(377454003)(189002)(87936001)(65816999)(54356999)(4001540100001)(50466002)(59896002)(85426001)(83506001)(33656002)(47776003)(64126003)(65956001)(66066001)(106466001)(86362001)(76176999)(65806001)(64706001)(4001350100001)(105606002)(87266999)(50986999)(80316001)(6806004)(81156007)(6070500001)(5001860100001)(5001830100001)(1411001)(5001920100001)(2950100001)(5001960100002)(107886002)(110136002)(189998001)(40100003)(122386002)(77156002)(62966003)(68736005)(77096005)(46102003)(90366008)(92566002)(97736004)(23676002)(16796002)(7099028)(4001430100001);DIR:OUT;SFP:1101;SCL:1;SRVR:BL2PR03MB228;H:sj-itexedge04.altera.priv.altera.com;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:0;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BL2PR03MB228;2:tISH6qBMZ6eAQU6Yr9TOWznlC5UekSJHOejZbGTL4VdC3zSgpQfg4qyD066R0s3G;2:lhOkB7EcngUJpTA+a7w2SoPCAT77gksREx1PvNsZulcbliAj5W0vZYBHPAm2eI0n0VfxMJaGLszPeTvULYnH2E+gQ4CQOYPx7Yh14uzVRa0P4hUjlBRj9k7s+rwwHaxqLG7g3aZPY7wmg7nvjrIfRJRHZTnagYQZUpz8pAPROkn4BmOMTGHs7yV48z16zujSatkn+gCZewPZgvRb0/gKRaLi4ozPZ4myZNN5v/BscA8=;6:zz7emN33t6uREcek4BEc/Yeq9ACSfoO/SUzOLShB88ddIaDrdnWrONGeUL8oUlpg+gs0rDZ57ddrWxrqkweB9vnPTc9M/wMAktjKHEO9GqtERWAOCmsNAOs9mXM7SdzX7w42e6Ls1BLCitx14VPCfQ==;3:zPGKyQneEWaRvmpTzS5pxI8RvTcc0ul618seSbp6q8NGPP3fwji2Bd8GJsEMjibhK7hIy7Dz8QS4sc2b1pCnXd8mkJhrKR6mWjeKNm3PXKLJjIqfwXa0y9y4sIzqpR8xV4g5IeKdNXCU+fRcWKy6xipLJWHkcT31aPlwaqTPn/TP0oj+6POFVKbeQ72wdHoCDzbp4TkAVbV+9dfJoWhbhHr3JovuLSuBdvdGyAMkOWIMh9Oq5QK/wrJBLOcawm6oIYvT0oVzft9qkXZZGHi3o0FMc5fwlM9O7tb4yTPrJNFu9mCG+9RUi4qSb5Liz8iL X-Forefront-PRVS: 05947791E4 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTDJQUjAzTUIyMjg7OTo0MkYrUzdMbS9PZk1sd1pTeStOb2FwTktyTXFr?= =?utf-8?B?aVVPM2duVkExc0ZnVSsyQjkrTS9WWTlCL3o5VTZBQWNqZnExVjRVMXNTMzdl?= =?utf-8?B?R0srL0c2K3RpbVVSNVRmaURTbWo1U280WDJ2YmZGWFZaMDNGdENycGUzVUQ1?= =?utf-8?B?WTI3cWR3THhHRjIzbjhzUCtFdXNIbW84VnlDcHFIOHBFd2hSWFhpeVFTUnpI?= =?utf-8?B?SmllV1dwLzN0WXBSMzQrcXZydFFHbzZjWHFCVWl2ZnRublFzbGJtNjRtWmhR?= =?utf-8?B?SXFySjYwTFFmWFFOM3lKdTFjSnRDay8ybVNGRnY5NXZCbFlvQ01ha1NxcE9Y?= =?utf-8?B?S09pcW9VcjBmMFc0aGZpMW5temwxYTZ3S1hMSnRXVDZzcWVoQklhNVdPSkRI?= =?utf-8?B?ZGlGNnh1V216TVIrdUdOQlVZTU1CdHZDSUU5b0lZcTBLajFhTW0wWVhXUEYz?= =?utf-8?B?WFFFbms2V2tMY3hJdjVCdmR6UlVmN2djRy82UXlxN0NTeWNZQzMrRGx1NlRE?= =?utf-8?B?d0xqVHZlQm5meWFzRHYydlZBVlM5d1dzSTVvcFdmUVRxWEQ0Unc5eHNya0Q4?= =?utf-8?B?aUYrSEtmeis4UVU2cWNHalBsak9vSU4zUGRiSGJQaXk0bllhTWpQd0pWdmQr?= =?utf-8?B?NnJZYll2Yk9UQzlwc3ZEVm9jakp4azdXcThNUmMrdXpBZmtVTktRa1BjKzk5?= =?utf-8?B?T3JOUFZtb2o1NkFMNkczRFVYUkszVXhmazlzQWIzdUpPWTlmV3ZXYkE5VThY?= =?utf-8?B?RzEzeEp3L0xvMjlmdjJDdzB0R3cxZHQ0QVpwWk9xTHNpNGNVZGtWZWpweWRP?= =?utf-8?B?RnFVYkxtUm9VcDZ1OWlWMGRhSFhZbnJ0dUlidDhSS2x2UmNXWUtmVGpoZlRH?= =?utf-8?B?QWgxWEM0c1lIUzVsVTRsR2FjbGZFeXY2NmpuRThaVmJISnYvTVhML3M5OVB6?= =?utf-8?B?T3RkODNheEw5ZlhPeVA0VUlWTTdEdWhiM3dlMlhpamFXQ0pHa0Zvb285bGhl?= =?utf-8?B?VHFBSEZjUVdxdTVYejhiUVpQbnoxaldhY1ZSRnhVanJTQml1SUVPUXZUZzBH?= =?utf-8?B?UW5vSGpUNXVkTkhBVW5IMWNIdDdDaTVnTEFNUlQ1MjRpbCs5V2RRM1JIeFhB?= =?utf-8?B?NWJzQmErVGlkUjZnRmJFN2pWejI1MEZCZm9PeHdldUJkMktqZjVzQXIwNlNu?= =?utf-8?B?eUlBeXg2Q0pPUXdFaDNMeElXUFl5ZFByQlVjcVNPWk5uakZGc0RLeEVOVm9X?= =?utf-8?B?Q2kyUnc1UUxBcW5SMzF1OHE3aUIzVzQ4TldTY0ozSStRN2xPbkRtcFlEM21V?= =?utf-8?B?N20yT0J6OUNVZkRxckg2dUxxbUNRb3dUZzlHVTN1WnB2dHV0Q1NHVGFGdHhv?= =?utf-8?B?UEJaWWtwTjRnMUU2di9yODdUczRrc1I1R0g2a3lKcWdFa2FWQ3hWMkt5ZTli?= =?utf-8?B?clQ4dG9JV29ZMzRyNFZJQnlIV2VoVzA5Z0lOS2hNNjdjR1J5N0h1aXgzdXNH?= =?utf-8?B?eldTeHBCQ3g1a3hZcHFOcW1YR3ZkRlh6dmtZVTg3V0srbW4ydjNXZ1I4VWZx?= =?utf-8?B?ZmlMWlBSVCtDSnRFcHJtUEJJWVYxYmd1SWQxeHlmdktVY1JJN2czVEdvS0Ez?= =?utf-8?B?ajU2cUx2Z3p5UVM0K2w0M2IySnhnSnV6TnhTaEJVUU1XQXdMZDc3M1c0SzlW?= =?utf-8?B?Vm16bW1vTWRWUS90QzllcXVpUFdLOHVUZjZVczNsUkw2K2ZIdDJPZkUyUWs5?= =?utf-8?B?TzJxZE9WazhqZmcybzVNcUhjbE1UMmcwMzBSZlpxelByUGxwWE9RN2lVNXhw?= =?utf-8?B?V2RXS2RoQjZnb0taSFM0S1UyNkVRa2tyTTFROU8yMTlZSmVNSUlHYTRMOHE2?= =?utf-8?B?WGxYTGgzS3ZPMEJWbGRSZHVjWlJCY1hPd0JQNXZERDc1bGlRakVRdzZmaitG?= =?utf-8?B?RUxEdGZzSVZDeXRvQTB5Q0htS1N0aDFWMFl0dDFSaW52Q1NrUkJuYkRtcTV3?= =?utf-8?Q?fs+N?= X-Microsoft-Exchange-Diagnostics: 1;BL2PR03MB228;3:/ZzBaEs3dNAXtuKacvgFXCLD4DpdOw8x+L98XfEp8/KewxwemUoG34hY8q8PbCdjRkWbh7hJRtp1vohT2bmI9QpxVNvrBIGaj0yT2n96/lilaVpLV96w33ZALsCPAB1OIxt45KgdJCt+u7sQ+3Y4qw==;10:h5SqEKyfTpbNZqrTQHsg89oTGkPdTJ6rt9x0ij58Aq7XB2t0jVYl5ygBIB6tW0gn+9rdU5SHKXz9D/nNbJQ3Q1IMpBd8yvbW7OHUBItDvG8=;6:p+DqGf/t2xFpEv0Og4/O6BrPJnQB7JQGO+TKS7Z90/QWOFf+V8UoBiwpY4TMNVBC8ItGRsAMSsyCN0+MxUuIxBdKvCx5zDLXAyi6vO20fS07UKm21oAnPId827E2lIluF95Lg5EXzzw82s74Qx0X7w== X-OriginatorOrg: opensource.altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2015 13:53:16.2371 (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: BL2PR03MB228 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2263 Lines: 56 On 05/20/2015 05:26 PM, Brian Norris wrote: > On Mon, Mar 23, 2015 at 08:36:22AM -0500, Graham Moore wrote: ... I'm fixing the sparse, smatch, unused variables, etc. ... >> + if (n_tx && opcode == SPINOR_OP_WD_EVCR && >> + !(txbuf[0] & EVCR_QUAD_EN_MICRON)) { >> + struct cqspi_flash_pdata *f_pdata; >> + >> + f_pdata = &cqspi->f_pdata[cqspi->current_cs]; >> + f_pdata->quad_mode_set = 1; > > No, please don't do this. The whole point of the spi-nor layer is that > we don't want low-level drivers having to snoop every type of flash > command. We want to have proper feedback between spi-nor.c and your > driver, so you *know* when you're using a quad-enabled device. > > Food for thought: what happens for a non-Micron SPI flash that uses quad > mode? > > Is it sufficient to just check if nor->flash_read == SPI_NOR_QUAD? > I *said* it was ugly :) Here's the deal. The Cadence controller has its own quad mode setting, which must match the setting of the chip (or the quad-mode command.) Before the addition of micron_quad_enable(), spi-nor was using a quad-mode read command. That was all good, because we could use nor->flash_read == SPI_NOR_QUAD to set the Cadence controller properly. However, micron_quad_enable() sets quad mode in the Micron chip. At that point, all communication with the chip must be in quad mode, even the very next read-status command. The micron_quad_enable() function reads status and EVCR register to see if the quad-mode command 'took'. This all happens before nor->flash_read is set to SPI_NOR_QUAD. If I don't set the Cadence controller into quad mode immediately after the chip is set into quad mode, then status is garbage and the probe fails. I agree that any other chip with a quad mode, separate from quad commands, will be jacked up too. So...how can I know when to set the Cadence controller into quad mode? Perhaps the micron_quad_enable() should set nor->flash_read = SPI_NOR_QUAD as soon as it sends the command to the chip? ... -Graham -- 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/