From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757987AbbJVSDo (ORCPT ); Thu, 22 Oct 2015 14:03:44 -0400 Received: from mail-bl2on0087.outbound.protection.outlook.com ([65.55.169.87]:61696 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1757957AbbJVSDl (ORCPT ); Thu, 22 Oct 2015 14:03:41 -0400 Authentication-Results: spf=fail (sender IP is 66.35.236.227) smtp.mailfrom=opensource.altera.com; linuxfoundation.org; dkim=none (message not signed) header.d=none;linuxfoundation.org; dmarc=none action=none header.from=opensource.altera.com; Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=atull@opensource.altera.com; Date: Thu, 22 Oct 2015 12:56:51 -0500 From: atull X-X-Sender: atull@linuxheads99 To: Moritz Fischer CC: , , , , , , , , , , , Subject: Re: [PATCHv2 3/3] fpga manager: Adding FPGA Manager support for Xilinx Zynq 7000 In-Reply-To: <1445035350-3569-4-git-send-email-moritz.fischer@ettus.com> Message-ID: References: <1445035350-3569-1-git-send-email-moritz.fischer@ettus.com> <1445035350-3569-4-git-send-email-moritz.fischer@ettus.com> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" X-Originating-IP: [64.129.157.38] X-ClientProxiedBy: BY1PR13CA0020.namprd13.prod.outlook.com (25.162.107.158) To BN3PR03MB1509.namprd03.prod.outlook.com (25.163.35.148) X-Microsoft-Exchange-Diagnostics-untrusted: 1;BN3PR03MB1509;2:wBxeO76ScBm0venbIvcqUkCT8kUj/vSDmStq5+wUxWgvDP7IAeiJvIUO+dtLR2ez1pGn0I1ecXo3VYRH+jucBQpzpXjiFKjqEskE1XqWDi1YlMpRNSit2OW6NKfUi1HJiNbah5hfx/zgptk/w3+2XTUQQANaQhWhCU8DDJSX0Jo=;3:zq2KUw4FXwe5968o/1T89zlLEwov7UD7+i2kggU+59VyszYC5e1EokwPwfVERfQotixfjuG0ObCvqIl42qES6atm1NWgC1WOCgHsh+WyMkkHogu5pRm7PZvULSWVIiSwasJAcfjjs7qJ3hDpsJUuDA==;25:fSXcZYslP4GFEC0gg/3PrH3BHWoiYPqC02HHDAqUraLXnduziFFd/EerPzf8ZIH8xJf7/3BNSYjN/MCKZQOdtAgHA/GlkS2PmFjy2TWc7dmAFUkWDv7anBF0ABiO2+CLm5UpozoEQgCYEVcMKcs37Lk6JUfII5MSMdVGO/jk7t2/QbntJlWAuhwxkH5hIw9UqJmOcRfYBx6ZTjU5NdgWXjkmWzv4RT0xp0TV4GMxiNvAyYgiUD7Q7fAvPXbE1hVjWkMjS94BpYUsX8lBWf771Q==;20:0GvFzEr+LePHKizzzFxCh78nLjPiSznBOm3ak9/mysV6A2zQ9ujcO7pTrPHCY0D5vJfd6ZpON7J1yh61ztlLsAyug6bWitG/m/BUm984hbWVMgye+iZSB7n5Fqp+Uyz4IEOnZ1Yzb1wtcF+JoqYhst3EkLod9R40rVaYbZ/lnZE= X-Microsoft-Antispam-Untrusted: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR03MB1509; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:;UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(8121501046)(5005006)(3002001)(102215026);SRVR:BN3PR03MB1509;BCL:0;PCL:0;RULEID:;SRVR:BN3PR03MB1509;BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001)(102215026);SRVR:SN2PR03MB045;BCL:0;PCL:0;RULEID:;SRVR:SN2PR03MB045; X-Microsoft-Exchange-Diagnostics-untrusted: 1;BN3PR03MB1509;4:btC46npMx0vqRKES8F6zcga10JQ9motRXiZPhiTrr1CHlsl/+JhK1rqTuzzdvzPtnNnhhtEZdDy8dZYehBnpu1CgIfDtd4Wu4Dlh+kMdkpuOYWPIhoZSM83xgk1AZE+48iB63vAKbP06l2XYEBszCSONB+FulVQRMfUdTHdElJdK9meYq6aFs5v8jJq5J2tLBWJ7EzfMTg+jK4OJJVAyYqCCLTko6MHyHI9ygq0D+nudPa8HT5mqXVY0HXe2e5Kp0kCTvPg+3TN4jy32iJCeyN4lf6XZbb6wND7tCKFuxqPFEi1Y9d/X+msTWlCyisK+9uWEki/35laQhhJjkNhItkQHuO+yAkRQb7N0OwDeiVscrA4QwBZWqiMDCM88v7ea X-Forefront-PRVS: 0737B96801 X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(6009001)(189002)(199003)(24454002)(81156007)(87976001)(86362001)(106356001)(86152002)(33716001)(47776003)(105586002)(64706001)(92566002)(69596002)(110136002)(66066001)(42186005)(189998001)(5004730100002)(5007970100001)(4001350100001)(97736004)(5001960100002)(122386002)(77096005)(101416001)(5008740100001)(40100003)(46406003)(50466002)(50986999)(76176999)(83506001)(2950100001)(23726002)(54356999)(46102003)(53416004)(7059030);DIR:OUT;SFP:1101;SCL:1;SRVR:BN3PR03MB1509;H:linuxheads99.altera.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:0;LANG:en; X-Microsoft-Exchange-Diagnostics-untrusted: =?us-ascii?Q?1;BN3PR03MB1509;23:rSJHpb7H+besyoUgsUube0bgP0nK7xGQyr+8wAAUn?= =?us-ascii?Q?KYvtN3X9CXJ37C32Xx8PVpT5LBOovk1ZIAUn9acGwfpg1Urboxqu2Fv4XrqL?= =?us-ascii?Q?UgUnwbyQNd4mtcyJOwVyttqG8MOqdglgPCpsXy8biVhJ0vql/lMMvenVYYea?= =?us-ascii?Q?Y3CZ80rXJCvQNmfgXinuyfxLXMaVOaSJ571IDCmAlpiFVi20Kr8JHfQ8gUcT?= =?us-ascii?Q?68zz9F5ZB65EtP5FSqk0PJ0uvTC+3WMxFJ2iNQxjKrpAYn5CWHvFCLI0oREl?= =?us-ascii?Q?XsceYsyahfeaUscUpblZxVptJ5gjtx1Lofk0a7IwIEg+0Wy3d0FRxCDQ0YaT?= =?us-ascii?Q?wBmlnHT5bnnqh1zSm+hu0Q8hTnLBlaBJkCq1/V1zqLi6MgiVnXV7IBAnsMh+?= =?us-ascii?Q?LpQb8QC+zMlhPkJiC3M4l2ha+IBTYCSLmYu+eqbUs1Oc9i76UzBCLPuh3QHP?= =?us-ascii?Q?JMqF0+13lUfovR2qe7qxFHfq4Nn2ieQLgs7jXqUsSn9TE0PgpBdo/bZUmlnb?= =?us-ascii?Q?EXX7qVaOpfq6O3wQWjUkPdJA4WpK3fW74GWXK57HnV6V6BELQeTCSk2LH+nE?= =?us-ascii?Q?qF6JMvUoLapABn6ahZK6t/eGfY5C2tPVw2icTFV99LA6bLVqizXPGtB+wLFE?= =?us-ascii?Q?pPnxBQyKhZ3yyv4hKHrjQnSR46Tj/wLa0UC5kbGKUC+jIA0KCRGz6VbDVwIq?= =?us-ascii?Q?MqQ4FcUCdk3TaFeUQfcK7MxT3eaW4t3GbYCa8i/5YstwI8a7ucU2mTFyU+rg?= =?us-ascii?Q?zbZR4vlG/0dUA6Sul4O2siLWEvy0rtcpR+kn89XDRsT++s+vzgLqbWoWJasl?= =?us-ascii?Q?NT1n2Z7Fzv4Km6XNUAg8lG2t4pWBc5ZVF54eanGr36LM3xkh8ZKKt2iTy3ko?= =?us-ascii?Q?zyi0nDa8yRxrGFi51KpKu7i9SZbGmRCwa+E/n9m1oCH52VcpLO5Vsen9U79q?= =?us-ascii?Q?KUyQoj1SWxo7oXUJ6Vt1bPQJKtadB/SfDclkZwJ8u/N5/IZeuxi5QUfdvIEO?= =?us-ascii?Q?QuBPEKxfam6cJodI5uhFxsPKVV4AFECFzqY4GlIxzRbHOmErDR++UxoKB669?= =?us-ascii?Q?BANoGJx4E/kwlajspPMYW4rZDX1?= X-Microsoft-Exchange-Diagnostics-untrusted: 1;BN3PR03MB1509;5:gqKmyMObFnBRSvvNkS8OHyJFH1cSyPjhdlgaczxvuhLCI8xDbjP1qvQbO//U6TGbnAYdrRaFG2vyoba3XcTxRMJutT3LJ2NDCGMvG9D2gIYvPDFGw5gSisgNz0OlNbkUcI1XA5824NJ1TsuJGCem9Q==;24:oDbBrUOf74nkXkh+IYtHe4JzUArSRyPmvZuyAi5TsgWdDs+CReuc7r27r5+x/YZu1PlT1clTVEemk3T+WxpKH6fXl0e4lBPLLh+mu61Sa/8=;20:r9p2PXAGnkYQW847U/uzpDQIAFo7Gt2FVNMGfBI5Lh1BP22Vp9Dgz0zVTCHLT80NqQ+a35yH3h7xEvIIK/DBneYL1pYQgNCpZ9yFqyKbP3YZVzifqYEhA3IUSUPTnVOGRSRS/opYQ2utE63ANZk78CwstMZQhKhhVXgiuzZUVJM= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR03MB1509 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: BN1AFFO11FD037.protection.gbl X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11FD037;1:+7HgdSqcT4dZ0FnKSQ16Pu/TqT6691uSo5FeBV2IyRZSaPbGk6IgMP5V53oI8snVJKDeuyJ9kt8mue/jK0or77HTfAY4UWMi/8l6YYJ9AZPfLRAx5b/v/YwZ5o/mXdxeWtBkylpKZIEenzQuH/VWv7xT0f+9IlP67K0Q2h41byw+dJeAAF75wYiX0x5zdlsWDy0LHhj/3QjPM1tB9zG6w7icuFxPrHPp9qH3+WEkA7Y5VgaU9EUacGE1ekeV8cy5Db2J83fyhph5fATxXxLRWzFBD4PsAS4yuTgckrgeLONW4Dhw8J/lSHOspsVVNRgpsR11RU/fdyp3SJh8nw5ogIEpyF4GTlEiDxhCpw+nLMWGDtTMEz2FJU3kBEQPNj28hTgauxkLUlLV7H4O7YPFtw== X-Forefront-Antispam-Report: CIP:66.35.236.227;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(1109001)(1110001)(339900001)(199003)(24454002)(189002)(4001350100001)(5004730100002)(11100500001)(81156007)(189998001)(21840400001)(5007970100001)(6070500001)(97736004)(50986999)(54356999)(106466001)(5001960100002)(105606002)(86152002)(110136002)(86362001)(5008740100001)(6806005)(5001920100001)(33716001)(64706001)(85426001)(2950100001)(87936001)(40100003)(47776003)(92566002)(53416004)(76176999)(66066001)(50466002)(77096005)(46406003)(83506001)(16796002)(122386002)(46102003)(23726002)(7099028)(7059030);DIR:OUT;SFP:1101;SCL:1;SRVR:SN2PR03MB045;H:sj-itexedge03.altera.priv.altera.com;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:0;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;SN2PR03MB045;2:C2Gd79nkfWgvbTJtWKJM63aLLeSGq0R+pnagJiWvyReVc2s0w4Uhf3q1L26hJzEUlT0bHvxYFEi5ypAXfgc8Zwuy2Z5e4jg6GA3QzA/eSMpRQdZS7zv03jeZiUVDjPOLiIlcUJlpKXe/RBEIYMASxw+0fro5XS2N+/AQAjo+FWk=;3:bdeQyLOOYCchWxAxh/zzD+jNd6uKfaQnCvliUdroxvapVimovprsihZNjBC+lgx+30xFzWsXSyM/xkaCHBt39U7PBVHGIe/ZGP/AFTZyr7/OZOxPKpbfE4I5ZKoIKOFwmxEy2QzO3oJwTfmUMmmw03TIYH2h4NIx0H2QuyPsQsBjPBkRPMlsE7F1qr8SW1dJ0y4jMHQ7CSYKSywtRyspyzMLzbKFRjQNMUr+eYZ4hvw=;25:z8B7RuWv+o3BQ1tkc28UKXUjc4gEJDOvw3hn7qvrvhlVz6j3jDSEeoOk3hQSEr7yjyuN8Y8BM92POkbFgTjJjwerzHoiIAWOnqEea55fArUTokgbLVdh+QT8fMy4M27ZGkgD3JfAiBeCgYF9gubPEfhTf1Cd4Pq6eIP76SuB/wGv0hPBycUuo/QeNURo7iL0/4Ah4sKMR8IaHo/TY5dAhaXPFpAcYrCBuxH2QYnt77HJdx+4pj+7UJVk06dy1IT0wEeLvdAhB7+YFLeUR/ivlQ==;20:bYj40/QaU/K+kaPdfvBC/xFW3TwP+1CngfE/0H25/OG8kGt4AC48UThV3tk886HKVcRXtcivLIaC3bKCFW+IKh3mm//zQpTyI4bNSX67W5o7n5orRYjHdP9yC0vRWnJ+dpPaueHjVgkTC4+5KM8y5Qk4zg9IXsN5N/Vi3F5tbrA= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN2PR03MB045; X-Microsoft-Exchange-Diagnostics: 1;SN2PR03MB045;4:EYKoq/ifrGU3kccO5o2Fd+t7omQJl+olTNyzfNj1zFjeE1iVepN97rbAOok8MMS230zR96kHBS9sAn/k1JpDNMGLEqB6FFgDinsy+jEkZPObd0jVOrcGSG535xZQOIevriesRD8WTCJK+fbqFdsbdlE5aG8MKBp36YjxvyLY0tYnJYFCBahyuq9mcnbXWpDM3jBXScQh/HvcSFm6ulvYXrGiuggkwy7IKwd3HCQOoP5Pala7MRTFTJ9pZL10uJ/7vJNthicmvL4fhAFAJggTw3aMZIxdEYEWv2OMLwg6VmWHkeRGdW2PdaHYUm9EfXHCurPriQdkut+AbDPCLBxRVoOSX8n/fAqp7NRU8rXVOp+IE1heOkQiPnNzI6DKazRF X-Forefront-PRVS: 0737B96801 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN2PR03MB045;23:NbRfG5wxq2YFk3m/SUXLVfmA0DmFXQWvXiBSyWfpbJ?= =?us-ascii?Q?y5SXoWeX0Wrg4PN6k7H0huZohIyvSWJI6CoAfjWITxl0ACRGOOVHiyqGYY0V?= =?us-ascii?Q?XXOiFEWWVOl4X4KKilLMNlA2QJ6opd0t9pSbQDhF5hGeqGLVQ9N5Xys68FAx?= =?us-ascii?Q?WPeOYotRLqhnCZRBE7dpxsMSgPjWfYzacFaBxqij+/nbPjrS/QvhqRlN6z+O?= =?us-ascii?Q?S5Wq0FauLI0BqWX/Haqbrs/l332nilHYFaet4jzoCxdeZZ9cA8+MO2yopcYS?= =?us-ascii?Q?83vPKY0pPGEpQanlTyxX7VQEuq3VF4Gn+aPgByPgVRQxIkqKBnY6aihifyuf?= =?us-ascii?Q?qH/DLRYD2Z9iJ8AQLAfTCUoLTR8jlRdZqGcI2DqPxaA/ervJi0NnNxQrt1Lp?= =?us-ascii?Q?y70melC7WwWWjAYxgoJVgO+fCI4cU8gIwGj/u1TfF2FdnzvjSPv4XXEdJy0z?= =?us-ascii?Q?erEsZJxJO4ypJyEXLaAA1tmu7lEYvgwJvKOcktIBpQm2kco4FXFOLVm1Wbva?= =?us-ascii?Q?2ZOImfTglVA10Z4hCy03NDBvuvjIpGN2DfpQHKGKDQuTPLyqifu5oE5kkApP?= =?us-ascii?Q?ooXtfYqFkVaHmhXkYuZG+pYtj4zKm98Rd0y0tVoZsMDvWPiSlkVlJXWUPh/G?= =?us-ascii?Q?sOluE18hxMKs8rCI8vi+boEPoxQ0bN5c2nLEcGbSHaho8pcxdH+uL7l3hL5u?= =?us-ascii?Q?OyF/jnLGAEofhZl/kGC0IOZf5Kshj2nNayTEZIMz6SmcuPvVH0vdXVxkTdkv?= =?us-ascii?Q?3W97Mrt5z0rvpU3OpkC0XpFI8SyJ96bHRYxessnIpczvOw1DxefS/kB+dLw2?= =?us-ascii?Q?cmLevXDEfK4RTPBCQ9DA8fsaTqr50SyapsK/nxX9dZQ0thk3PzVxVX/pI8jX?= =?us-ascii?Q?RdHwBvi7HUCvUCEbz6BdX2MxCMDLpiaHVSUKCnCFigAkXsLr6azBvW7srgZ+?= =?us-ascii?Q?T4H15uQj2Qv+SrTdZcmnVuKIETNbhJChy6iPEzLkkMfdGtodueYFdQzMKqW3?= =?us-ascii?Q?SJDfqXLg8FHf1K33xieQme6UYTN4NKsKjauuhM6fRiNTyA0uXIk9ZUEZgNMr?= =?us-ascii?Q?6zh1VFX5FWC4pD8jZYzKcIGqOrKna8jDaAynzdzhoOJc5g6WbGou9xozZ5P/?= =?us-ascii?Q?vnC0VLcELj9IndsN6d5P+UMVj+Ln84AWfkD/na98hJSyix9cftpjigTlNv25?= =?us-ascii?Q?E5fcRQGiwX3+mxPIAhqHBffHbiBI+HFoQVOI6tE1sgZtepCDjSn/7UU99/vX?= =?us-ascii?Q?G+nU4SR+lzcdPKqKMbkphifunSQKBonXO9xlzDiDVNZVLrVRSJh8yhisB4zg?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN2PR03MB045;5:2Mi8nGWDO96Gp0qv9hJ2sftUt/tjmh5Sh+QPkz7eUTm63DDDv242AGUPaEXI/W47zhxlCTqVPwE33XVVWC4ADHZVt+OqbGHQo0GLiZr/i82xaJ+C7b0Bv/GJ/hLBD6EcqGWzgLXa3q7Z0f+rAi0x0g==;24:x56UtU07SYw5OJvAGBcfWP1sPDn74rwM77BzUSMSPXsLfPkK5nuM7FySaJS72g1vtlEYqtjCp4we7ULql0JDglzZ4uSKuUz3dLeaSVi2rew=;20:oYuIhjwRUFRs81cTbE3JkynablQ/viwX2al4m5TA3chprF1RV9qtFZ4nXtc1aDDVjcL25v+o4TdzE7GEwPXw3l6JkcYcceVL4M5gm9ZarjsiOhGIj8HtkX1LtV05uinvvSng3dRCctXvRbvPm3M7tZgHo2BJw9gpCxVaGaLLgLk= X-OriginatorOrg: opensource.altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Oct 2015 18:03:37.2396 (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: SN2PR03MB045 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 16 Oct 2015, Moritz Fischer wrote: Hi Moritz, I just noticed a problem regarding private data. Fortunately it is easy to fix. See below... > +static int zynq_fpga_probe(struct platform_device *pdev) > +{ > + struct device *dev = &pdev->dev; > + struct zynq_fpga_priv *priv; > + struct resource *res; > + int err; > + > + priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); > + if (!priv) > + return -ENOMEM; > + > + platform_set_drvdata(pdev, priv); fpga-mgr.c uses drvdata for its struct fpga_manager, so this will get overwritten. So remove this platform_set_drvdata(). priv is saved in struct fpga_manager during fpga_mgr_register(). ... > +static int zynq_fpga_remove(struct platform_device *pdev) > +{ Here you can get a pointer to priv from the fpga_manager struct: struct fpga_manager *mgr = platform_get_drvdata(pdev); struct zynq_fpga_priv *priv = mgr->priv; Alan > + struct zynq_fpga_priv *priv; > + > + fpga_mgr_unregister(&pdev->dev); > + > + priv = platform_get_drvdata(pdev); > + > + clk_disable_unprepare(priv->clk); > + > + return 0; > +}