Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753205AbcKNOHW (ORCPT ); Mon, 14 Nov 2016 09:07:22 -0500 Received: from mail-by2nam01on0065.outbound.protection.outlook.com ([104.47.34.65]:16233 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751736AbcKNOHS (ORCPT ); Mon, 14 Nov 2016 09:07:18 -0500 Authentication-Results: spf=fail (sender IP is 66.35.236.236) smtp.mailfrom=opensource.altera.com; xilinx.com; dkim=pass (signature was verified) header.d=altera.onmicrosoft.com;xilinx.com; dmarc=none action=none header.from=opensource.altera.com;xilinx.com; dkim=pass (signature was verified) header.d=altera.onmicrosoft.com; X-IncomingTopHeaderMarker: OriginalChecksum:;UpperCasedChecksum:;SizeAsReceived:9010;Count:39 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=atull@opensource.altera.com; Date: Mon, 14 Nov 2016 08:06:52 -0600 From: atull X-X-Sender: atull@atull-VirtualBox To: Moritz Fischer CC: , , , , , Subject: Re: [PATCH 1/4] fpga mgr: Introduce FPGA capabilities In-Reply-To: <20161107001326.7395-2-moritz.fischer@ettus.com> Message-ID: References: <20161107001326.7395-1-moritz.fischer@ettus.com> <20161107001326.7395-2-moritz.fischer@ettus.com> User-Agent: Alpine 2.10 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="8323329-1643475631-1479132426=:2786" X-Originating-IP: [24.206.110.125] X-ClientProxiedBy: CY1PR08CA0029.namprd08.prod.outlook.com (10.163.94.167) To CY1PR03MB1519.namprd03.prod.outlook.com (10.163.17.25) X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1519;2:WcCfzF5gztJHUPzwv3fm32XPJi83JmHwMzkXQDcxi07M2+wupRdbUFNiEu7W+uhC9pjnoHiJ99bMQXLTufiW9BHbPhFPJqNCBKNq6oo0nUbq0+PA51ZolWxy3Hj/ZHuXqUogd5X8qUbNrIU/v04xJ3k9NpdPbzfgOSLcST5bro8=;3:NBKCQHixAqpB+/xsSSO8HWFAUA6osfHB8GYIAY2vOF1IK0opMQQEmgM56P2fqstC1oP7llPUVDSlalcXA+qgnTQiSLb3i9w8SkojF/3Yj9CbdzyWQz0fhpCQekVMtlh1daWIEyUHlIDsDXPxMvfvWKJIIsTv1A2npsrSBKv+NcI= X-MS-Office365-Filtering-Correlation-Id: d07b52d9-245a-40f6-ff21-08d40c97887f X-Microsoft-Antispam-Untrusted: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CY1PR03MB1519; X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1519;25:kWHCiLWpBwgzEMti/BDJAKi6fggMCVMcnpFMi1I63RGY5sPwtaqxSfHtw8IKPtxducTbnsudJIl6o7L+WZ9EaWBXD2omqAJz7PG1Yevwh9pWF7lTu8t/lmOo2riAoe2Pi3ci75C+6lSQAYR6k8pmtZnujHYxSKEDE1FlpLS8c3sMeECR0JGBjQL2ahyCrk/OWNTxH85XJ1pvEm4uIZ2/9k1ox9UgpnoTDGDtNWZbQuyImgD43++QRPyFv+4KN5Rltoa9sT6r9IQXn/tnEID5BLmUBA/HwFCzLWjB7hC8OZhczBxLmyBl9PCzQTy7h2c+37zXRZF0FTAGCNv+y5e032O0l7DD5u6lT6KGHTkY8O5MOlpm0I0FxHtpOCoaAmT2FUUsSLHv/O3cM+9BJfXmm50IUES0/COqmpRichBclyCBKqkmMqphQpkmxT0rKMI1cJR/71Dev2DbjLLEk6aXRjbtdXoq1JlRIy37czg0lfbMNGXp8vshVR36LZu0CE+Mad3Q4QJhzZTWJIR2BX/IYUCW0wilPdlofnnUQ1CZO9Dxn44u6dJBgMK0DnBo4I92A06MIjzpabF4lMwPtxEJFOJHW6vzaxV5i4laGSExKfTy8Ztt1R8UIR/7fSnVBGsZ5siUYGBtVtV8S9R0j0H9h84SNDHz78r8Syci3EGEuq1Io1Jb7baJjtr47lo0SjiX0KxRwud0rq+EaOqyDKGlUAFr/k2h6kFA2CDCmx6960F5m5RO+GbAkz7FxiFgBdxqq1Ct5neTD/nDla3pBR30zKJbZKPyv8QUyDyG7wcWGaQ= X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1519;31:9EnP1NcpPl6uQVfDoCOzEoz2RvIujqaucMPnxZEDpWCo0gNhGp13rQIyeyK0EBVnkiRMzbTVbxQ/hFbUpowxkZ5qqBOyq4o/mhVqmECfOnGomFbI/bKqfqwG7L7xYnfUYc9Cu8TO9mAPyqm7PNU/EQ+VSlhWqvBbwK4UxksUjik1fl0lFSYkI2pAtUuau1Dn8eSywqHUXc43NqQjs9G2b8t/biuW+ZjBxLveV+u5fhamzbA0Dec1p85NS6JhhUrn0FVMiZdrm5VW8GhApsozbw==;20:3X7gjnSWtjOYNS9SZek9rKelue+1T1HxoXbawNsFdWx7ScwndkOO6x82RI2zKMXRPjJB7yUQa3mIF3C+f9908ufW5986X1eJ9WVYfl4q1S397heVFqVL/hzyheOrGaKHeCSU3+rUEcOwLcCcQ1v2Gh0bcr3MBthomBCQXg0CwK0= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(80048183373757)(258649278758335)(192813158149592);UriScan:(9452136761055)(80048183373757)(258649278758335)(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6060326)(6045074)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6046074)(6061321);SRVR:CY1PR03MB1519;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1519;BCL:0;PCL:0;RULEID:(6045074)(6060326)(601004)(2401047)(8121501046)(5005006)(13018025)(13015025)(13023025)(13024025)(13017025)(10201501046)(3002001)(6055026)(6046074)(6061321);SRVR:DM5PR03MB2586;BCL:0;PCL:0;RULEID:;SRVR:DM5PR03MB2586; X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1519;4:8cASDid7+9KlQY7Pe3ok+AA9flbiGZn42cfPw7KjcgrBz5ti+COm8VuSarJm8a2BXPzMSDYNPM3hpoWiXV5NHvWxoeNpKMUZgvsOuRRdS8RzN4puB6XJNChphbM4ndJk+zfF+lqEDfZ1q752SqX6E9tNqM0fvfefhdSPiQuanUb5AeVbJHlsrMt68+jMNmKEqWNt8JxKnXA4kw2rc1jQwAufJhucAokdqJ08WgwAePLZYwon1lx6l48h+f0O+C+exYcV+myCpFmDZarzWQejOrBtg6r1VQ3/jowG0/UtD+kQcgGiZ74ouBTehOUDK4M0IFL5E3bp4U8WLL+BDbzDwLsREHPorsiqqYEk9i2K9gQSwdiVoOidiUHgfWI7O2jC+h8qMQOuzT1OtJyCeL742808EBlpik+wC+fbhlQxvB0GenDv88+iQ/7q+8/qfQg4eeCQStSaHmJnwQN8v0+u4ka2OMjNoKNQnNmjCCxwTeYiwvDdw4LV4KW0+rLNfYX4O0TILGljY5C+HAHyHAGIbuqFBMZMrFJ95J2XVDnfivBrBgwQQHA5s0qQp2zJdzIWwVzoF5Q+hPEkBlS/rb5GAcKV7V+xMX0z9L43ulbByewZ+kdxyZRZh0hm2x1V9QPK X-Forefront-PRVS: 0126A32F74 X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(7916002)(24454002)(199003)(189002)(512874002)(2950100002)(84326002)(5660300001)(92566002)(42186005)(586003)(77096005)(4610100001)(3846002)(97736004)(5009310100001)(42882006)(9686002)(6916009)(4001350100001)(2476003)(110136003)(81156014)(81166006)(83506001)(6116002)(6666003)(68736007)(60046009)(41446006)(33716001)(101416001)(8666005)(7846002)(66066001)(7736002)(305945005)(4326007)(189998001)(86362001)(2906002)(86152002)(106356001)(50986999)(229853002)(76176999)(54356999)(8676002)(105586002)(7059030);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR03MB1519;H:[10.0.2.15];FPR:;SPF:None;PTR:InfoNoRecords;A:0;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics-untrusted: =?us-ascii?Q?1;CY1PR03MB1519;23:Vv3LN0gc2qqqSzfRlb/ZSs/N7xh/6OU2kBWX5Irrw?= =?us-ascii?Q?eQjAEiow62BwJmMdC5PcNokdpVkm7G1TlZ1mfvNDpR5L4JGCuQhCFpdLzyEN?= =?us-ascii?Q?h8qojOwXE1BUcpLhnee+5eAVaiEuxNJx9RXG1j/wSE+Zs9ZdU539BOIoBr00?= =?us-ascii?Q?iM2tCaEel6ImcaQ+M5cnteb9+M4xciYVfBQU6Fq3Qvlp8JuIM6huW+3WH8aM?= =?us-ascii?Q?SY2Oc25VdkVNjNNu9nqhgpx4kgsznYU/7wLwN3vN6swyhyAhnIndSw2BMGvV?= =?us-ascii?Q?eMZWUrSOSIBdq225OiwqYxem0MPogCzO/xxTSY9jZb/bMxE0NFZuqD45YYEW?= =?us-ascii?Q?tvG1/+MfhQCnYC+zY+xj4XQy5CTCHX8ArTx/kOATEOmGBne0hgqumNSABcNM?= =?us-ascii?Q?ekYMfiDe1nPdPywrQt/vaPYerkT2ObeViBiizpJuSrbhJtHMzyxPEjmHntt6?= =?us-ascii?Q?QloWmQep8pQEE1QVCbV0DH32KFoSkqgQc+izx4URVDjQCRumkv2DZ+FiisYq?= =?us-ascii?Q?8Xtzi4soUR/WEWjl0SdsJwE/H7MojiAU33B6Qd/zzGn1iAg058oCoJXJrV1C?= =?us-ascii?Q?zdF8TkMx7mDCkqh6VQvREBCurfHf9vAnrhZpnokrEfVMq78QUZAAcC1HM/lW?= =?us-ascii?Q?i3ERAAth4MP6/GTJr4gyxq/jq1JTCJy1Ktb9nagPNs134vFT34aAHRt2KU4b?= =?us-ascii?Q?2U/AcUZLewzwIWQWpHxHejbz1HZJMP63+U9a8eSpIqW6tsc+SeNxOeIjwaWN?= =?us-ascii?Q?n4RL3lp7fuVuSr0CZt3FhaulEMtzZOighEGFPG4KDv7ks0lEekmht/0OjIw5?= =?us-ascii?Q?J0YGcGFRoHR0intnLsLNTXtHGjd074TzWKmFUPe7RxJ1+2B8ECxvreCz7lkz?= =?us-ascii?Q?EzKzOFviTOK3dmmnw1yq/FZRFPWJRnEagmNOaUcw2L9Lf/gguyW39jbQBKDy?= =?us-ascii?Q?IN41Ya1BYOmoN9Qo9jeuzTrqE50HMJJBcgsfc7DV7ZK4Uw/YLJdGLXFD1Vy6?= =?us-ascii?Q?WIUXPduMctI8owvfAtF0F7LS7w3Pq9qnnnBgVuq1tU6SfnNXmRam8pVlq/KQ?= =?us-ascii?Q?iB/omCHS3noQdHJBsC5KEykuW2Z4mn+sPVCbt+WOB3na4+hHGozlnt8R84pt?= =?us-ascii?Q?d0QB98KF8CUFY1eUtUrwcxtoSEdnavEzFEF2LZKuwaS2F9WMQARV01UHhHyn?= =?us-ascii?Q?4vameZZOMB9+z/A+ZJ3TOefSNSXi3WnxwYtbiPkAduqGGf7HO1OOr4koBAxW?= =?us-ascii?Q?JfPo1Y/JEck8Ql+2RtgbxOT0NVMGheEwM+ALdMr?= X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1519;6:o5ar1vYNLmUt2gHgPfCP4pckm206wDKq5W04xEx9cMcRFqvFKNUi+3r3Hw+sd1rPLmyhKzg4kjL99n4BhQ7zvlkQUpqjMNLg3vdikqAAQNbG9d7u1inobvfHvC1QdVjOqkhsWZR/gpHaE7PRNgB/cZFHWfeASojX5NEMyaGbJzJB5AerK0Y11Gmyt14yT0lOc7QqJ8Hy6bz/cTXcLkENYI0bHOhWfciLK0wdzHS7RrG9wCWtDnJpZbuPfkiDuau52WSnZb3wHMJaOhhiqbicuv1PBpMCLTdeEFeYqUzlKi/dcM5xlg+0tj1OunPImFiuY3rNOgQjf72u94Jw93ThRocdeIiFfDnERyAgMXgZF9Z4ZLgGqcxwCiXMkKdCVppm;5:uFCFjcR/MFCLcSoMkBd3oJXh4w80Fv1LWnK5ptTkz9+aeIwtH//gvEsXwxFzfyKMSjXJB+P1QNO0UR3DnkvslyvpmE130EkFccnwaouZOXEWRsDar5oQen68g6Kq4ykvJlPKIBe87eJ1Xq7IxFBCuASZvAc0hZjzVFX9txIpnfw=;24:np9i0VuP/5fxjFHlTFa509SY2H6Rj8Vak3Bos2HnQ/zlFAFn2cRIDzeTorOEJmER6xfPlsvseG5PKoy82XRf5lR7kugcZC4FoX8iIwNze4o= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1519;7:n4JWd/j+6gQzxU51v9TRoCpRMm1GoaWPM/YBhkp786iPHsKBuchd2pU7qTQOka2+cQk5hQM2SK+XWqCRNleYGBjOGglgbFu8pASa6KzU7t7W1g0AjJtaSEwFOPLtPB5waarY1TFhggAAJK+G7+kqlV9S6zSyj+kasE+9PhmBt82fTp6EWinnA6r7dTzTUsgdoT8Zse7vYigj48xJh1ducOgBYy0k6/UHIM7ie1Ipa6X+iifdpxf7Vjy93/HQPO5qdH9XnaJzkSfbfnQ0ehvIPnsL6CRXiYbZx2HEiGLW5lQBvQN8CR7+ObJl1hrBbOjH2QFd6c6XQtt/WjwcQaQzbRvQSJKgc77rzJ6wctnx8r0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB1519 X-IncomingHeaderCount: 39 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: BN1BFFO11FD051.protection.gbl X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:66.35.236.236;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(1109001)(1110001)(336003)(339900001)(189002)(199003)(24454002)(83506001)(86362001)(85426001)(50986999)(33716001)(956001)(3720700001)(86152002)(4610100001)(68736007)(6116002)(626004)(6070500001)(5660300001)(77096005)(189998001)(8936002)(92566002)(110136003)(66066001)(8676002)(9686002)(81156014)(81166006)(6666003)(41446006)(97736004)(42882006)(5009310100001)(6916009)(2950100002)(3846002)(586003)(512874002)(7736002)(7846002)(305945005)(4326007)(2906002)(60046009)(2476003)(54356999)(229853002)(106466001)(90366008)(92616002)(8666005)(4001350100001)(105606002)(87936001)(76176999)(356003)(84326002)(7099028)(7059030);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR03MB2586;H:sj-itexedge04.altera.priv.altera.com;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:0;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD051;1:UXMIIfXV9e0Dd7KtsCaR8AayegYTGGUGI1mofZ5tOjeFNq/9YqyBgkVCwBRxFYH3zyEeDcJCF1IHVt2HWOqWVInLazS9Tu/CTqZ4h4Cq8LhMaB6NVgIEGIMDCBAXnoP5Zgim+1Ou4V2bxqyWMrYZy4+IGlXPTyyfydZqsjI6ioGLwA2MOyeXXw6LwoRZ78HTwHV1i/5NbjbKctYslf75RHWdRm/qboOtFCDgETFI+cEwIbGQGkGeA8tluMuJwcRr/xjXUPj7Vwo40gHjWDjTZcCOzBS3iUr3mlZ4o1Wy7M6G75JrycaNHj9yMI4QEdZEAzgogHJJzcMVdcZeiqkcxxr+WeWkU5HZhm2V1gPskLhU7OU3i2hp0mZK5mAdZYp8dpxIHbkKzp1pqkBaRsoTKrcjGHjLREqRKRy4VNSfHF/r2WN8pek65I9TXSgCwDgTxBRgOaC9dK3dLdZqrdxZLElY/tmTlarlgPcCDSnFPgEi99VcPEcZMBZFEFl4mV0VuvNm1C4B42izqnqa0FNb1h1ooq1wjA10sefdxlAv2AHralOtuG1yEo3Mn+aZ28V4qsa41SEWKsgI8IMinxDXpU4jpTwkEJp2FvEPUV/Ussk= X-Microsoft-Exchange-Diagnostics: 1;DM5PR03MB2586;2:8BQiM/999uqcpGdsukUS28W76rgvVHHvnN1oXShDv1bPf3m7bhXlQcZUSa5CvLp+VjmvvvAh+gxYNW3n4qWzLjfmE7CjJwYVZ/aEfeX7sdYsORWLVvcnAtIo6EcxAXPCQn6JR6Jm5ZCmXO7otKiJX5+QU5gHadkSqPFiTz6SSOo=;3:ZwSuMVNP3LOjizCQspRFVGQ9fLhIlnSyIq0C80I3qTn5quFmnbA5qjGgp8Z2N+GIoRByGBH84s5yJDxKUwmbq3+zqZvpeeizStzTo5hc6xLupz2Q+AvV1bwzXGRtQh0RQ8oXH6G3MprE3NJ06KnvUs62EOiaLmxHlgsE/cwybouXJaz0YHZfYdagk7oFAEsYblvDK1NyP9XN+m3U4AxCW/EWEQDg11seYGbuwSIZX1zrEHmtGoxZtnIMPYetfzsHuH7XJJ/mZ2YyRhYiS4EAs7Ku36uXe1mvujt2RL+pfmQ= X-DkimResult-Test: Passed X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(3001016);SRVR:DM5PR03MB2586; X-Microsoft-Exchange-Diagnostics: 1;DM5PR03MB2586;25:fIZqDwOerdfkNwRLpnQ4lpsAAXX2z3bJ63hQrj+Vxhsqh4p+07jI22wafabBF+duKC9PAYYlBGSKCq8R/rrDpnDi5+PZdzWb+c63x/W7lyiOtIQZdavCSBGtUAYAzYOoLnqvT1ehkmqNhxnwbdFKqpGlFA/pZGqiLbT79qM476JXARTj5woH0nsZIJrb8pOliys3RiBCfXQjkQh97MbeymmcqUA45oX8wdD/Se0IHUKLuWnmXDrIeAjMWAwc2+76/A6qkWSStyWc5EY+0SjPoSrgDU2PhgksOtDZb/LHPgrlXrohZer7AHvr/rw7FoekEGDfm6dIxmYvsSjc2eg7Rmc5uPWFRGKYZilWSTsMBdFvfOCSmRfzHSdq+dxshtlvQEb1Cz8NgEFWgEt6NeRbrJBwcT0mNJ1rVnY9OM7NF4afd9/B1ScNVvpWg/K3/AUv9bdrS6JWr7DpNFJnPlerNw==;31:4WNH4ljcI7M+fCjycCQUcgk8rC0julC//9Vv3KbY9DJndZ13eaBa1ia4F1WWaxbWgvsd+LbW5oojpLleDSvkixp+YIOF0Up+Hqj5LxzItszZh9psZb5VR+0PoIDlrwNnUpWC/vD39djAkMN9FneBTQpX3gbzIzOsMXMwcmOIVrgmEsL/qqvmbSwZFGIZ8eprKwkIJw4EagW9mQVeRRdYqXIhTxyq5Cy1hI+MhL8tJBmjc8VoQnfUlOZ6cMCUDnfGMrT+EMCnFPN8m3B8StpdtA==;20:Fdb1MzYkMr8gCRt0CXMviKuqOVnGwnyG/7UgG7AnQz+JVQeyO27lRFbg/Xh2eCI+7c39fcNtoRx5TXVVR+V1HCFipps+H3EyyM+N2e2sl99QzW2yh/dy94zaZh+5lFbYuTRcMEPwtQQApzTFku7tPreuCHsO2EP78D1IRh8A/24= X-Microsoft-Exchange-Diagnostics: 1;DM5PR03MB2586;4:n+QozpbTsapCtxNBqD3uceSoY2d7MIh4FDiVj5gO/6KdfQn7b7h2LjNWHgsj5P8jKxUK32YZfU37T8oQOsQCGMon9TZeniDC+L+rqQIKdNY1dIhn6R9j7+NapiVTLJOinOZVUZunozzAelgc7almpZWcvSvCvGcocqI5wKcHY7hZuDQgFJPzJ0LeM0GDerZGaibU3o1OT5Vv/H4Qe7RLP1ftf6kcTmvf0x5BZi5sU7a33/S6+x5Qy+iTisX2nBgW+3o5jMRv5O/v1a1AAY7IEoKCbEBhcXUqfnpcuf/TamK8CZp8rRx5JQQrzGsK7W/iRCJgCn8EsWsz11tQaOgXJWd6VXedvrys3jnslNLpk4j3VudxySHG+aMOXcSoCaoXK+cGwOII3kn9TMXkrMGyoqoSDz8jm2joHW+wCLgclh1J6CF4n5FcfYN9j8XjXK1kcIvWKT6fIB69Inisc8sFaMPGFRevBSbG0VPovITWEqUhXVMfbkxM4jREVJUVK67hFNQGeeDnbYHbyOAVEw4ddlWWpsWCKkaHvVtoa9r+wMO1vCmDcwJvGp0kjHb0SM/qSTnBJECDIE3VJxUo8HZJcRxY0AlhYQXoMoZUn7ylP13ggessu9fbgKCfM2lJQA2I1ITb8FVxGbRum6klxtkVHrcjvXDrDXuP+rQqJLtvrlMZORvjPQNYhj7NnI0N4zLyKt6eZMtFiQtbbLLkShuXZg== X-Forefront-PRVS: 0126A32F74 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM5PR03MB2586;23:OLqI0ML+kAoYCjtFvgvzAN/QJ9TZjVnlZdX1pi5KE?= =?us-ascii?Q?w6T4nmUR1DpZ21n4FQ84z+zWx+HrrzVako5OrN3rQerxs6+fCeqEJWLBlZM+?= =?us-ascii?Q?EmLoGX1s0vYoq3L0beLTAAFyvNyOzko+jlYmC6K2rmOZYCMd3yWmg7TWMT2D?= =?us-ascii?Q?+XbZn8W1mIER5Eg9MvHfxLcNtiKrK+1uuWL5IZoYtSZH0djFGOt5DlzWdIQT?= =?us-ascii?Q?wHtlxVlEuCDdr6XrrnA2FS5oDVVxMDUBi4rlRVVNLu66UpL1DONZPPaaQNUG?= =?us-ascii?Q?J93lF7oABz4dC2lzc93Y4a4pgr9SnEHhDrii4jDO5c78tOc02iCT8fidAQ7R?= =?us-ascii?Q?1vTHJx2V8Yc9f36PD8dfyHTt5FPsFdj1nmRjKuzW9rJN7VrD5cuUYLWFrqaj?= =?us-ascii?Q?SPdI206/jqrE5oHZTqLimhnLvf7ubuhjoUFiIjHJKhGpKULYKtaJgO8eUSbo?= =?us-ascii?Q?B1IU5n2TLvYBwICbuiWrOLphw8BEtTzByCJArfjWMRHnAwL8Syshp3ndVLUS?= =?us-ascii?Q?WjzCbdW1Dy+4x+4wGrN8dpubzIb0yKVOrxOBtCEUslVaVoWgGwDluyS9MCJ8?= =?us-ascii?Q?KwsSyHuwv6OOvxoBzMRAngho7tldVeP1ubJHUXZqOoctjNXu19+OVT0UXobC?= =?us-ascii?Q?i9YGeWGsvzmiVs9BzqkAhkhr+HbgKZZXkPlzt0cn0dpURwMdPfk/maZtlP9l?= =?us-ascii?Q?/NisWZyH0u0qtxRvBkRJgPOEtrANe4KAzVYPEdHHth3axOLLQtX85GC69z3D?= =?us-ascii?Q?rgf5jyWa3P967N9/gfZoaZtuRbkJcWZ17QVlEUqam5SmNL80dwxZug54YzLw?= =?us-ascii?Q?gDBgGAvrwT8aLQbJ3+5CjJm8DMf2hI9dVDflaMPzK4SBjYzaOdtqbFxAJ74x?= =?us-ascii?Q?/gR/XAcU5RFtz9FvkTHs1fODo71leDQy9d0hMF287c8ijVT951EB/DQ7NWR7?= =?us-ascii?Q?6cXOaKpNsN3prMRxwV4IVu+UgEYO9G/JJU5lzO3rfqRXQT9MDQLMyLMMdd/w?= =?us-ascii?Q?gcoaJk0ELVZQdKDlfLcGExAVtLDuXDFAekLPi5ZbhGuOtavScbbyS7nAOcTN?= =?us-ascii?Q?SeRXykqMn2cJ1Ox/QL5TC2YrpxJroLVe7YuerPGLzbTDwvRc2elV5t01Nkn0?= =?us-ascii?Q?c8pfNT+0VbORrfK0N16Oxykqj2we9HpZwbKqqRAL2HrySdpqryFnqOEo03HE?= =?us-ascii?Q?/gNCJEdsIYCtOMJ4MnCT8yL7HnIkO0qGj2UuWXkklfjQg92SsWV+KUQ32xyK?= =?us-ascii?Q?upPsTzafdqzWvg3vXSdYzluDllvvvRf0yRHjV5SpJLKNTsb4S8Woaiw4MGE7?= =?us-ascii?Q?EWqt5RFRxlFrky+0UkZt2/RLkOJ/mWOu24VcxRwTZyM6A9DeywjMRaqr/MMC?= =?us-ascii?Q?aenEQ+pDjarUZNnRvw7pFk89Tl0LtznKirzI2DQYu4/XcE6QA3gmYU9ytnBQ?= =?us-ascii?Q?i2U8N0qmQMg8+8sAa90iwyU/FGAHdVAHT2REAY9+edsbt7xgjRiQ1Ly5L1LB?= =?us-ascii?Q?Ew4flXCRI5nN9ttrpb5VsdGrQLLMV6cmZQ=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR03MB2586;6:+xD4q4R61qAxUnEiY9DDAXryN4nea/S4xhBtQl4N+PO40myBgw3LF2p3a2lIX4+nCU0XwL+/DyErE/fEeB2RUPqrzs63kp+zzD/41AWiqPH9gc29S3aeJF5XnSdNb51yr9QeXjaENDm7pXA2WQ8kVw8l6ZdVeRNX6TDRpddpc6MVDRZ1Z3nZ7HPfsw7cUqjkfBJGsBcolSv6QNbwuEb86U8PQD9Iq3xXJ8hQokidoXr8m/LU3EttBV/z5lmK8A4pdbJEGQpx4tnEaxOM6OqJ/q7I+ZYoBg26rYt2jWqIEtGbqNyRu23rmm3oAd4Btv1F/qeQNKfD3s13E0bh2EI83HNbMmFyU/KIM+iEdzouSr6X54n2/C2qnD/kZ6r2po2F;5:q3DQ0Lz7JXsKw5EpKOQQUMlgZA1y05QqPiLauKSj0tuY9zjMm8KnQMX4enYmFunoLwEn6yA5jbpLTAYyAHYshH1MXsCkrXENAdnMeSR/DK+PtQY0t4D/pM0xd23NoGaO//WydzVV8lrI/KIJVEAj2+1I40yWbK/9T7gSAkli/XQ=;24:z90k44zQM0A70DPCO0GrMN8fd5mqFKgiWOIVvqO7Y5nWerRgN7jiXLkQF+SgwKNBMJdoFuRrHF/vrv9mfpNHKkrUNUstpnk1znEUiA9wNB8= X-Microsoft-Exchange-Diagnostics: 1;DM5PR03MB2586;7:jTNMjY4d5EaNhcP+BzkEADThHuTyRz8Kg87se+kcaurOyQnJixvabGPERWs5BmzHM5Jr4U+tNMl1idLaYO2HVsK4OeNRZe6+QCvJmzMF99EffGnszTjOxm+vuMju6tsDK6OnB5cI3j93Y42W/Qvk8bOReNgSdCgVWGSUU2RMwzuvicH0QYcl3YcPnUXwP/tdPg7m/MaOWwdVsDqqyARTG3gNO7R9ygUc3goC4uS415JkFccGqyMhnEzkr1V7DJ3+TlKkzxs+x9M7yAdw4JpyaqaigtZn7jHDknnuvggLxgLe+HUEPkbapYQyJk+tZVEd4XrBh/Nd7CsOUxURwcO1nw== X-OriginatorOrg: opensource.altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2016 14:07:10.9247 (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: DM5PR03MB2586 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2511 Lines: 73 --8323329-1643475631-1479132426=:2786 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8BIT On Mon, 7 Nov 2016, Moritz Fischer wrote: > Add FPGA capabilities as a way to express the capabilities > of a given FPGA manager. > > Removes code duplication by comparing the low-level driver's > capabilities at the framework level rather than having each driver > check for supported operations in the write_init() callback. > > This allows for extending with additional capabilities, similar > to the the dmaengine framework's implementation. > > Signed-off-by: Moritz Fischer > Cc: Alan Tull > Cc: Michal Simek > Cc: Sören Brinkmann > Cc: linux-kernel@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > --- > > Changes from RFC: > * in the RFC the caps weren't actually stored into the struct fpga_mgr > > Note: > > If people disagree on the typedef being a 'false positive' I can fix > that in a future rev of the patchset. > > Thanks, > > Moritz > > --- > drivers/fpga/fpga-mgr.c | 15 ++++++++++++++ > drivers/fpga/socfpga.c | 10 +++++----- > drivers/fpga/zynq-fpga.c | 7 ++++++- > include/linux/fpga/fpga-mgr.h | 46 ++++++++++++++++++++++++++++++++++++++++++- > 4 files changed, 71 insertions(+), 7 deletions(-) > > diff --git a/drivers/fpga/fpga-mgr.c b/drivers/fpga/fpga-mgr.c > index 953dc91..ed57c17 100644 > --- a/drivers/fpga/fpga-mgr.c > +++ b/drivers/fpga/fpga-mgr.c > @@ -49,6 +49,18 @@ int fpga_mgr_buf_load(struct fpga_manager *mgr, u32 flags, const char *buf, > struct device *dev = &mgr->dev; > int ret; > > + if (flags & FPGA_MGR_PARTIAL_RECONFIG && > + !fpga_mgr_has_cap(FPGA_MGR_CAP_PARTIAL_RECONF, mgr->caps)) { > + dev_err(dev, "Partial reconfiguration not supported\n"); > + return -ENOTSUPP; > + } > + > + if (flags & FPGA_MGR_FULL_RECONFIG && > + !fpga_mgr_has_cap(FPGA_MGR_CAP_FULL_RECONF, mgr->caps)) { > + dev_err(dev, "Full reconfiguration not supported\n"); > + return -ENOTSUPP; > + } > + Could you move the checks to their own function like 'fpga_mgr_check_caps()' or something? I really like it if we can keep the functions short, like a screen or so where it's practicle to do so and I could see the number of caps growing here. The only counter argument I could think of is if a cap affects the sequence in this function. Hmmm... Alan --8323329-1643475631-1479132426=:2786--