From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753393AbbLISCX (ORCPT ); Wed, 9 Dec 2015 13:02:23 -0500 Received: from mail-bl2on0059.outbound.protection.outlook.com ([65.55.169.59]:52064 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752894AbbLISCU (ORCPT ); Wed, 9 Dec 2015 13:02:20 -0500 X-Greylist: delayed 1217 seconds by postgrey-1.27 at vger.kernel.org; Wed, 09 Dec 2015 13:02:19 EST Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; Subject: Re: [PATCH v5 5/5] gicv2m: acpi: Introducing GICv2m ACPI support To: Marc Zyngier References: <1449625686-5594-1-git-send-email-Suravee.Suthikulpanit@amd.com> <1449625686-5594-6-git-send-email-Suravee.Suthikulpanit@amd.com> <20151209103806.41488405@why.wild-wind.fr.eu.org> CC: , , , Lorenzo Pieralisi , Will Deacon , Catalin Marinas , , , , , , , From: Suravee Suthikulanit Message-ID: <56686C9F.6060804@amd.com> Date: Wed, 9 Dec 2015 12:02:07 -0600 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: <20151209103806.41488405@why.wild-wind.fr.eu.org> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: SN1PR07CA0030.namprd07.prod.outlook.com (25.162.170.168) To SN1PR12MB0445.namprd12.prod.outlook.com (25.162.105.139) X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0445;2:8dXrHAXfe6olrdnpV7X3Vae2QmkMl+kWS1iP19evqJET7+0UXsBYgaGeb4ObXHl/OK0KD3/5QcFuaWij7zApkXhHTZOI6de3uBS0PaHvWQTvNhqzExopzId1QQ7LomITotygBUYSNCHvFUFeGU54fA==;3:LJuE6d92Hp46ItbtDxAsuaIhg2RRth4LRRI4/bNRU3OR8c+b5Ifzd1IOANm9ekAWiSpOTyb8ZtWFq9bJCo92jg+ieEPCd8+TejbNBNyRMK5KYrANgE0vTz9iPU1pkNDr;25:9dRlaW3JZhP1rqwUy7iCCi+Ckm8AKJPuCHNhytweilLZDUaChnYTpLbT1M1ZdsKhtZ+Ose0+iT8E4EX4OmJAfcyobC1gv0+KsK+U1mIJ8kC96rvzn74AyuwatN/VHbSc/ecDqkPeZUcMR4ySMaB00bTAG8iFACFd1a06OhGS3nF5aQ5jyLW43T/J5LyONBZ2962Cff2ycYr4mK7EbQQy42vNA/qyF3ZRLyIBaMx9Kt29XyxMIhvp1mvbXoQTCfMByOzyG0KMYdn7m3o3sfAc4g== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR12MB0445; X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0445;20:zcQiUgKeJGEOOqUY+rlLBmpi4xzgyqRSThFsEEC41CaxtDRvQ1SRjV+8dWqfVMeEuEkseSWse6pQn/1q6yBrrHyLTCZPLOKqCd2+dq7WpZ2zUZ9QNBiWy6IdAbVNjgcEwZlOIiDpF0bm8z/EcqKi2I55b1K/IKOa8wupoTgYW5wHaaWk4IcsWD1iN2qq2ZS4ArU2kr7rvAoFG5nobizVB194Mr6tx2GU/DBEA+05dGzeR4Xnjsvk5SbcU3Aw1qPwddV13ou2AltOT8i4TH6EaDCzO+EpIWTCDxHa72zv9nQyQnpBn+Gl6j4PmJqLladD50Rv+lrKRH0ZsSVn1d+2JB5stTczN20c1VpJenrFNgpSWR2ZkpOwmUO17oHGSJ4hfPQwfbjipgWLAaQkk+iUFLdGoEMVNNOal3Bf83HmrUDD1hIiuFVtRtUVOw6gJX0xHlcJx9SeA+tfLTnbUrIjqgojSx/sxnwbWdEKhxk8c/anUcUm43dggXCHBtB3/ZEC;4:6U2hohmljL0GvFGMIazWMLWen2z/buPnuQc+sKAAC412rPS+eHiu93TSyBW6OoXdHxh9+hH9LCzSYQASTU/6kBSC9AoHkI/8mOmFYnvGKDFlIJZ7nYmhzdHXPGubhmYwhoA1/5caYwZ+0z8cchVRIXt+P6fodD4D7Ub5PU7Xhud3AdE+KgZ+JitJ3nHNCQpKwiEYDnmQ5quvJwIIr7n5yoTiOVic1C/xbEarmS5XvX55NWGn+rxCVWPaxkSBYCz7ovUnswfgE5Cl0BTY3kaa34//qEatxZifDrcvnzPfojW/Q1wyIg8B52+54smrqiHx09KdnsFgQJzNnwkIZstRKZ8Y3Ugukq0HEJdQWENu08tiThBuUnUSG26DiZZ196YCXNgNAhVDkvk9Addv/H6wpEN8R/23z0pGx8MJs5xZW2M= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(10201501046)(3002001);SRVR:SN1PR12MB0445;BCL:0;PCL:0;RULEID:;SRVR:SN1PR12MB0445; X-Forefront-PRVS: 0785459C39 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(6009001)(377454003)(24454002)(199003)(164054003)(43544003)(479174004)(189002)(87266999)(5004730100002)(2950100001)(77096005)(50466002)(33656002)(86362001)(19580395003)(50986999)(97736004)(65816999)(19580405001)(6116002)(5001960100002)(80316001)(59896002)(99136001)(64126003)(5008740100001)(586003)(76176999)(54356999)(36756003)(3846002)(122386002)(1096002)(106356001)(105586002)(110136002)(40100003)(42186005)(23746002)(65806001)(92566002)(66066001)(4001350100001)(65956001)(87976001)(81156007)(101416001)(47776003)(230700001)(83506001)(189998001);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR12MB0445;H:[10.236.18.83];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;SN1PR12MB0445;23:LMq2pObAVN0e8p746GaRFYSxFpWeOwN3YkvsV?= =?Windows-1252?Q?bUdsZYyDYIuZ/F3WV33KbnjX5wuygce7RV2rgxbZDWu4luK65M2Xnea6?= =?Windows-1252?Q?bLYWfPUYIVXOs/0zOrTHnqeHbXm1ySzgKX3jW5+6M5Luz4zhPxEV4KNk?= =?Windows-1252?Q?BgZ30nt/nyW1hzF/MU0fYHVVGVqH+NG5zEoogCKf5FhRltz7PlpLydep?= =?Windows-1252?Q?QyMkQMsdlOCBaoWynWJltkwtXbPf0dkrX6PgFbj3y9zVYbaMq8DiAQkk?= =?Windows-1252?Q?mqpXMBFfIsjolQMSVZ5LiPj5lKL2rWKFaQwtBRNKTJfcTosAQRlC12ZK?= =?Windows-1252?Q?JeA6sf/fL3OyTflyaVrZjcHRNRiF4hnvlID9fuZyR9McHIVVWjBJrETb?= =?Windows-1252?Q?DQXcS0dSI+VymBFNJYFuI8Pa2rAmmB0uekxg/58cKfIVHnVssWr+dAxt?= =?Windows-1252?Q?oPr5szN3kGKRWxb2pMq8dj5gEMFEBXKhQfi6xoi5Gm0XCdjpD8p8IBGF?= =?Windows-1252?Q?SlW0GgNC1QfOdw8/4sVjbL4/FB1LzbtEPmUc7OKFimIo4lVhaCb+nFOJ?= =?Windows-1252?Q?shxiXWqYixg5fsZGF4VBkO5BktyO5OR68za779m+iE1se5EpQIEsMhz6?= =?Windows-1252?Q?KpUDbUNphbQ9YfgXgB2Axmpkv/PyDxnB2f98XRc1BdlKJqR/GADTAYJu?= =?Windows-1252?Q?r4Gehoh3D/8+DuqYtZr9aFnJYjNpQ2vpcmwyE41IBhT9nGoPA6EpVVg4?= =?Windows-1252?Q?0duMY4b5OJD17OUdjYWe8SaTGNhDDor8FV8dS8grnBmBWdxHMXtcjDBI?= =?Windows-1252?Q?kFqVpv3rk6BMI3nDDn7CtkFRB8CkQtTgoFLgs2unnKLBlj37c392Wq4I?= =?Windows-1252?Q?oX21KLerP5VMdbIyfo6XjW+D4CocMmyD6mASUDJem3e0QmYKV4a+90o9?= =?Windows-1252?Q?J0Ui/Tbc/3zLRaTFlkZxYN9V3sSULEAm+0/z/FDM2mdwDzXm8QhHEUUb?= =?Windows-1252?Q?17Lp9qhLfOcGGr3HuaJ0oFiCdKwYSQFlOS2HI8i6Bc07z/DfDICeDo9q?= =?Windows-1252?Q?3OkyAcn0yy3B6kFD6iSp3OFo21O/fOzwtdh2XlhINIEAcSHqeacsN8qg?= =?Windows-1252?Q?3GE0ZJpNroXRmhjSPW9dHLLKQiVmkTxQf0iOidJGtPGTF0CaRryJiSAW?= =?Windows-1252?Q?3X9yMZN91uAAg7kwiFB0nR+r687YqaMqsE9Ql7BTiDdU9wP6rO/hw4NL?= =?Windows-1252?Q?VaL/ijZc07/bTlSljJEjCMGDYY/qPQ21pYlYYHB2ri9Ur2czFoPe1uNa?= =?Windows-1252?Q?YiMhy/Vu2rB33XMB3f78mvlGaWbQStvfkiiVZZuzsoAYC+Rodb1SsmaI?= =?Windows-1252?Q?VNRBRgTovK+yCUR1tjKPM7A2Y1wwjTxwzBHv+qlStGttVya2qh9maKzT?= =?Windows-1252?Q?ORo9/uTBZkJoIel1RuGhJqaT6Lbx6rP/qmefYHqEw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0445;5:xDyJTERnzr84GnHxsy+G6Sm5kd4pdWRv9Cg0wRNjS2ftCPM5w+rb8x6Oa/R4MVWUYoe+N2DDQcTTEuZnx0lfqhD2iH5D/A5TmZHynWANUmkUDgflo9KCh07BBDKYHylISo/3jj0ZX6jGvomzf9fzQQ==;24:KTkJ4Lw+JOjVbZw84yY7h7tQC76kjQXSEkJxtj77qzyBfTllLL9KOH+A4eW8fGerjDIidnt7DLVdy8D12A5gMjBdQZ23TYk0avu0OoapoVQ=;20:1g3c+NHHgbws8gcRLgFHusLo6/4YWHZb9TlbW7v+BbCVyAt9KbTQ+IZ9C4JlC5wb3Gs8tkNFb50lO+50NRn73amwkc5ySyQfb2zjSqM98iMKLy8eKg5g4jnXHeU7pUnHGYHbC4JhytmeGfIY0klOy6uNnrQv+dhisZBdkk49+VA9Blx5Jeg8af1CA+Fi0mQjEEQwemSxhYxdwoWJv/wj2esO3VhC3Oe6y6orRVo10yJvZExv0jXwxwP4gnnKGc9E SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2015 18:02:13.3569 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0445 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Marc, On 12/9/2015 4:38 AM, Marc Zyngier wrote: > On Tue, 8 Dec 2015 17:48:06 -0800 > Suravee Suthikulpanit wrote: > >> This patch introduces gicv2m_acpi_init(), which uses information >> in MADT GIC MSI frames structure to initialize GICv2m driver. >> >> Signed-off-by: Suravee Suthikulpanit >> Signed-off-by: Hanjun Guo >> --- >> drivers/irqchip/irq-gic-v2m.c | 95 +++++++++++++++++++++++++++++++++++++++++ >> drivers/irqchip/irq-gic.c | 3 ++ >> include/linux/irqchip/arm-gic.h | 4 ++ >> 3 files changed, 102 insertions(+) >> >> diff --git a/drivers/irqchip/irq-gic-v2m.c b/drivers/irqchip/irq-gic-v2m.c >> [...] >> @@ -359,6 +368,8 @@ static int __init gicv2m_init_one(struct fwnode_handle *fwnode, >> >> if (to_of_node(fwnode)) >> name = to_of_node(fwnode)->name; >> + else >> + name = irq_domain_get_irqchip_fwnode_name(fwnode); > > Don't bother with that, the name associated with the domain is > absolutely meaningless. You are already printing the frame address, > which is enough to identify it, should someone need to debug this. > > Drop the name from the previous patch as well, and that will make one > less difference to care about. Patch #3 can die as well. > Ok. I'll just leave them blank (i.e. const char *name ="") >> [...] >> diff --git a/include/linux/irqchip/arm-gic.h b/include/linux/irqchip/arm-gic.h >> index bae69e5..30b2ccb 100644 >> --- a/include/linux/irqchip/arm-gic.h >> +++ b/include/linux/irqchip/arm-gic.h >> @@ -108,6 +108,10 @@ void gic_init(unsigned int nr, int start, >> >> int gicv2m_of_init(struct device_node *node, struct irq_domain *parent); >> >> +#ifdef CONFIG_ACPI >> +int gicv2m_acpi_init(struct irq_domain *parent); >> +#endif >> + > > How about having a single: > > int gicv2m_init(struct fwnode_handle *parent_handle, > struct irq_domain *parent_domain); > > which in turn calls either gicv2m_of_init or gicv2m_acpi_init? Saves > some #ifdef, and avoids another entry point. Sounds good. I'll take care of this. >> void gic_send_sgi(unsigned int cpu_id, unsigned int irq); >> int gic_get_cpu_id(unsigned int cpu); >> void gic_migrate_target(unsigned int new_cpu_id); > > Otherwise, this looks good. > > Thanks, > > M. > Thanks. Sending out v6 in a little bit. Suravee From mboxrd@z Thu Jan 1 00:00:00 1970 From: Suravee Suthikulanit Subject: Re: [PATCH v5 5/5] gicv2m: acpi: Introducing GICv2m ACPI support Date: Wed, 9 Dec 2015 12:02:07 -0600 Message-ID: <56686C9F.6060804@amd.com> References: <1449625686-5594-1-git-send-email-Suravee.Suthikulpanit@amd.com> <1449625686-5594-6-git-send-email-Suravee.Suthikulpanit@amd.com> <20151209103806.41488405@why.wild-wind.fr.eu.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20151209103806.41488405@why.wild-wind.fr.eu.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Marc Zyngier Cc: Lorenzo Pieralisi , jason@lakedaemon.net, graeme.gregory@linaro.org, rjw@rjwysocki.net, dhdang@apm.com, Will Deacon , linux-kernel@vger.kernel.org, tomasz.nowicki@linaro.org, linux-acpi@vger.kernel.org, hanjun.guo@linaro.org, Catalin Marinas , tglx@linutronix.de, linux-arm-kernel@lists.infradead.org List-Id: linux-acpi@vger.kernel.org Hi Marc, On 12/9/2015 4:38 AM, Marc Zyngier wrote: > On Tue, 8 Dec 2015 17:48:06 -0800 > Suravee Suthikulpanit wrote: > >> This patch introduces gicv2m_acpi_init(), which uses information >> in MADT GIC MSI frames structure to initialize GICv2m driver. >> >> Signed-off-by: Suravee Suthikulpanit >> Signed-off-by: Hanjun Guo >> --- >> drivers/irqchip/irq-gic-v2m.c | 95 +++++++++++++++++++++++++++++++++++++++++ >> drivers/irqchip/irq-gic.c | 3 ++ >> include/linux/irqchip/arm-gic.h | 4 ++ >> 3 files changed, 102 insertions(+) >> >> diff --git a/drivers/irqchip/irq-gic-v2m.c b/drivers/irqchip/irq-gic-v2m.c >> [...] >> @@ -359,6 +368,8 @@ static int __init gicv2m_init_one(struct fwnode_handle *fwnode, >> >> if (to_of_node(fwnode)) >> name = to_of_node(fwnode)->name; >> + else >> + name = irq_domain_get_irqchip_fwnode_name(fwnode); > > Don't bother with that, the name associated with the domain is > absolutely meaningless. You are already printing the frame address, > which is enough to identify it, should someone need to debug this. > > Drop the name from the previous patch as well, and that will make one > less difference to care about. Patch #3 can die as well. > Ok. I'll just leave them blank (i.e. const char *name ="") >> [...] >> diff --git a/include/linux/irqchip/arm-gic.h b/include/linux/irqchip/arm-gic.h >> index bae69e5..30b2ccb 100644 >> --- a/include/linux/irqchip/arm-gic.h >> +++ b/include/linux/irqchip/arm-gic.h >> @@ -108,6 +108,10 @@ void gic_init(unsigned int nr, int start, >> >> int gicv2m_of_init(struct device_node *node, struct irq_domain *parent); >> >> +#ifdef CONFIG_ACPI >> +int gicv2m_acpi_init(struct irq_domain *parent); >> +#endif >> + > > How about having a single: > > int gicv2m_init(struct fwnode_handle *parent_handle, > struct irq_domain *parent_domain); > > which in turn calls either gicv2m_of_init or gicv2m_acpi_init? Saves > some #ifdef, and avoids another entry point. Sounds good. I'll take care of this. >> void gic_send_sgi(unsigned int cpu_id, unsigned int irq); >> int gic_get_cpu_id(unsigned int cpu); >> void gic_migrate_target(unsigned int new_cpu_id); > > Otherwise, this looks good. > > Thanks, > > M. > Thanks. Sending out v6 in a little bit. Suravee From mboxrd@z Thu Jan 1 00:00:00 1970 From: suravee.suthikulpanit@amd.com (Suravee Suthikulanit) Date: Wed, 9 Dec 2015 12:02:07 -0600 Subject: [PATCH v5 5/5] gicv2m: acpi: Introducing GICv2m ACPI support In-Reply-To: <20151209103806.41488405@why.wild-wind.fr.eu.org> References: <1449625686-5594-1-git-send-email-Suravee.Suthikulpanit@amd.com> <1449625686-5594-6-git-send-email-Suravee.Suthikulpanit@amd.com> <20151209103806.41488405@why.wild-wind.fr.eu.org> Message-ID: <56686C9F.6060804@amd.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Marc, On 12/9/2015 4:38 AM, Marc Zyngier wrote: > On Tue, 8 Dec 2015 17:48:06 -0800 > Suravee Suthikulpanit wrote: > >> This patch introduces gicv2m_acpi_init(), which uses information >> in MADT GIC MSI frames structure to initialize GICv2m driver. >> >> Signed-off-by: Suravee Suthikulpanit >> Signed-off-by: Hanjun Guo >> --- >> drivers/irqchip/irq-gic-v2m.c | 95 +++++++++++++++++++++++++++++++++++++++++ >> drivers/irqchip/irq-gic.c | 3 ++ >> include/linux/irqchip/arm-gic.h | 4 ++ >> 3 files changed, 102 insertions(+) >> >> diff --git a/drivers/irqchip/irq-gic-v2m.c b/drivers/irqchip/irq-gic-v2m.c >> [...] >> @@ -359,6 +368,8 @@ static int __init gicv2m_init_one(struct fwnode_handle *fwnode, >> >> if (to_of_node(fwnode)) >> name = to_of_node(fwnode)->name; >> + else >> + name = irq_domain_get_irqchip_fwnode_name(fwnode); > > Don't bother with that, the name associated with the domain is > absolutely meaningless. You are already printing the frame address, > which is enough to identify it, should someone need to debug this. > > Drop the name from the previous patch as well, and that will make one > less difference to care about. Patch #3 can die as well. > Ok. I'll just leave them blank (i.e. const char *name ="") >> [...] >> diff --git a/include/linux/irqchip/arm-gic.h b/include/linux/irqchip/arm-gic.h >> index bae69e5..30b2ccb 100644 >> --- a/include/linux/irqchip/arm-gic.h >> +++ b/include/linux/irqchip/arm-gic.h >> @@ -108,6 +108,10 @@ void gic_init(unsigned int nr, int start, >> >> int gicv2m_of_init(struct device_node *node, struct irq_domain *parent); >> >> +#ifdef CONFIG_ACPI >> +int gicv2m_acpi_init(struct irq_domain *parent); >> +#endif >> + > > How about having a single: > > int gicv2m_init(struct fwnode_handle *parent_handle, > struct irq_domain *parent_domain); > > which in turn calls either gicv2m_of_init or gicv2m_acpi_init? Saves > some #ifdef, and avoids another entry point. Sounds good. I'll take care of this. >> void gic_send_sgi(unsigned int cpu_id, unsigned int irq); >> int gic_get_cpu_id(unsigned int cpu); >> void gic_migrate_target(unsigned int new_cpu_id); > > Otherwise, this looks good. > > Thanks, > > M. > Thanks. Sending out v6 in a little bit. Suravee