From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754080AbcGTNXy (ORCPT ); Wed, 20 Jul 2016 09:23:54 -0400 Received: from mail-cys01nam02on0045.outbound.protection.outlook.com ([104.47.37.45]:7072 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752284AbcGTNXp (ORCPT ); Wed, 20 Jul 2016 09:23:45 -0400 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; lists.infradead.org; dkim=none (message not signed) header.d=none;lists.infradead.org; dmarc=bestguesspass action=none header.from=xilinx.com; Date: Wed, 20 Jul 2016 06:23:33 -0700 From: =?utf-8?B?U8O2cmVu?= Brinkmann To: Thomas Gleixner CC: Jason Cooper , Marc Zyngier , Michal Simek , , Subject: Re: SOC-specific action for irq_set_wake Message-ID: <20160720132333.GK3847@xsjsorenbubuntu> References: <20160719181804.GX3847@xsjsorenbubuntu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.0.0.1202-22462.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(24454002)(189002)(377424004)(199003)(586003)(2906002)(36386004)(1076002)(33656002)(305945005)(8936002)(356003)(87936001)(81166006)(81156014)(23676002)(47776003)(4326007)(110136002)(77096005)(9786002)(2870700001)(2950100001)(9686002)(50986999)(83506001)(76176999)(54356999)(189998001)(4001350100001)(92566002)(85202003)(63266004)(85182001)(8676002)(33716001)(76506005)(50466002)(86362001)(57986006)(106466001)(7846002)(18370500001)(107986001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1NAM02HT027;H:xsj-pvapsmtpgw01;FPR:;SPF:Pass;PTR:unknown-60-83.xilinx.com;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;CY1NAM02FT037;1:QqgOdkcHbvc8S5pz69RcqrZbMZsdsLJTtDjJBIlgKNjmxHEIuc//yEYBDMt6xc6luWRBXKWzbpgU56c9VElN1Ik7pTj4RkZyYNiKxCfijEiNh16bA3pSRWTEUQDukxWGbG92qgvjqNDEx4p262t6khi2FayJuguQb0ehD9973hxH1O5hGmq85iucCgV0qRAdDFRHTXtljvC+b212Z2ImE9Mdn9vzqoHebJLNV8Tfbi0Pko3eKlnsbaMXAJmDoniCMLsbe85Ha7YVoIKZCHS0ZFRX2hPHDo7/WdVzRASQ62FMdVwMio6WDG+33USRw4GLKvRbGzZ4S8tX9k5gauS+3pJUQ86tIVoAUQmdGslGCqSlvUNBuhhwLpG4vKmhZtFGlG0jFLUUdbA6oTUQ2PRRGhApwNIW5/GEmboktWZMF+E6LVX2ZuxLFmAmvRHXVDwcToWN4k4QhWT0EqUv6D8GIO7GMrBUdLo4HhZO2hvCL09+Lik/mWqlz18NEJevuqzMX4/0vpbMZUjvdMxWhIiVIWAlUsO8ZGLpMkYN/0LYF8oLFO6LYDUlkwxb7dQTjxAr+BaVL47dNEL/Ilnrv8FRPj/RfQM6YoJUrrVa6RebtH82zvI10StoIXt1ew4ynxZI X-MS-Office365-Filtering-Correlation-Id: fe838336-384d-4db2-e824-08d3b0a11234 X-Microsoft-Exchange-Diagnostics: 1;CY1NAM02HT027;2:2wZd2iMJ5kdD19nXMotf3zAdLZk0WJaFj859eotnnraTlF7Erzvpi0D0bZSShSWrHxPPiXc8JgG/ZJUaehfz+ZdVhKyQKR5Sv3fhZuMrhJJoU4AgGpOutZIkYhyxs6+eZLPhHNOgRq/HE4wItcSr3uKpaPc3QCZaxdUxYy9HRwNMU4pBJFawPjsbq6RcsxOq;3:3v5Jq0C05ZO6pMn/MOHSCtzCPVtuVW6PAx/DkCX6zI4gc+0cd7gRZOdbwzoRjd1FobGA1YVG/gLsmj3UCeC/jOJ71yPRsD89tgs5tBEizMZE4+m8+syNmUiRWw4bO4cT2xhlw1cCGWNXtSZnaJiGcjtMREpnSc8vJJy22lH4/VbYBoI6xqTbJ5W0Ubf8GE25WKcdOVDEYeEO+cFtLpdLi5pOqIPXBmsBOhsmzm42ICdhsS9ncVe/+pIwmkuehux3EuNOdAXUQvnOLyK6QvDo1Q== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501002);SRVR:CY1NAM02HT027; X-Microsoft-Exchange-Diagnostics: 1;CY1NAM02HT027;25:uzeg3bPlgMIqkPFhecsVhwvV0Jj+o7MzytVQZYvtj4vlITO2fEBv+rORsvgA3i/ftkhiTvYvXkcwtorEm8a/lsRPf/Aea8UFN3S5XqXvEFZpH/+jIsWKTQjZAqgFFdyDz/FQBjtW0C3NCgVjjanHb6hwYtYhstergliiHq3EwmMjiuw36tbDt8vMXMFTrQIuIiq5WsEj8cVBejqX+tFhGljxOS6LcYTTAiOCLROa/UcDtIr2XV1rHbLsU2vl7rMKsgQGxH089k+1/Z+qSXu8aAy5WWmCDsXrOgXwwXleOuWcRJZc3hHfd4sNEXY9UssweLF5T0F3yWhcq2kpJZE026IDl6fXZI4OBUZAe6RgtdRwl/1yPBrBv1c8b4XHsjrOmqSsL1rNf3W0HMXJ7gAHkXQ/YZsJnc0EnxTW5VOdFgIp+bmCOd0nPkQ1W/LqFyGQkwRUyIcztU7KefMtacXXeZAiFOjvX2iGxFr4xrUA9twQ040a0hJR90MQauT2YvuP0bHGmWTMlkS/haxFHDnWTE5YHTW7WcdlWgCRvEBdsuNsd8tzcOWVLdhJF9N5YyXAbqGZy6ToE9tWEPhUsvn8ourSKK1zsvG6a7KnSRgZr4HY116kat91i5C/Jslg1auwSjxGI6WDykm2eCh23Rc0m7AXRcfINX8b1Z6yO58af9cUFbCM/tAiB/bcfe7fYTlVBrFFVLerXmq97+Cnzar7E8wFQdQl6sEuCBTfrY/5qrGtvME50/DVEzwRDHAsXz36cW6l4G/xMQzT0yZWjKy0zCsRv2D9LeQE6i7xiyI4uZT2WesxMxZSx123nwTPtmkN X-Microsoft-Exchange-Diagnostics: 1;CY1NAM02HT027;31:JGAiKzoVaLwE4rafap2sPzhqKWuTo4ykzcaRpjeTcmKVcKZq9vo5x7LVQgEryafmSMxNVU8z7+RIfLLQhAG8vx9Iwd/H9QvwZic+88nGm5t5Y55dNWHkGgtDkr+ANb92cLMQn7+tFspG8FjFKBbox205D92rOv+FE3WQuFSlmxF9u/1ypIWsCyY8SWLW6AMFgpW+IJXLUhUfc60b12613Q==;20:Mh9j6ahwMivU8xpW75DOnkUqFlOKGSDsfBZwdilG7BMU8JK6htSTs8JifjgLzt9o1kzU9fN8ypmnaiuvco49ZDUA3iNp2Z39nFmv7YCri08pYnZOFuZLANmMZAcHphvqK2gCAxrGLemRH7d5bcdG9Sb6OyCwsXf+D828VPwuj3XRytJqleiDsSIGYjwP4hF+l+KpGIrB3KAXsG1qUnIhd4axw2lFQrhpTjADtQyaWGuf0jIjvTVA5nsq4PIF8s5EeTr32ImSn5iWcqzu+ZYD67OQZP+7pClyXBQ65alsBEcMNquN8Kf6Jcq3uqHyWuLd0Ht+caFHg+52bvG8OLrzyEXVdyWzNkuKRuLgsKhgRlMCv1X+6liOkfoxHvfjKjG9Z55jrfE6EZp4VJFmhz9XpftYMIeu33I7hPHR9qtgCz95Gaofp9rrzTgyvgKRJ98S4CJvDBGsNeip4JoNPEx9CqOQnkvVblcLSPMsYUvH0Sd5rZfhJgeKU5TFJAb4P3kf X-Microsoft-Antispam-PRVS: <9af80f592ae4449f8b6ac7b5a60de35e@CY1NAM02HT027.eop-nam02.prod.protection.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(13024025)(13023025)(13015025)(13017025)(13018025)(5005006)(8121501046)(3002001)(10201501046)(6055026);SRVR:CY1NAM02HT027;BCL:0;PCL:0;RULEID:;SRVR:CY1NAM02HT027; X-Microsoft-Exchange-Diagnostics: 1;CY1NAM02HT027;4:A6nFHWWMxOL3FBcrNSpygayhfhN+yy0hufiepzRvW2VPqkeFeSCp+7pPRdXzCKwsJCr/vFHU7Q8RypEUiJ+VdO6Y9UjU1HZjGmmV/rRD/6R/DxdQmY5PqU/zOd0VlK7T6id6v54rS7t5JZmdMAHBjqv+lGBTFMqyC44OndH1SFPOy8iYTC878gZiqM3Uk+932MTNApn0PLbcEiA7UmD4zgcGOt0g7D8G34vPisEjfDYNM6KQHMoj4sTCjXVw+iR/fVKkv6vT0jQCuPIdXDi6wsYZevzlKsrLqVnyXjP4A7ELrqp/2N0c33bc+sf1s5YmTjK8q2k7a4L24xsXqJ5RXI6DFFB2qEat22ocoReinen1HlgUwG/V99uuJ5MYOmT0Gs/u1eqiYysLyLL5ajfcVg7+zT7o8gt7RxJ+o3Lap7rSXDTKewaaw5fGYWrtIIgt290GYNChYlvi6SuQ61N4eF/xgPEnhePaX7dwnSwUhjI= X-Forefront-PRVS: 000947967F X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFOQU0wMkhUMDI3OzIzOnBqY1FIdTM2ajhkQWVFVXhPTzhZRyt2ektr?= =?utf-8?B?d2hwVGZaNDkrdmhFaFM4QjdPYXBFNnFjNUV1alVJYzZENDNRZ05HbHFMaE42?= =?utf-8?B?Mis2dWp0ZEVkcUJOZkpzNUFjazBIVWt1MnU5RmhaYjJ5WDR2Y1ZERkROMXNK?= =?utf-8?B?UDRQQVM0TldZNTViQmZQemNKVXVZOTBpSjY3RkJoS2pESi9NWEVDWDlrTUdH?= =?utf-8?B?Rld6Y2UyNHM0ZnkvMnFNTm1WcklNNWdEeVN4czFPVFhjWlZJRXlKeVh4M1Fz?= =?utf-8?B?NFF3M3JzZ3dsSmcwKzlZK1A4RlAyN1RmcEV3alJpZDZkcEM5OXdHWUs2Y01k?= =?utf-8?B?OEREdUU0WmpJZWxNakZYdjZLelV0aHRINzhtcDVaYlhRS2hWeThycjg5Z0VL?= =?utf-8?B?algrS2xiMk1xbHNDYXc3d0dSL3RGQnBvdTk1dXZZeXJWU3BEM1VUTElnQkZj?= =?utf-8?B?cDZld21nZGFtMnBVUzEwekprQkxwT2NlZ1RlWm1JM2pIZHV1L1BVRmtpdlMy?= =?utf-8?B?RjVoRnZvZEx5aVFZdU1DOERSekg3Y3BPa2IvbW5IL2FqaDNIalBsQ0p2Z2h0?= =?utf-8?B?amF1eDZMOHlzYzV4RU45TnVNL3Jwcjcxb2FDNEJCa1JBOFVBaDFsZ3p4ME1Z?= =?utf-8?B?MlVBYXJpdXFXWXYxWVc5WnBLZ2hiSi9ob2pNSW14OEtMOWl3eHEweUc1WERH?= =?utf-8?B?K0xqREFGS1hueThPRU9YY3ZuT1ZUL2pEeUZZLzZhWC9lL2VRSTJramZRNnhr?= =?utf-8?B?NmMyeHNnTDB3aGxrck1OUGVPOHpwZEtsazRtd2JUMDFoUEczWlBudkZYUVQx?= =?utf-8?B?T1FJaGtZYmREWnpoWXFGRUkzUHJ1TUwwWldvL0dQMmg1azM2UjRramJMMk9L?= =?utf-8?B?eFA2YkdEWTNxT09Db3ZrWkQ3cmFLeWJEK053dmVnRWRSU2wyeFZ1NUlUM05I?= =?utf-8?B?WU1hdW5HcERkbjBIQ1RBQlo5eU5Cem5vbW1NUnV4NG0zamdkRHRVMy84Lzlx?= =?utf-8?B?MVA4U1NKUHBCL2tPdU81dG85amt4ejdwYkhSWE5tcWpxR3NYVHJ6T1BUWDdI?= =?utf-8?B?RDZGeVBDWmkwSTg5Q0hHT2NabXVKSHBBZ3R5T0FBVS9zY1luYmRJVUZ6TE5L?= =?utf-8?B?Q0VSK2kxQXZraEttT3pTQkxLclBtY3ArS3h2THVKSzBtYjEwcEcrS09ZZ081?= =?utf-8?B?Wm1RUUZxNEZDam1WMDlzNXZuZ241NjdpZFJxY0V0QUpINmtsMzdpcUZ6clgw?= =?utf-8?B?S1ZMNmR2dzRobkEyZEpzVk9YZUN5dHZuMGJSekM1czA3L0RNTWZVTDNvSFpJ?= =?utf-8?B?aXdvQk5UUXZoZ1BiUnY2OUhucHBSTFhiTEM5WlFxelMrS09peEtOTkowNHlB?= =?utf-8?B?NW50SmpMRkRvc1B1Q1JUVno2djM4Z2JWN1FBeUJKMGNZMEFZRFcwdHgzWXZE?= =?utf-8?B?K3ZNTVdudXJrT3c1UVBuRFBqcE45M3Y3aU1xcDRabWhlUHZrdU9rWE9JQXYz?= =?utf-8?B?M2xNeEZxemk3ZWticW9WN0RIRmFCd0ZYOXpmM1E2SGNpTFgxQmF0cjJiZlNV?= =?utf-8?Q?o83OA3v6C3ghx4QO0M6TqgnLkwBMjhYMwqAZjBNJIGA4=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1NAM02HT027;6:oq+chPdqVqsnWI/3up8tiARLwvFuX/z6Ju0JpRCDTAIznBySgdYqyeYL4hrvEvSBmWEb0NZD+SqVIdY4YrNRO572O+UTdsG/n5HL0As8Y32Hp/AFD20HBy/KhUiBjgBjLeXvucI/29UoeZb2ybofVxB0EMHKYU8Ui6NGs5rzXz6pWgb49ZciyJ5mgPsOQUflm08wVfP2C5m/Ag5/glAR5ONExKP3aoQxt2UDJDQGF2FOuXBBW8BY8mchKjVcbFtau+A6ayrVoKqTvloTvb4a/1Xp3kdDOrw3TnoPDQSbxOiQBz6zI2+MAL1VtwzPSqwkI9V4ipYcRWjsbLhKkl3Vmg==;5:W0WwSY0bdPrRn87Ea3SPCT1mFCZiLRsXEHiqnu+TT36SdDFQbvDb3b/c2AKG86W8an+rgbTfi/MR231TR3Dj0gp5SzzD2mu7x+F3toQDxaRq6jWh7gYgYOXHVj+8U5N2hqp8lpPzIx3LXkM73Ngp6g==;24:Y858LoYJpGZPC/5Bx6LtIZYCSlggDY0WC71okno3Ez1iWrIdU1y4oe/xfH6473Rs0rmgqMeh+CIoHzWn9Fn5dWSzhFipeV+AUG3slaVwxKE=;7:6uww5jgX4Vl2SSBGcbS1fei7qvm87jXDd+hWbHgh1x4y3VMxHJa/P06r3FvlgkJ/Me6NZP43m1B+FyXMeqxbSJgTZTpZVcUkJz2qqbgcll3WR1Bd2TbJ5+p0AnoTNewtIBTrNgd/wk8DSU7ZGSEZz0p/RdCGP2gdciAVUjKL74mhngUOskfsNQS+u7aQ+lB3oG8yD+6nYvGPIn7pOiQowXqtJD+pVZaWXmDdfMVxKtNd5X4MM5KtjI5sAnOFxsN9 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2016 13:23:41.1832 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.83];Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1NAM02HT027 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Thomas, On Wed, 2016-07-20 at 08:28:35 +0200, Thomas Gleixner wrote: > On Tue, 19 Jul 2016, Sören Brinkmann wrote: > > we are working on the PM solution for Zynq MPSOC and ran into some > > problem when setting the wake source. > > > > The situation is that when the A53 is in suspend, the GIC(v2) may be > > powered down. In that state a companion core is handling wake > > events/IRQs, but we expect the OS/Linux to notify the companion core > > about what device/IRQ is a wake up source. Hence, my idea was to capture > > enabling/disabling wake IRQs in our platform PM code and then > > communicate with the FW as needed during suspend operations. The problem > > is: I don't see a good way to notify the platform code about these > > events. > > > > My ideas were: > > 1. Use the irq_chip irq_set_wake function > > My thought was to implement the irq_set_wake function in a > > SOC-specific way (could even be generic and call some notifier chain or > > Don't even think about notifier chains. > > > similar) to notify the platform PM code when a device/IRQ is > > enabled/disabled as wake up source. > > My problem is that the SKIP_IRQ_SET_WAKE flag is set in the generic > > driver (drivers/irqchip/irq-gic.c) and platforms cannot implement > > irq_set_wake without changes in the common code. > > So and because it requires changes in the common code you think aboiut > notifiers and other absurdities. Come on, common code is not a sacred cow. It > can be modified and if you need for your particular platform that > SKIP_IRQ_SET_WAKE is cleared, then there are a gazillion of sane ways to do > that. I'm not afraid of changing it, but I was hoping to get an idea of what an acceptable solution would look like, as I don't want to run of into any of the directions that are not sane and have it shoot down in the end (like my notifier approach apparently would). I remembered the mentioned extensions mechanism which disappeared. Hence, I thought it might be a better idea to check beforehand why and what happened and what alternative approach may be an acceptable solution for that problem. Thanks, Sören