From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751786AbdGEOWe (ORCPT ); Wed, 5 Jul 2017 10:22:34 -0400 Received: from mail-cy1gcc01on0096.outbound.protection.outlook.com ([23.103.200.96]:4129 "EHLO gcc01-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751630AbdGEOWa (ORCPT ); Wed, 5 Jul 2017 10:22:30 -0400 Authentication-Results: spf=pass (sender IP is 131.225.12.125) smtp.mailfrom=fnal.gov; cern.ch; dkim=none (message not signed) header.d=none;cern.ch; dmarc=pass action=none header.from=fnal.gov; From: Pat Riehecky To: CC: , , , , Pat Riehecky Subject: [PATCH v2 04/05] drivers/fmc: change registration prototype Date: Wed, 5 Jul 2017 09:22:09 -0500 Message-ID: <1499264530-5859-5-git-send-email-riehecky@fnal.gov> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1499264530-5859-1-git-send-email-riehecky@fnal.gov> References: <20170705102713.GA20907@mail.gnudd.com> <1499264530-5859-1-git-send-email-riehecky@fnal.gov> X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:131.225.12.125;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(39450400003)(39400400002)(39850400002)(39410400002)(39840400002)(39860400002)(2980300002)(438002)(189002)(199003)(104016004)(7636002)(7596002)(305945005)(4326008)(8676002)(50466002)(76176999)(6266002)(50986999)(356003)(189998001)(626005)(8936002)(50226002)(48376002)(2950100002)(47776003)(6916009)(53416004)(2906002)(4720700003)(6666003)(106466001)(33646002)(54906002)(2351001)(86362001)(575784001)(5003940100001)(107886003)(36756003)(38730400002)(5660300001)(110136004)(478600001);DIR:OUT;SFP:1102;SCL:1;SRVR:BN6PR09MB1475;H:smtp-ux-prd3.fnal.gov;FPR:;SPF:Pass;MLV:sfv;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD043;1:10BNJTJEvwXfSbzN+sWeqeHCUwamgmlRMPo4uVD948Gmli09UpSXmMbSPx9wrGrNkbP3meUlCbzKmID2wcx66r5Uc79js4iErHpuFS/35Nh026jgVxexyMrytO0nqMw0rJ3IlIo72Q1HEi+ZeMnApQCpqT0YIvdJ3Y8/E0Kyz5lVPiqaRncxobWwAwAplrtF2xJkEAHQ7GvTPJEPiV5dAst5LohUEhDk19r1sNkw0m7x3AKJHLIQtA0FK0STQPE1hXFhp9Wuo3V2aJ6M8x00aZLESzOvuSvSTpVkYvNdBn3PcitEA4/vYG3t63XLDwfAiAjOqLI4sUU98+FPmLjm0fEtHLzVg8mgBxkEtdT/YwcMCr6H9KY1eb+LyauPpwa+/hDX2FSC3jHRVCvqFkrxsaLT5SmI9TfFadBIZqarjHO9GgfxQbew641EMv48+qLbiLQJiEfWX2fC0f3xRAKqd7aBiF4fSZUAHgn/x8u8W+M47HVLXxW2Rwq34lbBtYwxcpdLmiku7m/s2JUiDUFKP4CHu2BBveq9XEZDggthObZ4uNPPWe5dhTqX2mm6YwvcURVjHxAON0PK/Rw4lIFk/AqK+YrnfXtcU3+XLNAMVr92tH7cFPxjpVCpC5np4SXMGDJiuqBJrUk3T/u/7PktRBBAIhW2bWRurquCoeqCj5fFuH7ggtSZvoYTtWgGdByEfBbsGvWtDqxZIFjJq1cwCS+VriV8ULFChfcUWryqkxa88LkvhhlxfBqbKoXKtlV+jWoHgsa7wY51vf0mxBQAJZyFAbl4oMfZFIWe+2zIBtF0TGEfKNTi9dlnhjUxVtt3DuxOO4h+tSEmiO38HZhuPi7hEhGaBW51M8x5TKdLxiUBbLLSWl4Uc8UpWTyvVUyBL4D1u+EqHdb/pwYrMkhCMQ== MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b9ae1bc2-7e71-4544-a742-08d4c3b1438c X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(8251501002)(2017030254075)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:BN6PR09MB1475; X-Microsoft-Exchange-Diagnostics: 1;BN6PR09MB1475;3:OMDcAEeplxs9RxZB9ST+EFK/r1BT7FZ2uBVWti2AM9XFk/5cBp/GuTfDqDzSewLphDRS7ixmfwq0PmnhRviM2L+zFpwL8mba1165U6xrD5WlFw5Bmo7HZN2n6OG7TWBV/zGH6uI+8/JGQUUO7rwHxe1jkhpK6DKSkc9N1B+2lE1jfMkLGB7RQWKYEApWNORITB1+jeC2CJs4ySaZllQn736cPQzkL0favWm+teUeRPdX8U1z/pUvA7ZQrEGHJGRZ70t8sKT9j+EJh0jO7IHGjzGGaDMjANFcF7luGO8NkkuDco7rA28o2R/kPwozrhTFSqaBEr9i7wkIfocf7abvPGaomfQkcLi8dD5jX9rB8FTj+eGWE1QDHFfbTQa94pB1A37x/ReDLXmyHKfWLdJabbjHJ12ZnLaQpICQt0apBdVCzibmtwlbm3QJQOrUXRvjFybxmyCvL+Dyc1dZMUtWxn/KNejSmL7SPUFScKkdkkphHnLJpev9BWJOAutHyU+nnmMqpIFH+pN8tUvr1ImtKktpklzIO6VCdpCm5fuU9tFmKRchCg49ouFLQFyz5MBqYR+J/vqS4Qt2DQ/gtBKryNiF9IZ7vTsn8jJu1DlWmgn1Cff82hBTHgOVKs2oc7/1dXW0p+eZQ9U/coEe+1ajeOHFX0jUF7MBCO0Av5zYhFR0Uhgy4z4kAJvc0xdQW+HXBaxqOoRYFu9ATWxvHmYeTUS5UMgkgpnb7iPo1nOtfn+S4+LA23TNx1qXSD9IgZqZJKEKJn/iQ1m82cI0Y5lfvrpH6t5IFfxEWulyamPaP8CJZOHUwOHT4CwUdMshxsy4LnX2F4ahowp9GpyWg9ot3tsEM7rFW+5XHCS/AOUk+cvA/kLT59ZfxcVoLurAYkjswCgd/Firus7jxtS8MXFSbYT6xEemZkx3DgZF/g7LEck2Olv8taRu4HaBxRLDNBc2 X-MS-TrafficTypeDiagnostic: BN6PR09MB1475:|BN6PR09MB1475: X-Microsoft-Exchange-Diagnostics: 1;BN6PR09MB1475;25:But0ck/eO3UQ/n3gQnrD7Wt2x/2oVLSZRJQETWo4eqOR0dJ5COATzBI5ciUl4U1fP0YfgrqfCKChgfI5lyC077qwHLHKpCyNruC+NYoVipy0xVw8dyegkWMnx8AA4PnDEaLD/ZKXgX9txWCEgWUaG+S54scyynX/eJKaqgavi0XfgBwudMHHjl/3EgBH8GtUpHc2nXauJ/MQnP8OkXLZRppPGOXl6LoCfKDwMcpmUjunz5HhMigwyyRFTPijmYCQ4AZlmnJzrDTZWr05XzhBle77rOzzRuV7m3barT7pQx3+Hmhc17TqwkwQDsj4zDIZMKAvC5URL8y1ODGz88SLO+mmX3S6wwW3YJfsYuUUwzkJj2ocWbM9RVUNHPI1QvOzZK0UZfUik6Hj/B/jV3GPw2yqo0iiS0gG4Or1VRcbFmytflHqHTulWpU/l9YL1if69StUTnu4NSkC7z9M0DTxyCMOCuifyE/i6+OvfOKsWTmNBBhyc4c2Lso5WorTCr3KPyi7HCwW0d7WuTCz+i7Z/NfWvaIEFCY0AMzPG40AGMHvoNYIQVIUqF3MTlHGQcuUQ9ctKcxxn4o41nVAg0k0zrPxGUEiaERYYcNYfVY/A8hH9LgCMAjSaDT0fG1MXhRYjfW5nWMgk2uNDHlB4W1W9uqaQ03Alnf9zESQK+GCKbXaGIYp9/6vbSNB3SPZdmtw/roG17D71c1jGGKtHURLXMMm8AGyjzM1pAVKb/SegSQUOhKCCT2kuQFcul5BnyEjQ9ne5wnupRBQG+ph9YaObWMkzb5XIB/jZpB8aJuBgaLLky2Y6PQV3mLXmIa09p5yg5WKN6sA9gtI0DxKR7HMJJRUF3z/vVWtTmZDhrMKmWJR0N5Pt/KGvaJBAKwbbxbxlVYjUtXxVl7Kf3ExaAUq6ONYOVAwk4H/j24BxOZZJ3s= X-Microsoft-Exchange-Diagnostics: 1;BN6PR09MB1475;31:/4zF1pfO4nFdRHAfCxMOvw/BHeiYVLwhlD3xk56+TtrdHAG9chZtKCvYnS6IQicTZpcmDTsGfGuoYTZEZHhEHAk7vsEyM584TYe0K3QVHT9pVb9FojMV3ukqb+lwz2PSPZcu3NtbWkeOgGYY9RxD3N7wPV3NpsKosh8Z6hVj5Vah22J6loIHKHBNIAc7qyKsamxumRj2/l3DM9/t6a67mmdP2gIZBnUwr8Su3B929LSfK1YCGarYcmZ5c7RbxaGI29+bYEOF5MyN/EarWprD5F6Lj6625UEcbk1pk3gSy6ZXBlyzXz5HfsjAbPYucY4mr+mPnl7tfmL4ZYnHNN6VcAVFtjQLvH4CrduAk0gfDP25JuX5fAWwsMhU9tvqE2CXjvYd55ppGflTjjwBY1xAGnHW7vdZPqbMmdvnSG/HJKp/DpTBBvMZX/fA+gE3HbL7aHehwH0YFJjF9I0vA3fXqNl/AZQy6Fwk9XUTAVRP/I+PRiqhs0tJvNtA3FydtU4NQrsorpeDbteQvfUf86obyoW2k7oV5+5W/PmbaMTqr/7JC9iYLs8XGANKTt0huPBZX+gqSIHi+LEkczBQqCcEP3CE19pEAagRmh+XXedJf7bMOwXZlbUOjwF3dwBdjWIjfIaWuyLavFsbxxByhImZ1KwGhUI+Fhdvc8x7ZqDxl/I= X-Microsoft-Exchange-Diagnostics: 1;BN6PR09MB1475;20:7oKrKpQgfrYQDzVKNrS8sgG657SATYc9/UEh38dtx10IdGlKsrGANHu/sJQfocroktfC4ERz/ABinRMw2jq0J1KRNkruUMpDtjfY9iXjTs/ft0l6z1hjYZz9Gb9Pq2Zzr5qJQ9VYGyZB6/DWbywN6Ssb6wCd6C7RYOLRUMHRJgSvflQdWXE1FxqOw81U9Dc9O0KlSxbhmiXuBkA7RIHrz9dU9dqYmDcA0JcwRkYRTFDIj5Dh+1J34Llc5JeVs3x5gQQR/AU9LeIZ+/OlPpunRWdPctb1edqMPkZ7guDeoRuEj9uOyANhUN/uiLOzOOrzTcCiJ1ZzmwBiifHKScottaPWIAKMiJVmPrCes8CFqy1PhUXl2Z6/ZEXOk2++Ec1Q/VfQ/Vv9WhI+4/zTd1xY0viXjE+kWimP9dqwPgntZX5+askR4hiaEAMhOtpe0WcrCB9jP8aNAOW2DGaexBLG9Q9B0Z6Z5eppskMC2VnsQmTaZZAthHM3tnfe52Z8GrQp X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(40475595445134); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(13018025)(8121501046)(5005006)(13016025)(100000703101)(100105400095)(93006095)(93004095)(10201501046)(3002001)(6055026)(6041248)(20161123558100)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123560025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:BN6PR09MB1475;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:BN6PR09MB1475; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN6PR09MB1475;4:VzDDziVDCkdaar96bdcssUuXiR5yC58XJyodKxSACm?= =?us-ascii?Q?M3zBoqgJmj3/6atyxjhk+PEtfD4nodNt0HdgX7MD5i4j0KE0Qi7kcfUlrR+F?= =?us-ascii?Q?2hHvmpYeVLZyIAT22W8n7AF1Cjy9f/OQxOm4e4f4A7yLNGYu2KmwYV4oevTG?= =?us-ascii?Q?i0J9DIKtIhrydYSbvcP3XmtEs3SdP3s2mvY8cZS/zMbjbU9vuT1h939wiZjH?= =?us-ascii?Q?7lVNl3A8MWHZbCA1xmshVknW+7HzvoBFHQ0AA6wIC3L+dqotEIY6fawnRZoS?= =?us-ascii?Q?/u4n0UyjaGVKxn9LTq6n0zuO7wi8W3WEI2daPvdkTTu/qEMW49RgUQPRL6Zu?= =?us-ascii?Q?ctarQDI3WRi/fKsEsJX2AnB1PDoFnieQ2/Tb+N2THa6clsnQQFItbKjywtT1?= =?us-ascii?Q?Mo+gLiKRTNjAOlN9xM9P/b2W7haSIHffY4h2MWYfjJqjybTVJUS/bDLNt439?= =?us-ascii?Q?4p9RqZ0p4CtdQFefmBADd7BiaAHbUdCRBEYjOdBAoGmb0OYeUcOlIhopPsXn?= =?us-ascii?Q?Ieht2MuqfKfQHaEOTICqm0dI3UrQmTBlzJbdRLB6w8EX81JayVAMKfsPUSxN?= =?us-ascii?Q?STNp1t6AQBxzwWpoZk08tEAGcLH/j/5qBLYIovBhBvbI9V1rHEcjcQXx04N0?= =?us-ascii?Q?lK/1WysRH1l73onJ7jMO9VH6nSqsVqPOBQYR2HRpm1gH7kEJ13lY9sSBT0xL?= =?us-ascii?Q?bZxQ7kaETFAYWTwlgy2flZJk8twJp0mRge5klqAwQIe/EIqHSY3/Wo7v9QZS?= =?us-ascii?Q?SdR6NIh4KvUfZWqzjOFOOuSVneZJ0YbNDk7j+Az8SIZ0lGGV7hcp7ZlVZ08c?= =?us-ascii?Q?pbOYaG5aCL9dkGT2UEZz8yLgWqQ/MaXdGwEoaeMcxRADrzrrg64uxCY3Eq69?= =?us-ascii?Q?LU0vWb9SlpX6IOeHOQwMII3d+8xeXJ8s/AoeI1SF6v9eAaPNnSz4P10T0KrQ?= =?us-ascii?Q?XWLXfSOSMFbeGRnKUtF+EFv3dC0+P9Uj/AUY3I1vWOGRN/E6HhD8slzWQhyv?= =?us-ascii?Q?9axVavEsk5Ue4JOVM0P+g2fpUzC8vEORQfrpCodCJtZ+IFur4Yiu28bHktbI?= =?us-ascii?Q?pW2Uf9XbG8wXk4xIPbr5kx1bIPHhYhOJoVS1h85S/ksGB7wq85Z8rMAZdX/T?= =?us-ascii?Q?YSdkvQX92i1GzHBfPjUE4ka8PQJt5y2uCg2pS4pz5bY3PqoKiYgxxCDA4S6q?= =?us-ascii?Q?T/olhvHmrx5ut/brhihkzN08xhdnPK3m7fYF7VliuZmhqLV25CcAMIkav9eV?= =?us-ascii?Q?Qk9Bh/qza+VwpshajAVKX6kozcw6L1qtoaAQwxFEL+FVySS76weLLqSO29Vg?= =?us-ascii?Q?=3D=3D?= X-Forefront-PRVS: 0359162B6D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN6PR09MB1475;23:k2ZOXiYkmLN3DrWrpsfJZQjKG07ppsK9Ij9jBclqZ?= =?us-ascii?Q?KClWnU3n+ixY8ly7K0hQPO8ZbO64AaJvoNc8TzwBR0nO+7WHuhBUO2ssCB7R?= =?us-ascii?Q?IDGapN5QcCq1hT3PvqMGK8vsIOY7cCwpYepgYmyfg0MEoo6tvDWFNKfZelVn?= =?us-ascii?Q?V8VN0cmDzqXg7779/kg+bt9ONvcGoWWLIcjUiSvXyH6La/nDyouSA6WZSwOR?= =?us-ascii?Q?vQ18ne2pD/scBbxWGH9zkPJ7GaH9AmNcxiYuDD19gtfj6GnGtN4M0xHkksjm?= =?us-ascii?Q?AYLXrG70WzfJfc2P+45loY4ql5FMVkIfuEAZJu88PK5fpof0xc/SNUCDzyMQ?= =?us-ascii?Q?Xu29cjfE0h35rHJWgo41aaJhoNSwZmTr2upRrc7822jEd5yw9nz3im5DOFv0?= =?us-ascii?Q?opwrQXDSNlHW4Kxx/32+2NOcHfKYvpZQOQ2s/5NdOKYzCbXJ4Z2XqXCDYCyl?= =?us-ascii?Q?FF9isLKJNX2pV2x0a9n+FWfRfzXdLU/XVIQShZQk4NlyCi5UNV3OSWePSch+?= =?us-ascii?Q?L9gWni3MZbPHnMno+IIUhjDM0rnk2ukdarMxWlVl60YJfqU27Od3EHs6estm?= =?us-ascii?Q?r9WS48bOiTN+KNLe5EDro/G0dtW7M6i/m7DElzIFhmCBkPRD5T8fPIbzJFVx?= =?us-ascii?Q?viaQjcyHeicP47k8DHfnCsZIvX6tObkAy13AjBPFXETEtsyTpJ+ZCP2tm9VR?= =?us-ascii?Q?jwyewAoMNcwMzzaX0k5X5OA59625FS0Wd7/w7PKVScVBxeWH7qYOKD3BUD13?= =?us-ascii?Q?/IcoVf2Y/M7/GkVIW/XIGKCgKghgddSrwn7jXdja/engEauTFy01+NBsj7wm?= =?us-ascii?Q?nzrSz5jX/Mbawtb4+I7N4VkTsnHZsXkAILKK/cJFZ+t87o2TQTRc49DhiQok?= =?us-ascii?Q?z0tqEi40trqj8w5lpTL/TsFo6FFDMZJl5n6UOM96oofs6J5C3K9M4TZUj/IE?= =?us-ascii?Q?HJS7aRDrCMIVziz2YB8YoqD8c+YgcEizv5tZFAyIGznvUObdgtIjHHFcRt30?= =?us-ascii?Q?2VX1I2fr1QP6vSywaXZ3ED48kfnEAH8OClj75xnATp/lyfu8Aa6f+vy2PtqE?= =?us-ascii?Q?K8S7ofq1BF23cZ9KxUKQ6rqc3GKHwjXGACWufVgmGbzzHlfj1wWeuR0zC62V?= =?us-ascii?Q?B6p8OX11MNxcUE8xn7k6Ne9SRIDvLocjGgfAm5AGIlGP8yIIF/qiA=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN6PR09MB1475;6:iIESKl8KtL46RWmPtgDMMPNLakrIjU1dpcDv8jXo2o?= =?us-ascii?Q?U5Nti55HKylH8XU5bNvg4e6kCSQ6pulFsxSGAMVYEtzlkG9L5b6YfJzM9EeQ?= =?us-ascii?Q?BPYAkYKfPcYyM1xyX/Udy4bUuyyV5kRaO6c5Lj7P5Sb6jsgSYMMVcmg7qLDf?= =?us-ascii?Q?nPuOvkB8nnjLoB/ZAb18OsxOKQgx/+J/XMkKd0Tk46kKUuGT42x7/DtC4+rR?= =?us-ascii?Q?S3XvygQNEN9QpA15la6m+tZyWf5zy6ukKcSjjXkHuJb2aaye0wK7Jr6Wr7G/?= =?us-ascii?Q?qHlb87VTMUiIWzZyj65yXWdYXwsuh643IcntpS3yTQEB75iLoB9Cj7WNq3Fz?= =?us-ascii?Q?7dDLGj1n0ixbgPifj8AiCCDAwqi9B0dYdGEKizYlbLwsiWsSWpVzKf1JLTfU?= =?us-ascii?Q?mmYU2Zh+dm6X8dYM3qVZAdUSuRooLPwvk1r3djEN3dw/lIREqWpcBVVVxGdj?= =?us-ascii?Q?FdG4Bb8T6Bj+1Od9VhD41O0D4enNUG+tYKiXP6AcZ3kGqo9OQKYzvdLFk7oU?= =?us-ascii?Q?KL+PPr7rgiSGmUDkxpO/jbEV+CxEgE1e/kF/QyVn4K6Tgaz9i82fTg9ry8K4?= =?us-ascii?Q?/oQye/Kx8CequV/m49P3+hJomXs2E4SSyJ/V5Z6uKR+HY4WAixo+ZDUKHzFm?= =?us-ascii?Q?z5YnmYElFv8zQBrGpCjmGysspl5AsgVPqb9SOV8bYEvNBQ21dXkRIMFXV9+h?= =?us-ascii?Q?1R7C8k2cm0eOEdf3T/4QcHHaEP//25Wch8QIXmDFWBq6yT6LRAujzBD6hoOp?= =?us-ascii?Q?wVqWQJWcvYGV+mFqQ9IcX9SbIMepecDPXxYxSkFk2Pu96b5tzqIXpVBFfSAL?= =?us-ascii?Q?hZUKFY18J1ycLbIXuV946OvOdGkIzSahHRoHAgK70V5K1/+7+TKKPzdBER6h?= =?us-ascii?Q?zdMB8qRD93MmAHsono9J3v4eP0BWH0o26joJMcZ7lP+5w2BAMN8XtL9oswEG?= =?us-ascii?Q?wvD541FfU2Epivll2tuOkdqZJFGwe6GI0wUbn49ZRcbdmn1e+5D9mPOVVexl?= =?us-ascii?Q?vlaSsOYdb87lj2RHAtuQHI?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR09MB1475;5:rn4WzVirryRtLnss9A7MvIxSgcicQQhqe5W1+Fyia7goPLo/5iJaxkxpe2n7nOE0cWsm45B2sABLGh4RumCfnOz0vXoOFspKq7yzVcq3IYshbguIpdaTbcbaZOfXuydt+C1z6iAiX4ta7aoRFZyc61lQ+w+QJYi2SL4A0P0mDqqc9B/r9aCJ1iaDXcf92T4Gqy/LvznZL1ZxQq78f2Tqz8t9ROK2fHlZlydGnIllRpYLKxAvNI9Bg12AofOy0iIQsyXd2zRnPfzVIvSkNPG6ACYGBmbufjbPMhvSL3LczK+sChNIZa3K9/oxqlgz4ti05z3L/ltU82lfRZZrxVTCATrw1llDDBD4BjOHdO5MP9romaHquoIpmtZ4ITFOCds9HRRU8rZgt2DClitXODF3eZJbsHkBjFTQIeIIH6+JhvPB931KyArgO6PkdjKFjVMVn8XNljVOwW/tMTecGqlmYtYu4ADAVgoTpqxNP3EsaEI9+zQ5VzYjt21IOEtA2r3z;24:o2WcUVgvbkHpFCqO05Q+Dz99KD3xe0bDY7GSRWTrgHeHAWcROxQ0tGnR5g9lQSSUOMDe9Zik9oXNMb3nshR8t9TBtAPz8Wq/yWt10KRpykg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN6PR09MB1475;7:6VbH2iPwhjKT3ES/HZGXb06T3ut5tHXtJZeY8PLTF4uDxh57TiEmxpXdwq19l1wfxY681SkHTZWaUKMEfQYERAmqQO2aNlMLLAZeQz0zhBhbX7DraI466rMNrdkqdfkBEU/7h1lMietQ49+uYzCoREUVehuInuFNErF4WOE73tUdbRGjI0iZGlYJnBVuGafkO1B0vF+CiMLTCICs5wt9LeULzqjMsTEURg+aBpDYs4EXlOAa9PNTipXCLZoXk2dlOfcR4RxYxF4EIwo1nx1xCs+7dX6DuEJT254nHojqKqxBWRQQ+t6z7jkHDWVH2AXI98e0W/SQaxZVcgUE+ZYMkkqXuDrm5V+5T60Fa+SGGxvSVyIySfcQAQ0f+b4hEr2j/oiAG8FlkbRAe7wPbo4Xu+W9EoJaMVGy1cqKFRIhfsi885FQG1m8k9lUg52QnFrE4SZLDHha2dBMol/P6JJliCRxVYT1FZpdvd9BEh8SOs4Gqfv4lEzyu9er6I/LCDGpFVpKloQeQZ+ypDnk+n8s3qOFFoV5nnXJcp5hIeocIeLnQMY6fNZTGZSHucz5++KZlq+sCO3mzR1FVPdswzo2dKT8Uci59RpvKR76A3RCxuk8KgxsYq6Rt0xytCoiLe2YMPZ7gNzapWYGqM8nSVLU/XTALKOiS3J5GKVPWn6hzUB087lQUew3jxCgvUIFvotTND0vwoXFe87Vaf2L38K9Q+yTLErISKY+mMe3laTM8dzPnK8cji1Fxa49oP6WpXZAbKtMUuQ51v9H7+j58nqL1jGn2UiYpOewF4Yjohd38uw= X-OriginatorOrg: fnal.gov X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2017 14:22:27.5065 (UTC) X-MS-Exchange-CrossTenant-Id: 9d5f83d3-d338-4fd3-b1c9-b7d94d70255a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=9d5f83d3-d338-4fd3-b1c9-b7d94d70255a;Ip=[131.225.12.125];Helo=[smtp-ux-prd3.fnal.gov] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR09MB1475 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Permit use of either fmc_device_register_n or fmc_device_register_n_gw depending on the type of device in use. From: Federico Vaga Signed-off-by: Federico Vaga Tested-by: Pat Riehecky --- drivers/fmc/fmc-core.c | 15 ++++++++++++++- include/linux/fmc.h | 13 +++++++++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/drivers/fmc/fmc-core.c b/drivers/fmc/fmc-core.c index 50e18ba..be411e3 100644 --- a/drivers/fmc/fmc-core.c +++ b/drivers/fmc/fmc-core.c @@ -199,7 +199,8 @@ EXPORT_SYMBOL(fmc_driver_unregister); * When a device set is registered, all eeproms must be read * and all FRUs must be parsed */ -int fmc_device_register_n(struct fmc_device **devs, int n) +int fmc_device_register_n_gw(struct fmc_device **devs, int n, + struct fmc_gateware *gw) { struct fmc_device *fmc, **devarray; uint32_t device_id; @@ -313,8 +314,20 @@ out: return ret; } +EXPORT_SYMBOL(fmc_device_register_n_gw); + +int fmc_device_register_n(struct fmc_device **devs, int n) +{ + return fmc_device_register_n_gw(devs, n, NULL); +} EXPORT_SYMBOL(fmc_device_register_n); +int fmc_device_register_gw(struct fmc_device *fmc, struct fmc_gateware *gw) +{ + return fmc_device_register_n_gw(&fmc, 1, gw); +} +EXPORT_SYMBOL(fmc_device_register_gw); + int fmc_device_register(struct fmc_device *fmc) { return fmc_device_register_n(&fmc, 1); diff --git a/include/linux/fmc.h b/include/linux/fmc.h index 5c8df0c..b6c73d5 100644 --- a/include/linux/fmc.h +++ b/include/linux/fmc.h @@ -220,14 +220,23 @@ static inline void fmc_set_drvdata(struct fmc_device *fmc, void *data) dev_set_drvdata(&fmc->dev, data); } -/* The 4 access points */ +struct fmc_gateware { + void *bitstream; + unsigned long len; +}; + +/* The 5 access points */ extern int fmc_driver_register(struct fmc_driver *drv); extern void fmc_driver_unregister(struct fmc_driver *drv); extern int fmc_device_register(struct fmc_device *tdev); +extern int fmc_device_register_gw(struct fmc_device *tdev, + struct fmc_gateware *gw); extern void fmc_device_unregister(struct fmc_device *tdev); -/* Two more for device sets, all driven by the same FPGA */ +/* Three more for device sets, all driven by the same FPGA */ extern int fmc_device_register_n(struct fmc_device **devs, int n); +extern int fmc_device_register_n_gw(struct fmc_device **devs, int n, + struct fmc_gateware *gw); extern void fmc_device_unregister_n(struct fmc_device **devs, int n); /* Internal cross-calls between files; not exported to other modules */ -- 1.8.3.1