From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932744AbbJNPam (ORCPT ); Wed, 14 Oct 2015 11:30:42 -0400 Received: from mail-by2on0098.outbound.protection.outlook.com ([207.46.100.98]:44672 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932430AbbJNPai (ORCPT ); Wed, 14 Oct 2015 11:30:38 -0400 Authentication-Results: spf=none (sender IP is 165.204.84.221) smtp.mailfrom=amd.com; apm.com; dkim=none (message not signed) header.d=none;apm.com; dmarc=permerror action=none header.from=amd.com; X-WSS-ID: 0NW7V2X-07-45J-02 X-M-MSG: Subject: Re: [PATCH v2 2/2] irqchip/gic-v2m: Add support for multiple MSI frames To: Marc Zyngier , Thomas Gleixner , Jason Cooper References: <1444822037-16983-1-git-send-email-marc.zyngier@arm.com> <1444822037-16983-3-git-send-email-marc.zyngier@arm.com> <561E6322.6030601@amd.com> <561E7486.6000803@arm.com> CC: Duc Dang , , From: Suravee Suthikulanit Message-ID: <561E750E.8020403@amd.com> Date: Wed, 14 Oct 2015 10:30:22 -0500 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <561E7486.6000803@arm.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:165.204.84.221;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(428002)(479174004)(189002)(377454003)(164054003)(199003)(24454002)(86362001)(65816999)(23746002)(189998001)(83506001)(65806001)(59896002)(97736004)(36756003)(92566002)(5001770100001)(87936001)(11100500001)(19580395003)(65956001)(46102003)(120886001)(4001350100001)(15975445007)(5007970100001)(50466002)(101416001)(33656002)(64126003)(93886004)(5008740100001)(106466001)(105586002)(2950100001)(19580405001)(54356999)(76176999)(80316001)(47776003)(77096005)(87266999)(64706001)(50986999)(3076002);DIR:OUT;SFP:1101;SCL:1;SRVR:BN4PR12MB0852;H:atltwp01.amd.com;FPR:;SPF:None;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN4PR12MB0852;2:QBcESz4kGTmbIc2ygNQqoWG9VaOyBxxJjIV+nSnwzyi2+vsrZwDx3OGfLCIctBoXNCf6wfF5N5hW+gTCxCu25SDGbuEezDXIdLw7IByaCQcDK5nSzpEhc5Fwke0lOs0iGKFVmJlWq/zUBf7K7/kO6yl6+W9eKTeSmNJvCmwJv+0=;3:KmVnur/X7cncO/QTcfyfkjP7Yp1as2p/Tv5QAL7fB+v071hp3S+mmNUPtPXAQs4Lht8zSjhTVGULprXD5Es2IfGCmiEHT9rKVLZbbWL8xde+bFlqzximEBzSrgyLR1FfW6nE+ets3tel9kR55Hh7DG0kDsCZ6ZA37VvbcSguja/HMYlriVNsf9AyeSyG3NZoNlAaQQXokf4mF87+T4b9pq2WLkfh7zeNCK4VXgBqE3AFoPwHb5Uh2/2xeVjqtFeK;25:BbL2IYt1llh3iHiSOo6fDbWqwcx20VxaON6qqUVmm+KyOo/1hVgz5yNfcuH4V5SMlqYrEC6/rwLkSb+H7kb+/SmbK0VhfWpHtyd2QKl/uuywAQdMPvepjJQdc0DQFDlmCTn1Gv5W7Y4qFnK3IiB/os+gKOOUaS+yuvf1YbqExBrQNlRYq25upYsr8EkeUFT+C5MxZE/nn7QuH/i6YYF4JctmB9TdJu7D6/RvPwUWaAzotXoekpDsTvJudHRfTr8rKPH+4FGOEW6Ecz7bpCvKUg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN4PR12MB0852; X-Microsoft-Exchange-Diagnostics: 1;BN4PR12MB0852;20:3BTSviZjfwPbIrW+DGWURXWtxq/VPkyGT3ZbeDB7b8GLVHSv4k9Jhw7zEngxMDXxvWV7CWWPEbCmk55dwyY+Raw7KCvuTynXt+lBAU0lozCEoJappasFpbHEsNs3v0MvksMqls3c6JNQGrnJRgnQkGLZ6+1lCyeaWKsXG/a8N2sOR6cfGicYDVJpng4ZTEIUtMkFDaINqfu2ITlwS27kfKna+iiMJA5A1EFii8xspMy6GvnWDCvtuaF6EBIbagggaEDEu2/JwcxOwdJchMmAGSJl3W+ElF4KqtVjIvbMHJrsU9nDLinC6hs99PokkJRkAJh72bik5MuLEK1uLP32JFj35DJhx06wVzmomK6wzEU5jxh8dvDf2kzQ3NlKf3NfHEOpGibgWDzrIT+Cdw82Vkyecaz+Md/w7K7YPGc6WTjimo4Tbk+iqU6kEp7ldWAvhnfhTulkOqCVTgdq35R/lcntNmcS0AYZgIKvqbNRX/WHwy6BiizVTMQqpInlikyp;4:lFejn6uKvPI+bm1wEofoF7xGiEtx4TDsiY88pxm2ZWBlKTbAHprzbBDWkBgA5cQQ2KyJofcZr11BKV2n2vUb78KhNVh9m67oWvgilwiRouKCGNzXIoUlBaUg6JVrqm3/0dU6HbpdBHPGaQzxGbHysT45og8eaIWXli5kXUrHykJWiQs/Rg99pXPgLP8yYg3Ah0MMSDdTn6PnK6abJsymEm/flTVwXrnG9F9dcVRfRWxkQBS6OC/BBmqvM1QVJw0fUkEQTW01q/FKNzFjswXA1O5VeEFFrJhApkJArlaBbK8sKMyMuuOz62kaMJeOXBW/x5GKKPPNcmG1LRfc/Q3GfnxZtyP935U6+KZnK7H7OzU= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(3002001);SRVR:BN4PR12MB0852;BCL:0;PCL:0;RULEID:;SRVR:BN4PR12MB0852; X-Forefront-PRVS: 0729050452 X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;BN4PR12MB0852;23:Z84a79kTSeBoiJIa2W+Yj0ptYShFsVBx/FBjb?= =?Windows-1252?Q?y0HZdMvD/JsnrF2crR3T+78CilPBSYlfrZTJHYt68NEagiMDPc5B07ID?= =?Windows-1252?Q?jyaSqpHbjxBGRftrHqgwMa1vPlh7xD3VqKfRxwpeD72HCMcQhfBiO73W?= =?Windows-1252?Q?UyaKkiybWDx/ROIAwlFgwPN+cexTbdWZOKG4nW29jiZxVEOMmT1rhV61?= =?Windows-1252?Q?ChHZN6yrkdylA4aQFdkylDLT05eR5/itjZZWl++n4B9JVbU7+llbRIjU?= =?Windows-1252?Q?dsAcrX0BUQmm2lihEasd8ZVO63Ce0+gmajN4PuuF/f21iPEf1Iwh6bdj?= =?Windows-1252?Q?GyoUFzpw5qQtPUWixTP+pd70OEy5QXOAiuoOMOlFJBk4vn+kv4P3h0Db?= =?Windows-1252?Q?SmwjpBm0NiLoFiFSpKBW9yWiKanoU9EULYU5pFJPoC+yE0ku8xh3EeeB?= =?Windows-1252?Q?+G9IjPQY78OakrCmV5mKYVoT0pe4wtZVhlzXlCCN/Uq9sdsNqa+SQOE4?= =?Windows-1252?Q?2TiGgkJicPCJbq9FKq53MmDo2HoduTqb7U99VTY4X7RmkI2JkpKzaXf2?= =?Windows-1252?Q?s1S1d6N2AvKS1j2ZbDeZ/B1Lhlx8pyhtbwlMLD5+zV1Ts866hnvOyeac?= =?Windows-1252?Q?BtEqC6mQn5Rdfygfw8Pjayguv/Tq5y7b7eB3fy9mIRCNgmarI9r/fe5E?= =?Windows-1252?Q?xw3CcOU64F2UK1IgqyONj22yrZcqYLHY9IK7B6qEVMdA7yIIgPrPr2K1?= =?Windows-1252?Q?GnVMou8G1sa9JEyyioRQ9oRhbhqz7egAJAqR9mCRN3CvhXPXSEnx3RGg?= =?Windows-1252?Q?GILbYsylvzloI2fxEK22GCRgiEzWRyTMVZ/J2QSA5QNZkw+ruFEXE+c0?= =?Windows-1252?Q?qwtPc5rIqdsw85PksxSvZ07qO5XbCl2cIhrFrHFv60GPhx+lgyx3uIm2?= =?Windows-1252?Q?YoIMfisA708x9ZvLJJy9w1KWQwlEMO7XPbhVzMblqNy5f/6uZOg219ry?= =?Windows-1252?Q?QKrMQL9zh+sB7NYFbb4xU8M5/yrpqlnqdhprrI4L3zc0ZNCkOWQTCzLo?= =?Windows-1252?Q?8yJr+wLQKTOCOeak5vdgJGHYY/h06StLSj/cp2fXyYp0evq3m0XpBWjL?= =?Windows-1252?Q?zouHc2EKCbbaiv9YldtlP4YrFndzN5byyXdfEamw9ZLkl3YLIgj8cbYR?= =?Windows-1252?Q?WHpHLyafEKND6IYepAD9Cs7gNgkceN7h7PRon3aOoigXkMWtgWM4GELJ?= =?Windows-1252?Q?un856P1gt4OfFixpG+jKKx+N3YpOR9GSoKuQMF1f35YsMYvseCNCZgO7?= =?Windows-1252?Q?qmKiRp6gDWe1srnK2PmYGg2l7PQpWJkBbLFpsHoj4hi1srfcKFjplyy7?= =?Windows-1252?Q?E8K9j/7t7CC?= X-Microsoft-Exchange-Diagnostics: 1;BN4PR12MB0852;5:87GjDLuJ3sD4mnRKF0gDbK3CETtWOwughsGworYDyiYp3OrXW1pP89Iu07nUXDsnDu26FgupG8Q36PTZVDIH2Fm8DONdW9MCrm3/NjBAWcQBZxRnTdmaFcNoa4BXxd7VbJw6Bl/Oob9VK06ifC4kHQ==;24:ymINcTKUaezXeeHpuE4SNWGXpDhjETX4HdItB4UyPQBupU/ARo+Hq52uR2p4XxDGyo496D//voZc2QP0tD0YrhTcZI8DCMSv8FDOBTTp6L8=;20:oiQAMOCFPcanTHPBVwEEzGlBCWOgVGwa0aAYF6H/AzqNNmXx0QdnL+iWX1Sgbp+4GQ4XIXpEHWYdH3oYDkqITMZFJ2oBsGWfEU9q9GjE0bbJecohHUaqyDBG8YTmZ9TxQXNDcxW6B1Nj4qRLHtAzl7GM83M0FJvEJ1oHc/x17VRQRa/lnTxyCKa8L6cuETbSODbHi+gWmAeBIzgvu6BhglWE5hZPDj21gil9Lpm3MAWj7OkbXq6Grc0N9s4lJ4hu SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Oct 2015 15:30:35.7762 (UTC) X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.221];Helo=[atltwp01.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN4PR12MB0852 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/14/2015 10:28 AM, Marc Zyngier wrote: > On 14/10/15 15:13, Suravee Suthikulanit wrote: >> Hi Marc, >> >> On 10/14/2015 6:27 AM, Marc Zyngier wrote: >>> The GICv2m driver is so far limited to a single MSI frame, but >>> nothing prevents an implementation from having several of them. >>> >>> This patch expands the driver to enumerate all frames, keeping >>> the first one as the canonical identifier for the MSI domains. >>> >>> Tested-by: Duc Dang >>> Signed-off-by: Marc Zyngier >>> --- >>> drivers/irqchip/irq-gic-v2m.c | 124 ++++++++++++++++++++++++++---------------- >>> 1 file changed, 78 insertions(+), 46 deletions(-) >>> >>> diff --git a/drivers/irqchip/irq-gic-v2m.c b/drivers/irqchip/irq-gic-v2m.c >>> index bf9b3c0..87f8d10 100644 >>> --- a/drivers/irqchip/irq-gic-v2m.c >>> +++ b/drivers/irqchip/irq-gic-v2m.c >>> @@ -50,8 +50,12 @@ >>> /* List of flags for specific v2m implementation */ >>> #define GICV2M_NEEDS_SPI_OFFSET 0x00000001 >>> >>> +static LIST_HEAD(v2m_nodes); >>> +static DEFINE_SPINLOCK(v2m_lock); >>> + >>> struct v2m_data { >>> - spinlock_t msi_cnt_lock; >>> + struct list_head entry; >>> + struct device_node *node; >> >> Would it be better if we use struct fwnode_handle * here instead. I >> noticed that later on, this is also used as of_node_to_fwnode(v2m->node) >> in several places. Also, this would need to change anyways when we >> introducing ACPI support (see here https://lkml.org/lkml/2015/10/13/846). > > I was thinking that it would be part of your series adapting it to ACPI. > I don't mind either way... > > Thanks, > > M. > Ok, I'll rebase the GICv2m ACPI support on top of this multi-frame change and send out V2 If this won't be changing again any time soon. Thanks, Suravee