From patchwork Tue Aug 2 01:57:36 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qiang Zhao X-Patchwork-Id: 654475 X-Patchwork-Delegate: scottwood@freescale.com Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3s3KVS1HTsz9t20 for ; Tue, 2 Aug 2016 12:13:04 +1000 (AEST) Received: from ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3s3KVS0DkdzDrTG for ; Tue, 2 Aug 2016 12:13:04 +1000 (AEST) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0055.outbound.protection.outlook.com [104.47.36.55]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3s3KQ45S9MzDrFR for ; Tue, 2 Aug 2016 12:09:16 +1000 (AEST) Received: from BN3PR0301CA0079.namprd03.prod.outlook.com (10.160.152.175) by CY1PR0301MB2058.namprd03.prod.outlook.com (10.164.2.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.549.15; Tue, 2 Aug 2016 02:09:11 +0000 Received: from BY2FFO11FD026.protection.gbl (2a01:111:f400:7c0c::123) by BN3PR0301CA0079.outlook.office365.com (2a01:111:e400:401e::47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.549.15 via Frontend Transport; Tue, 2 Aug 2016 02:09:11 +0000 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; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BY2FFO11FD026.mail.protection.outlook.com (10.1.15.215) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.549.5 via Frontend Transport; Tue, 2 Aug 2016 02:09:11 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id u7228mLK014918; Mon, 1 Aug 2016 19:09:09 -0700 From: Zhao Qiang To: Subject: [PATCH v5 3/3] irqchip/qeic: merge qeic_of_init into qe_ic_init Date: Tue, 2 Aug 2016 09:57:36 +0800 Message-ID: <1470103056-41711-3-git-send-email-qiang.zhao@nxp.com> X-Mailer: git-send-email 2.1.0.27.g96db324 In-Reply-To: <1470103056-41711-1-git-send-email-qiang.zhao@nxp.com> References: <1470103056-41711-1-git-send-email-qiang.zhao@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131145773518865254; (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)(87936001)(229853001)(19580405001)(47776003)(50466002)(19580395003)(2351001)(69596002)(86362001)(85426001)(76176999)(33646002)(50986999)(356003)(8666005)(7846002)(48376002)(106466001)(305945005)(36756003)(97736004)(189998001)(77096005)(110136002)(50226002)(81166006)(105606002)(586003)(4326007)(2906002)(5003940100001)(8676002)(8936002)(68736007)(2950100001)(11100500001)(92566002)(104016004)(81156014)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0301MB2058; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD026; 1:WTYdBNG4HLCxVP/5Z1zq3qU/AlVuCagLY/KMvLonS8w+Ql9D0Tl611orukbbcBHvzcbASrQ9e5X9oIhHqppYCBzO7OW+HN7BwFLgdlsvOC0f02oYq5Mr2bNKqMNxbc+t+WPYZDN56r+hrhPXRMlxhXxKegvcFfqg3o6j+XyYUI/sqomJDb2aF5/6AQ0Az1rKhuAfjnPj1hnA70M6bLCDVp91v92ID8jixlcGpon/qZUYG+1xs3KSMr8lmpfCaaqaVSNxgc5n2hBi4lZ0HvmUlA3mWREcTBQET7tqVfaBUtEjfd0TCmLHSawgYkO1F75pYteiPFQrCd2cJWj+/o1eykKdPMhS1gUIrgmCFOghO7HsHTyb96KPexGFNL8YLC+FA66H5wqG2mF4x7RCrMxMQ+dIc3sM2YecbmUEANr/epsxZ/+3m5ArYvHYq31vTLkjPNrlZO7AG7azj3lJQGuILyBKjTm+Pu39GgkbBYWVs5fuqaLdJfxEmdl/KSFilM5EtZQIeS0YhWOnfTSHhJkuIc587YN+WZ0P/LDHn7JS/FHO5pvCBgVtnKs2lat/HagJWOB1VAfKpSDgYjagMb6DVFOqttLQQ4eR9YeJEOyklASoayNgIGTF5z5EtTCYj1v4M5EFKKuVygvZQ1Lll8OAb+rYDWQKCvHsvImJp7Vc+FvzhojcgM1R0yqa03T1TqWkrWjZME+xFgpWZY7PXhPQptEbKedOq4tjYb8fKRNOMM8= MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: c83249fe-5b43-4d0b-6206-08d3ba79fed7 X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB2058; 2:V5QmkkyWFyY25E0N/bLuPV/CGwVlzTUhy3dj5UPStwO4j42+roy8DFMMdObO9NhRgMGxYDxqQLBSotf6D6bORmaeBW2NDW5MEHYhs3+YTvNY7EVIo7ZJpqVdt1PSMOZEmnPKWCEQwHu5r0rZA1gO5UT+6d+iYtkvilq/pAAxfu7T5MCNNEhGAZu/Jn6kObby; 3:vMQcOZzV8tt4lfV+T61SdcRDzamJk3ghlZ6rnbeszJDaqoqP7KHYEdyYMijbABLj4shJi3PD7oB+PoQnz5MpTa8YjqhY9A1LKZaR35SoPDK0lICzP7j5qlfr1NFoslURAo3zDTcVtPDjMEY6EgOZQ8yluUNUivEhiUgPOT50oinw8tvjGW0RmY8+kVdtcx1p3F0Pu7CZJfzd6eUj6W7enrVFWsONMKNPrNgswIQzQUc=; 25:YJnCycLrIWfoVqh0xNuwEXjZvpyKkRGHchAa/jSCDPFXzRD4aS6hpgqo6yDletvlOIxKIYcqqQertE0FM44x2Y48oCawFqiniZ8LBQ7t9XWvNzWozUfZ8UZ+8zO8DXq9V5aS8qYGXMKjlvUShelgNZDbWgoLzRlxDoKaswxT4DcKrf7EkaobPEcwdihw3AvStqfV0TAqP1eygIaob0EgEDorUmVWmak1iXKRdp8VbBCE16WxSgm0W7iO4FRJLWbULMSgzdnBWo6F6bskH4Fm23FkU9el90prBkKKzmx3y5PSCB2TxMpGNXSiZbE6AO0WM900B5SFNVG4uV/ont+ApJR2wVjccOeB9UnIh17F58cFLRkhizcB27rp36s9F1lPLMUVmNC81rFKD4uAAZvgV8XMwBB6XSsfsBBYQNE9BS8= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0301MB2058; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB2058; 31:9MLLxcSjBDn+o6jZwJN+AK75lvW6WzgZvpvb2deaC+kY88ByvUiQPpJDdlwM6KeB2CVwmSPoesoLOLUBJBoSfLBaOjOK5D4Rz34Mkv8hobku6pqsIpsfDEA5gy56sYzByn8lTLrFkbM3f5y4QZsxWQuT5vwHuAM/gvV9q4FAV1cZaJzcnqrMge4bGoyN4XaDmtOpg2lOYuy6MpD7Az/lFQ==; 4:F/oUviC0adA5Pl/4ERePjw9yqExp3Zro1GOA+dHOeTmgJsGQUwSZXzWL9535ZLKN9HBYgJYahcSziFXMLrGz4Kt808/xPL0pV/4SvWnjEb/Ee9/aNPB1sXMjVorOPsU6BzeRW4OcoAIYbOaGtbMpM58E6E1JhuUPjLW84XEuJAG/buIZFj9C9SyqypC4CorVo1kUpBUo6MhMN+4MI/zMXR0bIe7b1azXd+NPSwdeM4HJ79TS6qtoySaNzaldlssCYoeS8WLQN/jMuA2TLRXVayV9lhAU78wkdnhCbKw1xkRU1oBQwbyaNDkmsmLT8BWeW/yixnScnDZvfqItcHTM0R/grQMQBGzTEpBGQ07i+CZLtOiSKLiRjBIVqZ0gmX9FMqxCu7l7qTNNXmkqcoBY679N39y1O5TkXuDOOuvHw9L0xP1rQhjPe3W1hGe+LZgTw9R5vStgBuZ8nfPhysko/9OBRtG1Sy5mSpNpXFWJ+Dp9eQ2ZTDsYVpcFktv2a2QtPUntkbowwn2xZY9W04tL9A== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(13017025)(13023025)(13018025)(13024025)(13015025)(8121501046)(5005006)(10201501046)(3002001)(6055026); SRVR:CY1PR0301MB2058; BCL:0; PCL:0; RULEID:(400006); SRVR:CY1PR0301MB2058; X-Forefront-PRVS: 0022134A87 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB2058; 23:YOtnUJkZihhnHTch0200cS7q3wQOU9MN4bKLkuy?= =?us-ascii?Q?wDfHd8Q/jmSzfY/ShuoCCDbxxbLQxs4HD4v3va0vLKfNTlzOYv+QXyFPS2RZ?= =?us-ascii?Q?O7PWlVcJGpiTXQy7L96ZlRqPVsp0Hd+ynyBAbz3Wwk7Z/DVdWAi2VtmTrp7d?= =?us-ascii?Q?nKekQpBMl4voiFLOQkgf98cjsyHHi8zkh1+kI2hR7hesEU9IobJ6jyc+LzSk?= =?us-ascii?Q?qN4LX9ZcPwYEm00uHagn5EztzvzqNbPqN/pqYyDgHKdc1igRfd8G9e5irpjm?= =?us-ascii?Q?ZOrcaRc4X3sfzRujJkWW+XQCpzLeePpLJ4FU1tfN4bVb1b9xGdCnjGrFAZHA?= =?us-ascii?Q?Xo3+fcsjxUqRgwxpGMNM56CqjOwqpG+drifaxs9xFwQlKjvaQC0mWkA+wgNK?= =?us-ascii?Q?RmwLOSb7DW48cAFdlgCTMhTc2hv6XLomecZLstpn+OYJsZAyO8ERkDkj2laW?= =?us-ascii?Q?YUOXYlyvfekWIcwGybSO5S9HTvz0yPC23TPJvW65z4aiO5IlpgpstXxaqZbe?= =?us-ascii?Q?BCxd9snQxM6hO7T3gNJIe/NPCY+Cc9ShUFjwsQbgtp1HlS2VPsdn8MwAwHiF?= =?us-ascii?Q?UP7llNNmdbvqthmuynhZNw6i4FL49dIAwXC12W/5hbdQxmOjhFgWyM7XhMWS?= =?us-ascii?Q?moX0s3cbLX3KNvF6gN2IU7PxkrjK0389i9wtN6xPVqn8A9tTyz98CsKSHFyx?= =?us-ascii?Q?NdtqBO5lwH3pYVC93BWGggvFkZsW7R0LcFqktpAY1/TbUOr0yVMD3a7z9M6N?= =?us-ascii?Q?ewyJKdCncoVP+5NF5+qmCIHGT7WyE1Vuxpijn8WrcKakj+KfjFiwNKaYvtzy?= =?us-ascii?Q?PEMv47ttlTTbqBFo9pQX6AwmtKU0ebiem+eCLAVw9rnEjNooFQSMG45pgB7x?= =?us-ascii?Q?zwmkqySbX+/Yzp3E4EbK5XadRDvJ2mwk4hMv6/SU/e+yDFFBlqvTuvs6md2G?= =?us-ascii?Q?W93QkBtZThy71a3+9l/wYlPAJT9TCkhj/EWZZrQmvNkwgf27Pq8Rk4+hj6/g?= =?us-ascii?Q?8eD11pu5ppNbscWaukEI3qR/y9JNpCf0GzmeT6QQ+2y/YW5IhB41xsgSZapx?= =?us-ascii?Q?IE/ptT3IjkpHAu5buySdao+Th+5qmliwnsbZVd9RJBX8zOhcHUKh8wJx6N2z?= =?us-ascii?Q?yMixE77zINvWDhoLqEpms31dgCUO+sRU3s8XVX0YNBFx32cPgw+TXIw=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB2058; 6:fw9ptX6Vz7E337y8eidf+WPFn5GBHsZMNKSV7n4aUjPoMHXWUJGqAktc6gm9rIYjWuWaE1MGcz5KOYnhWBMMFZ6rz8MBlfunMA1Dz75O7EUzW77scemjseB3zPz0RfJUbhkjFo0NVWb5jG7j/nilPJbkKT0dXaQKX5AXYKNM0Kq9YIY0inWRXb3IQHhvg0N3zepzR1JuC0UcpZri2N/rrejIX/uNHxjoOTykKAQnlHpoA+NAmxZEypf6nDiwBKKEcMsTx9vq6JG8TXqDwDAyYOnC+bcaybERG3Li6WIByYM=; 5:uIDBcmVEIpQiMRDI0/1bOhTarl1vmBPvUVTV1qoDGAXd4f4+I/zDZS6w1kbPzJv+gSlv3J6u2wfhBqiCCY0NZasEU3mVVhvMlu3GnePNcsdhMtkbu0xnI1l9iCV62/lz59+/J6Nui7VdR7ULRQSs9oBgwXN+hEoO6Y/wcWFoIFo=; 24:CEloQnrkAKpsRzF8njq/2+QmkxviUbh4ebaQZRizlSKoTV85L+jcwbeIy5sOonnp+hAkAuZnkCCA/fAq1PXdIXf+Up0U7fXv4y1WTQdXjjY=; 7:KZSGG8svGbeHwAeggYYskh3Tuc+r4n9aH+VM33PCrm3xMU8VN9OvAhy3uiLkHHzoCHtQaLNsmZBNCu65mxGMbJ5LNDrgpYOMjmVnceHu+A/aUnHroCpkn0OFh5IdWBkl6SotBtZqRPl1Dx3rOmYKJaLfn2DCy0sxPU9N8JsTn/KDYNfO9Nuq9lsBp34hQyb/ONBmYQkY/fidDaxrjRwbQoF4D2PjvdneEwt4dnllIU/cF6WzQ/87IfRLXEDwoBMv SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Aug 2016 02:09:11.7773 (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: CY1PR0301MB2058 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: oss@buserror.net, Zhao Qiang , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, xiaobo.xie@nxp.com Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" qeic_of_init just get device_node of qeic from dtb and call qe_ic_init, pass the device_node to qe_ic_init. So merge qeic_of_init into qe_ic_init to get the qeic node in qe_ic_init. Signed-off-by: Zhao Qiang --- Changes for v2: - modify subject and commit msg - return 0 and add put node when return in qe_ic_init Changes for v3: - na Changes for v4: - na Changes for v5: - na drivers/irqchip/irq-qeic.c | 91 +++++++++++++++++++++++++--------------------- include/soc/fsl/qe/qe_ic.h | 7 ---- 2 files changed, 50 insertions(+), 48 deletions(-) diff --git a/drivers/irqchip/irq-qeic.c b/drivers/irqchip/irq-qeic.c index 1463731..4f49d4b 100644 --- a/drivers/irqchip/irq-qeic.c +++ b/drivers/irqchip/irq-qeic.c @@ -406,27 +406,38 @@ unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic) return irq_linear_revmap(qe_ic->irqhost, irq); } -void __init qe_ic_init(struct device_node *node, unsigned int flags, - void (*low_handler)(struct irq_desc *desc), - void (*high_handler)(struct irq_desc *desc)) +static int __init qe_ic_init(unsigned int flags) { + struct device_node *node; struct qe_ic *qe_ic; struct resource res; - u32 temp = 0, ret, high_active = 0; + u32 temp = 0, high_active = 0; + int ret = 0; + + node = of_find_compatible_node(NULL, NULL, "fsl,qe-ic"); + if (!node) { + node = of_find_node_by_type(NULL, "qeic"); + if (!node) + return -ENODEV; + } ret = of_address_to_resource(node, 0, &res); - if (ret) - return; + if (ret) { + ret = -ENODEV; + goto err_put_node; + } qe_ic = kzalloc(sizeof(*qe_ic), GFP_KERNEL); - if (qe_ic == NULL) - return; + if (qe_ic == NULL) { + ret = -ENOMEM; + goto err_put_node; + } qe_ic->irqhost = irq_domain_add_linear(node, NR_QE_IC_INTS, &qe_ic_host_ops, qe_ic); if (qe_ic->irqhost == NULL) { - kfree(qe_ic); - return; + ret = -ENOMEM; + goto err_free_qe_ic; } qe_ic->regs = ioremap(res.start, resource_size(&res)); @@ -437,9 +448,9 @@ void __init qe_ic_init(struct device_node *node, unsigned int flags, qe_ic->virq_low = irq_of_parse_and_map(node, 1); if (qe_ic->virq_low == NO_IRQ) { - printk(KERN_ERR "Failed to map QE_IC low IRQ\n"); - kfree(qe_ic); - return; + pr_err("Failed to map QE_IC low IRQ\n"); + ret = -ENOMEM; + goto err_domain_remove; } /* default priority scheme is grouped. If spread mode is */ @@ -466,13 +477,24 @@ void __init qe_ic_init(struct device_node *node, unsigned int flags, qe_ic_write(qe_ic->regs, QEIC_CICR, temp); irq_set_handler_data(qe_ic->virq_low, qe_ic); - irq_set_chained_handler(qe_ic->virq_low, low_handler); + irq_set_chained_handler(qe_ic->virq_low, qe_ic_cascade_low_mpic); if (qe_ic->virq_high != NO_IRQ && qe_ic->virq_high != qe_ic->virq_low) { irq_set_handler_data(qe_ic->virq_high, qe_ic); - irq_set_chained_handler(qe_ic->virq_high, high_handler); + irq_set_chained_handler(qe_ic->virq_high, + qe_ic_cascade_high_mpic); } + of_node_put(node); + return 0; + +err_domain_remove: + irq_domain_remove(qe_ic->irqhost); +err_free_qe_ic: + kfree(qe_ic); +err_put_node: + of_node_put(node); + return ret; } void qe_ic_set_highest_priority(unsigned int virq, int high) @@ -579,39 +601,26 @@ static struct device device_qe_ic = { .bus = &qe_ic_subsys, }; -static int __init init_qe_ic_sysfs(void) +static int __init init_qe_ic(void) { - int rc; + int ret; - printk(KERN_DEBUG "Registering qe_ic with sysfs...\n"); + ret = qe_ic_init(0); + if (ret) + return ret; - rc = subsys_system_register(&qe_ic_subsys, NULL); - if (rc) { - printk(KERN_ERR "Failed registering qe_ic sys class\n"); + ret = subsys_system_register(&qe_ic_subsys, NULL); + if (ret) { + pr_err("Failed registering qe_ic sys class\n"); return -ENODEV; } - rc = device_register(&device_qe_ic); - if (rc) { - printk(KERN_ERR "Failed registering qe_ic sys device\n"); + ret = device_register(&device_qe_ic); + if (ret) { + pr_err("Failed registering qe_ic sys device\n"); return -ENODEV; } - 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); + return 0; } -subsys_initcall(qeic_of_init); -subsys_initcall(init_qe_ic_sysfs); +subsys_initcall(init_qe_ic); diff --git a/include/soc/fsl/qe/qe_ic.h b/include/soc/fsl/qe/qe_ic.h index 1e155ca..6113699 100644 --- a/include/soc/fsl/qe/qe_ic.h +++ b/include/soc/fsl/qe/qe_ic.h @@ -58,16 +58,9 @@ enum qe_ic_grp_id { }; #ifdef CONFIG_QUICC_ENGINE -void qe_ic_init(struct device_node *node, unsigned int flags, - void (*low_handler)(struct irq_desc *desc), - void (*high_handler)(struct irq_desc *desc)); unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic); unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic); #else -static inline void qe_ic_init(struct device_node *node, unsigned int flags, - void (*low_handler)(struct irq_desc *desc), - void (*high_handler)(struct irq_desc *desc)) -{} static inline unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic) { return 0; } static inline unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic)