From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753601AbcCGTkL (ORCPT ); Mon, 7 Mar 2016 14:40:11 -0500 Received: from mail-bn1bon0078.outbound.protection.outlook.com ([157.56.111.78]:45696 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753547AbcCGTjw (ORCPT ); Mon, 7 Mar 2016 14:39:52 -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; Authentication-Results: alien8.de; dkim=none (message not signed) header.d=none;alien8.de; dmarc=none action=none header.from=opensource.altera.com; From: To: , , , , , , , , , , CC: , , , , , , Subject: [PATCHv2 07/11] EDAC, altera: Add status offset & masks Date: Mon, 7 Mar 2016 13:43:03 -0600 Message-ID: <1457379787-8327-8-git-send-email-tthayer@opensource.altera.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1457379787-8327-1-git-send-email-tthayer@opensource.altera.com> References: <1457379787-8327-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: BY2PR1001CA0010.namprd10.prod.outlook.com (25.164.163.148) To CY1PR03MB1486.namprd03.prod.outlook.com (25.163.17.16) X-MS-Office365-Filtering-Correlation-Id: 14c2a4c1-622e-4e3f-3214-08d346c03e18 X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1486;2:uYTOfVIWN43S0n5z8t+KzBhohlxCUYbb5SAOMY4Izt2yL4cppadmuKtmHbqE15XDHBFt4jTKLq7nGKo5XmVldhwfgOjWd5yZo7pGruuJsV453gXTKcpO1eQC+87bUkfDXUIXVovhiqAuTHrULlT9mqAxIib2EXI12i3LhtN3QWJ6LvUvNQnYvPh2AbfkH4sX;3:kCWqq8M66SZbtNxQC6BkQVpjWCmcOUF8AFR/P6/3YeZ1MRvrmsGJqN9q4F6TQybua1lKjyAzzTEcEdsbShWFuG2CQAm5KDC4sJyTsgzsk/8okicitbFJskgX2X69si7M;25:EaAkAXsWw6f/qctdZFKnXKwNkyAkW5bch19rTLj7ssA+WvmmM+mU4NfejXtmQKvfRd2i2imdr1QKJvhhTDvA8Gfjg0FJR6Lnd3cIs8armyL5FOCEl757fsNgKElnfRp6so17tlUqbnSLPAMv8w1bIC6KwaOqgj9QJvv4xDYSYBA5fPQM2hfQYRVTnqRrSlMf0ibq7QlzQf/xiq1K5uw9tSVxaxSAlsSBjgIarPbMSIaLS8kMZUPqZ0sEoRZmlwUrWmKu28UuFYg0W415b2LT+OT5ERxG0I7qwy3z7yjFdvwpHivQvKgPFAs765JoKWnkeKybeneKa3YXtWur84pvOA==;20:zBYMJ+2aeI5H3DxFX9MAGtp8xI6Y3+UrrZsyI8R22piQoEh5x9y+9P913NXi4JtJhk/tNxjG1d5alIQEHxeQjtMv28JcY7Dr/0Xw1DiPE31ajzVLzRcFehcdS4kIodQcBZevtYVW5o4cq8RoS9ws1bgvNWsqr2DN7WOFWm7Lros= X-Microsoft-Antispam-Untrusted: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1486; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:;UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001);SRVR:CY1PR03MB1486;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1486;BCL:0;PCL:0;RULEID:(601004)(2401047)(13015025)(13017025)(13023025)(13024025)(5005006)(8121501046)(13018025)(3002001)(10201501046);SRVR:BN1PR03MB039;BCL:0;PCL:0;RULEID:;SRVR:BN1PR03MB039; X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1486;4:suRip5kAgWYmoN4Vgb5RKRFRU5GuJ/o/7usiPUPm+fcUclHiKr7qh0aLMxWSZBwm4c5JcvIfU4zjBIENZ+Waku2a2D1buTx5m7qQzHlzymnAGvrwZJTYq7NrIQyroYaPjFJGNJWx+0V60a7tf/ZMOQqoiESOFuxVhMFZQTtIL5rWBP+0pZwtFGkxc+NeLjHWne/Sq+7ck+y7smRBSt4mXwt+s4tw/Q2YYv13MveItYXt6gPxS5pK5LdARfgJklo58HMRj0ZHvfuEfzdy0FdHGUKj0ch2VwFT3KQ0qKdtZvCaPGTujpnnVCuV2Jqpo47/orn4inBpFUcTGJck2JuGf/WK6JSFxsFaWGcMhmjvOhyMcNLT5EOnvDonfsuibA89 X-Forefront-PRVS: 087474FBFA X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(5003940100001)(4326007)(81166005)(92566002)(5001770100001)(2876002)(5004730100002)(5008740100001)(86152002)(2201001)(189998001)(77096005)(19580395003)(19580405001)(40100003)(2950100001)(2906002)(122386002)(107886002)(33646002)(48376002)(229853001)(47776003)(50986999)(76176999)(42186005)(66066001)(50226001)(6116002)(3846002)(87976001)(86362001)(575784001)(50466002)(4001430100002)(1096002)(586003)(921003)(1121003)(4720700001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR03MB1486;H:tthayer-HP-Z620-Ubuntu.137.57.187.33;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics-untrusted: =?us-ascii?Q?1;CY1PR03MB1486;23:arlkLMBjJmdWJqmjUZ0qZM//OEELvqelmln19tILw?= =?us-ascii?Q?iB702cGVbGjOtecWRXATX33h0uj2ACluRB31pUv1WXp735GfyufBg6vmukGq?= =?us-ascii?Q?uoQD9ytUquXcyBvE2xtF0rcLPUBsDID0LaOZyi77duWYF6cnwnSlXI7Ev810?= =?us-ascii?Q?APckCoFit5ZBdcVLCZ1cgeRybjqF/kCZ/T3PkkrCNrgraAeBIgr4bQBs++Yi?= =?us-ascii?Q?R11POkZbIyFhTDd4pGIZyZsNWHn0lXSkhJFgkRRFJcP3mcT32SzX/M4C8K1q?= =?us-ascii?Q?EnuP06L6cFVmQp58Hly+sqe7yHfZLoj7Wvza2sjurwyD/JQVXCe/CC/dByYM?= =?us-ascii?Q?XC8towwcIr0Ertt+OTEfe+22tsAg3JxUnJ+fJJqSmqIaQGOfwxqzfS2xO8Ca?= =?us-ascii?Q?5Nil3MlsyuHUMEMK1uayP+x9+iUsS+fVgL+CyOW3bncKMNTX0yxbPcW0UukL?= =?us-ascii?Q?eK3TKlBA6M4YH7fAlCPy5klia0N4+UwytZRmr3xroL13MJQTXKFI1LoQDn3z?= =?us-ascii?Q?dnM6oiEnOy5X/PvVF1ZF14vQSoep4b8NzfrJbm5fGfh41KiIJVyRvVRF9kh+?= =?us-ascii?Q?auD+BjNGTKlRw6e9WlcpdkvpmtlNXEepwalxYxtCXfI27nf70Q21HsK1hElk?= =?us-ascii?Q?bszyZkeJskyb1966xvaQEzHUYjfjUaPwKoo49h+HnIwm6gyqstKwWGDQ3v/v?= =?us-ascii?Q?dofHMRQB7FHUMblgMrliR+enpjuo5i5s1nWtm5ygbhDChHuT1CQmkAkeIknS?= =?us-ascii?Q?6hvfmsyQULXoW2YpTjGlsvmJ4sqIn/JUKevnekKY6w6NckHbN8Uiwx2XOa0C?= =?us-ascii?Q?HS9Kn0WPfVZd95mE070+KYE76GDc4I4jt9DWstwcqnz2DKCvY1vyf+jr8eJq?= =?us-ascii?Q?G7jCZzrEPDreSu2ao7W6WGBoDt++bJD0wV/aYQmaUdXMkcdbG+NyLtY6H6n/?= =?us-ascii?Q?nhFpRcbvzVZVp00bVrvk+xNitVrd7oU5d3ZbWwUQiF7hUdqS1os4F4re2xjD?= =?us-ascii?Q?WIqxo+cHhU6pAhKsfMHHAvMUawg73y/RTV/pBfMN3/Bx/8seHR3O6xqWUQ4H?= =?us-ascii?Q?5CNwdC8LvM2q5NJClvYd6RXGmhUrgGvP774El1dxfCcvyAIwW9GtohypyL1E?= =?us-ascii?Q?0cNGxhvYzZv54QbzjwkVm8Mv2v5A1Ei?= X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1486;5:llrMEMXACv+at3jCPLWofGx5WD2185uj4MOegIi5nhnNAKq1BNVneiaB7fByJgO6Ee0HdUbAFiBy7ORXhqDS1SurkKjO7ZMAlJLCzukup7autrAhPnQVjEOas/oWD68EIOk0Cz82LU/RxitPkWPlSA==;24:s2pcvJSe2FiO8QmbP7aLPuvp76NGXpTfSaS9yk0r04WYjdMaC/CC7mbrVPooLXuSXN8X9BxGf5vRoqbP3Qh2VIh9dP2664x0U6T4oHmrE6Y=;20:D2LVI3T7GwX5yXX6LAn9IxkNoSMcj31U7+ts1mpxuQAjjeLrlsAMcRZvfUpuT9gE/DLLqOoINUpKdKiQtuInfAuK77UUjdbw30ebCKav6yogAE2WrF0wD4zm+HUNZcfRK2dJnybqQqc6MLNNE1yqQh0vw5YdGEJrbgSAoCvUoqk= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB1486 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: BN1BFFO11FD018.protection.gbl X-Forefront-Antispam-Report: CIP:66.35.236.227;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(19580405001)(19580395003)(105606002)(107886002)(92566002)(50986999)(106466001)(86152002)(2201001)(50226001)(76176999)(48376002)(85426001)(5001770100001)(956001)(77096005)(21840400001)(50466002)(87936001)(16796002)(33646002)(5004730100002)(229853001)(189998001)(6116002)(2906002)(4326007)(1220700001)(1096002)(40100003)(2950100001)(6806005)(86362001)(575784001)(122386002)(4001430100002)(5008740100001)(586003)(3720700001)(11100500001)(81166005)(3846002)(2876002)(47776003)(5003940100001)(66066001)(7099028)(921003)(1121003)(4720700001);DIR:OUT;SFP:1101;SCL:1;SRVR:BN1PR03MB039;H:sj-itexedge03.altera.priv.altera.com;FPR:;SPF:Fail;MLV:sfv;MX:1;A:0;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD018;1:NB9KxwfGj0nsRm0fjk0HL1upVCANBYK69ebeiuCM0TOTIbPvlZ2zHYVqFyuvVJSyrxtloP5F+FAGEh8lXcAnqo9zIYjoH4pw/aSldZQra8TUNFR/JLZwqUQPFAWAYu/5JSsrf4/BNt840pI0lmg1dcc5m6WKU8bccWxExxuzK9OlaOGtBGANMhwp065zkeTX7c8HVA5CtAuEB2OB+4Tjq6PDxbutB7IVtGvHlYTqRw0Wes6Z29jcXummKfQ4BtKBpt+9gyAL0a1H7k9ynxFaPlZ5B60RebvfYKhw6fL+cjxJ3iYSsggdVd9mUJq6n1piExRQ9D6HpPyAb9oOCHaGBZ2uGvecq7h+Wqod+/DZV8WlPhFQf7aIyVOw/93sTzhmeNjzDmN/8isBRL7ChVFiVz5h1lb3T8Be3GwvcgxeVuhpYcheyMAH89PrlaGnRnEiKatCmEeIoRrcM62jmjTq1lXktBA6g1DHA8095tzjP/k= X-Microsoft-Exchange-Diagnostics: 1;BN1PR03MB039;2:SPHC5ktWKzlLUAdYh3GwfO3jJVFBRmdl5eMfkmj3+ote+lp73MGxMinhoMw1SGAOuzebGX9LlWs5WAUupR88Px35xGHdiUpDnBIwfHeaSa/KH+W2Js1SKxFORu2ma+3V84UNH/doTjpD6VzZ4eCKFWoEpb/ED4gXQeStH1otnl3jJSC8EB7QjlqnTQlJzKw8;3:brcCMaPVR9fzwMlqINtT0wG6FqWeqe9gaG41zScxYCnTr9cXK+9k5p3gdaOFCBDG9/YZu5uJoFPmLaGi+jqgHz9FCe0QQ7d9ZUpxo4cRCm/wostznevIDCffLukYjU6z3OAOHdm8N0aCrYRLnYRN7WkzbZdHfFB2dGFghSVe2gwcCEvww7SBErhoiQMtcUog5KHTg3qANfbJbssmguMteN6GKULBVcTC6mhsjEjZYbEzN3ckbocKqrqzdS/JfrnK;25:7TNEz4v0t37KtG8pBa1/Q403LRwKmV9/0MePBYAUZaFrEEllqt0G8Ifx47rWj3vzM2SIvoDUChOqYv1ESrjyXXFO8/CDMg/JRU5ceuOg+I+B+sXKL2R0+GrYgVsZ8TTHOdoRz7rFNI8Z9zNUZL7/5bYTC3ZJgQf5s2zF037fBNDibuIlbJcM/VtmYiQLY7nkf8FCB454jLfB+SHC+ufpMUY7MmUCQ/y8fNVPVrhOO4mmmqjXRPTn1XR4B3Q7rpJqQyxAYWminJ15JZwjDpyl6ik2ae958NPdLYjpNVLJsIjCVfEprBmAKYFWe9RDdHs7F/fA7xZLLHjSbrb8rDG8JA==;20:g/QsshTrjpo6TCyQ7GpBip/4uswSVXZkv5svx5+ShmOE7RfgxVVP2ESamSCDkeWmPxpJE4dUaK/SBeldVu81f5x7uUam6lh2+rdprDGongJZEz6wgAXBGY1mdf0o14jP44nWFx57O36/XuOvXbNHuW+wQdAW9cY+FGcrDmkW3cc= X-DkimResult-Test: Passed X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(3001016);SRVR:BN1PR03MB039; X-Microsoft-Exchange-Diagnostics: 1;BN1PR03MB039;4:6tcdPU5UiiTJG4VfJHFi+NcBxY2fK9tnkl8WxqYtTzEMcZNTzKKO95h1KHB/8pY9x3ITzkOCl9lJK6FI6xoHJW18bgdnhysie8grONcMIZ0OLZt88gMNPpzyWU31m49IBqRzRXi5VPVsxz3GzoTpEEql/WDeR06uUtNFQmbLpmrRU5JkSJU2+NiQFz7cLSZxafVc8+DPIsub6DuzbxaGrhvLGQWdRnROJyhBrv5G2oXiRR/qm2AvbL0k8Ps+ToisRwx2uBYYa/goUZr7OOdDOT75u60cLJX3UetyQbu4aPTJ+KQq8rfVB7qNz7COwQku8rTkQ1/hXS+XjVK8ipx3HebV37kX3sHgXATaad8onT46syOgpiHBf4QYZpgjPR8nh/OvxnnqYAMO6DHq89oeUerOZFx6W23Q4R6f8IljE4dl+oByplfljSWGstJcjnmuAcY4ecD8l2oIvU39KvcPfA== X-Forefront-PRVS: 087474FBFA X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN1PR03MB039;23:dI9n9w/Sr0wm1lw8tbvd/fRVG/S6OQD1V70OtbONOf?= =?us-ascii?Q?WeSB252Y1g6e6k3j6V3lu5irfw13tk1Yg9QdCqZlaVCaxcDj+pEITHv+Bfyy?= =?us-ascii?Q?r4CkR27LF7t5lM9RoHTb00yuZPWCVKWXLk4HBgxC8er2H8UxGweXVUSYQ8hW?= =?us-ascii?Q?kJu9gjbRkSTeeGTiO+IdlvED5+oGJccmyMUIs4wGprhpcApuIlz6OWSnb2fJ?= =?us-ascii?Q?6tmqYWUZOg0isSgFViupG+lEJdxVJyeADUSlAYK21bY+pA9izNieTvBvW2lv?= =?us-ascii?Q?SFFnTD7yTGPxNo0d9TXjZpTPGLjcn0ou78Hrw/kgjMuNBNhmY77nrIsRJdep?= =?us-ascii?Q?bXFVd0PWS0/IULIaRmn2Q2sUIAAvGL6n3486zagO0O292XKjEFFKfZAu0TBg?= =?us-ascii?Q?hGvdmiJtO4VK68ZHARNsciifklmXpxab4danDM0Ki6hu8RmzAkG97rmcmeeh?= =?us-ascii?Q?fOKDS/tJMxzPEWOJB+DNmn340GxVDGTTKBU5jqp4rHrdA9B6TghQHjAdl2rY?= =?us-ascii?Q?pk8k4n1wozNjbfoS/y8qRbgkNuE4/u7PaLFnnmiCSy6cIHvKmABwvls2OTkx?= =?us-ascii?Q?H+lSxrOYMS7rdRtIPj7JTInVWjLl1CKaxPQtZBH8uMXwOxNRuNGDXkeM8ksx?= =?us-ascii?Q?m+RaiBL0qBLwxWxz0UnusPxFwy9ynEYvtZNLfwD0jLyK9mfcF4WRlwKCi/pa?= =?us-ascii?Q?pavpgRDyvIfcdZPHYCi2PQC2ht2cBRpIy8z9B9b3RlU1OUqvFnHl2wA6JU6w?= =?us-ascii?Q?az39jSe2hphxTlJx1YpfXhP830C8iCMW6jXgDwmKgn1Csx1JYuDB2RjUwu/L?= =?us-ascii?Q?PUWjHd7tiYrfHwBsYneit2tpOOPIB1c2FCXeRec80FfCbj6xQI3iCQW4S986?= =?us-ascii?Q?ALY8kQVMz7gOZWo+LHbmyLBWRpJtz+bjnWTFq3MTsN80/dTy8ze04moJyebb?= =?us-ascii?Q?PqxjiMo2PLzgBC2278Kq8aJrcjilOsYBHzVH7jhZvvJhy3b++CZIST7ShMQX?= =?us-ascii?Q?mWQOmr2DMbwsgEYCOvfHH58QrrNvIoswW91QC7P3t2y5rjZTHEn8wIr8KBUT?= =?us-ascii?Q?y4jA/SJUgyQ2LP9Z6O+/86itgU+nuEBI1vSnXuuz5sJZc4vUMJHvcRbaHetD?= =?us-ascii?Q?3VioBs6aRjaXMF3bxh3SRMdaNtPlmnBiPINXolmXPHXH+BHvR3lQNkCSQRoG?= =?us-ascii?Q?1uyzb3wFArZu+uMFyBYgtPHriiZFRorgHA3IU2SeAuW++QQtoxyDw1CpljtQ?= =?us-ascii?Q?grM0q2BJz2pMKwBTGUVfPgRTOP+qY4kvVCs6pkzdrh6bnfP8rmbmHV/sFmfP?= =?us-ascii?Q?Zx1wsNwYd6wX9qE7m+GRkSdTHbXWOE99T9mkWwdCkx93mJQPfb+ci4DJ0So7?= =?us-ascii?Q?UypwVadPgBoKsD7O1RtppQsQ92OROvICWNADpWh7Aj7UK16tIIIwc6srElOd?= =?us-ascii?Q?9zEVPl9d4PNtyoVstD+O3GHFx5W7s=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN1PR03MB039;5:BhThPghL1ESGXWGM+6ykHVMojCYcmD2XzPqlyaGITyji7kMnHEY/f6NlESGhpOY3QimlrqyqTiEZc9PomVEgJyb2hBztHAf2tZk3b995+MsU/7EXZ6sazLBEFPyIHKHWyhJT6fOJkhiphMQRosTYGA==;24:tYjVwkTZiWKtAzUAOZx2pOeipC34NoesRYApO1Kujl5/gXsGSEHz8W1xaqu+hRWpsM8ZgF3Lox9NirJhaMCeK3M5sQ/OcX7zS85xzeCrpqU=;20:xNpFHVv2AdHZmV/aObabMVOlodhQy9Fp011nItD5xffZKpBbGEszGwzC10BqjPOy2yUM8wb8mwYE5S1KsfKpK5uIj/iuk/uC2Pzow9TxzCyInUx5LWjl+fjHSO22CuQ0umms+1nl/5AfKE5MTA1xNKl5BTXoMNotIH9j88nSnn0= X-OriginatorOrg: opensource.altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2016 19:39:47.4442 (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: BN1PR03MB039 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Thor Thayer In preparation for the Arria10 peripheral ECCs, the IRQ status needs to be determined because the IRQs are shared. The IRQ status register is read to determine if the IRQ was for this ECC peripheral. Cyclone5 and Arria5 have dedicated IRQs so the confirmation mechanism is not required and the mask is set to 0. Signed-off-by: Thor Thayer --- v2: Split large patch into smaller patches. Determine if IRQ matches this ECC peripheral before handling it. --- drivers/edac/altera_edac.c | 41 +++++++++++++++++++++++++++++++---------- drivers/edac/altera_edac.h | 3 +++ 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/drivers/edac/altera_edac.c b/drivers/edac/altera_edac.c index fd73a77..11b7291 100644 --- a/drivers/edac/altera_edac.c +++ b/drivers/edac/altera_edac.c @@ -556,19 +556,32 @@ static irqreturn_t altr_edac_device_handler(int irq, void *dev_id) struct edac_device_ctl_info *dci = dev_id; struct altr_edac_device_dev *drvdata = dci->pvt_info; const struct edac_device_prv_data *priv = drvdata->data; + void __iomem *status_addr = drvdata->status + priv->err_status_ofst; void __iomem *clear_addr = drvdata->status + priv->clear_err_ofst; + /* + * CycloneV is directly mapped to a specific IRQ. Arria10 + * shares the IRQ with other ECCs so we must match first. + */ if (irq == drvdata->sb_irq) { - if (priv->ce_clear_mask) - writel(priv->ce_clear_mask, clear_addr); - edac_device_handle_ce(dci, 0, 0, drvdata->edac_dev_name); - ret_value = IRQ_HANDLED; + if (!priv->ce_status_mask || + (priv->ce_status_mask & readl(status_addr))) { + if (priv->ce_clear_mask) + writel(priv->ce_clear_mask, clear_addr); + edac_device_handle_ce(dci, 0, 0, + drvdata->edac_dev_name); + ret_value = IRQ_HANDLED; + } } else if (irq == drvdata->db_irq) { - if (priv->ue_clear_mask) - writel(priv->ue_clear_mask, clear_addr); - edac_device_handle_ue(dci, 0, 0, drvdata->edac_dev_name); - panic("\nEDAC:ECC_DEVICE[Uncorrectable errors]\n"); - ret_value = IRQ_HANDLED; + if (!priv->ue_status_mask || + (priv->ue_status_mask & readl(status_addr))) { + if (priv->ue_clear_mask) + writel(priv->ue_clear_mask, clear_addr); + edac_device_handle_ue(dci, 0, 0, + drvdata->edac_dev_name); + panic("\nEDAC:ECC_DEVICE[Uncorrectable errors]\n"); + ret_value = IRQ_HANDLED; + } } else { WARN_ON(1); } @@ -882,6 +895,10 @@ const struct edac_device_prv_data ocramecc_data = { .ce_clear_mask = (ALTR_OCR_ECC_EN | ALTR_OCR_ECC_SERR), .ue_clear_mask = (ALTR_OCR_ECC_EN | ALTR_OCR_ECC_DERR), .clear_err_ofst = ALTR_OCR_ECC_REG_OFFSET, + /* Cyclone5 & Arria5 have separate IRQs so status = 0 */ + .ce_status_mask = 0, + .ue_status_mask = 0, + .err_status_ofst = 0, .dbgfs_name = "altr_ocram_trigger", .alloc_mem = ocram_alloc_mem, .free_mem = ocram_free_mem, @@ -957,7 +974,11 @@ const struct edac_device_prv_data l2ecc_data = { .setup = altr_l2_check_deps, .ce_clear_mask = 0, .ue_clear_mask = 0, - .clear_err_ofst = ALTR_L2_ECC_REG_OFFSET, + .clear_err_ofst = ALTR_MAN_GRP_L2_ECC_OFFSET, + /* Cyclone5 & Arria5 have separate IRQs so status = 0 */ + .ce_status_mask = 0, + .ue_status_mask = 0, + .err_status_ofst = 0, .dbgfs_name = "altr_l2_trigger", .alloc_mem = l2_alloc_mem, .free_mem = l2_free_mem, diff --git a/drivers/edac/altera_edac.h b/drivers/edac/altera_edac.h index b262f74..43e0dae 100644 --- a/drivers/edac/altera_edac.h +++ b/drivers/edac/altera_edac.h @@ -226,6 +226,9 @@ struct edac_device_prv_data { int ce_clear_mask; int ue_clear_mask; int clear_err_ofst; + int ce_status_mask; + int ue_status_mask; + int err_status_ofst; char dbgfs_name[20]; void * (*alloc_mem)(size_t size, void **other); void (*free_mem)(void *p, size_t size, void *other); -- 1.7.9.5