From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752523AbcGFGoP (ORCPT ); Wed, 6 Jul 2016 02:44:15 -0400 Received: from mail-co1nam03on0068.outbound.protection.outlook.com ([104.47.40.68]:34656 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750864AbcGFGoH (ORCPT ); Wed, 6 Jul 2016 02:44:07 -0400 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com;nxp.com; dkim=none (message not signed) header.d=none; From: Zhao Qiang To: , , , CC: , , , Zhao Qiang Subject: [PATCH v2 1/2] irqchip/qeic: merge qeic init code from platforms to a common function Date: Wed, 6 Jul 2016 14:01:38 +0800 Message-ID: <1467784901-11615-1-git-send-email-qiang.zhao@nxp.com> X-Mailer: git-send-email 2.1.0.27.g96db324 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131122591500534405;(91ab9b29-cfa4-454e-5278-08d120cd25b8);() X-Forefront-Antispam-Report: CIP:192.88.158.2;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(6806005)(106466001)(11100500001)(81156014)(81166006)(69596002)(104016004)(92566002)(19580405001)(19580395003)(87936001)(4326007)(8676002)(33646002)(586003)(50986999)(575784001)(86362001)(229853001)(7846002)(8666005)(2201001)(85426001)(77096005)(356003)(5003940100001)(5001770100001)(48376002)(47776003)(50466002)(8936002)(36756003)(50226002)(105606002)(68736007)(2906002)(189998001)(97736004)(305945005)(7059030);DIR:OUT;SFP:1101;SCL:1;SRVR:DM2PR0301MB1312;H:az84smr01.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11FD005;1:w1SMx9bTof7AK3wHOrf+LkDwLDJmp2oqViXIlS3P1JhULbNDu6g3Q8qNy2qRfFnb8QGUKWdrIeEoMcF7ihoaP+k2+R+21Z3NEzq2sBfZt9gz/YUqPUAORLusIAISXkc9CtzrzAUwv5frSq4urBIl4G2iUUtPoWUF+7Gk1hP4m5hTYACYP452sQlt0FZYPB5mIR1AxGQloHXR/WsawLyrJJT7x9fxVl2ZdF24Zmbi+oggMPiaymj1XxgLqui4+Gk3+yPkT8xZEmJyjUAPHYCmxx8snabmXIOZeRnzAm6VwLfUhxdQaWhScEmod1SbQFqPb/kIbY+qfQeLuTlnKBLu7PSte1un88qVOMD2JCrzzyeVzz4R+mOlb968fBLRomHJf4E7dH0y1eanJonym7YcNC+q4NGA1VW1IrIdYZJochS7uOucaQluf0/I8752zhPA0zFyg7XDzMt1T2XfHoTUvXBavQdFaIRcrhOoyUZIsbXs8196oEfQr952ZMfdRyu+jVvyxLuxVqX+mcv6/X+JNrLhTAULid6GwBPp5YZ0wW6B28RZGu69hLA0OAjJTGT1IutQ/Q3/xx3lXhlKfnnRHwzrPufIk6ldPr67Xcy+z2UBcdrmGQQwT3h1PLw/JeuAy/VyQfDVJNYSWbxW9EPhSak1aG7heMRJ2NjLL3TpCB69ON7B0bz9IncG0rMkibgKQkHRpKg5A84YNoFht9anE+Oahm+arGyyVuW+W5KXuSV3n8nsZdyHTlqXtMa6bGo4 MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 31a43ac0-498b-4138-a125-08d3a56482df X-Microsoft-Exchange-Diagnostics: 1;DM2PR0301MB1312;2:zTjbIlbo2aA9venkjjbOgTtYKI8l9XqTsDl6WBQCLW8wB5Mo+BhbRf1f9DuoPwZvCuf1UADhEdcHwGVpNnya4EU2I+ZS3CuhQm1fRPdXL3x7e5EY5MEEzxBX5fEy89ab6G0B2LcU2aSpAOfs54Q8MzXraYlYwUkTZx+gWWTUbPoxLF8VQiv3ooYa59WureZf;3:DMOqHKsthiQ3KFMcNSUKIS6h1nMiv1GdqXDFef91f667niEtBwvvd1q4srHiEGvhZIHCLL6WRmjAPRzcxwe+Hzn0eEJ8/QXsc+0DkM7fyFBunG9ITRV1V53up0hOm0O3p8CzS/kWK8SAMy2ELWzTdvFjgrhJJxNfV4yjAbH/mh/SWlVDURdvivTLr+Gu+YCRvQf0Ad8XWmmcoKPjTApdTHzv79JiXMQddHHIvjBgt3U=;25:lajY4qarQFsSDuYvmY+rX8YegSz4D9ugwLHl0g3XlIGU6sNXSPcFv9m/csSd76YIL3/KSlxXt6yLI+RyIL09H+g62HdgsAbHlcJyjoyBx4SEMIEsQIWBuCJHu1w0p/PC2TX5Lzx2gj99K+dB4vZWG3Kfqy2JPsFfEmeDp2tO+PhYl8cNxajS8T94sNBMXohpZlArFGG3B4eaUr1YUjaxn8slpMEJcfi3oqhp+6V3oEmtVfcAzco/BtQKT68g+25AAiCmTuUU/iKkxFFAyMn931itvcrTWQu3KNPCy+24fbsgjDPWu5gLu1HW2NsMLuaxT9wdSsrDWT3vbp+k3OOsxEVvotUGMnwdzU7O3roKNa+IlcPpWSePeaZzPqldS9KFaSMUHGj8TjgaxeZBOaoSk2d6eCqiERphmYgFC6oXghY= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR0301MB1312; X-Microsoft-Exchange-Diagnostics: 1;DM2PR0301MB1312;31:6zetCDODZ/qQcBMsgaywYQCSe8YxC2NuiGuq+j/QZRC2uy/WcNtqhVlCKu6ymtzNvMfp+/qQKSrhTNskCUGoud9PnMMtjz726g1N/uL4ZJH+rUE8USLyzghyfH2csSBAPVk8Q+A0KbCH0ypdLoHVAMDU/ivRMdKZmUaSAk8nDEf+ARQKpW3G5UPRgIUv/gkTLY4I5l0IPN/aLVWaIH6FnA==;4:85qADUU3ZYfBfWoK899fQVZK3XS1WYl7Com7xgX0BBme5SDUf6pr1S4BpGfi+r5mSe5FvkyuK3c/zENAvs4IIcrG6FdswvMS87zCEYQEDiacK/oF9EGxS+xc72EMIr0W/MzELQGMkqppkrSe9P3L5r7tOMIWObL5q3yqziXBCnd6QaRycg7NNLyIsRqVxxS/RFhrhl26F1RTafT5cckz9Xk1wUuoG4HrnI5iNvWrt3SIwGE+liivi/wT+UaG35tIm+KC3NvqGz6mdxoP3wnbOoH5I+5V6h+7WOjLo9t96pkad+l5avvVcnBJAkQTJ7J3pC5kwRBex9N0jHAl8lAQgNq4NDaP3I70Gyr9ATfxmhEVRDbDddePZsJJczg6OegfbBijtXQD9V/RCfZES8krfQ0mYuLVFHGadycLwRJiqE8flEY0fvPnoAVCgfT86cwpfazawO2/xT/kAZ1fPimdpQo6yNw7ogrMJJgmY6LreuMnn0OScS22LC30fk9vk7VUoWWjEi6CAcA/uxB0At80tw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(13024025)(13023025)(13017025)(13015025)(13018025)(5005006)(8121501046)(10201501046)(3002001)(6055026);SRVR:DM2PR0301MB1312;BCL:0;PCL:0;RULEID:(400006);SRVR:DM2PR0301MB1312; X-Forefront-PRVS: 0995196AA2 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR0301MB1312;23:99QuWCjhYamAwcP9bsGuGnWpi6vbuOLKNv5actq?= =?us-ascii?Q?sGHlcWmKklb4+ymFDT6pWqBVHieQUUcLpjFZCKo1jzxch5PGT40PEbp0Vgnv?= =?us-ascii?Q?hxe1T5B+B53TqX5deps0nShVPa5WG4duVaSBzw9faCkXI7LmwyBHxK1a2Gwv?= =?us-ascii?Q?jLB+/a3K6Dl4+0iT7+Bn/uqNwzTGVQRwR81AZqBwCSQaXxb/Ic6RSXsh/NzS?= =?us-ascii?Q?+DVYxyMSKrik1kJ4F0LEsykhVbKXGPu0EXjxm9r94Yj+OpB6pv2OqHI2zi3O?= =?us-ascii?Q?mcwy4WvQOZDhKKW/M7HZesiB/frniYvYZPJCciG+gTDB4PQAcY7QB8oDOF7i?= =?us-ascii?Q?sk5wlDMa1NzTDbXMJHYZvqYwkknha07REbRJ/CcWfDO5UBcvt9bt4pkS2DL9?= =?us-ascii?Q?tBXMInSZFc2W9zpw5HLIrEWidVUHbxGS419tAQT1F7VpXYSX5Axr9hf/O03f?= =?us-ascii?Q?etVyPMp+lDU/Mpx2iroemp+AiJXJJ/dDbbQRaHGHsW4dMwpBx5KJ7zACFFU4?= =?us-ascii?Q?NMTlXoZogl4K0v7ydF9YjtYRfuwZ1IuNiXwdM8h9M6eBdAbceH88hFlBBjkx?= =?us-ascii?Q?W8AsOrQKU9eJ4PWsY7+aPchczDGr3F304PuneWGVngedX5JMfLtkd9M+LdPl?= =?us-ascii?Q?gL6jbuX1uSmO3/bbRK6aaJAiEV4zqYRw23rbgu/4FhniHf/2a3+QwjzdJwTu?= =?us-ascii?Q?+qprkqsHs8ZalJ+eDmDhrumIXXEYeGbhnEI8CB8BWRq4tKMfiodOLp7BZU+l?= =?us-ascii?Q?Bc0urMcaaSIkAXZRy6ph8x2TnViTVQucmVyfKPRtHNAB+qhRT70vbXph9nfO?= =?us-ascii?Q?gGZyjXzoGa3RbgNOz+rdonWxO7RYCUffmWQAREzT+6zj62S0eaNCYhE/JjH5?= =?us-ascii?Q?uU2XQr2uZZRsFoY8Bo9jsGceXsZ7Eo3ZyVF19rHJlN9pVh7O++hHm7uMbdJV?= =?us-ascii?Q?JBz2Hab3MOcOprvp8ZJkRE5yolRQFNbivgo0KFAr8FPdBpme/B5yV5Denc/U?= =?us-ascii?Q?1adLzFAD+miR6e4CXJHM7q8NSI7VYzM4nijGGTiEPbbwXV/YdepQauzTMpYS?= =?us-ascii?Q?zCELT7ZIjUurU0WdgkoXevgDjc9dQHF6aBUw8axZpcmG6ZseJ5AZCtAx8xQJ?= =?us-ascii?Q?TietzhpZlKkHlLdgtcPb5QXtM6pGrV3bEvOCX1EOCqr0A+7hTy84HFw=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR0301MB1312;6:dmzQlUFRpfU6x0aWfniqNjiyRHMcfpQl+kV/tDPDgSMdrxvqgHCUyhbQjOAipnMBASqZtyTc5aVet/xheFXVJAFpvCE/EHEE+Sf/yRxR5esp8j9glUcfmyvnWKGSah1GCdImkC+v3ADpT6QDlIqjjD5k7TSDWePcEonuvjFxAWTeTG/ndRoD6/lL0rlZbWURQ1glm1rJ1gbVGbH1aLeEasa12/goq5npvBRWQH3iqurPvuzQduS5J5iZV2q95TVW3o70sQbJP0P9njSqY5HKNDHjbN1+a9tTBMluOMLFqx0=;5:/Cx7xp/WSlHge/p5WBcCQf+0io7+kEmEDLXUgrbrKjH+YMh34r8dbn5AyJbmX1dKjk5ny7a9GWDfxzj6bx3NSLUWca8FyLhE4rC9DWIxPZaWo8YTNuCWsJoRWJXpFDAAeISwRu+21zmbHoqYtnoHJt0h5elV8CXV7r97b2qtN44=;24:ZSk7GZ3EmzLOuGR37nrgACj5bwH4IOYaZt/nd/FvTskoA4sHxYE+zVsWgPdmSH6usBJ9Y6Zg5wuGzeFjRcCL2RMb8z8JxxH1mzw8k9vdu2I=;7:LqqdSCrdUjyGz0DVivv6XYmyQ1JCKrJsyv/lXoJBbjqc1zSvAngNvWT3hNk7d7sNLnnUIz9UMELVyn/h0Dn4ZchnavOBpVNPu3aiBNb0KQATa3Ui2YHHz9iby2bQpw6jJY3pdA1aPH0XM9EveCpjyZBlXEIBOGoWKe42959opyc8mDHxMBvbuPZNWV6EgxMrMrVNAMWeOTdcIRPEr3ysso5+apyOC5ohaGFU8Lof4EZ1Bm+ZlrWHJS3C3ERT9rzY SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2016 06:12:29.8194 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;Ip=[192.88.158.2];Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0301MB1312 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/qe_ic.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 --- Changes for v2: - modify subject and commit msg - add check for qeic by type 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/qe_ic.c | 16 ++++++++++++++++ 6 files changed, 16 insertions(+), 68 deletions(-) diff --git a/arch/powerpc/platforms/83xx/misc.c b/arch/powerpc/platforms/83xx/misc.c index 7e923ca..9431fc7 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 a2b0bc8..526fc2b 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 f61cbe2..7ae4901 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_mds.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_mds.c @@ -279,20 +279,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 3f4dad1..779f54f 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_rdb.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_rdb.c @@ -49,10 +49,6 @@ void __init mpc85xx_rdb_pic_init(void) struct mpic *mpic; unsigned long root = of_get_flat_dt_root(); -#ifdef CONFIG_QUICC_ENGINE - struct device_node *np; -#endif - if (of_flat_dt_is_compatible(root, "fsl,MPC85XXRDB-CAMP")) { mpic = mpic_alloc(NULL, 0, MPIC_NO_RESET | MPIC_BIG_ENDIAN | @@ -67,18 +63,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 71bc255..603e244 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/qe_ic.c b/drivers/irqchip/qe_ic.c index ec2ca86..38960fc 100644 --- a/drivers/irqchip/qe_ic.c +++ b/drivers/irqchip/qe_ic.c @@ -509,4 +509,20 @@ static int __init init_qe_ic_sysfs(void) return 0; } +static int __init qeic_of_init(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_mpic, + qe_ic_cascade_high_mpic); + of_node_put(np); +} + +subsys_initcall(qeic_of_init); subsys_initcall(init_qe_ic_sysfs); -- 2.1.0.27.g96db324