Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755769AbcKBO1f (ORCPT ); Wed, 2 Nov 2016 10:27:35 -0400 Received: from mail-by2nam03on0059.outbound.protection.outlook.com ([104.47.42.59]:4704 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754772AbcKBO0q (ORCPT ); Wed, 2 Nov 2016 10:26:46 -0400 Authentication-Results: spf=fail (sender IP is 66.35.236.227) smtp.mailfrom=opensource.altera.com; linux-m68k.org; dkim=fail (signature did not verify) header.d=altera.onmicrosoft.com;linux-m68k.org; dmarc=none action=none header.from=opensource.altera.com; Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=tthayer@opensource.altera.com; From: To: , , , , , , CC: , , , , , Thor Thayer Subject: [PATCHv3 2/4] misc: Add Altera Arria10 System Resource Control Date: Wed, 2 Nov 2016 09:32:56 -0500 Message-ID: <1478097178-24341-3-git-send-email-tthayer@opensource.altera.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1478097178-24341-1-git-send-email-tthayer@opensource.altera.com> References: <1478097178-24341-1-git-send-email-tthayer@opensource.altera.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [64.129.157.38] X-ClientProxiedBy: SN1PR11CA0031.namprd11.prod.outlook.com (10.164.10.41) To BLUPR03MB1394.namprd03.prod.outlook.com (10.163.81.140) X-MS-Office365-Filtering-Correlation-Id: b01aa2c5-f285-4171-069f-08d4032c43ff X-Microsoft-Exchange-Diagnostics-untrusted: 1;BLUPR03MB1394;2:uHR8aPole63eI+JDmGLtsJZ9xrc6qtUYiTI0yKPk+9HCDzK8XDOT3wyFvFXEpl7V8fL7jfCqzyte08yVRpgnmjz+o9UVvU8NpayrH57+f8g1YmezVqFmfgYBWECm5NKauWwwPfQdm7STbgDz0vokI8HBfVa+N0Yxl7jRJsYLaThSK7H+kTvcGkgctQcOTANE+6fMLiM5d+o9N7owFlU15g==;3:3M2wY4cMJjwQysR8f6MXPOHJqCFggrR3cXsxE0wTnnrfyJ2mT5dQcXKWvtCHWxMxXan6UEeAZq+mFXxqb5/2e3TAFb+U6XK1oRZaZZAeAf/5E0z2O5uv4ilIBmg/cOsiFw6vLoDmLLKD6WIXY9WgEA== X-Microsoft-Antispam-Untrusted: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR03MB1394; X-Microsoft-Exchange-Diagnostics-untrusted: 1;BLUPR03MB1394;25:gQWsiS/rv2zIdEjGKQhkIcO02QG27iF/8lvRCyRouqEcsAboged1HFfzyRuYJswfWJhHYOzhJi5D4OOr+RwlEOsk72De2XPkTEvt9HbjRBo9zFpv5XQD036ULmOFuQb9sS7FFXz9ekNS06VwR/YZlPZKFss1l1vc1YNDftqLWeE/F8Nl4xyvjWllGFDiV8Kj+CWalapcsjWWaFo4rHjdBi7FitYR9NdRQ31tAuTSq3JNnipLJmC7ZqenuFZq6OB1jGm9E/RXeGEZcN6hBZXnHHWyT9rThkuespoUxQ5wdSjGYtAPXNCJWHsg0Ris0bW0k/eeDHr9ZDSvsPyOtSlS72153W89ws2yQ6G/Dx528sdjDeswTEvRDaL8PynpxKria4CSHIox2C/QaaURNC9vR3KC4rVDa33s4mHKQ/uKJUE4vcjG50hNbnU6LjGiz0v/yXa0YMIW8biuTCvvjke+RwRRBKipreY9S2nC15VhojBqDElJOO9mKUdDdxMg9LI6UY+u6YN+lF20kPz/q49+6uR0haYkb/IyEX4ZUVKQ99uO6XvKMqZUOulm7Vqdyn6nA+n4h7SI3S0QxfYpvDytZ2u8MCOfU7spo+BN/PHSD5Ruh0XsW92adhn1kd4bAaVoMokC/z/u5eQ7mwXf02j3+dacdpGzoh5XHRIKw3uvuY+VWa5IHghuA6cdeVqvmIL1BB861oaSbmKCnQmeoGycwsx6dDsEk6hEw3+ZHicdUXn+JfozAW/Zl96STJa60Jiy5oZt4aPT9LNsRoNJwsUV5tW7pbZo43GpPjHB8reOzfXn6Ky+gAg3weYGKSo55SXoIwYDzOCpT+kk/DKR6P7jBAyr2GeFciFw58mCcL/qk3s= X-Microsoft-Exchange-Diagnostics-untrusted: 1;BLUPR03MB1394;31:zVRMYp3kTZZqyhwTrBZoPHa4tdU+Mtf6/Wq1kPm0Jyr2+yabsDqx1/xKBBJs+DF1q1tcZ2t3BKKWQl8RPjzop/ccQwH+97WCyglC2lpXknPIDs/Nfx8Qjou32G37xzNjmK1ONmkI/hZr7oR0+r4znkBhyI3JYnFNN8jzB8+t7Sfn6cHhWWlnGWFiWiZgFnJRPENZXyxSy0loM2Pc/y5i5hjLYm68o7L/FHxxi64KMFQ9HsWwAUxvhJOyE0YXHPvzkuXrnjVFjIsJFsAOFgmOtg==;20:q/EJ3WLd5WEATjurfqVSoWZUYVa8mnxv8sHvfA1zi9PPYMVeVzP015RrGtKEX6P+99yrKIU7A7by7y2oI30fWSdfVq4acu97UeTugD5kq70X/K2HdbVpPs9WBi5DhBMUVZ7UureXpOR1NhHd+QoyORKEHo0rM/N4o/bXzIist6g= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(250305191791016)(72170088055959)(22074186197030)(80048183373757);UriScan:(250305191791016)(72170088055959)(22074186197030)(80048183373757); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(6045074)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6046074)(6072074);SRVR:BLUPR03MB1394;BCL:0;PCL:0;RULEID:;SRVR:BLUPR03MB1394;BCL:0;PCL:0;RULEID:(6045074)(6040176)(601004)(2401047)(13024025)(13023025)(13017025)(13015025)(13018025)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6046074)(6072074);SRVR:SN2PR03MB2302;BCL:0;PCL:0;RULEID:;SRVR:SN2PR03MB2302; X-Microsoft-Exchange-Diagnostics-untrusted: 1;BLUPR03MB1394;4:vth71JUS/iFR786N4mnCWizBj9zGu1027WLE5FrkuF5pnqxq0Y14taPrJXEadbt6FoapEQ/gD34vY8n9z+m80eX9v8vSZkoUTrhH8+RMhoig2RhZOzDqvaj2oXuxMJoIGFRGBTKgyC2GybTdQB5qGDtfnIEEmR6XUD4Irv/119KA+iCahP6l8bwEtwZjEnu1b5ms9lbc/FYlX3FBKUOwIp8+xeqaQ0GWz5miYdFASz8veZjeBfdLUXHVmcMn/SpFDio/XmN5s6mAio40XyTGhr8QUggTMJrt67Ez3n9K6QDxK5NcJPxdtrAZvAhXvPafo9b2ZfP9b2SvqRexo6qiZ8zpT77qsP+whYyooKPa9ggjlr/5qCr5ET+IQ5PpmAqYhS9eFnHSf2R2tgzbCqhzMAzLplBWQ5f/ttQgZQZMJZT+hmMAo4wQju6foIrD0Lv4J01YMSx0DaWqH31yhOOLyvWn0q2X9Y8zk5k5c0WII47eKnBx10zvsBfXQudQaPzGbz95nH6n7l1l60cgQgz5Il+ziTNeGBoqBKpbgxiZJuUeKSGZhhzbSUdcR7t/Lg7/yn8KMqw4oo3Z05TCPCw+hFB0uZIXsyUU+jZ4zn7v3SmMerp/FUiM2Q+IgRHyntBa X-Forefront-PRVS: 0114FF88F6 X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(199003)(189002)(66066001)(50986999)(7416002)(5660300001)(47776003)(5003940100001)(6116002)(3846002)(110136003)(106356001)(2950100002)(586003)(53416004)(42882006)(7846002)(7736002)(42186005)(4326007)(305945005)(92566002)(105586002)(2906002)(101416001)(69596002)(97736004)(85782001)(81166006)(48376002)(86362001)(81156014)(33646002)(189998001)(15975445007)(19580395003)(50466002)(68736007)(6666003)(107886002)(8676002)(76176999)(19580405001)(4001430100002)(50226002)(229853001)(77096005)(2004002)(85772001);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR03MB1394;H:tthayer-HP-Z620-Ubuntu.altera.com;FPR:;SPF:None;PTR:InfoNoRecords;A:0;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics-untrusted: =?us-ascii?Q?1;BLUPR03MB1394;23:bwAi15SdKWD8EPwvdkh4InquWc/8MWu9AKQXr8OXV?= =?us-ascii?Q?vFLtpyS5co8tjlPr2C1igzdPwtNsH9LsRmi35n8XWaJARD7lm2OyEP3HWXRi?= =?us-ascii?Q?BZ2RQZMHZnOudwhTXZaqjvkDXzq0WAUtc7DOK7x4MDvETMkn8SwjSY0arBe/?= =?us-ascii?Q?Ebe2Ncn/xk1/uUlDAb9EivHBoOHWq+etMPOWqBYotZjbGjflynLO7795Z0A+?= =?us-ascii?Q?Ft8OmeMndNkRXYMKhnOOL9KjJR6Iz35ZY3oT7W4kEK37tW+M7+pBcLuU8Yub?= =?us-ascii?Q?ejiDfhTsTsq6QI9gUirq+8w3SNFT+uGJJHHN8dov3GK2QDkNhQdHs/oftOSB?= =?us-ascii?Q?vbiMqoeHrWyZR2d7+QR9Y3XimeEGfutqwGMM3UFBMTyroExRfO4VqvK+7kfS?= =?us-ascii?Q?KqsbK3B1QoVdtPC394ci/+oKTM3EV/MN0xLMLrgzonJeoQ4jq3uB5NpE1gwE?= =?us-ascii?Q?ugeSDJ/r1R+EuWKkFVyNjOwdLzro1cf8yYy02GW+r5rZhXJmo8w+imY4e+6W?= =?us-ascii?Q?I4Xr6BuJHuWKwmEZ0KgPsGV1+CRK0oCtTcq0VMi7IPjdwHzlqjyXIMC78Bf+?= =?us-ascii?Q?RDAAE3mw13sqN1baxr+rzJnAYweDmao3j/4hPNdLXg3EzyMRs3PWptRNRj3S?= =?us-ascii?Q?AxnrJ/Et/VSB75rj9ylf9V+gjap1Czhyl9taVE3LNA/NLRFGSqU16tA2FPK+?= =?us-ascii?Q?w5MTL57Y7EgDl0y9IxacwhPBIXca3T52s9dTO8bDrvSDtRFTEnkJv+NGgADI?= =?us-ascii?Q?ukOceRgnti0oWYy2dQ4prqbrxGjB4NHkou9HmeODdNYuHzRbhca+D/WPRin+?= =?us-ascii?Q?R0pAkgAgjpqaXAryU+QhWNMjCdtCEQ9kYjSCyyvFXhP3BZ/qCKrfZ3hr+wyA?= =?us-ascii?Q?IuHCChjHCFayg53Y5Jnh6f4EaPx1g6Nllv0Nx+o+Whp8MaWydrOv9D/rCfgX?= =?us-ascii?Q?v8wfCSt0as1YgJCm2ScPe0wCh1+FRv04JJLIg0nj0oLNQV8qoflavKZPkutI?= =?us-ascii?Q?lSzCHwzy9Ne4Lr3W4X0DHcVf8dbJ5cJTQ1zY/WuLz7QeTruDwzopCJ1diI5p?= =?us-ascii?Q?xqQnCOD506jBYFFlnWW+N0XNsocq75dntG1iE5OZypPF88wKWJgxb8nRh9jU?= =?us-ascii?Q?M7VsYPSSsvMW0/7HalILKPGcbEs9jwCd8YhRV//G+VKcwk3VRSBba9207Juq?= =?us-ascii?Q?30AR6iiyI2uoAY7HnGjcpM+sJdZFHREZW7/QVGfXordzEyQGmFjVJtW84f36?= =?us-ascii?Q?8N9tivKdVQ6/SGhB/hx58m1H05WUmi5e7bpLhWK?= X-Microsoft-Exchange-Diagnostics-untrusted: 1;BLUPR03MB1394;6:+rbW6Dc+ZaAXmJ1/UJoTioHBGGzeiqdWVhIUmcoUBeZZlywYeLc/nt4IkbE/a10FOrvG/HCBolCkIWTs7qD1+Ue/09+pv94s6/jf1VHnYpuxz1SzHvBZXRXCr/n8y7SrpJyyje1P6lY/NC7xPvDvShJdYXTAFOXW1jzLvLseG/vkcbjlFo/CmOZ5AaOYiIhvuTlV+LPJM2ckEx4hhggHXy/Ffz8fdxzkIu8eeQ2nYKsNcTBW1WeMhXQBODFCTgFVXgEhC+KuqiYaIn4KOM2SydkgS02wfSuSUZWzViIXmWoZvBvc1txFcZN7X0jRuO2etalN8/GbUZdz3pfZ3nBz4cZ39eVyrKg+NsI1hHeLd82PWC0IygZKXcmRwgL0VOSg;5:EdoqynDa/eVKqZ/43YPZ7OvXyOXtFQPnv5n4PMyAdF7+1+dEuTsgJ/Y9eZ31BuT/YkIOGVZAnzcclSaxBLXpqSwR6uKQQ9V0VXvto4EqO/9rwoq9anZhru/ELvWT871m8aWhRjLOCiXgfZdSRauweA==;24:PcB5HQvYLgQNMvAw4UcfdcnXP1Gv+xtd5TWyC5XIf5xqnvHar7BTPQdOmM+YAoalSfVrtytQuRlMB6Q9lSG2i+vc4a7CkMtq6+k7zX4vhSM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics-untrusted: 1;BLUPR03MB1394;7:dOLCBd7w2ERPOfu+KN/kX7K6ygguC+K1vLUXT0Zi0i9hzWNqMQDg/DVwJd6WKv5QuKLvQ3mBbbix7XbaSttcdOWZNtLPwVV8Ud6Jlt8xep6/CAnGshqfzTkhUfgH3cn1Dx6CB+mh7BrBmuL3F/JrKBWJ6AWtEM12yYWRh0cWWkVgL8NCQYXPh/cpmgZN8Ad65n+2cM/OT5et1IrHUn3cuOurE5uyQ3mH+OSc5tlEmqfgod9msZwICpb/puqN5OGK/R9hZNZRvqlJPdz6queXzRzeX7PBrSCSlwzOFoAMe4UojT6eI+IHOi2qbzubz9bLX/BggwKz4t22YCmGpQHqIBGJLlYXerpu/ZCKVSMAWI0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR03MB1394 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: BN1AFFO11FD047.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)(1110001)(1109001)(339900001)(189002)(199003)(5660300001)(7416002)(50226002)(4326007)(2906002)(4001430100002)(11100500001)(2876002)(305945005)(7736002)(7846002)(5003940100001)(626004)(189998001)(8936002)(86362001)(15975445007)(77096005)(2201001)(86152002)(85426001)(87936001)(92566002)(5001770100001)(97736004)(6070500001)(107886002)(48376002)(336002)(50466002)(956001)(2950100002)(42882006)(229853001)(19580395003)(53416004)(19580405001)(106466001)(105606002)(33646002)(76176999)(50986999)(6666003)(3720700001)(8676002)(81156014)(81166006)(356003)(66066001)(6116002)(47776003)(68736007)(3846002)(586003)(7099028)(2004002);DIR:OUT;SFP:1101;SCL:1;SRVR:SN2PR03MB2302;H:sj-itexedge03.altera.priv.altera.com;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:0;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11FD047;1:fcw06fVRb9lOlnFlpg/KUyA3KscVMIFYl8s5WKwMyvWdlYkV5H4lJYdGH7PsXP9cAj8JpY5XxZABUT+IkwQNlM9UTeuBN71p5rVbd2PfuvCQN9VUNv37XOSbloL6uMmbs1g72zYJSq2YkILI9AWfb/aWsztloPycONlqWQJ1HJpvFp/xKq40AcrZqwQsv9pDu5FfG9zBmNLGbrIBnNDRGS68OCjcGAgF/krHxssHilH/ERF1vP9BIbqm/bd70REcmQizsKUIUF5X1hhwXMCiLDR3i/e+USErrhKP+hka4iHZD2QqI6+b8c6vcyBSbWR6jTFUoA5a0lsQ2nb26TEiLPExHkFqER/rqsNFMZhBFIOPKKE0F2fO7t/8xymohG4pXhyvyr49hIPDpkxYS6+FokBMQrA6IghN9F8Zxga4KBs2eSo4g6okVMJPW7bdHwdMfpkRcqxJ+iMVh3R/sub1FzPqeqE4/HzJ0aZUFSG9N7IrGC5lKOIJeBfBka0ptKgObHV5JeLcogvQZVny/F2Mw1YxnGZGQXO/9tjBU7sQ/jdIBAMwjOT007LTCe+lXSjOdhQCTYnXVSOIng/ThjzpB/rJf3VSUqJG4gKKm1vBvX4= X-Microsoft-Exchange-Diagnostics: 1;SN2PR03MB2302;2:1wGvM0TmUiEgo/3EVKJ+XSzj6awxxog0XBe9vQckySWAHfcYVkgxu9zY17122fp+4FKke7d5Sxx2VQAKDZchuRw33RDLDQXHErJzjEXqlfrG90B4J1gZ/Ohmz2jm+ulVeAx939CSpjpsQRSXW77QB4hJNFi5OKM6L2qFwbNjfD1aNJ44SHXWNovjx4pBYlsjcj5yulI69d32ax7svRA7lg==;3:sC7lsFUCn7rrCMYNxSJTfxdboGlO1hxkB3ADO6fPZVAJqbV3Jbz0daXLUt6Dy79AVo6CIXc/OYDf0EJjmD0mEi2l6z8OU2n09xJJYcPR0xZp7hPsLUSvJM2yssOUau4Kfdyh1HR2dyq+BnEtsIuzCFSBeYdEXl4jus+Sd6dUkR/sNSWxrhMZlSHYLeEvAQQp3PG8MG+S2Py0CU5yW1LaZs/pnVcpK8HsxquBq6bzLplL7rBabps5NCZzIl8ngmXZyjbd7QwOeI6uL5nJOvxZLQ== X-DkimResult-Test: Failed X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(3002016);SRVR:SN2PR03MB2302; X-Microsoft-Exchange-Diagnostics: 1;SN2PR03MB2302;25:KGy9wNfPZ2Vk0K5jersO07Q8g7QcrDjj7RspW2DKBfHmKJro2RjPOo0I7ctG0CN0FlUepJX3cjPUipOpWju5WxATxcEog8uE3NVoNrZdFpLX+2m/bB4cFfWd78aZbTgKmKbrKhiBW4O1/Gr6h3DkklzXqCS9e6N6opWVCDlQnfR3HnWc7A4EwZ9hlLpJ7C3w1NHGHeYcmg4+l3DI2ib7d7x/k4+CU89I/NMklXwu7QsWcLZYfTmAfxBjZQUSdY0DCr9LN+ZazqNjZlfWSuDXvqv0tiTTlEN4UP+MAkHwVDkCKF4RFTx+Lz5JGN1lgaC+NFuoCJFk2U38bbbYnYsSmWtuy2xhXz84o7AEYGCsNWEhcJzeSPIudQ1VnApn6Pdt6orb8kU+LRlHMYxz6zIiofWl7mmMZ2G9XKQAONpsjsALhfKX309SzvAqs5JOFY97phCEuinbhTXpl30lNrTvSqiM4LeQJbQ3jCfd+dnrTlJIy7kpa9FkB3Tz7X4EJeX0VmaKayAapICv9DUgss8I+Yc1HK9JGFEeEokVJPHaDnhYZSHc/EJRyrutrPRDUI7ACKBNYnaigSTJmHtz9X+x08EcTtuDcXMjHR9QszL9NslIoBYqgtIPWDd59AhLJ7MnpzHuIwK9UeKK0Hqhx5iMP/zyoG4KEL2cXmoom/2nb4x3gKk0UoJajH+s8CEpy+q5d8SnDE1iKCAPB9y9WekXj6hKBPus851M96VZkYMzL+Lhg/lavsyZQsLn26SPUIBNnOaFCLJ/y0il9A7ABTT9yQb7BGmh4D8vsxNjk9LNmhCwvnaR43uPBRMbVeDe1aiG6qTsATXOfh7HhLDGaJY6OUQ4nA8PR/X0G9o6yYcaIlvple/bDWJcC1OjgIJb/Jcb X-Microsoft-Exchange-Diagnostics: 1;SN2PR03MB2302;31:hIm7ZBTS4ty31Ru4vA54dizLdwLZPDuS3OeXwfnxcmnr9cmVwgNtcUYm2QVp3Mr7vo4EcBrVslKc/TUjxu/sawT9yPGw0Gzh+wysnEdRuu1tZoFyaQxnLQklRuKJl4brihuVftTfO50zWYHcSXWBNizDpLJTJSC3N3Th+Z5DZNGzn1mMpUk4nfLoKkjRLTDkNM2I1d6mISCz+fc/ReuoINNrxbmm0T8J6uDXPru/V09Djtnz+vLjd3Ou1rsPfj01eVLgbkyZSlyE4u9HZw3SAQ==;20:oXbTl8F3ChRSvWUijedFtmgvewIMa4ui9o45OHSij72i/i948Vpw/O5EaVk1W2X+gTFkBNDTG2ARofQCrppjKeIlFeQ/F7VrEeAg59cSPPQQ5MdkxwFrbY5SAj3pAr+YGNunsdf7OVR2hf/KfYGIw2avWAhszwIJ9Q9drTwaI/8= X-Microsoft-Exchange-Diagnostics: 1;SN2PR03MB2302;4:z9Rmq+Fr8xAJ3ZGe0+y5zJKHcuJ6v0T9jda7y1b6YG8d2YiJNxlWVoVq0yr4lPiha2FJzK33ZjRWK2liqFdFpdv7VeunYiiOsE1O6cSt3q7FARXrng9d3e9r7WUOV7GGTLW1dUV9GSycFvWnvMl3AVGoVBba4mq5PHfkEF2JRCwgE7bR/W7ZPZD/14koosR2UmX+fUj9vU9dJ7qxpyZk6RwU0hFifoFqQyTjSfncKu+thjict48lnHEqzIoTIvjKSSMe+/ucaVLgk5er0PGXiOArxj1kprHNWIRgYHL329OYD5fWuT13wd6mJiMZPQ8oSJlcFgD2s47L1GPimL0s/uwHeJx3mGb/ah5tEEI4pVzfMt/eqGhxrcK/UOKOUXyDgEhv6JQykMcQufZ8QKI+aFa5gWQhP1bVhvV9NFYhbAsScFRzdndVuzqR23Eta9hmRcvU3jidNlQzLHXsH5vszW3CH/BAs9pVVXias8gKx6FxrxBI9WmE+qBVW/HthgzEdD7XmkEF1zKom2sBE9QazE3v9h925x8ulnW365x+mJcuIvHKwD8hJHSMtPS5/dBoZznuDZ36vdtNzia4tGFI+fT/GZBr8Vy0PtehwL41HYzEHHbpue13RwjUSpw96ySi0l2BAgLEPjK/vgDO3CT5lS0PPGI0ztZhJGvl7Zx7niy1mV9KJHmlIf5hVXVaHFzpzVEyA6s79KPLnHmMHAlCIg== X-Forefront-PRVS: 0114FF88F6 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN2PR03MB2302;23:xnFFH2tO1BnrY8FdNWfjMk5F619UO8Zj6HSs5DURz?= =?us-ascii?Q?cP3OXytaekl0/XqbPJWnELW9aSiAQn43FhN8KOVYw2HamIAd6JvC1zo7z0mE?= =?us-ascii?Q?qtly+GRpHuLRVoD+HnXUa+5WFciGXSPaqHGkpuw4xRYM6aQAXO1EM+6ZAqJp?= =?us-ascii?Q?QHGsimgLxo9Z+KvGXK9ZE1G/7S21OMHqklDpi3dmEPLtaV3l/j3gWWyDtOUy?= =?us-ascii?Q?EZ2EDF6ZzsRiH7QGGd2O+EEdWgQ6dnfUJbVL3nW8W3JbBjWGfeC90PZ2SVdP?= =?us-ascii?Q?tTwmi+v3CWxd+HtgM0mzPd12ApzhB5HOjuYZgOZp9FDmh4rmPTpvnV0IaTz8?= =?us-ascii?Q?YrB3OggxGpHisvVy8clb3XAUwO99pP1OElKaL81oGmYzaEmVHA5bj8vf6aQu?= =?us-ascii?Q?eFWfcPg/E1edy/fUbnannDA8XBuKWpQ2BS4BlUMLvJzNBHswoy8UqJ3A3inY?= =?us-ascii?Q?7TvSRbvyXsRPxuXSEr6SL4oHFUmqJ37TMZijAQ8OVY3RkOmP0lFpZpO7ZI3U?= =?us-ascii?Q?9cLtOHura5CEXfqyqpxk1EjaHsOQl1d7a1gSvVjhAhXOqdIuqJ/dY+0y58oy?= =?us-ascii?Q?wjO1unsIr8WkGf/cbDtSlEF7BhWpVMjVUN++xTOUc5ME4NVFFRxj1x0xBwK7?= =?us-ascii?Q?BAYcD9JYfk6xpN9cnmyjUlQgzNnrGI//H0E+zvusMDAmC6Zgp5oOkiyTI7H7?= =?us-ascii?Q?QW9MFECuKcgGMvOAv5dAOkgzA5XIxeGAgauh5JnAje1SbBet+5T081szYAPN?= =?us-ascii?Q?aZSGkK4kfMYFW0L7GmiZcO1ngSPuurBkgybkcMNAXA4cYpL0gB/eR6T46YAU?= =?us-ascii?Q?VyG7fbUS/ze4tY8vJrBkZ6KsZD1tnLOmLHcKF7RH8lLvHC5KqmMUnu+KqGke?= =?us-ascii?Q?faELh0shEHl9L3fgIFwqO5FW2VlKflS1uYavF3tKhPecrVZPk/7mwo2IqeRd?= =?us-ascii?Q?S1MmmGIzvQ6zeht723+heZWg/DS1aYKt4MlY13uMg8WwhqmO7dGfSAZrLt+y?= =?us-ascii?Q?HNVSPetagW/itpnI/PR+ObpDFOIVBXnPFyHUYj+J8s92ug+ExDwzbBxEqxt5?= =?us-ascii?Q?cyRlBb8pIZYReKczOI//7DcS4ajAq5XNJnE5KcibnnF7ohpKHMnz7WIj5d4l?= =?us-ascii?Q?zhtjBoO+ko8jaPMVk5iHSEJ3FlSDL5bG0R5pZwm8tcfmtOphGHo9pMLhcfDz?= =?us-ascii?Q?0eBHjOuPpBHkXO6ZqhwDkta986BKwO2O+nKN/R4HyKteshebjiSottqEA9ee?= =?us-ascii?Q?kRO1QFf/ZwVWOCTHIcxU6XPofeS900FuY3vUzaD5pGgYHMzr3c9z0Btd4aNv?= =?us-ascii?Q?Rrd/nme5eRlumL+9empk+mkMPQvFpfxEdos33LjZY7TGudx1vWBhZHMhmbPS?= =?us-ascii?Q?262j2APdfDJ0sBPHG0NPm8i/qlHZWqBe9+j8oQf9wrxu0pQGWWPNmnjQI1LZ?= =?us-ascii?Q?Fhsp2pAqgLlPUw4OILj2uuriY0onEwRMUOcgkQ2HVHcGjhA9jao1CkzYb+9U?= =?us-ascii?Q?4+I4djImCzLvSdcjzq2U7DDxJhpLBYyA6I=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN2PR03MB2302;6:mozv3PtD31QECgWdl9SI/6s34pMnRJm0dN3Chlt+3iW4FiL4I0aQHxrJpGGc0yOl2RRh0pP3zsdh2VnLyXB+ZFP/kZwbT0A7d07Zy90522mCpBh1KodnpzYhTm3JDwCy2Ntk5NwfxqFcWI6p7o3aaiBE+iedHk28e7CUa1tkVx2+EMBtNzppU1zO8qvmgnRVug32nxJAjrkphielYJnk7AL4E9X2HUKhZCkGLLoSd2vznO6F88jBsqBJTqzyLBBZxv6ImINg9RzybeS1LZBnmJN5pSh0bmFFZ910/RYLp4JhqUsybA/5qOfabJaDwVClnsabZtDK0/PvYx7SHScdD+aC7EQK6aVzVB/Jiv8IBsG7/JUvzHfODkgfIX+B3UJE;5:GXe68Kd+ieC4qIg4TRbEbmjMUjuK9wmHQ0q18bTbYKCM91e2O3wq4hCNpzOU1D092fIDNe69V9uxzOie452JPNI/h66cakZKrc8pelyHjDVO2UVAITgziF/F9xiQD9xMT/XtKYTap4G+yjyXz89bkw==;24:rOiiMnlgCWXgT52nQzitT1IJmjbj3UW3eBeY6YzlQBlt0lbGvvvPXYICMhFhCSGfzM7hu/pc7/dV6Pv7y3hNrm2Kcr4S7dCyR8EaR12OLlU= X-Microsoft-Exchange-Diagnostics: 1;SN2PR03MB2302;7:U4cotzQZyQ2uglOBrGD2W26ssjjAnTX5Uh8E8dCdN3eCHthyrJBkwSaqfPLIggP2jU7cUI4rgBX8SGOZyJsgC4lxqCD0UFPRD9BufOe0aiUvp5UPj/yGNjvsqevrde1Lm7oYuXNCK4FMiCAFFb3OxZtd8MRXq+I25RIKaq0nx8nsA/I8yBBd8OZCUN3kWqxs6gyadKXFhx+4bVk8IaKava83A40fR89mo/qY9Ia3cQHSGUnsHI60mVDGw3qP15/Vpj7w3ldzk3F0/qzV0qf4YbpY4UoLgR7/LFZU6Zpqo2QalAI153NPIilaVu1iGohq//WLCVUucUPQg4mIyK6GhQ== X-OriginatorOrg: opensource.altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2016 14:26:41.5477 (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: SN2PR03MB2302 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 7842 Lines: 245 From: Thor Thayer This patch adds the Altera Arria10 control & monitoring functions to the Arria10 System Resource chip. Signed-off-by: Thor Thayer --- v2 Change compatible string and filename from -mon to -monitor Change CONFIG from module to builtin. Make wm_rst register writeable. v3 Remove unused ret variable. Shorten driver name (remove altr_). --- MAINTAINERS | 1 + drivers/misc/Kconfig | 7 ++ drivers/misc/Makefile | 1 + drivers/misc/altera-a10sr-monitor.c | 175 ++++++++++++++++++++++++++++++++++++ 4 files changed, 184 insertions(+) create mode 100644 drivers/misc/altera-a10sr-monitor.c diff --git a/MAINTAINERS b/MAINTAINERS index b180821..baf2404 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -635,6 +635,7 @@ M: Thor Thayer S: Maintained F: drivers/gpio/gpio-altera-a10sr.c F: drivers/mfd/altera-a10sr.c +F: drivers/misc/altera-a10sr-monitor.c F: include/linux/mfd/altera-a10sr.h ALTERA TRIPLE SPEED ETHERNET DRIVER diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index 64971ba..f42d459 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig @@ -766,6 +766,13 @@ config PANEL_BOOT_MESSAGE An empty message will only clear the display at driver init time. Any other printf()-formatted message is valid with newline and escape codes. +config ALTERA_A10SR_MONITOR + bool "Altera Arria10 System Resource Monitor" + depends on MFD_ALTERA_A10SR + help + This enables the System Resource monitor driver for the Altera + Arria10 DevKit. + source "drivers/misc/c2port/Kconfig" source "drivers/misc/eeprom/Kconfig" source "drivers/misc/cb710/Kconfig" diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile index 3198336..9f6e77a 100644 --- a/drivers/misc/Makefile +++ b/drivers/misc/Makefile @@ -43,6 +43,7 @@ obj-y += ti-st/ obj-y += lis3lv02d/ obj-$(CONFIG_USB_SWITCH_FSA9480) += fsa9480.o obj-$(CONFIG_ALTERA_STAPL) +=altera-stapl/ +obj-$(CONFIG_ALTERA_A10SR_MONITOR) += altera-a10sr-monitor.o obj-$(CONFIG_INTEL_MEI) += mei/ obj-$(CONFIG_VMWARE_VMCI) += vmw_vmci/ obj-$(CONFIG_LATTICE_ECP3_CONFIG) += lattice-ecp3-config.o diff --git a/drivers/misc/altera-a10sr-monitor.c b/drivers/misc/altera-a10sr-monitor.c new file mode 100644 index 0000000..66338e0 --- /dev/null +++ b/drivers/misc/altera-a10sr-monitor.c @@ -0,0 +1,175 @@ +/* + * Altera Arria10 DevKit System Resource Chip Monitor Driver + * + * Author: Thor Thayer + * + * Copyright Intel Corporation (C) 2014-2016. All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + * + * Monitor driver for the Altera Arria10 MAX5 System Resource Chip + * Adapted from ics932s401.c + */ + +#include +#include +#include +#include +#include + +struct altr_a10sr_regs { + struct regmap *regmap; + struct attribute_group attr_grp; +}; + +static ssize_t a10sr_show(struct device *dev, + struct device_attribute *devattr, char *buf); +static ssize_t a10sr_store(struct device *dev, + struct device_attribute *devattr, const char *buf, + size_t count); + +/* Define FS entries */ +static DEVICE_ATTR(max5_version, 0444, a10sr_show, NULL); +static DEVICE_ATTR(max5_led, 0644, a10sr_show, a10sr_store); +static DEVICE_ATTR(max5_button, 0444, a10sr_show, NULL); +static DEVICE_ATTR(max5_button_irq, 0644, a10sr_show, a10sr_store); +static DEVICE_ATTR(max5_pg1, 0444, a10sr_show, NULL); +static DEVICE_ATTR(max5_pg2, 0444, a10sr_show, NULL); +static DEVICE_ATTR(max5_pg3, 0444, a10sr_show, NULL); +static DEVICE_ATTR(max5_fmcab, 0444, a10sr_show, NULL); +static DEVICE_ATTR(max5_hps_resets, 0644, a10sr_show, a10sr_store); +static DEVICE_ATTR(max5_per_resets, 0644, a10sr_show, a10sr_store); +static DEVICE_ATTR(max5_sfpa, 0644, a10sr_show, a10sr_store); +static DEVICE_ATTR(max5_sfpb, 0644, a10sr_show, a10sr_store); +static DEVICE_ATTR(max5_i2c_master, 0644, a10sr_show, a10sr_store); +static DEVICE_ATTR(max5_wm_rst, 0644, a10sr_show, a10sr_store); +static DEVICE_ATTR(max5_wm_rst_key, 0644, a10sr_show, a10sr_store); +static DEVICE_ATTR(max5_pmbus, 0644, a10sr_show, a10sr_store); + +static struct attribute *altr_a10sr_attr[] = { + &dev_attr_max5_version.attr, + &dev_attr_max5_led.attr, + &dev_attr_max5_button.attr, + &dev_attr_max5_button_irq.attr, + &dev_attr_max5_pg1.attr, + &dev_attr_max5_pg2.attr, + &dev_attr_max5_pg3.attr, + &dev_attr_max5_fmcab.attr, + &dev_attr_max5_hps_resets.attr, + &dev_attr_max5_per_resets.attr, + &dev_attr_max5_sfpa.attr, + &dev_attr_max5_sfpb.attr, + &dev_attr_max5_i2c_master.attr, + &dev_attr_max5_wm_rst.attr, + &dev_attr_max5_wm_rst_key.attr, + &dev_attr_max5_pmbus.attr, + NULL +}; + +static const struct attribute_group a10sr_attr_group = { + .attrs = altr_a10sr_attr, +}; + +static ssize_t a10sr_show(struct device *dev, struct device_attribute *devattr, + char *buf) +{ + int i, ret; + unsigned int val; + struct altr_a10sr_regs *a10sr_regs = dev_get_drvdata(dev); + + for (i = 0; i < ARRAY_SIZE(altr_a10sr_attr); i++) { + if (devattr == (struct device_attribute *)altr_a10sr_attr[i]) + break; + } + + if (i >= ARRAY_SIZE(altr_a10sr_attr)) + return -EINVAL; + + /* Shift because LS bit set by regmap for Read */ + i <<= 1; + ret = regmap_read(a10sr_regs->regmap, i, &val); + if (ret < 0) + return ret; + + return sprintf(buf, "0x%X\n", val); +} + +static ssize_t a10sr_store(struct device *dev, + struct device_attribute *devattr, const char *buf, + size_t count) +{ + struct altr_a10sr_regs *a10sr_regs = dev_get_drvdata(dev); + unsigned long val; + int i, ret; + + ret = kstrtol(buf, 0, &val); + if (ret < 0) + return ret; + + for (i = 0; i < ARRAY_SIZE(altr_a10sr_attr); i++) { + if (devattr == (struct device_attribute *)altr_a10sr_attr[i]) + break; + } + if (i >= ARRAY_SIZE(altr_a10sr_attr)) + return -EINVAL; + + /* Shift because LS bit cleared by regmap for Write */ + i <<= 1; + ret = regmap_write(a10sr_regs->regmap, i, val); + if (ret < 0) + return ret; + + return count; +} + +static int altr_a10sr_regs_probe(struct platform_device *pdev) +{ + struct altr_a10sr_regs *a10regs; + struct altr_a10sr *a10sr = dev_get_drvdata(pdev->dev.parent); + + a10regs = devm_kzalloc(&pdev->dev, sizeof(*a10regs), GFP_KERNEL); + if (!a10regs) + return -ENOMEM; + + a10regs->regmap = a10sr->regmap; + a10regs->attr_grp = a10sr_attr_group; + + platform_set_drvdata(pdev, a10regs); + + return sysfs_create_group(&pdev->dev.kobj, &a10sr_attr_group); +} + +static int altr_a10sr_regs_remove(struct platform_device *pdev) +{ + struct altr_a10sr_regs *a10regs = platform_get_drvdata(pdev); + + sysfs_remove_group(&pdev->dev.kobj, &a10regs->attr_grp); + + return 0; +} + +static const struct of_device_id altr_a10sr_regs_of_match[] = { + { .compatible = "altr,a10sr-monitor" }, + { }, +}; + +static struct platform_driver altr_a10sr_regs_driver = { + .probe = altr_a10sr_regs_probe, + .remove = altr_a10sr_regs_remove, + .driver = { + .name = "a10sr_monitor", + .of_match_table = altr_a10sr_regs_of_match, + }, +}; + +builtin_platform_driver(altr_a10sr_regs_driver); -- 1.9.1