Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758368AbcK3Tjk (ORCPT ); Wed, 30 Nov 2016 14:39:40 -0500 Received: from mail-sn1nam02on0075.outbound.protection.outlook.com ([104.47.36.75]:28608 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754166AbcK3Tjg (ORCPT ); Wed, 30 Nov 2016 14:39:36 -0500 Authentication-Results: spf=fail (sender IP is 66.35.236.227) smtp.mailfrom=opensource.altera.com; vger.kernel.org; dkim=pass (signature was verified) header.d=altera.onmicrosoft.com;vger.kernel.org; dmarc=none action=none header.from=opensource.altera.com; X-IncomingTopHeaderMarker: OriginalChecksum:;UpperCasedChecksum:;SizeAsReceived:9206;Count:38 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=atull@opensource.altera.com; Date: Wed, 30 Nov 2016 13:23:06 -0600 From: atull X-X-Sender: atull@atull-730U3E-740U3E To: Joshua Clayton CC: Moritz Fischer , Rob Herring , Mark Rutland , Russell King , , , Subject: Re: [PATCH v3 3/3] fpga manager: Add cyclone-ps-spi driver for Altera FPGAs In-Reply-To: <6989b2ee-9caf-81b3-2328-9d4e287794cb@gmail.com> Message-ID: References: <6989b2ee-9caf-81b3-2328-9d4e287794cb@gmail.com> User-Agent: Alpine 2.10 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" X-Originating-IP: [192.55.54.60] X-ClientProxiedBy: DM3PR14CA0055.namprd14.prod.outlook.com (10.166.156.151) To BY1PR03MB1515.namprd03.prod.outlook.com (10.162.210.149) X-MS-Office365-Filtering-Correlation-Id: cecab7ea-7172-459c-91f2-08d4195658aa X-Microsoft-Antispam-Untrusted: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:BY1PR03MB1515; X-Microsoft-Exchange-Diagnostics-untrusted: 1;BY1PR03MB1515;3:1MihwbwLUCqf0koV0ooEbFzXnLy0lib1RSz7xWjPdjPmg/mAqoHSIL7wu2L6bqdXK+N4SBd1FwN74TrFHBEmGyxXABSskJsNwyTgbtmqMr8GLnItb8dTT95NOAltwzaz3mW4+UDnfHogUA9p/9LO9hoJrykIlvKBSkEXolsoPsOCeM8XZIS1PLval+kfjAWwzdhJXNsHQTHjfJWGeDmL0+hgevFF5Xkw73L4GNc3vdYIQluJjfQdfFRC84Xr7cTcFfRkFHzShA44rFaAo5oiiw==;25:inNdbI2vK7ZgtdNGan2SUUtDX1EZT4t974002DHw9R89/p1490FCKr2iRSMcp4elMFyBriZX1y1FuYCH3N8N0fq6TkiohBMnr0LM1NmfqKQdz46d6xS8eGHuAdTykxCGYpIHXcmWlBAlaRZpkkVifIKKvfEIIa+q4IOX2ATKDFBvbYwODZDIXfG4LALjysXAM2jwAIQgNLnKJ7Nkkm3ZL1uIt08776Pux0iUvT4vLuemrBEWpJOo+SCQiRXmZd5FQ9IC9/58L1AgddxYnWcuNt8hDTwSrSY9aFC1dN3I2JpJf9/tqMMI7bY/r36x/v+xQghTvfC6/frPaCyUXDERmfva2m3uZF9Nsiu1D2uqFcxUdk7qvlpDqRdkJU5nCRDaYAWmP25wfG0qZYllFhNR4cEEERy7gcVCMAd99XFZggsew2ieQ+BocAEc2HYVm9atljajqeHLoM7ohZCF8c3hwQ== X-Microsoft-Exchange-Diagnostics-untrusted: 1;BY1PR03MB1515;31:Cpjy8F2r2UC5KeLhrXaj1ZncMl/sMh1q5BI3dhSdsb+53av+KRL8oUWui+7fzWJriYheD707za8d49DVGy7SC7ggOuOTAaQyMz6dRnuAOSLBHEMfKB8meXEHANTpVKBsdmVjlU2/jtfftVzGwCRDkdkwzvCN+vSQG11xjqRZpcck94d5iQbwipZMUWMCkZBZ/e8tDmjNx3zHIO8ciBHQbXWp+4CHMS9Pq7ZKZfXHJDAMnnDzeC54ZANd9GD5iMIGHQ6JfRH4fahMv0gBQl+0C31J9j79YHCkKvn79k/GIDM=;20:aZPh7uOvwSruIltBAVnvG9SUzvQKPxSLpcq+bjkjPgDMWBsJDMxRDhtvsuaCK5H6KHeS18djF6TbwxHddqousqA0mbuAMY7x4UrO1+N3Cx6oCsSelhrzyZicdDYmZLyIsV8hccgGG2W5giuooZ+dgQi5LKWORAemtfpWFDYodUc= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:;UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6041248)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(6047074)(6072148);SRVR:BY1PR03MB1515;BCL:0;PCL:0;RULEID:;SRVR:BY1PR03MB1515;BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(13015025)(8121501046)(13023025)(13024025)(13017025)(13018025)(10201501046)(3002001)(6055026)(6041248)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(6047074)(6072148);SRVR:CY4PR03MB2582;BCL:0;PCL:0;RULEID:;SRVR:CY4PR03MB2582; X-Microsoft-Exchange-Diagnostics-untrusted: 1;BY1PR03MB1515;4:2G+QecrKe0nxabKGjBR/xPnhBQG05bbrlct4UmbO4iz/XQPCKAAL92nX+WS3t+NZxQ6HzgKUMV0bUwETOPDEqQC0QePtBQrNPzfc2Bmq6Vv2N1VdLw2hEwnhaaQJ4vbb0EU9VZtARp4dlTL9Y20oryrudeYgMwDQOo4qRNEu1SVNgKF8X1njNC8hqQ8fAEixDTLzNOo/vxYskg+B04e9k69hu3HNMwXXUFWhtEC4MA+zVWxCrl4pCcN4nsNd37TSlSr6wwbrMMyI921q3YnVNdlUBb+YKOJfNzLqhfmT3oIAGmtA9IWlnjRjt9rAkroH8KOrhtshPdEeTLJj457Rk0uwRLj7LV8JA7pt3MsAtiI+6VsUBQzxFZaGAkUwbnFU9ZJ3Jdwj/GSwtShCwUQVt9ygwfX8g2GTp60STtjLHZePL6iaJVPgbSi+sP8QPiICscdMsTxTEW6+l97V0U+q2wr2+GjLxPjRXb46w2D3Ky9Vsib8YVDHJ3jisTNehjV8OMb3d/TMw8vfrQygR1M7CJn1KCgSFUC7dZ44sBp9S0rhPxZ+YjJOuWlnA4z9Qz6ImEX1SR5zVjqWhuGnlZuEXJzY4p0bAv+tDxSPpbCx5d4= X-Forefront-PRVS: 0142F22657 X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6049001)(7916002)(199003)(51914003)(24454002)(189002)(377454003)(39060400001)(42186005)(33716001)(229853002)(47776003)(9686002)(305945005)(66066001)(101416001)(50986999)(1411001)(7846002)(76176999)(54356999)(39450400002)(39410400001)(733004)(38730400001)(77096006)(6486002)(50466002)(68736007)(7736002)(8676002)(2906002)(5660300001)(230783001)(81156014)(81166006)(23726003)(3846002)(6116002)(46406003)(4326007)(189998001)(83506001)(93886004)(97736004)(86362001)(86152002)(6916009)(2950100002)(105586002)(6666003)(92566002)(4001350100001)(42882006)(110136003)(106356001);DIR:OUT;SFP:1101;SCL:1;SRVR:BY1PR03MB1515;H:[10.170.81.59];FPR:;SPF:None;PTR:InfoNoRecords;A:0;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics-untrusted: =?us-ascii?Q?1;BY1PR03MB1515;23:OTajQVZRdSjF+ysBm+a0IKMAeGTgnzkUAH8Dh475l?= =?us-ascii?Q?dxG/1k9p9uU7MfOw1HUPKg3VtBCDbIKdCHzOQUl0FDJnjIviz2B6vyQTDL8t?= =?us-ascii?Q?hwT2sa5Wb7tGkAU/MMaSU5C6vxdPlLnIzwkIUXcEzHbV1ip4rbUtI6tIRmhv?= =?us-ascii?Q?lsqKO745QO0aBBokmKHhkb+emMincAkL3hG5ee2A6UoT+MGewhXU9LyM2f54?= =?us-ascii?Q?QZqX/W+F2BCQHDNRT8RxCo9tLzLXcv/YIQGYZAeKQH/lh29Dzwb2CRO2ASY1?= =?us-ascii?Q?udQ/TlNzpXpITPwV78mPL7QJoMuG5aNQQ55wMNE0SlXchtr8oHngKX1V38D+?= =?us-ascii?Q?EJDgJqkeJxwVTWXrzjQE6BdlJOvbIWtQnKkJSbeKxFOBMpkcOaDR/FGupDKC?= =?us-ascii?Q?CH/3GiGs6YX5QB/h7p090axkCo0rURP16SeP5nTqm57ofraP4RLBynYeq8JR?= =?us-ascii?Q?Mi0VHa3wV+dG6zUg/QPQbH6xMwvMnJBo+vL7Xpx0cm6rcmm6ITS+bdQShuxo?= =?us-ascii?Q?PH4KGgjKNvdcITmk4KVEu2n8kGxQOJhqKz4LNr9RZTYxKeRYScYfVvTFf6TW?= =?us-ascii?Q?lJ4xRwYQrXmXWRByu5DGmrMLN7kjzLtPKRFxLNjMVboug2tAVegwjjLDBGlu?= =?us-ascii?Q?XBCpv+vaWOAeubRaEFnS8NL6Dg5G9ZHogrROoKFLgixk2SrDTR/xduMW/XxI?= =?us-ascii?Q?dpqZMk/DbsckfXx5bsao6Na0TcqjARrqFZoUkMv2Z7nHKdqD8vw34trhXmZb?= =?us-ascii?Q?3jOF3HO3lr+Teqk888st+4HIsC3uWkHU91w16/Kq059FrT9pJ/bYCw43AYcr?= =?us-ascii?Q?MbMEKeHl6Mr+y5TORN1BUjfNmxt0pEEXSYjPZPJ7n2taIrwtnCs2Y29Jzqym?= =?us-ascii?Q?kdbhg2WnLs631055auVyEQCqFS4X4U70agXtDCRrp1F8j3f9gHlkSwBqGUqG?= =?us-ascii?Q?+acLe6C4h10KcThsP62zGQiAnkMwgXJq8kyorpDW0MAB4nZAVTlbc2bVybrc?= =?us-ascii?Q?WHZI5fP/AS2Tdge6W08P9DlsYSIS6KQjjysI5zqHT1ZgqLEiMpIYGwGKOugt?= =?us-ascii?Q?un50D+SUf00zg1sBH4ZOyIhS47LuPyuvHZYu48yuyi1NhJuzY2fgPLXKv4f1?= =?us-ascii?Q?je7zJ032LlX/YyEGUWV4C/+UOY+qDAGQQweXJ0RZNifw5bQLCexmQ1BDb2fU?= =?us-ascii?Q?J7AVr9MiqBK2MSGAkrfsmoTeoGiPFIqYPuEG8hCVuskwG7UNuPAMpmJLtkcI?= =?us-ascii?Q?MDytQ78K8hrmVbOtYRDae/53DHRuh3Xrie/TLo4M7fujXcILtnAPtAzbs37y?= =?us-ascii?Q?8GMzJXF2siutknLEkKlu5slE5AaGafd6SqN4ew54XXoYzyFuUehlCdAZVXNw?= =?us-ascii?Q?xu+1OKqlX6YgnkkBgt8pzFm3O8=3D?= X-Microsoft-Exchange-Diagnostics-untrusted: 1;BY1PR03MB1515;6:VVw7KWx3l56NOySAHZCVIvbamUrvmzz/o0wT4XJPqcpHdHBzaZ9PHWzTpnxohev+op9f1lkADMeO6QoRzW4zThzpOqy2Qxh+BDaDzYQ3Bj4CCFNwKeNYGoKAUw1YQR8qhouqP+tPrRArEj8jCwgMWXXDQRcvOLLjyMZANWpRlMXUlskFwPxazrH9eDJEyJnbjhn04AzSw/Z8M2HyGBTMF8lcg83P5d4HM7liOvZeZqo1W4oz2Y3CIkWTEJVZ6BwYYrix26dKFk/4q2ukjG/S8+yTkXe6J2/U16CpKMnUqFrjcljgvVrOwI//mL8yxXKGnf4eIvKh1lSQQyO3/e/UJlFkkmJUuo0W/hA750mrKiCHzVkToaupXN0LnyoYWzSeLEIobWgfx/ov0Y8Ivgjr4J/5snNCzSaCHvGxuWEgP0ZSpm5RJVAk734ebZtxjZ4gfqbUw7uj4KzPRcMyDCNnCS8w51wi+RN83LbNMboqshRc+JWa+7hzfaoCNK7GcAP2;5:QA0kGY1nx4HHphWT+a1aYIUihbBAc9imm4ar0EWPUDmICfkzP5e7/dKoOOdyqMympSTtWnW9znjfCb2/DcWpHyVz3fLfp7SA6mcOkHyPoUmraHBto7SH0g7vy7wT8PNOPkqHKsW4ftIO6uEFCbflPeDyVvjR30EckTARGbykFVM=;24:YLtf3lw6iur37sV1+eH7foywC3Ajh7Zf31kDfeQVKD23BetVajnm+3JoatYb0mIAfonpWpJ2Tpj5/l5mz3Cevsd83IrNtl1AYXpVnyzDTXE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics-untrusted: 1;BY1PR03MB1515;7:CHXUfU/g76DRnAodRWoA0fbMnkAgR83vNdiu27OD/izKnBynl8Duzz846QgFph5I789S6EvJ0/kLMbXyHFW4p30lvLKru5dnXVy/BVgSFPofXK+guMYHIccA0I8jl1wnC5xygUshY2uG7lCICaVfOpWQedNE3eP9LTOGwjwfEkgHfawnvCRED/MSHFCpJjjBOQHsEOiwUhTlW9rmPBetAiVpaO0f+Fm25boZDAHH+7pVWXGnVoiEAoJwviHNPM7IhWIBXXnE7++lYNiQYIELY3QDqpDmYnVOKZTfck/72ir7sTRvYoXpB7HgRbNetXv/ImfPGRNe+1aIusAa6Pz8I0zFSQdOiMW5rqiLLrgP6WKzD/tSuhq3K5JUU9rviULo6DEqL+Hr3xVob+5ME+FsVdrCXxzj7rFnSFeWzae5XgiAnDZlNBAs8d/VWyp8MwKiYSKXWiq45ckTNVc6E30T2w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB1515 X-IncomingHeaderCount: 38 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: BL2FFO11OLC013.protection.gbl X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:66.35.236.227;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(1109001)(1110001)(339900001)(189002)(24454002)(377454003)(51914003)(199003)(3720700001)(626004)(50986999)(5660300001)(76176999)(54356999)(956001)(81156014)(81166006)(3846002)(6116002)(6916009)(42882006)(93886004)(92566002)(39450400002)(110136003)(77096006)(2950100002)(85426001)(6486002)(83506001)(6666003)(39410400001)(6070500001)(1411001)(189998001)(4001350100001)(97736004)(305945005)(7846002)(86362001)(7736002)(90366008)(86152002)(92616002)(105606002)(39060400001)(66066001)(38730400001)(4326007)(356003)(229853002)(47776003)(230783001)(46406003)(33716001)(8936002)(23726003)(68736007)(106466001)(2906002)(9686002)(50466002)(8676002)(7099028);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR03MB2582;H:sj-itexedge03.altera.priv.altera.com;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:0;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11OLC013;1:voBSbM743JY7yC2CV2Ve9SmHQYJ9BMm5f419guGSiRefx0VVrWnDK0AcbUXBlmtWwkLndyoStpHs+NhNGeDpVPLhADuSKnxqwc5W3+yK7efilkj2PqpmTFtF0nhFPACBeSsFM8iSfMAAOILjP0sYAG2Rgn6jmFWjGto4pmL2qDzPrhI9Ben0C4CvYiDvwSyXpZmCS+Z9YfUDftx7X/5WcfMucnOao6wHNv1Xy94sULfqhs/QLxEicb6UuKrlSHCTPv4oJi9KGHcZrNlJ1A7bhDddRZfeCrTfVD/t/TwK9U7GT2wAzuYix3u3uAzlvCsW16seSUlEjOZv9JJ4rpxTL7XEX4T5AbVyhJh4yNhYzbT7RYxyD04MRdPic2ObQu09k2+Zyj8XlsOb/IRSvwsgJfs+N4UYTSfar5EYhkEkp6230CqgZIuS9+latUXW0MdQMSMD3df9TzpKynBOrS8h/ah2bKL7UsxL0v35XvZk77v9Z8cYeVMedVfSOTv/mijmWykxqEk2dzt2oS5cRpFYV6z5BE472uPD8H05FbHpV6Z32d66ODOHQUzmj9z91rH6XwF215iNvjrdRcRZj6VWOqb3xBl6/dhmRIMD/w67uoA= X-DkimResult-Test: Passed X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(3001016);SRVR:CY4PR03MB2582; X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2582;3:7/FPwF5Gg0tEa1zZUswo231U6sXb9cCJPDqxVOJc6Tyqn1KZfJu4MNaWtHY2kKAp/pn3Wl7kUPbs6XCstCs33Jc2ixyaaT1QxZiIZmoX24vixxGkvg20kvV5a4dfuasj5xR77Eu2jYgPBRXN/mpHfLum121XpQqLizKWnjXEGe/KFS2twIX9HGIll6rx+8sCv73MKqxjk6pgZunKycsfUTbTClWj+wAa6yIZ8rn/H0K+coVf7bZ4lCKzi8PX8Q878czfiEUq71bUrbyKJPzEVkGGeZ8ZF9ITjW7o9Jkn58mb94Rt1/vSP/+9aZMzg0YvIe2DGkcfiaAq/bzHG2ax3uc0d8t7zQBUpaK+wJ4DYlR+PY+rPsrcvno+v2hQ2AXe;25:5gzZl0xo47DKt9FeVynVEwLZbnZaDLau7jpQfl1+/JHN0F9dYNLpRN9auOykTQLcAo35TyzaeK4yCq0K1ueweEd/qbl4zBBCYmZTeIceD7JkaZUKm99Aisv1lNh8frdQUcPOnzBVC1hRNDKB0xwxBYPSZLTqHvAWXxd0+U16zbRNIdJIVKvFNUS/W2pmbdSMnSWmS4Reyqvm2TpDPBuO8ngyZvGIagLbuF8giB3+TGOyG8csiGummVuWpocDsv6hmD8j0aRSiN+8EfsvxjhIxEUSe+Y6KCk77mSFoO08gKPsUhMD0tj9bObGqPAuBkgvoSZfUijd71Y8FeuUTAUI7srZNl+mQtTmpMIM+NpLkYeEwhyvKC3zGIwuxM+RL8yME6HS1CQqZ5MnoKBrzZ5/GEFu+HKE6Q4PXiMfkyjVxqeYjLwFeU4xrXzeKnTYqO12lfNaboLUZeo1ixk2KOdoEw== X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2582;31:j2FzIJabxkvCiAsf2lnWLSbjglyvI+w2OlyA8y0bQpaH3cDE7HII95IGJe4hyYjnfqC4HGCQ3/rommSX/kpuDIMit+n5qonDCE1MXUJ0SIVVG218WBCZAVF5/hJq+rXGJoF/kbpU7txCTe8rlO1oqzsUgkP2lrKc6QVhRvRUT6OeLMMmdJiT76fvYpzGrMzqU2jE2qHxNz6G8YrPRo0DceUXEgHr9xqM5XvzEglmwK6jIclQvvyY7nHcQyXFmnCM/A/RcDQbW5UaTWUDMjVshgqqThItEOLDRFMI2bp+LAY=;20:qocSWzU+yHThFiwV5e52ngHkr7iDCxkRGEYMkA35zQNCDSElRwF3FEzdTarOLvUBmMWnbaPALxSx7QZlXaYGlp3ArDAYt5LqLm/FJ4bLnMC2fh1sxoazW4sU1WrhHmlRKSkHdWyo0FwpPS+EzZEU9u3lU0VBjShOR6UQ0RgjL4E= X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2582;4:BLVt8v8041rNhAhEAo+D/36jyqC0RgSJVHdF6AouG+fJMek9RpuUMpK2A9p0lyeszUm+BQe36bcmz8JKKTEB/kVPekHTSSuTwvioyjMvfJq0ZgbQZ9tAajTK+Z0cDC5e4/XsgwqK+nYycw1BUlzrd4tbohGpsQ/9t+XhQASkqGtxdkBTRnwL0iDHE8PFZY20Q5EFIcLjxDm1M0GDWodZnZdoy8D4nw3tHZ7/Ye3Ba7x+/C+zxPmRRK1itTO4zXC5RlsQFzx/cguMIUevAws6sHmYZKeMrTVr+8XiqmUPBNtDzXsFWSMdvKl7FBp1Ia6MpoW7bH7HOAImPfva1BZTdJ9qtBebZcUegHmfLhU4Fmu4/bQYgQTf8qEVgKTxhAFoOUoP3uG8c6pToEsPIoMnlLW4kqc6XcztV58lzE+kMQETxMLrdHReMgX9AK3bt+q2TIuOM9qf+2nlBucgX1p68d8sGvLc8++ictDkwbF9Mdzn6Ix0xMJDddk/I5CKpJP2h4/uaeL74XdvsAlwidF8QG3SODmY9WrSyvLFCWfUIpUKq6CgKEJEag5haRINcOFeF7jxMsFeSlz2z6WskMNHn0y4ayGK8qpwF6YvoiaYz+NL/OHyPg0nhyVXCj/duopwFp4Pwz1Yvof5UU9VqM+8BsHHqru9Q5gI7gKvm71PMfG8z0nc787Op/KBgRu+7OlOMnwr5iKUC66auULbhmEzWw== X-Forefront-PRVS: 0142F22657 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR03MB2582;23:RKyz73oewGE20dXdTL64KxunJC8nYpJ7zvV8VLwrA?= =?us-ascii?Q?flvzahBbjql5MA7JznhdGm5bYjAy0CBWOxi8nsr8RJfeNEtGqhXM3+L+Pf1H?= =?us-ascii?Q?ZqWNtrwMgBjP0jbDO+2/pEgGklAOshraMapIIEr+80RFK4DLFGGPp6RTgJOY?= =?us-ascii?Q?7qV/rFN3kj6YewTs0Yd1mRqLeSpLt/vKVr9Jsc52USdVIjx2iVOnsKGIBZwP?= =?us-ascii?Q?53h98ul1VjBGyKXWk1StahDTmQsRFKZ27gza4feCjbLK5d72L8w9Mz0pBpDf?= =?us-ascii?Q?3aQUnofOPJH2pmNi5GZp6/da7UXMIH114BRVqIcp8J5MI4czFofsciXZSQHL?= =?us-ascii?Q?M5kVoL1Vb00uqZY3icE+S7Syna1daLhoscT8igNRXk7vUP/HLmJ9eAX17vIS?= =?us-ascii?Q?t/zjv5yc2cMseNOmiZZmHDutLcDOruG8FMGJJt0khvq2AsY0AHlE6J7Zxa6k?= =?us-ascii?Q?AKoT1GNMpYoes2XgQ1Hxxx0N2psFF0zKIZbdVIf9hXTuo3dvJ5Jh6eAEfTXv?= =?us-ascii?Q?VGZakkzc8ztfTRDwKEqlqCd/oh4f930pK07qbB5nsMEc1rV9/v5kMesFy72z?= =?us-ascii?Q?gsd8JBwqzcBfFWQr3xBLjhaWPZBkpJotv89YixqvkAN2Sq1+a704kHDEtWGj?= =?us-ascii?Q?8Kb0JXBlIbLeVWSTxhWCFE8dh5DrtaRtvsqzD0i/1Ur1ayOCYS8bVaqE3s2a?= =?us-ascii?Q?0JKzAp8dl4q4KE8CPNJkO2iT2TGUj0Sx2Hf516yQK2I4VG9vmdYjvjeVFbbQ?= =?us-ascii?Q?aOJ64vuA1xW0fUjYVh7mkNLQHd3PYqgE4g9byrVzzwwPz3lvXtBK2Ynhyt+Z?= =?us-ascii?Q?ft2lPr5/JDkzMXvLNnohGca6Pb3nIsTeEvarG46VGVXnErth+VhYTszUofnP?= =?us-ascii?Q?reope+U8EN9BX4i+/zMGObcj9kvML8e+rbWxx/aMOYI57nAcxY7rOLA5CQb6?= =?us-ascii?Q?8zsjwxQFvKa41babp4fMl4OMh1Zh5taq0hpNolmroMnrZuxpLvLjsjC+cmvl?= =?us-ascii?Q?AJvpMfK0EBCWIdXFW1OWPRemiUtof1Wq1JwayRXmJ/ysy2+irZOVkU8u+9hv?= =?us-ascii?Q?TTqq+HQ3QWpy4P9mhb7KfJXxFdAt3wIa4jNBVK9dmZMgIqIv+cDV8GbB9Q+X?= =?us-ascii?Q?Z6turQwRHEwxZq0x9kBIJSZbK6dnuGswFDcSBK1K/21P7ZvF54wDi0L8cKb7?= =?us-ascii?Q?EWnQ1SQ8oo4iBgv+16IpXxh97q3iZtnGosOYmfK0D2RCCBmpyVDeVp6goyec?= =?us-ascii?Q?DGH77KZCIilNYJzjZkB8znLYwrRnG2t3PiDTCWVlJ6483pJ5/MWg9tPULr1z?= =?us-ascii?Q?sZk6BWR+COes7kAuEllXWB6I5tqQf77LXUZq7OWoQEWlWz+lBb4OH0zTp0mr?= =?us-ascii?Q?obdyemR3fi29U8Y/4rJkondNdLIuCYaMHejRwqtZlKrqCqMPQZmw33Lv/lcR?= =?us-ascii?Q?1xffeww0vyApnaVeC5chlVi130IezQvxXftHBQWxLxjuSsswpHUwesZrygAc?= =?us-ascii?Q?cVuS6qcODKcPhu0x+ezGOLt4pNaWlPDhkKCMPZ4cFSA+quGkhOCLW4NWkSiE?= =?us-ascii?Q?IMPig+ADSsxjfss/Rrpod7bOrB+o3nP1fkLZDU=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2582;6:LZuQdRWiwszBdM75HuSDAeE6O99jJ4nW/JyKUVDYJmsPsP3Mi+DhhuJkMcld4roeNYvykGHQvQFLRt0myQ1zY3vztqTp+tfPMFjXFTbEjvf72XZtrEZ3J9ixhkW9RHiKA1FNhXmpOrCVD6nT8NqNPEhgoo8lHf6B7291b2m/1Nzb6lb0B8HKJIevIyIizs0khMdUyqPx0GnLiIWLR3yQPHM6W8shvJSK4unn8Z5WTMxpRi1ANozRnRYTO11PYdyvJ0yLR0blOwKziAD5aWKYEpHuUhvIV5OfQfHgN+ro/mD8EMENBUGpmJmzZxxGGuRxhmnYe4RgRq98buoBOvODW0LfUq8yFpGEdC9IJz1hb55JBJRXvick2E9hHnb38h0ib4VWqEITH8wHmd20mt2WTodWJvjx+RgUPOnpH4y+Fs26b8vTYZw5Teohvtw1N9is14pGblW9naMgpq8MM3+f7yto6gB7nSGZaj9aJHLQhailuv42ODKn3RtbAXC5ZBVX;5:P1ghxLuI7nNosbHGqDfNETJlEbhPm4Mhzc03YZ1Ao+aOyqGMS8JgZTtE2kcNxNMlr5M04lOb3/q45B8muzgZD/lDqKyF3C+I+PpGYMSPZXDfFQyIfgUloHyc5CewIFhDnZQFd24EaiQrcMXugHedNLbS8l0sox33gIXHGZNkCkE=;24:EgfwuG2tID0oXROBPBi9lrD2vt0mF4pbgPryk5dNS88s9S/g0uXuBiyXdZNlPhvBiS2ydC+8XKmgJGa0Z5SNAkpMar1hV/YVaSuPt7cWPJU= X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2582;7:CKxiZXcZiMqGlHVArE0LrxtVt6ZHwOHniMXOq4X2Uy3alyJ3sqXUC0GtLg6PyTedLeVuKgzr2XT36Qdjo7ZPyQBkWqtIUmFx67TaTqBx7/acHQQP+CTgxLEWvVFfR1anSfKUUBvNsw8RQeJ3IE4UPXqH38Y7aur6XDHNbWgPQpLrsg1/gfqIcNPfMmSwL7tT0urSXC1kAng5sLS4YqOT6lP6bfnO/f+m9dC7sVdiI2/a3j2JzdchCEvpvgpCCrZ4gwNgmziEQ3LlvNkty+2TymEtLlmaxbk2UitfUf6uuFtCajI0Tjr1Uw7OUiS8yLxo1U7s9+RMzvpmfRbtwQSCguMnKFuJZtww/AMbWx7img4AdDIrGT3X651B7foq9K6KtSvEY99vvZL9YzH62wwLAq2tcBhCO+xJ1z2R8zINJHYL9oNoKkQWwJflUplZMBa5 X-OriginatorOrg: opensource.altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2016 19:23:20.6857 (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.227];Helo=[sj-itexedge03.altera.priv.altera.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR03MB2582 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2927 Lines: 100 On Wed, 30 Nov 2016, Joshua Clayton wrote: Hi Joshua, > Hi Alan, > > On 11/30/2016 09:45 AM, atull wrote: > > On Wed, 30 Nov 2016, Joshua Clayton wrote: > > > > Hi Clayton, > > > > I just have a few minor one line changes below. Only one > > is operational, I should have caught that earlier. > > > Thanks for the speedy review. > >> +}; > >> +MODULE_DEVICE_TABLE(of, of_ef_match); > >> + > >> +static enum fpga_mgr_states cyclonespi_state(struct fpga_manager *mgr) > >> +{ > >> + return mgr->state; > >> +} > > This function gets called once to initialize mgr->state in > > fpga_mgr_register(). So it should at least return the state the FPGA > > is at then. If it is unknown, it can just return > > FPGA_MGR_STATE_UNKNOWN. > > > I guess I didn't understand the purpose of this function. > The driver has access to the status pin at this phase, so I can return > FPGA_MGR_STATE_UNKNOWN or FPGA_MGR_STATE_RESET depending > on the state of that pin. > > >> + > >> +static int cyclonespi_write_init(struct fpga_manager *mgr, u32 flags, > >> + const char *buf, size_t count) > > Minor, but please fix the indentation of 'const' to match that of > > 'struct' above. checkpatch.pl is probably issuing warnings > > about that. > I double checked. The indentation is correct here. It only has > The appearance of being off by one due to the diff format. Yes, I understand. > >> +{ > >> + struct cyclonespi_conf *conf = (struct cyclonespi_conf *)mgr->priv; > >> + int i; > >> + > >> + if (flags & FPGA_MGR_PARTIAL_RECONFIG) { > >> + dev_err(&mgr->dev, "Partial reconfiguration not supported.\n"); > >> + return -EINVAL; > >> + } > >> + > >> + gpiod_set_value(conf->config, 0); > >> + usleep_range(FPGA_RESET_TIME, FPGA_RESET_TIME + 20); > >> + if (gpiod_get_value(conf->status) == 1) { > >> + dev_err(&mgr->dev, "Status pin should be low.\n"); > >> + return -EIO; > >> + } > >> + > >> + gpiod_set_value(conf->config, 1); > >> + for (i = 0; i < (FPGA_MAX_DELAY / FPGA_MIN_DELAY); i++) { > >> + usleep_range(FPGA_MIN_DELAY, FPGA_MIN_DELAY + 20); > >> + if (gpiod_get_value(conf->status)) > >> + return 0; > >> + } > >> + > >> + dev_err(&mgr->dev, "Status pin not ready.\n"); > >> + return -EIO; > >> +} > >> + > >> +static void rev_buf(void *buf, size_t len) > >> +{ > >> + u32 *fw32 = (u32 *)buf; > >> + const u32 *fw_end = (u32 *)(buf + len); > >> + > >> + /* set buffer to lsb first */ > >> + while (fw32 < fw_end) { > >> + *fw32 = bitrev8x4(*fw32); > >> + fw32++; > >> + } > >> +} > >> + > >> +static int cyclonespi_write(struct fpga_manager *mgr, const char *buf, > >> + size_t count) > > Please fix alignment here also. > Same as above. Indentation is OK. > > > I'll get a v4 turned around soon. No rush since the other two patches need acks from their respective maintainers and this won't be able to go in without them. But with that one change it looks good to me. Alan > Thanks, > Joshua >