From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751481AbdKFFzk (ORCPT ); Mon, 6 Nov 2017 00:55:40 -0500 Received: from mail-sn1nam02on0083.outbound.protection.outlook.com ([104.47.36.83]:45780 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751350AbdKFFzh (ORCPT ); Mon, 6 Nov 2017 00:55:37 -0500 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; From: Zhao Qiang To: , , CC: , Zhao Qiang Subject: [Patch v12 2/4] irqchip/qeic: merge qeic init code from platforms to a common function Date: Mon, 6 Nov 2017 13:36:51 +0800 Message-ID: <20171106053653.23961-3-qiang.zhao@nxp.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20171106053653.23961-1-qiang.zhao@nxp.com> References: <20171106053653.23961-1-qiang.zhao@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131544213358372497;(91ab9b29-cfa4-454e-5278-08d120cd25b8);() X-Forefront-Antispam-Report: CIP:192.88.168.50;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(336005)(346002)(39860400002)(376002)(39380400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(48376002)(5003940100001)(85426001)(50466002)(1076002)(50226002)(77096006)(36756003)(104016004)(68736007)(5660300001)(33646002)(2906002)(47776003)(316002)(53936002)(189998001)(16586007)(106466001)(6666003)(110136005)(2950100002)(54906003)(8656006)(2201001)(81156014)(81166006)(8676002)(86362001)(97736004)(498600001)(4326008)(356003)(305945005)(8936002)(105606002)(50986999)(76176999);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR03MB2689;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD040;1:dVZ4iBO6OYK0V8zamOZsHCRkg+w4Yabppg4XS7YTRraXXXw5KoVUirYbrm7kwbGCQbST/lsv+CJeiUjSy0lQVXkVkiLW5noz1UOEQVLcVPsmsaUGMD9AnZNHmjfRrrcb MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: f21bed03-21e4-4373-8533-08d524dafff0 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4628075)(201703131517081)(2017052603199);SRVR:BN6PR03MB2689; X-Microsoft-Exchange-Diagnostics: 1;BN6PR03MB2689;3:3qpjqCJLcpVXQhfiV7vjnmW5IQmqxPVFQ3iN54uMyPJffV1m8K7PYbKX6pS7HkcLbMED83Xh8IyGErOe31GwTXgA/JuJMEscewLfSfUJwg8q8wjJ1mIbdEStPm2HZ3JTmGA3YnCoHjCGSXf5mwVoZkJRpubkCM9y4QPBDwrUHPfpL7ydsAVLaV7zdyj9Aiy4h6KEDydGdLhrAgIezZA1CDY4rh7k3Oa21FWZkvJhFJffB4oFwTs75AOBddUGSPVuQOcgWmOWE72xxx39A7OMxp5ENtKNH0hlc2QojzWlMNydLdPNSQU3nMfBFlhobrKBVTP6eGAJBjG0xkHvuFUa7LcSiqcrooAp5qO5sxqhi/Y=;25:1xQGudwR9liKJlMMcTXpl/mHQvAHxJ2AwHnfKjcnKlLqkwetcHSKC7ipxd4b8SyKna+Qft8YHRoUWebNOdSbU4t9vLvdPOiAsq9JXgh2TMwm0ur7SRPZeEMvO8cpuJKIXvN9aRDsqSzOUgI/Rn6DNHADuWQuUk7aeXKVg96KMsKOe8ucDI6T4JEIf16bIgnAbwFYuo/Fe5QtoNz8V9fsxFiekqa6jc3Wu5JKNoKdbckW9ArsTasXB6PJxp2zB3kt2igVy7yE/80kw+PnzWv4iPp2gJCOs50hZ9qB7zp7nXsjwWa9av2MhwQVWI7Vt5ZxxYwtqcfegXgUTGfmftZjIA== X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN6PR03MB2689: X-Microsoft-Exchange-Diagnostics: 1;BN6PR03MB2689;31:Az087Hg+I7fZ70yr4gf8bYhOTlZ4GZpdkHy8a+rr1JOUi9FT62DkmUN10x303pofj1aXJwNT2lowfwJsgIBxSvp0R81rpoTTpD1PQZN/rDUkw+Mn+qrWxQMX0SUE/cMR2HiVJbaEN3vNCMJA8APoMDtXhJ/1hCTuo2bi6qZId1NA3D82PIytau7SUrGe4JOJopBIxljVJ6FNC/uz79NSONTtwmU60lgZBdMqTbroCDs=;4:5JBQIdiIa5JOWVf/mFxlgHnWBtlDKXUE+P+df9ukvXpOJnv0PK0pv3q/+86deOFsVBa/gT1u+JJpkXnyf6ZfhuXIGR5/f5wiYXtWOLDJ0LniklSRWmZp+UBT2tu307Kj7ovgWX/2dz2ZjjV2g9+U5VGuUbXiDmBF7zWP43zl/VhsZlxV86CDmje4ZXgh1bSuon2ijyS+KdTIbpT5enEH82XJ6bRcq2AbBKIizNSCwSTs1wcqnaKP+nsJ1E5K20qIrbxOaA1p0vrNJqY0XOx2GFpk2RCo9RfR9kIq1Yk7S79gCB/c9dRIaPLQq5HbABxL X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(2401047)(5005006)(8121501046)(3002001)(10201501046)(3231021)(93006095)(93001095)(100000703101)(100105400095)(6055026)(6096035)(20161123559100)(20161123565025)(20161123556025)(20161123563025)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123561025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:BN6PR03MB2689;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:BN6PR03MB2689; X-Forefront-PRVS: 048396AFA0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN6PR03MB2689;23:3mIF4vYcfD5chSOMP4wc2sdlIxEW4nMqfyZwP6n9L?= =?us-ascii?Q?/knLTRHabKpVNZqttTSoXZNGp+ihGybP4GYY7tZcQWoPvnbvjK8SKnSCzF6A?= =?us-ascii?Q?LEblqExnEMLXdCKW9r5MPCLr0b90Wb5PSYtAd8352A9/2R1u6jeR045CCn60?= =?us-ascii?Q?p/U2P8JRx7EMBHGp0AJA6ApnzAr5XIM83pDo0zuYSGsmwS3EdCORFONWcAGX?= =?us-ascii?Q?O6I1Sxx82GNzYULr6v5FLGSwGufc9IqVccfQxPqcl7OC0RXWEUFetRmS9uty?= =?us-ascii?Q?+wxDQ+vrNHzY6rfnxSkClc/2ATBsd2G7QSs6fg3b3Ply+tKNo/5LHAKeDjXh?= =?us-ascii?Q?ICvnCAvlfTY2PqbVCSUSxHU6d1NhEqq9Oyw09N2yfSHP2jj5OGKQtaLU9nOJ?= =?us-ascii?Q?F05Lbpuvo3XHibVhhfXMjDr/s2fyOxT+dszDPlsXjCjngZz4QZWUIQSCBz+G?= =?us-ascii?Q?GqcOcq1yJxQfD3zj7j92egRryrAhqIl5L/ztfEVOnA9YHj88cVeoJ3NhhqL8?= =?us-ascii?Q?b1pv76VQJIi52qbj1W4brKs9C4tBwEIJwWRIRC+9tDlkIKf0OXFaawtMHNEL?= =?us-ascii?Q?9g2fR3ql2qtLT2VnqebQYkjxoeEkd0Gv1A7JCkkLl36VaFi0rS45ORpqQVxw?= =?us-ascii?Q?lfUNIQWXH1Cm+PUtSalj55enIHmb5XlzcqMk+XQgpC3sND1byHjy5kxKcdRb?= =?us-ascii?Q?SqzcQEXcGn6VS7N4dvO58iOhDsw4iJt0q7sJrZHMBTw8LW4B0k8dBXF6AmpY?= =?us-ascii?Q?EPCGmUe3DXWeAREceJDNuNabiCr7HlqbnmWW0k+wUjO10KsRIflAOoIzFmYJ?= =?us-ascii?Q?UlZS7RHSs+jCvz/HgseKF3Lw3RWBl0GMD3YxTIw2++pnnMzNKjndMUbRfqxI?= =?us-ascii?Q?lh34CJ9EzFBRRyIFIONZjRMurjwo7k4BC9sYMDJyz9zYMWsmUJ22UgNbUhIX?= =?us-ascii?Q?+wFPSTvZTOJY8HnGAUKo0XCdvBzoCVP1cxTREB8LooWWPB0aYlP2JV8JgZL6?= =?us-ascii?Q?CfdOCc12WbMPzUQ2gc9+/GoxUr3NctFThDoiRxdUB/YrNBUEj76/TUEQkaIy?= =?us-ascii?Q?t+RcxlUALiWWtMZC0XoyVupvelxy2LF1UuAcskEKXOmAUpPJgRIIkbLl1ZOU?= =?us-ascii?Q?bpOa40gNstbN/ZV6g+D0vHgP/l5OGelb1OiQtvK5oGh1Q3g5aE7MrH3GpsLC?= =?us-ascii?Q?vKECU72h06cmMI=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR03MB2689;6:RydlWGeWQ+1G1wH5p/7iFTq34XhdwFngCnQK8uKJfkmIBTWdR/nYFiGGLtJ6f32p6t66Jb3sdnjNelD0NbEGfmdwqk8mGR6+kESeAA/yMpNmEPHTL5zlMcwIAAY6RylZFAnHHeiBdJcYa9TXU2Cde8JjMCSvtVoMJXeK+i4+4iRUAQCCQg1/VMQPnG67qEYy2iDwSpKfarbgEn/RZh2VKKl3eQT62ubq3YG9Y+nwZr2NNeOuNxTTFHfV3inkQ9/tF32uJwxuFC2m9w8/hvwLYOARIMM/ThAJnAiUqMNbqKymBBLyEFSGK8P7rXoDf0usFP2cbmo6FeN7OQ2ni4KHONq8dVTQJaU7+3TjoqCLku4=;5:buPfnhz5s7i2GluHzNoeSKTGnl1NuG2zZtFCznTKJGys/SInJyEW/bU6xuq8r+T85IuqCrKLwthZ9k5b4YF8LD9Xg6fQBYudmhfoaMOb6VYsUVujkYo5eBUTuTInvNa5XeOy1eYiE27ZHCg0W1P4nidT/KdqklEV/S8KsJh5jX4=;24:9UAIcW7S06EmZOeZwW0jdKdVoCEkCYjGwp5EhCMrCZhD4GyM1kNMn02JIUC+hGIlOpindFk0X2QC9IfXqD4Bgad8wuy8QvyTCSCv0jwTTZI=;7:61zVP9EfD7ddkXtezJou99S5nnIWjcKSUt+lmJne2IeNaApeP6vprfrC1PeoYB4YZhWc0tJpVcsCNsDlHb2yejZ593LBV+cMEM/H17XXg+vHyudi5y7D2IAAcXyRYFR3bIZyWuJeXwZirjww843ofyclt6PNP12Hg+wEdOQNq5GviVt9WAfKIcHg4xixZE8Zt+Iq0mJtS7AAvt2JOG9/mM/CTcE7/p7G9sqLZdiLkFIlY+TwUcznrenBZCoc/2Qj SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2017 05:55:35.6344 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f21bed03-21e4-4373-8533-08d524dafff0 X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR03MB2689 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The codes of qe_ic init from a variety of platforms are redundant, merge them to a common function and put it to irqchip/irq-qeic.c For non-p1021_mds mpc85xx_mds boards, use "qe_ic_init(np, 0, qe_ic_cascade_low_mpic, qe_ic_cascade_high_mpic);" instead of "qe_ic_init(np, 0, qe_ic_cascade_muxed_mpic, NULL);". qe_ic_cascade_muxed_mpic was used for boards has the same interrupt number for low interrupt and high interrupt, qe_ic_init has checked if "low interrupt == high interrupt" Signed-off-by: Zhao Qiang --- arch/powerpc/platforms/83xx/misc.c | 15 --------------- arch/powerpc/platforms/85xx/corenet_generic.c | 9 --------- arch/powerpc/platforms/85xx/mpc85xx_mds.c | 14 -------------- arch/powerpc/platforms/85xx/mpc85xx_rdb.c | 16 ---------------- arch/powerpc/platforms/85xx/twr_p102x.c | 14 -------------- drivers/irqchip/irq-qeic.c | 13 +++++++++++++ 6 files changed, 13 insertions(+), 68 deletions(-) diff --git a/arch/powerpc/platforms/83xx/misc.c b/arch/powerpc/platforms/83xx/misc.c index d75c9816a5c9..c09a13532c89 100644 --- a/arch/powerpc/platforms/83xx/misc.c +++ b/arch/powerpc/platforms/83xx/misc.c @@ -93,24 +93,9 @@ void __init mpc83xx_ipic_init_IRQ(void) } #ifdef CONFIG_QUICC_ENGINE -void __init mpc83xx_qe_init_IRQ(void) -{ - struct device_node *np; - - np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic"); - if (!np) { - np = of_find_node_by_type(NULL, "qeic"); - if (!np) - return; - } - qe_ic_init(np, 0, qe_ic_cascade_low_ipic, qe_ic_cascade_high_ipic); - of_node_put(np); -} - void __init mpc83xx_ipic_and_qe_init_IRQ(void) { mpc83xx_ipic_init_IRQ(); - mpc83xx_qe_init_IRQ(); } #endif /* CONFIG_QUICC_ENGINE */ diff --git a/arch/powerpc/platforms/85xx/corenet_generic.c b/arch/powerpc/platforms/85xx/corenet_generic.c index ac191a7a1337..1b385acbf4dd 100644 --- a/arch/powerpc/platforms/85xx/corenet_generic.c +++ b/arch/powerpc/platforms/85xx/corenet_generic.c @@ -41,8 +41,6 @@ void __init corenet_gen_pic_init(void) unsigned int flags = MPIC_BIG_ENDIAN | MPIC_SINGLE_DEST_CPU | MPIC_NO_RESET; - struct device_node *np; - if (ppc_md.get_irq == mpic_get_coreint_irq) flags |= MPIC_ENABLE_COREINT; @@ -50,13 +48,6 @@ void __init corenet_gen_pic_init(void) BUG_ON(mpic == NULL); mpic_init(mpic); - - np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic"); - if (np) { - qe_ic_init(np, 0, qe_ic_cascade_low_mpic, - qe_ic_cascade_high_mpic); - of_node_put(np); - } } /* diff --git a/arch/powerpc/platforms/85xx/mpc85xx_mds.c b/arch/powerpc/platforms/85xx/mpc85xx_mds.c index d7e440e6dba3..06f34a99152e 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_mds.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_mds.c @@ -283,20 +283,6 @@ static void __init mpc85xx_mds_qeic_init(void) of_node_put(np); return; } - - np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic"); - if (!np) { - np = of_find_node_by_type(NULL, "qeic"); - if (!np) - return; - } - - if (machine_is(p1021_mds)) - qe_ic_init(np, 0, qe_ic_cascade_low_mpic, - qe_ic_cascade_high_mpic); - else - qe_ic_init(np, 0, qe_ic_cascade_muxed_mpic, NULL); - of_node_put(np); } #else static void __init mpc85xx_mds_qe_init(void) { } diff --git a/arch/powerpc/platforms/85xx/mpc85xx_rdb.c b/arch/powerpc/platforms/85xx/mpc85xx_rdb.c index 10069503e39f..000d385933af 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_rdb.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_rdb.c @@ -48,10 +48,6 @@ void __init mpc85xx_rdb_pic_init(void) { struct mpic *mpic; -#ifdef CONFIG_QUICC_ENGINE - struct device_node *np; -#endif - if (of_machine_is_compatible("fsl,MPC85XXRDB-CAMP")) { mpic = mpic_alloc(NULL, 0, MPIC_NO_RESET | MPIC_BIG_ENDIAN | @@ -66,18 +62,6 @@ void __init mpc85xx_rdb_pic_init(void) BUG_ON(mpic == NULL); mpic_init(mpic); - -#ifdef CONFIG_QUICC_ENGINE - np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic"); - if (np) { - qe_ic_init(np, 0, qe_ic_cascade_low_mpic, - qe_ic_cascade_high_mpic); - of_node_put(np); - - } else - pr_err("%s: Could not find qe-ic node\n", __func__); -#endif - } /* diff --git a/arch/powerpc/platforms/85xx/twr_p102x.c b/arch/powerpc/platforms/85xx/twr_p102x.c index 360f6253e9ff..6be9b337035a 100644 --- a/arch/powerpc/platforms/85xx/twr_p102x.c +++ b/arch/powerpc/platforms/85xx/twr_p102x.c @@ -35,26 +35,12 @@ static void __init twr_p1025_pic_init(void) { struct mpic *mpic; -#ifdef CONFIG_QUICC_ENGINE - struct device_node *np; -#endif - mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN | MPIC_SINGLE_DEST_CPU, 0, 256, " OpenPIC "); BUG_ON(mpic == NULL); mpic_init(mpic); - -#ifdef CONFIG_QUICC_ENGINE - np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic"); - if (np) { - qe_ic_init(np, 0, qe_ic_cascade_low_mpic, - qe_ic_cascade_high_mpic); - of_node_put(np); - } else - pr_err("Could not find qe-ic node\n"); -#endif } /* ************************************************************************ diff --git a/drivers/irqchip/irq-qeic.c b/drivers/irqchip/irq-qeic.c index 9b4660cf9267..8287c22d954a 100644 --- a/drivers/irqchip/irq-qeic.c +++ b/drivers/irqchip/irq-qeic.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -598,4 +599,16 @@ static int __init init_qe_ic_sysfs(void) return 0; } +static int __init qeic_of_init(struct device_node *node, + struct device_node *parent) +{ + if (!node) + return -ENODEV; + qe_ic_init(node, 0, qe_ic_cascade_low_mpic, + qe_ic_cascade_high_mpic); + of_node_put(node); + return 0; +} + +IRQCHIP_DECLARE(qeic, "fsl,qe-ic", qeic_of_init); subsys_initcall(init_qe_ic_sysfs); -- 2.14.1