From nobody Mon Dec 15 03:20:38 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1611744652; cv=none; d=zohomail.com; s=zohoarc; b=McfxlUTsBNHQYCdzhPPngP1yE5pcDT0b1vDFqTfhttynXkKvMqXtVe/J5NwwBSLc8Qhri+bWBkV8HQNE+onbLOgjUBCnIzGiV7EMBij5cgr0WRj/45txpk0IaMexQCBlodZdd7HfvIB84UG9aZtGg8cUSARWhnDa661dAgwCe4I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1611744652; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Subject:To; bh=+ZwTYzQu6mbwzwqaeNm7UNbTYzt0QGNc+lzqE2N5MNA=; b=JeE143HbLwtRA7KmE5fyoey22/bRFg9VtT65KU6Tja/a7oRDaceyzXLlyCSzj6UXAKxvPeg/orT+BIc4Mad8IKv25qVk3vzRYeCeGPWhWDoJzyeKfTB8895TQwQlqiPzNKb3u/PYUyYYK6f2EWtoGjuHVMIakE+hEtftJXrB9ow= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1611744652738954.6352879697508; Wed, 27 Jan 2021 02:50:52 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236131AbhA0Kt6 (ORCPT ); Wed, 27 Jan 2021 05:49:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53142 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235986AbhA0KrR (ORCPT ); Wed, 27 Jan 2021 05:47:17 -0500 Received: from forward106j.mail.yandex.net (forward106j.mail.yandex.net [IPv6:2a02:6b8:0:801:2::109]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BD398C061573; Wed, 27 Jan 2021 02:46:30 -0800 (PST) Received: from iva7-77076e19dd85.qloud-c.yandex.net (iva7-77076e19dd85.qloud-c.yandex.net [IPv6:2a02:6b8:c0c:2ead:0:640:7707:6e19]) by forward106j.mail.yandex.net (Yandex) with ESMTP id 7FDEB11A0643; Wed, 27 Jan 2021 13:46:27 +0300 (MSK) Received: from iva6-2d18925256a6.qloud-c.yandex.net (iva6-2d18925256a6.qloud-c.yandex.net [2a02:6b8:c0c:7594:0:640:2d18:9252]) by iva7-77076e19dd85.qloud-c.yandex.net (mxback/Yandex) with ESMTP id 8U1XPbnwzw-kRHKF6ox; Wed, 27 Jan 2021 13:46:27 +0300 Received: by iva6-2d18925256a6.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id AUuDuROonk-kQm85vQS; Wed, 27 Jan 2021 13:46:26 +0300 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maquefel.me; s=mail; t=1611744387; bh=+ZwTYzQu6mbwzwqaeNm7UNbTYzt0QGNc+lzqE2N5MNA=; h=In-Reply-To:References:Date:Subject:To:From:Message-Id:Cc; b=T+p/uPgU/EYSMdfAZYeFDczxxIz7X4rmibUSudh5yUA/PK3MzdoQsKb/MRdhEcsuk 9yzuKUb4YT/lxW0bRj56AYoVbeoyySZ6Jd71ySDBCaJhr2+vdIe4ByrVjxhCZN4zB2 qMDn2FDfIgr06qQ6g/atJ7LTToSfBxVc0FZpppcw= Authentication-Results: iva7-77076e19dd85.qloud-c.yandex.net; dkim=pass header.i=@maquefel.me From: Nikita Shubin Cc: Andy Shevchenko , Nikita Shubin , Linus Walleij , Bartosz Golaszewski , Alexander Sverdlin , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/9] gpio: ep93xx: fix BUG_ON port F usage Date: Wed, 27 Jan 2021 13:46:09 +0300 Message-Id: <20210127104617.1173-2-nikita.shubin@maquefel.me> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210127104617.1173-1-nikita.shubin@maquefel.me> References: <20201228150052.2633-1-nikita.shubin@maquefel.me> <20210127104617.1173-1-nikita.shubin@maquefel.me> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The port F is actually index 2 not 5 as it is calculated=20 by ep93xx_gpio_port. Looks like it happened because of the confusing ep93xx_gpio_banks=20 table that shows like port F is having index 5, but is actually=20 index 2 if we rely on .base instead of index position. ------------[ cut here ]------------ kernel BUG at drivers/gpio/gpio-ep93xx.c:64! Internal error: Oops - BUG: 0 [#1] ARM Modules linked in: CPU: 0 PID: 403 Comm: gpio-event-mon Not tainted 5.9.10-00011-ge93e9618628b= -dirty #19 Hardware name: Technologic Systems TS-72xx SBC PC is at ep93xx_gpio_update_int_params+0x1c/0x80 LR is at ep93xx_gpio_update_int_params+0x14/0x80 pc : [] lr : [] psr: 20000093 sp : c158de00 ip : 00000000 fp : 00000001 r10: c44154d4 r9 : 00000000 r8 : c4415020 r7 : c04ef884 r6 : c051c842 r5 : c4415020 r4 : 00000005 r3 : 00000000 r2 : 00000000 r1 : c04eb768 r0 : 00000008 Flags: nzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment none Control: 0000717f Table: 01684000 DAC: 00000051 Process gpio-event-mon (pid: 403, stack limit =3D 0x(ptrval)) Stack: (0xc158de00 to 0xc158e000) de00: 00000005 00000002 c051c842 c0238dc0 c0238c98 c0238c98 c04ef874 000000= 00 de20: 00000003 c04fcfcc 60000013 c04ef910 c04ef8d4 c00456f0 c04ef874 c15f1e= 00 de40: 00000000 00000000 00000001 c0045d40 c15f1e00 c4400160 c0044ca8 c04ef8= a8 de60: 60000013 00000000 c15f1e00 c04ef874 c04ef884 00000001 c0235d70 c158b8= 00 de80: be825f0f c0045ec8 00000003 c158b800 c440aa00 be825bc8 00000003 000000= 01 dea0: 00000000 c0236f00 c44ed3a0 c158b800 c45c2015 00000000 00000001 000000= 03 dec0: 6f697067 6576652d 6d2d746e 00006e6f 00000000 00000000 00000000 000000= 00 dee0: be825df4 c00abb0c c440c500 c00aabd4 c440c500 c528b840 c45c2010 c04e12= 28 df00: 00000ff0 c4478d28 c030b404 be825bc8 c1550e20 00000003 c1550e20 c00c33= 88 df20: c4478d28 c00c3d48 be825f0f c00abd00 c45c2000 c45c2000 c1550e20 c00bfe= a8 df40: 00000003 c00b0714 00000000 c4450000 00000004 00000100 00000001 c04e12= 28 df60: c158dfb0 ffffff9c 000231f8 00000003 00000142 c00b085c 00000000 c04e12= 28 df80: 00000000 be825f0f 00000003 00000003 00000036 c00083c4 c158c000 000000= 00 dfa0: be825f0f c00081e0 be825f0f 00000003 00000003 c030b404 be825bc8 000000= 00 dfc0: be825f0f 00000003 00000003 00000036 00000001 00000000 00022070 be825f= 0f dfe0: b6f2e4e0 be825bac 00010acc b6f2e4ec 60000010 00000003 00000000 000000= 00 [] (ep93xx_gpio_update_int_params) from [] (ep93xx_gpio= _irq_type+0x128/0x1c0) [] (ep93xx_gpio_irq_type) from [] (__irq_set_trigger+0x= 6c/0x128) [] (__irq_set_trigger) from [] (__setup_irq+0x594/0x678) [] (__setup_irq) from [] (request_threaded_irq+0xa4/0x1= 28) [] (request_threaded_irq) from [] (gpio_ioctl+0x300/0x4= d8) [] (gpio_ioctl) from [] (vfs_ioctl+0x24/0x3c) [] (vfs_ioctl) from [] (sys_ioctl+0xbc/0x768) [] (sys_ioctl) from [] (ret_fast_syscall+0x0/0x50) Exception stack(0xc158dfa8 to 0xc158dff0) dfa0: be825f0f 00000003 00000003 c030b404 be825bc8 00000000 dfc0: be825f0f 00000003 00000003 00000036 00000001 00000000 00022070 be825f= 0f dfe0: b6f2e4e0 be825bac 00010acc b6f2e4ec Code: e59f0060 ebfff3e1 e3540002 9a000000 (e7f001f2) ---[ end trace 3f6544e133e9f5ae ]--- Fixes: fd935fc421e74 ("gpio: ep93xx: Do not pingpong irq numbers") Signed-off-by: Nikita Shubin --- drivers/gpio/gpio-ep93xx.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/gpio/gpio-ep93xx.c b/drivers/gpio/gpio-ep93xx.c index 226da8df6f10..0d0435c07a5a 100644 --- a/drivers/gpio/gpio-ep93xx.c +++ b/drivers/gpio/gpio-ep93xx.c @@ -39,6 +39,12 @@ struct ep93xx_gpio { struct gpio_chip gc[8]; }; =20 +/* + * F Port index in GPIOCHIP'S array is 5 + * but we use index 2 for stored values and offsets + */ +#define EP93XX_GPIO_F_PORT_INDEX 5 + /************************************************************************* * Interrupt handling for EP93xx on-chip GPIOs *************************************************************************/ @@ -85,6 +91,9 @@ static int ep93xx_gpio_port(struct gpio_chip *gc) return 0; } =20 + if (port =3D=3D EP93XX_GPIO_F_PORT_INDEX) + port =3D 2; + return port; } =20 --=20 2.29.2 From nobody Mon Dec 15 03:20:38 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1611746371; cv=none; d=zohomail.com; s=zohoarc; b=bWZFm56nAWlcPsgBpngw8FHAQ9/MNpIX8M8n32aiSyLEdod+Zd5hFqZaf8Q2M4HZiXkWweC7IxQMJH6OqTVo/qBPUmVWvVz3XaREWqecxPsuQurD2PakIhpj5yOeufBBphC+MwFTiQHI12FoGS23kbzqHVmRBuoi4HinWXCv6as= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1611746371; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Subject:To; bh=MjRDgxGTiCbkvysV4oEPs6x8SIGM1B5dcgTPZ1aY3Hg=; b=YAOaQrmFenF2+wyDqs1EyZ5Kxvqgb5RSZqbA/LEzITSfFy17rQjjoOE0zbu6GJucSJVGmiOieL/LafgguKkvaxfYf+oU/fKf6lIeGRBMGo+wYNTRIy8JfyDelHh7MRDxyoWMBbSnGiBSH0adv0byfZut5AWxHFjyMa50EakhcBg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1611746371866195.9327215162898; Wed, 27 Jan 2021 03:19:31 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236088AbhA0LSR (ORCPT ); Wed, 27 Jan 2021 06:18:17 -0500 Received: from forward101p.mail.yandex.net ([77.88.28.101]:56095 "EHLO forward101p.mail.yandex.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235048AbhA0KsK (ORCPT ); Wed, 27 Jan 2021 05:48:10 -0500 Received: from iva3-4874dd324817.qloud-c.yandex.net (iva3-4874dd324817.qloud-c.yandex.net [IPv6:2a02:6b8:c0c:49a4:0:640:4874:dd32]) by forward101p.mail.yandex.net (Yandex) with ESMTP id 9050C32830F7; Wed, 27 Jan 2021 13:46:29 +0300 (MSK) Received: from iva6-2d18925256a6.qloud-c.yandex.net (iva6-2d18925256a6.qloud-c.yandex.net [2a02:6b8:c0c:7594:0:640:2d18:9252]) by iva3-4874dd324817.qloud-c.yandex.net (mxback/Yandex) with ESMTP id k8eJcl5Y2y-kTGCIS3p; Wed, 27 Jan 2021 13:46:29 +0300 Received: by iva6-2d18925256a6.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id AUuDuROonk-kSm8U3AH; Wed, 27 Jan 2021 13:46:28 +0300 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maquefel.me; s=mail; t=1611744389; bh=MjRDgxGTiCbkvysV4oEPs6x8SIGM1B5dcgTPZ1aY3Hg=; h=In-Reply-To:References:Date:Subject:To:From:Message-Id:Cc; b=DxJtolUZBvHzxGkJokYKrlzSmVHC0e6oR0Re2a/Dp7m4FD/qX9HFZwlmRBj1BQTiH Lj9G39msGPaq4uIl4ecXJtZZOKLlAFRrN9M6qn9QLCLS2wHy6Bm2lQB4z2yXg3g1vr +HBnOHtekr+DcAEnuiHO5Y/f+9ow0TPCtoRHZ5eo= Authentication-Results: iva3-4874dd324817.qloud-c.yandex.net; dkim=pass header.i=@maquefel.me From: Nikita Shubin Cc: Andy Shevchenko , Nikita Shubin , Linus Walleij , Bartosz Golaszewski , Alexander Sverdlin , Maulik Shah , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/9] gpio: ep93xx: Fix single irqchip with multi gpiochips Date: Wed, 27 Jan 2021 13:46:10 +0300 Message-Id: <20210127104617.1173-3-nikita.shubin@maquefel.me> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210127104617.1173-1-nikita.shubin@maquefel.me> References: <20201228150052.2633-1-nikita.shubin@maquefel.me> <20210127104617.1173-1-nikita.shubin@maquefel.me> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Fixes the following warnings which results in interrupts disabled on=20 port B/F: gpio gpiochip1: (B): detected irqchip that is shared with multiple gpiochip= s: please fix the driver. gpio gpiochip5: (F): detected irqchip that is shared with multiple gpiochip= s: please fix the driver. - added separate irqchip for each interrupt capable gpiochip - provided unique names for each irqchip - reworked ep93xx_gpio_port to make it usable before chip_add_data=20 in ep93xx_init_irq_chips Fixes: a8173820f441 ("gpio: gpiolib: Allow GPIO IRQs to lazy disable") Signed-off-by: Nikita Shubin --- drivers/gpio/gpio-ep93xx.c | 45 ++++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/drivers/gpio/gpio-ep93xx.c b/drivers/gpio/gpio-ep93xx.c index 0d0435c07a5a..2eea02c906e0 100644 --- a/drivers/gpio/gpio-ep93xx.c +++ b/drivers/gpio/gpio-ep93xx.c @@ -34,9 +34,12 @@ */ #define EP93XX_GPIO_F_IRQ_BASE 80 =20 +#define EP93XX_GPIO_IRQ_CHIPS_NUM 3 + struct ep93xx_gpio { void __iomem *base; struct gpio_chip gc[8]; + struct irq_chip ic[EP93XX_GPIO_IRQ_CHIPS_NUM]; }; =20 /* @@ -55,6 +58,11 @@ static unsigned char gpio_int_type2[3]; static unsigned char gpio_int_debounce[3]; =20 /* Port ordering is: A B F */ +static const char * const irq_chip_names[] =3D { + "gpio-irq-a", + "gpio-irq-b", + "gpio-irq-f" +}; static const u8 int_type1_register_offset[3] =3D { 0x90, 0xac, 0x4c }; static const u8 int_type2_register_offset[3] =3D { 0x94, 0xb0, 0x50 }; static const u8 eoi_register_offset[3] =3D { 0x98, 0xb4, 0x54 }; @@ -77,9 +85,8 @@ static void ep93xx_gpio_update_int_params(struct ep93xx_g= pio *epg, unsigned port epg->base + int_en_register_offset[port]); } =20 -static int ep93xx_gpio_port(struct gpio_chip *gc) +static int ep93xx_gpio_port(struct ep93xx_gpio *epg, struct gpio_chip *gc) { - struct ep93xx_gpio *epg =3D gpiochip_get_data(gc); int port =3D 0; =20 while (port < ARRAY_SIZE(epg->gc) && gc !=3D &epg->gc[port]) @@ -101,7 +108,7 @@ static void ep93xx_gpio_int_debounce(struct gpio_chip *= gc, unsigned int offset, bool enable) { struct ep93xx_gpio *epg =3D gpiochip_get_data(gc); - int port =3D ep93xx_gpio_port(gc); + int port =3D ep93xx_gpio_port(epg, gc); int port_mask =3D BIT(offset); =20 if (enable) @@ -163,7 +170,7 @@ static void ep93xx_gpio_irq_ack(struct irq_data *d) { struct gpio_chip *gc =3D irq_data_get_irq_chip_data(d); struct ep93xx_gpio *epg =3D gpiochip_get_data(gc); - int port =3D ep93xx_gpio_port(gc); + int port =3D ep93xx_gpio_port(epg, gc); int port_mask =3D BIT(d->irq & 7); =20 if (irqd_get_trigger_type(d) =3D=3D IRQ_TYPE_EDGE_BOTH) { @@ -178,7 +185,7 @@ static void ep93xx_gpio_irq_mask_ack(struct irq_data *d) { struct gpio_chip *gc =3D irq_data_get_irq_chip_data(d); struct ep93xx_gpio *epg =3D gpiochip_get_data(gc); - int port =3D ep93xx_gpio_port(gc); + int port =3D ep93xx_gpio_port(epg, gc); int port_mask =3D BIT(d->irq & 7); =20 if (irqd_get_trigger_type(d) =3D=3D IRQ_TYPE_EDGE_BOTH) @@ -194,7 +201,7 @@ static void ep93xx_gpio_irq_mask(struct irq_data *d) { struct gpio_chip *gc =3D irq_data_get_irq_chip_data(d); struct ep93xx_gpio *epg =3D gpiochip_get_data(gc); - int port =3D ep93xx_gpio_port(gc); + int port =3D ep93xx_gpio_port(epg, gc); =20 gpio_int_unmasked[port] &=3D ~BIT(d->irq & 7); ep93xx_gpio_update_int_params(epg, port); @@ -204,7 +211,7 @@ static void ep93xx_gpio_irq_unmask(struct irq_data *d) { struct gpio_chip *gc =3D irq_data_get_irq_chip_data(d); struct ep93xx_gpio *epg =3D gpiochip_get_data(gc); - int port =3D ep93xx_gpio_port(gc); + int port =3D ep93xx_gpio_port(epg, gc); =20 gpio_int_unmasked[port] |=3D BIT(d->irq & 7); ep93xx_gpio_update_int_params(epg, port); @@ -219,7 +226,7 @@ static int ep93xx_gpio_irq_type(struct irq_data *d, uns= igned int type) { struct gpio_chip *gc =3D irq_data_get_irq_chip_data(d); struct ep93xx_gpio *epg =3D gpiochip_get_data(gc); - int port =3D ep93xx_gpio_port(gc); + int port =3D ep93xx_gpio_port(epg, gc); int offset =3D d->irq & 7; int port_mask =3D BIT(offset); irq_flow_handler_t handler; @@ -335,6 +342,22 @@ static int ep93xx_gpio_f_to_irq(struct gpio_chip *gc, = unsigned offset) return EP93XX_GPIO_F_IRQ_BASE + offset; } =20 +static void ep93xx_init_irq_chips(struct ep93xx_gpio *epg) +{ + int i; + + for (i =3D 0; i < EP93XX_GPIO_IRQ_CHIPS_NUM; i++) { + struct irq_chip *ic =3D &epg->ic[i]; + + ic->name =3D irq_chip_names[i]; + ic->irq_ack =3D ep93xx_gpio_irq_ack; + ic->irq_mask_ack =3D ep93xx_gpio_irq_mask_ack; + ic->irq_mask =3D ep93xx_gpio_irq_mask; + ic->irq_unmask =3D ep93xx_gpio_irq_unmask; + ic->irq_set_type =3D ep93xx_gpio_irq_type; + } +} + static int ep93xx_gpio_add_bank(struct gpio_chip *gc, struct platform_device *pdev, struct ep93xx_gpio *epg, @@ -345,6 +368,7 @@ static int ep93xx_gpio_add_bank(struct gpio_chip *gc, struct device *dev =3D &pdev->dev; struct gpio_irq_chip *girq; int err; + int port; =20 err =3D bgpio_init(gc, dev, 1, data, NULL, NULL, dir, NULL, 0); if (err) @@ -356,7 +380,8 @@ static int ep93xx_gpio_add_bank(struct gpio_chip *gc, girq =3D &gc->irq; if (bank->has_irq || bank->has_hierarchical_irq) { gc->set_config =3D ep93xx_gpio_set_config; - girq->chip =3D &ep93xx_gpio_irq_chip; + port =3D ep93xx_gpio_port(epg, gc); + girq->chip =3D &epg->ic[port]; } =20 if (bank->has_irq) { @@ -423,6 +448,8 @@ static int ep93xx_gpio_probe(struct platform_device *pd= ev) if (IS_ERR(epg->base)) return PTR_ERR(epg->base); =20 + ep93xx_init_irq_chips(epg); + for (i =3D 0; i < ARRAY_SIZE(ep93xx_gpio_banks); i++) { struct gpio_chip *gc =3D &epg->gc[i]; struct ep93xx_gpio_bank *bank =3D &ep93xx_gpio_banks[i]; --=20 2.29.2 From nobody Mon Dec 15 03:20:38 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1611745071; cv=none; d=zohomail.com; s=zohoarc; b=QmAls5fXT66nU3nlICjFXdOoRi/77WoHZV7rIspKEisZm2iU5ajGkZp/lJKzw9UEE+gdDromOK2oQO97ytrQG+aFggRzQvAPMWVjKIzQvuIxR95hH7D46e9h0tF+4B26D72D3iFvjGzfZs3CYPGkbKvaa8FIxkXtm3mRl6/84bI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1611745071; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Subject:To; bh=j90hgJ/glY5iXUpLlIe5dqmuAis8qn4vOWe+6aan5l4=; b=E7/C5yo1ORWUUcuudqEdAcuDX0l340FYdYmmYwv/D4WjrVwJppduxPMAPv2T2rXVJgOmEDakt6ha5KsttgOEv7q9ezLnUuYExR1TWm84eBaWqEs6z+QtieiZzuw2CMRQI/5lsp2gfsdIh8U0UmSaTEWbNs04kXXGdw7yCCRVEAw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1611745071517540.2227828540981; Wed, 27 Jan 2021 02:57:51 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236113AbhA0K5L (ORCPT ); Wed, 27 Jan 2021 05:57:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53166 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236217AbhA0Ks1 (ORCPT ); Wed, 27 Jan 2021 05:48:27 -0500 Received: from forward104j.mail.yandex.net (forward104j.mail.yandex.net [IPv6:2a02:6b8:0:801:2::107]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9E886C06174A; Wed, 27 Jan 2021 02:48:12 -0800 (PST) Received: from iva6-c549df431312.qloud-c.yandex.net (iva6-c549df431312.qloud-c.yandex.net [IPv6:2a02:6b8:c0c:611f:0:640:c549:df43]) by forward104j.mail.yandex.net (Yandex) with ESMTP id 7B0E04A343A; Wed, 27 Jan 2021 13:46:30 +0300 (MSK) Received: from iva6-2d18925256a6.qloud-c.yandex.net (iva6-2d18925256a6.qloud-c.yandex.net [2a02:6b8:c0c:7594:0:640:2d18:9252]) by iva6-c549df431312.qloud-c.yandex.net (mxback/Yandex) with ESMTP id bBxsaB1Qxs-kUGGk9Ff; Wed, 27 Jan 2021 13:46:30 +0300 Received: by iva6-2d18925256a6.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id AUuDuROonk-kTm8GXSQ; Wed, 27 Jan 2021 13:46:29 +0300 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maquefel.me; s=mail; t=1611744390; bh=j90hgJ/glY5iXUpLlIe5dqmuAis8qn4vOWe+6aan5l4=; h=In-Reply-To:References:Date:Subject:To:From:Message-Id:Cc; b=bP/dZ1oJ1XQd8tecCOstElH3GUsRTIttLLitkQxhIK7H7Y6+gsCMO++51Vj0O1aE7 h5uAkX3QevOoQ4JvSvYkZVZVu61MkkZfWLD9JgfOFNYeHgFjtAZSOMj+Iz34fzLFan uG+ym5IQ5kTkmNJAzSBrC0IXHjdVzx8ldn8x128E= Authentication-Results: iva6-c549df431312.qloud-c.yandex.net; dkim=pass header.i=@maquefel.me From: Nikita Shubin Cc: Andy Shevchenko , Nikita Shubin , Linus Walleij , Bartosz Golaszewski , Alexander Sverdlin , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 3/9] gpio: ep93xx: Fix wrong irq numbers in port F Date: Wed, 27 Jan 2021 13:46:11 +0300 Message-Id: <20210127104617.1173-4-nikita.shubin@maquefel.me> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210127104617.1173-1-nikita.shubin@maquefel.me> References: <20201228150052.2633-1-nikita.shubin@maquefel.me> <20210127104617.1173-1-nikita.shubin@maquefel.me> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Port F irq's should be statically mapped to EP93XX_GPIO_F_IRQ_BASE. So we need to specify girq->first otherwise: "If device tree is used, then first_irq will be 0 and irqs get mapped dynamically on the fly" And that's not the thing we want. Signed-off-by: Nikita Shubin --- drivers/gpio/gpio-ep93xx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpio/gpio-ep93xx.c b/drivers/gpio/gpio-ep93xx.c index 2eea02c906e0..9c3d049e5af7 100644 --- a/drivers/gpio/gpio-ep93xx.c +++ b/drivers/gpio/gpio-ep93xx.c @@ -430,6 +430,7 @@ static int ep93xx_gpio_add_bank(struct gpio_chip *gc, girq->default_type =3D IRQ_TYPE_NONE; girq->handler =3D handle_level_irq; gc->to_irq =3D ep93xx_gpio_f_to_irq; + girq->first =3D EP93XX_GPIO_F_IRQ_BASE; } =20 return devm_gpiochip_add_data(dev, gc, epg); --=20 2.29.2 From nobody Mon Dec 15 03:20:38 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1611746297; cv=none; d=zohomail.com; s=zohoarc; b=GYzNZ0CMZVIWicl1YzX9lz0M6FTi8oCw+s5Y6T5h4OZVhNqDmDhW9RbKUY4mgnmt4qGbWmisf602aYMSqvtmiFg8UC+kibB3vgtq6gsNViGxP8iWmPh4LXQGDT9SBh9vvfO7qNLZVnry5I1s4BocJXo6n2qvODnxQUhAWK3gL2o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1611746297; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Subject:To; bh=BYLI0uaOO2NhX0FCc/Twqb9p7Ic5Pl5n2ndNJuC6t8o=; b=Ld74gnzMCJZh6gJxuA3/saL6lq8nc94XRMwnQdBIksIOgTC1RupwVLmbQp3T1w5wW3DoJAc2mugCSpV+K1ocV4epdmT7nse1/xOF6nQM6Y7QIFD0ma/fP/JqP5f6s/t+0acdjDQssmkyVarfiay/ygHY3pRWYbSo2CPX0+Ec4AE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1611746297208946.7910962864286; Wed, 27 Jan 2021 03:18:17 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236545AbhA0LRw (ORCPT ); Wed, 27 Jan 2021 06:17:52 -0500 Received: from forward105p.mail.yandex.net ([77.88.28.108]:46567 "EHLO forward105p.mail.yandex.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235819AbhA0KsL (ORCPT ); Wed, 27 Jan 2021 05:48:11 -0500 Received: from iva4-f37646ae0ac9.qloud-c.yandex.net (iva4-f37646ae0ac9.qloud-c.yandex.net [IPv6:2a02:6b8:c0c:129b:0:640:f376:46ae]) by forward105p.mail.yandex.net (Yandex) with ESMTP id 69BD94D40536; Wed, 27 Jan 2021 13:46:31 +0300 (MSK) Received: from iva6-2d18925256a6.qloud-c.yandex.net (iva6-2d18925256a6.qloud-c.yandex.net [2a02:6b8:c0c:7594:0:640:2d18:9252]) by iva4-f37646ae0ac9.qloud-c.yandex.net (mxback/Yandex) with ESMTP id xs0kKcIVQu-kVGSt2VN; Wed, 27 Jan 2021 13:46:31 +0300 Received: by iva6-2d18925256a6.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id AUuDuROonk-kUm8BALV; Wed, 27 Jan 2021 13:46:30 +0300 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maquefel.me; s=mail; t=1611744391; bh=BYLI0uaOO2NhX0FCc/Twqb9p7Ic5Pl5n2ndNJuC6t8o=; h=In-Reply-To:References:Date:Subject:To:From:Message-Id:Cc; b=k6h5YjVlVLfSCY2172+sWmMJSCYvTO3Fqo7mWw02iHI74PcUeCciRUgBKrx+z+UdB PQ2vZypJnUDr9cGZ84xUn2XseqWLFfB07SdM04vl84nKBT942bpZ0QZh/LE6WiIiiC n+5kzNPnpkQEPQB8lZ5mfGsQgIYz9zlJE4gIWQQk= Authentication-Results: iva4-f37646ae0ac9.qloud-c.yandex.net; dkim=pass header.i=@maquefel.me From: Nikita Shubin Cc: Andy Shevchenko , Nikita Shubin , Linus Walleij , Bartosz Golaszewski , Alexander Sverdlin , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 4/9] gpio: ep93xx: drop to_irq binding Date: Wed, 27 Jan 2021 13:46:12 +0300 Message-Id: <20210127104617.1173-5-nikita.shubin@maquefel.me> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210127104617.1173-1-nikita.shubin@maquefel.me> References: <20201228150052.2633-1-nikita.shubin@maquefel.me> <20210127104617.1173-1-nikita.shubin@maquefel.me> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" As ->to_irq is redefined in gpiochip_add_irqchip, having it defined in driver is useless, so let's drop it. Signed-off-by: Nikita Shubin --- drivers/gpio/gpio-ep93xx.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/gpio/gpio-ep93xx.c b/drivers/gpio/gpio-ep93xx.c index 9c3d049e5af7..dee19372ebbd 100644 --- a/drivers/gpio/gpio-ep93xx.c +++ b/drivers/gpio/gpio-ep93xx.c @@ -337,11 +337,6 @@ static int ep93xx_gpio_set_config(struct gpio_chip *gc= , unsigned offset, return 0; } =20 -static int ep93xx_gpio_f_to_irq(struct gpio_chip *gc, unsigned offset) -{ - return EP93XX_GPIO_F_IRQ_BASE + offset; -} - static void ep93xx_init_irq_chips(struct ep93xx_gpio *epg) { int i; @@ -429,7 +424,6 @@ static int ep93xx_gpio_add_bank(struct gpio_chip *gc, } girq->default_type =3D IRQ_TYPE_NONE; girq->handler =3D handle_level_irq; - gc->to_irq =3D ep93xx_gpio_f_to_irq; girq->first =3D EP93XX_GPIO_F_IRQ_BASE; } =20 --=20 2.29.2 From nobody Mon Dec 15 03:20:38 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1611746296; cv=none; d=zohomail.com; s=zohoarc; b=oBnEgWxDtaXHQZcQH27gchn7AgGTz5GTaaxbTsOago85VHc8Yxt1h7N4zsP0bag6+IF4huivm24iHCSYX7LDFEyAUNLdzC454yAjSBbyQF54mua0zIXegPyYsbMuXSEZZsgLBZPRcuvAN2CY4DNaPOAy8Tv0iBHXIrQsL6dBuhg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1611746296; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Subject:To; bh=7lgwbDJGOdVjkUAGd9EAk0SpTBjvigm0So+KyiwD/NE=; b=EtwWs+wvKZ0eV0l6bYWwd8Q245c8I7KhSt+I2X9umPiKqnsW/ML7MCIKIOc69twLUjIjw7diFkHCUxZDVf0YIRGja/huG3Hv2yzb9Qf1ETNHFMQjTTVcOvTkRs/S81PX5D3EjAczsdWmlQBSuTyeFq5WUM9p15L89JkVrPDaRFU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1611746296882385.6500496390968; Wed, 27 Jan 2021 03:18:16 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236509AbhA0LR1 (ORCPT ); Wed, 27 Jan 2021 06:17:27 -0500 Received: from forward100p.mail.yandex.net ([77.88.28.100]:32829 "EHLO forward100p.mail.yandex.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235880AbhA0KsL (ORCPT ); Wed, 27 Jan 2021 05:48:11 -0500 Received: from iva8-40f91c705526.qloud-c.yandex.net (iva8-40f91c705526.qloud-c.yandex.net [IPv6:2a02:6b8:c0c:b9a7:0:640:40f9:1c70]) by forward100p.mail.yandex.net (Yandex) with ESMTP id 793D0598006C; Wed, 27 Jan 2021 13:46:32 +0300 (MSK) Received: from iva6-2d18925256a6.qloud-c.yandex.net (iva6-2d18925256a6.qloud-c.yandex.net [2a02:6b8:c0c:7594:0:640:2d18:9252]) by iva8-40f91c705526.qloud-c.yandex.net (mxback/Yandex) with ESMTP id B1f2YTBbXI-kWH0pMdL; Wed, 27 Jan 2021 13:46:32 +0300 Received: by iva6-2d18925256a6.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id AUuDuROonk-kVm84C3H; Wed, 27 Jan 2021 13:46:31 +0300 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maquefel.me; s=mail; t=1611744392; bh=7lgwbDJGOdVjkUAGd9EAk0SpTBjvigm0So+KyiwD/NE=; h=In-Reply-To:References:Date:Subject:To:From:Message-Id:Cc; b=UZ8qzxQ6H63pll0QE5Zi1QUixTSp+ijViWCEqSk95oKwPFI23KT7IMFaUV/LXtltP aD1182y75XlaeFSeLd034JJBzVbCfw8ccnwHEn2LuKGhVn3XCXaYnQAvaCopNXyZpX I/CmVKqQkZi8Tim5RygbjouOVf9bujXhoyaBaHdY= Authentication-Results: iva8-40f91c705526.qloud-c.yandex.net; dkim=pass header.i=@maquefel.me From: Nikita Shubin Cc: Andy Shevchenko , Nikita Shubin , Linus Walleij , Bartosz Golaszewski , Alexander Sverdlin , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 5/9] gpio: ep93xx: Fix typo s/hierarchial/hierarchical Date: Wed, 27 Jan 2021 13:46:13 +0300 Message-Id: <20210127104617.1173-6-nikita.shubin@maquefel.me> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210127104617.1173-1-nikita.shubin@maquefel.me> References: <20201228150052.2633-1-nikita.shubin@maquefel.me> <20210127104617.1173-1-nikita.shubin@maquefel.me> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Fix typo in comment. Signed-off-by: Nikita Shubin --- drivers/gpio/gpio-ep93xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-ep93xx.c b/drivers/gpio/gpio-ep93xx.c index dee19372ebbd..8f66e3ca0cfb 100644 --- a/drivers/gpio/gpio-ep93xx.c +++ b/drivers/gpio/gpio-ep93xx.c @@ -402,7 +402,7 @@ static int ep93xx_gpio_add_bank(struct gpio_chip *gc, =20 /* * FIXME: convert this to use hierarchical IRQ support! - * this requires fixing the root irqchip to be hierarchial. + * this requires fixing the root irqchip to be hierarchical. */ girq->parent_handler =3D ep93xx_gpio_f_irq_handler; girq->num_parents =3D 8; --=20 2.29.2 From nobody Mon Dec 15 03:20:38 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1611744578; cv=none; d=zohomail.com; s=zohoarc; b=U3Jb+1kJ0qMF5vkWf51HgyY6IQvhZaXDP4770yGSTzEzw6LI0d/isLC4Z9mTaV4kOZ+z544bMbbnK+3bOvV+qyAgyjGjB+mt4hE8mbsnBpMdtTS+eWhVlcnyS14dNDHLYerYAGEUtUwPv/6IZZ47k26O9esmDIXj5neb/vnaDOA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1611744578; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Subject:To; bh=dRtGy7GDCULMUNvIFTHiZshKgi9mwsQBzk/q5Xc/ppE=; b=mfzzhq1fwzavy1/MTg5bRrkCDK1HHwCPnjwg1Bte4LvCHpWOLn1ZOUuSZhJnGLKsCC564kOfuEu7nbmBekus9pSU5Xdspn1kTMvfAivqFHY1yfIMqnd4lWDSkZ40sayxtmY0DKzrzYC+U85NdtwMl1zg7DuqKKBjVFRd3a6+Zuc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 161174457864118.020885483297093; Wed, 27 Jan 2021 02:49:38 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236206AbhA0KsS (ORCPT ); Wed, 27 Jan 2021 05:48:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53158 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235950AbhA0KrR (ORCPT ); Wed, 27 Jan 2021 05:47:17 -0500 Received: from forward102j.mail.yandex.net (forward102j.mail.yandex.net [IPv6:2a02:6b8:0:801:2::102]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 653EBC06174A; Wed, 27 Jan 2021 02:46:35 -0800 (PST) Received: from iva6-6aa4ee7025da.qloud-c.yandex.net (iva6-6aa4ee7025da.qloud-c.yandex.net [IPv6:2a02:6b8:c0c:6106:0:640:6aa4:ee70]) by forward102j.mail.yandex.net (Yandex) with ESMTP id 5CC8DF233C9; Wed, 27 Jan 2021 13:46:33 +0300 (MSK) Received: from iva6-2d18925256a6.qloud-c.yandex.net (iva6-2d18925256a6.qloud-c.yandex.net [2a02:6b8:c0c:7594:0:640:2d18:9252]) by iva6-6aa4ee7025da.qloud-c.yandex.net (mxback/Yandex) with ESMTP id f9h9r13gJ3-kXGWXiml; Wed, 27 Jan 2021 13:46:33 +0300 Received: by iva6-2d18925256a6.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id AUuDuROonk-kWm89ilh; Wed, 27 Jan 2021 13:46:32 +0300 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maquefel.me; s=mail; t=1611744393; bh=dRtGy7GDCULMUNvIFTHiZshKgi9mwsQBzk/q5Xc/ppE=; h=In-Reply-To:References:Date:Subject:To:From:Message-Id:Cc; b=B+O61xsFjzdT+TBO8q3wwCa0orghyuqd5iaYaELqRFJY6/As1wtWKqO+16N3w41pi MKtU0/1/6dohVXYBFrBQv1hZJd8+u3rfX9yHl8AdmP1R/gCEEKyrR+pAlgNaPua8iq 8UKv6EdpvHzJA96UUhEhmB7/hwFhiQVj4QzGpIc0= Authentication-Results: iva6-6aa4ee7025da.qloud-c.yandex.net; dkim=pass header.i=@maquefel.me From: Nikita Shubin Cc: Andy Shevchenko , Nikita Shubin , Linus Walleij , Bartosz Golaszewski , Alexander Sverdlin , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 6/9] gpio: ep93xx: refactor ep93xx_gpio_add_bank Date: Wed, 27 Jan 2021 13:46:14 +0300 Message-Id: <20210127104617.1173-7-nikita.shubin@maquefel.me> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210127104617.1173-1-nikita.shubin@maquefel.me> References: <20201228150052.2633-1-nikita.shubin@maquefel.me> <20210127104617.1173-1-nikita.shubin@maquefel.me> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" - replace plain numbers with girq->num_parents in devm_kcalloc - replace plain numbers with ARRAY_SIZE(girq->parents) for port F - refactor i - 1 to i + 1 to make loop more readable - combine getting IRQ's loop and setting handler's into single loop Signed-off-by: Nikita Shubin --- drivers/gpio/gpio-ep93xx.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/gpio/gpio-ep93xx.c b/drivers/gpio/gpio-ep93xx.c index 8f66e3ca0cfb..e4270b4e5f26 100644 --- a/drivers/gpio/gpio-ep93xx.c +++ b/drivers/gpio/gpio-ep93xx.c @@ -384,7 +384,7 @@ static int ep93xx_gpio_add_bank(struct gpio_chip *gc, =20 girq->parent_handler =3D ep93xx_gpio_ab_irq_handler; girq->num_parents =3D 1; - girq->parents =3D devm_kcalloc(dev, 1, + girq->parents =3D devm_kcalloc(dev, girq->num_parents, sizeof(*girq->parents), GFP_KERNEL); if (!girq->parents) @@ -406,15 +406,14 @@ static int ep93xx_gpio_add_bank(struct gpio_chip *gc, */ girq->parent_handler =3D ep93xx_gpio_f_irq_handler; girq->num_parents =3D 8; - girq->parents =3D devm_kcalloc(dev, 8, + girq->parents =3D devm_kcalloc(dev, girq->num_parents, sizeof(*girq->parents), GFP_KERNEL); if (!girq->parents) return -ENOMEM; /* Pick resources 1..8 for these IRQs */ - for (i =3D 1; i <=3D 8; i++) - girq->parents[i - 1] =3D platform_get_irq(pdev, i); - for (i =3D 0; i < 8; i++) { + for (i =3D 0; i < ARRAY_SIZE(girq->parents); i++) { + girq->parents[i] =3D platform_get_irq(pdev, i + 1); gpio_irq =3D EP93XX_GPIO_F_IRQ_BASE + i; irq_set_chip_data(gpio_irq, &epg->gc[5]); irq_set_chip_and_handler(gpio_irq, --=20 2.29.2 From nobody Mon Dec 15 03:20:38 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1611744578; cv=none; d=zohomail.com; s=zohoarc; b=asx6AFbVkmmF/1Itkzp78/ArIHen7mpBfujMYuslPoOJNsee7zLMqp+gAq7M6hlLK0zUo26cXP6nAhQav/Bes2vlLBRhctLpbc2tjZAE769kPSxxSmXKK3eNKKHXFPecqJyzi/0f0vHNW9/l5dGDWt7H4w8MIVa4b4BEGjLylqQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1611744578; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Subject:To; bh=U9IySu7F9dCEH8iRL26QyhPXIHB9TedVtFyRE/O5o9Y=; b=dpZ20QpCNbpHMzVkmm+DxTm74qjzPCP4WR4DN8ME3l41AprTJ/uZD7MTLgbeFzbhIY4dI8NwrOKp7S76GZW3l4rlEmtujeZq4Ud5g2CchruAoThC8aSAAi1VTe2hfu/RnF5w+ftG3q0jcDO5WEW/KUi67aQEwunQcJe0OFL7KOE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1611744578886812.4654792155366; Wed, 27 Jan 2021 02:49:38 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236223AbhA0Ksg (ORCPT ); Wed, 27 Jan 2021 05:48:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53164 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236008AbhA0KrR (ORCPT ); Wed, 27 Jan 2021 05:47:17 -0500 Received: from forward102j.mail.yandex.net (forward102j.mail.yandex.net [IPv6:2a02:6b8:0:801:2::102]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CB03CC061574; Wed, 27 Jan 2021 02:46:35 -0800 (PST) Received: from iva1-236c86026a3d.qloud-c.yandex.net (iva1-236c86026a3d.qloud-c.yandex.net [IPv6:2a02:6b8:c0c:928a:0:640:236c:8602]) by forward102j.mail.yandex.net (Yandex) with ESMTP id 5AEB1F2324E; Wed, 27 Jan 2021 13:46:34 +0300 (MSK) Received: from iva6-2d18925256a6.qloud-c.yandex.net (iva6-2d18925256a6.qloud-c.yandex.net [2a02:6b8:c0c:7594:0:640:2d18:9252]) by iva1-236c86026a3d.qloud-c.yandex.net (mxback/Yandex) with ESMTP id 2bxbuQTlKw-kYGSjA0k; Wed, 27 Jan 2021 13:46:34 +0300 Received: by iva6-2d18925256a6.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id AUuDuROonk-kXm8ZHOJ; Wed, 27 Jan 2021 13:46:33 +0300 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maquefel.me; s=mail; t=1611744394; bh=U9IySu7F9dCEH8iRL26QyhPXIHB9TedVtFyRE/O5o9Y=; h=In-Reply-To:References:Date:Subject:To:From:Message-Id:Cc; b=B8i9IOujugkljC708Oxelv2N3xk0XEkc6Kw753pZ6EB+iKHythEWDABQqdSHegkxb p5xcpVwEwwP1L7pByCwM8fJUadPy/HLFMA658dnrfsbvxUfE+b85FoScM+UcDJVzq7 /M/+ih2pZ+dqwmiZSTUms8uXvF6NpRTtkS3uE298= Authentication-Results: iva1-236c86026a3d.qloud-c.yandex.net; dkim=pass header.i=@maquefel.me From: Nikita Shubin Cc: Andy Shevchenko , Nikita Shubin , Linus Walleij , Bartosz Golaszewski , Alexander Sverdlin , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 7/9] gpio: ep93xx: separate IRQ's setup Date: Wed, 27 Jan 2021 13:46:15 +0300 Message-Id: <20210127104617.1173-8-nikita.shubin@maquefel.me> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210127104617.1173-1-nikita.shubin@maquefel.me> References: <20201228150052.2633-1-nikita.shubin@maquefel.me> <20210127104617.1173-1-nikita.shubin@maquefel.me> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Separate IRQ's setup for port A,B,F. Signed-off-by: Nikita Shubin --- drivers/gpio/gpio-ep93xx.c | 104 +++++++++++++++++++++++-------------- 1 file changed, 64 insertions(+), 40 deletions(-) diff --git a/drivers/gpio/gpio-ep93xx.c b/drivers/gpio/gpio-ep93xx.c index e4270b4e5f26..b212c007240e 100644 --- a/drivers/gpio/gpio-ep93xx.c +++ b/drivers/gpio/gpio-ep93xx.c @@ -353,6 +353,64 @@ static void ep93xx_init_irq_chips(struct ep93xx_gpio *= epg) } } =20 +static int ep93xx_gpio_add_ab_irq_chip(struct platform_device *pdev, + struct gpio_irq_chip *girq, + unsigned int irq_base) +{ + struct device *dev =3D &pdev->dev; + int ab_parent_irq =3D platform_get_irq(pdev, 0); + + girq->parent_handler =3D ep93xx_gpio_ab_irq_handler; + girq->num_parents =3D 1; + girq->parents =3D devm_kcalloc(dev, girq->num_parents, + sizeof(*girq->parents), + GFP_KERNEL); + if (!girq->parents) + return -ENOMEM; + girq->default_type =3D IRQ_TYPE_NONE; + girq->handler =3D handle_level_irq; + girq->parents[0] =3D ab_parent_irq; + girq->first =3D irq_base; + + return 0; +} + +static int ep93xx_gpio_add_f_irq_chip(struct platform_device *pdev, + struct gpio_irq_chip *girq, + unsigned int irq_base) +{ + int gpio_irq; + int i; + struct device *dev =3D &pdev->dev; + + /* + * FIXME: convert this to use hierarchical IRQ support! + * this requires fixing the root irqchip to be hierarchical. + */ + girq->parent_handler =3D ep93xx_gpio_f_irq_handler; + girq->num_parents =3D 8; + girq->parents =3D devm_kcalloc(dev, girq->num_parents, + sizeof(*girq->parents), + GFP_KERNEL); + if (!girq->parents) + return -ENOMEM; + /* Pick resources 1..8 for these IRQs */ + for (i =3D 0; i < ARRAY_SIZE(girq->parents); i++) { + girq->parents[i] =3D platform_get_irq(pdev, i + 1); + gpio_irq =3D irq_base + i; + irq_set_chip_data(gpio_irq, &epg->gc[5]); + irq_set_chip_and_handler(gpio_irq, + &ep93xx_gpio_irq_chip, + handle_level_irq); + irq_clear_status_flags(gpio_irq, IRQ_NOREQUEST); + } + girq->default_type =3D IRQ_TYPE_NONE; + girq->handler =3D handle_level_irq; + girq->first =3D irq_base; + + return 0; +} + static int ep93xx_gpio_add_bank(struct gpio_chip *gc, struct platform_device *pdev, struct ep93xx_gpio *epg, @@ -380,50 +438,16 @@ static int ep93xx_gpio_add_bank(struct gpio_chip *gc, } =20 if (bank->has_irq) { - int ab_parent_irq =3D platform_get_irq(pdev, 0); - - girq->parent_handler =3D ep93xx_gpio_ab_irq_handler; - girq->num_parents =3D 1; - girq->parents =3D devm_kcalloc(dev, girq->num_parents, - sizeof(*girq->parents), - GFP_KERNEL); - if (!girq->parents) - return -ENOMEM; - girq->default_type =3D IRQ_TYPE_NONE; - girq->handler =3D handle_level_irq; - girq->parents[0] =3D ab_parent_irq; - girq->first =3D bank->irq_base; + err =3D ep93xx_gpio_add_ab_irq_chip(pdev, girq, bank->irq_base); + if (err) + return err; } =20 /* Only bank F has especially funky IRQ handling */ if (bank->has_hierarchical_irq) { - int gpio_irq; - int i; - - /* - * FIXME: convert this to use hierarchical IRQ support! - * this requires fixing the root irqchip to be hierarchical. - */ - girq->parent_handler =3D ep93xx_gpio_f_irq_handler; - girq->num_parents =3D 8; - girq->parents =3D devm_kcalloc(dev, girq->num_parents, - sizeof(*girq->parents), - GFP_KERNEL); - if (!girq->parents) - return -ENOMEM; - /* Pick resources 1..8 for these IRQs */ - for (i =3D 0; i < ARRAY_SIZE(girq->parents); i++) { - girq->parents[i] =3D platform_get_irq(pdev, i + 1); - gpio_irq =3D EP93XX_GPIO_F_IRQ_BASE + i; - irq_set_chip_data(gpio_irq, &epg->gc[5]); - irq_set_chip_and_handler(gpio_irq, - &ep93xx_gpio_irq_chip, - handle_level_irq); - irq_clear_status_flags(gpio_irq, IRQ_NOREQUEST); - } - girq->default_type =3D IRQ_TYPE_NONE; - girq->handler =3D handle_level_irq; - girq->first =3D EP93XX_GPIO_F_IRQ_BASE; + err =3D ep93xx_gpio_add_f_irq_chip(pdev, girq, EP93XX_GPIO_F_IRQ_BASE); + if (err) + return err; } =20 return devm_gpiochip_add_data(dev, gc, epg); --=20 2.29.2 From nobody Mon Dec 15 03:20:38 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1611744579; cv=none; d=zohomail.com; s=zohoarc; b=WLS+p5XYfoqpgvGnqSfn7Kr10/GyfbcWJAwTNCiI0VqxOBl35qbRhXWllgIyLO9zJE4zXAuzVN7S0KNINJ0XUoIxdhJTjTL0TiYI5BuQjT7XzqPkJxfeAWq2iQChS2+PLWH4kMUZvvlO5c+VLgulqpALfU77ELlwHjxkOPbrHxY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1611744579; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Subject:To; bh=NksoZNcKKUE3260NNAYDG2vnGMSmlMXoncP8yw6Q+4k=; b=aG05tu2FeqouW7BQ1MNvuuRrIOaAKeLLDjy9m922dL63OUIr99BPuEmDYbtIPI9GsqLkcX/RTBY52IbRTECQXUILi9+UGATeI+0FohWFWMSTC0Jft0G1KDBVMUMO+Cp+nHAqkdSvDVygpX+rl7nDik9/wq+HevzBQqZIBxbIry8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1611744579138911.3349719845969; Wed, 27 Jan 2021 02:49:39 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236249AbhA0KtA (ORCPT ); Wed, 27 Jan 2021 05:49:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53166 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236021AbhA0KrR (ORCPT ); Wed, 27 Jan 2021 05:47:17 -0500 Received: from forward106j.mail.yandex.net (forward106j.mail.yandex.net [IPv6:2a02:6b8:0:801:2::109]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 83E4FC061756; Wed, 27 Jan 2021 02:46:36 -0800 (PST) Received: from iva3-d53c26eb10e1.qloud-c.yandex.net (iva3-d53c26eb10e1.qloud-c.yandex.net [IPv6:2a02:6b8:c0c:4987:0:640:d53c:26eb]) by forward106j.mail.yandex.net (Yandex) with ESMTP id 22ADB11A051F; Wed, 27 Jan 2021 13:46:35 +0300 (MSK) Received: from iva6-2d18925256a6.qloud-c.yandex.net (iva6-2d18925256a6.qloud-c.yandex.net [2a02:6b8:c0c:7594:0:640:2d18:9252]) by iva3-d53c26eb10e1.qloud-c.yandex.net (mxback/Yandex) with ESMTP id DdaifY9g5w-kYIecDBJ; Wed, 27 Jan 2021 13:46:35 +0300 Received: by iva6-2d18925256a6.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id AUuDuROonk-kYm8IP5v; Wed, 27 Jan 2021 13:46:34 +0300 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maquefel.me; s=mail; t=1611744395; bh=NksoZNcKKUE3260NNAYDG2vnGMSmlMXoncP8yw6Q+4k=; h=In-Reply-To:References:Date:Subject:To:From:Message-Id:Cc; b=f03dM9INCzyTBRyAs70VmhKbiyhFnGXWOefQM85LQWFjt1nZmDlVUuG2wrMgvlozT pvbBSXku/+g6kdY6Ph+qlcUkVasAvfyBAyHsTO+FxqvtFoeCSVXJeqsqfEkMl1sJy0 Fa9h/8pRlsW07rGgX/BT5bJVc8HJM0VGeHQSqsWw= Authentication-Results: iva3-d53c26eb10e1.qloud-c.yandex.net; dkim=pass header.i=@maquefel.me From: Nikita Shubin Cc: Andy Shevchenko , Nikita Shubin , Linus Walleij , Bartosz Golaszewski , Alexander Sverdlin , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 8/9] gpio: ep93xx: refactor base IRQ number Date: Wed, 27 Jan 2021 13:46:16 +0300 Message-Id: <20210127104617.1173-9-nikita.shubin@maquefel.me> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210127104617.1173-1-nikita.shubin@maquefel.me> References: <20201228150052.2633-1-nikita.shubin@maquefel.me> <20210127104617.1173-1-nikita.shubin@maquefel.me> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" - use predefined constants instead of plain numbers - use provided bank IRQ number instead of defined constant for port F Signed-off-by: Nikita Shubin --- drivers/gpio/gpio-ep93xx.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/gpio/gpio-ep93xx.c b/drivers/gpio/gpio-ep93xx.c index b212c007240e..2aee13b5067d 100644 --- a/drivers/gpio/gpio-ep93xx.c +++ b/drivers/gpio/gpio-ep93xx.c @@ -28,6 +28,8 @@ /* Maximum value for irq capable line identifiers */ #define EP93XX_GPIO_LINE_MAX_IRQ 23 =20 +#define EP93XX_GPIO_A_IRQ_BASE 64 +#define EP93XX_GPIO_B_IRQ_BASE 72 /* * Static mapping of GPIO bank F IRQS: * F0..F7 (16..24) to irq 80..87. @@ -311,14 +313,14 @@ struct ep93xx_gpio_bank { =20 static struct ep93xx_gpio_bank ep93xx_gpio_banks[] =3D { /* Bank A has 8 IRQs */ - EP93XX_GPIO_BANK("A", 0x00, 0x10, 0, true, false, 64), + EP93XX_GPIO_BANK("A", 0x00, 0x10, 0, true, false, EP93XX_GPIO_A_IRQ_BASE), /* Bank B has 8 IRQs */ - EP93XX_GPIO_BANK("B", 0x04, 0x14, 8, true, false, 72), + EP93XX_GPIO_BANK("B", 0x04, 0x14, 8, true, false, EP93XX_GPIO_B_IRQ_BASE), EP93XX_GPIO_BANK("C", 0x08, 0x18, 40, false, false, 0), EP93XX_GPIO_BANK("D", 0x0c, 0x1c, 24, false, false, 0), EP93XX_GPIO_BANK("E", 0x20, 0x24, 32, false, false, 0), /* Bank F has 8 IRQs */ - EP93XX_GPIO_BANK("F", 0x30, 0x34, 16, false, true, 0), + EP93XX_GPIO_BANK("F", 0x30, 0x34, 16, false, true, EP93XX_GPIO_F_IRQ_BASE= ), EP93XX_GPIO_BANK("G", 0x38, 0x3c, 48, false, false, 0), EP93XX_GPIO_BANK("H", 0x40, 0x44, 56, false, false, 0), }; @@ -445,7 +447,7 @@ static int ep93xx_gpio_add_bank(struct gpio_chip *gc, =20 /* Only bank F has especially funky IRQ handling */ if (bank->has_hierarchical_irq) { - err =3D ep93xx_gpio_add_f_irq_chip(pdev, girq, EP93XX_GPIO_F_IRQ_BASE); + err =3D ep93xx_gpio_add_f_irq_chip(pdev, girq, bank->irq_base); if (err) return err; } --=20 2.29.2 From nobody Mon Dec 15 03:20:38 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1611744786; cv=none; d=zohomail.com; s=zohoarc; b=l+97Tg7XcPVNwXN9azx9dg3yr6qxIxJ38z0lDTiQk2dJ0EP4sNURzSO/TdN+bRCGpafLwEFnVWhO/Y3F2SUxTX/DLcrCmN0ddlp1nDQLpna9+w49QxmCMDb6IwUVD20fB59remNa9Fe5qDLGKR37CFz1JrUrOJFznt5qm8zm+k4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1611744786; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Subject:To; bh=FiicsN/zzDBdhkm0oMT0jjcfCfrDa8oBEJ8mo65rn54=; b=IKq26Mef1eQgKsOFlnzuzd/xH/fJ+c/Z7GvYrA7T8DBJSPglFzLPB9NGlt/34TGnTG1QV41aZckhYR8c8wzv/P1t683re3hTbvYfqaEEXAqRvWvwxSt4mppQYFUO27fngz47xgkXnRrySA5D8KzBHXDgRnjOfRJzvB6bZmaXfmY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 161174478691981.79442321460135; Wed, 27 Jan 2021 02:53:06 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235628AbhA0Kvo (ORCPT ); Wed, 27 Jan 2021 05:51:44 -0500 Received: from forward106p.mail.yandex.net ([77.88.28.109]:41015 "EHLO forward106p.mail.yandex.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236122AbhA0KsM (ORCPT ); Wed, 27 Jan 2021 05:48:12 -0500 Received: from iva1-cda173853631.qloud-c.yandex.net (iva1-cda173853631.qloud-c.yandex.net [IPv6:2a02:6b8:c0c:9295:0:640:cda1:7385]) by forward106p.mail.yandex.net (Yandex) with ESMTP id F3C851C80257; Wed, 27 Jan 2021 13:46:35 +0300 (MSK) Received: from iva6-2d18925256a6.qloud-c.yandex.net (iva6-2d18925256a6.qloud-c.yandex.net [2a02:6b8:c0c:7594:0:640:2d18:9252]) by iva1-cda173853631.qloud-c.yandex.net (mxback/Yandex) with ESMTP id ZqjnhxIYpW-kZGKfvVS; Wed, 27 Jan 2021 13:46:35 +0300 Received: by iva6-2d18925256a6.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id AUuDuROonk-kZm8M6nb; Wed, 27 Jan 2021 13:46:35 +0300 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maquefel.me; s=mail; t=1611744395; bh=FiicsN/zzDBdhkm0oMT0jjcfCfrDa8oBEJ8mo65rn54=; h=In-Reply-To:References:Date:Subject:To:From:Message-Id:Cc; b=oem9tIOm5Rh94ppFX1Bl+bD1PSNA23Slnz03HWbAdj4auRPeFXvoVNlibVyR7G/jg 50Ts2d/Hg0yv9iOS6qb9ooHvT6P3cgyPSy8bHZ0HMgCDZyzbpfJe5ePbOyYLZduB69 NJdNqD+By6/0O7pfV7PdmGFG9ZUVFgowgNeYce0Y= Authentication-Results: iva1-cda173853631.qloud-c.yandex.net; dkim=pass header.i=@maquefel.me From: Nikita Shubin Cc: Andy Shevchenko , Nikita Shubin , Linus Walleij , Bartosz Golaszewski , Alexander Sverdlin , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 9/9] gpio: ep93xx: replace bools with idx for IRQ ports Date: Wed, 27 Jan 2021 13:46:17 +0300 Message-Id: <20210127104617.1173-10-nikita.shubin@maquefel.me> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210127104617.1173-1-nikita.shubin@maquefel.me> References: <20201228150052.2633-1-nikita.shubin@maquefel.me> <20210127104617.1173-1-nikita.shubin@maquefel.me> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Replace boolean values used for determining if gpiochip is IRQ capable or not with index. Signed-off-by: Nikita Shubin --- drivers/gpio/gpio-ep93xx.c | 47 ++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/drivers/gpio/gpio-ep93xx.c b/drivers/gpio/gpio-ep93xx.c index 2aee13b5067d..f75a33b79504 100644 --- a/drivers/gpio/gpio-ep93xx.c +++ b/drivers/gpio/gpio-ep93xx.c @@ -44,6 +44,8 @@ struct ep93xx_gpio { struct irq_chip ic[EP93XX_GPIO_IRQ_CHIPS_NUM]; }; =20 +#define EP93XX_GPIO_A_PORT_INDEX 0 +#define EP93XX_GPIO_B_PORT_INDEX 1 /* * F Port index in GPIOCHIP'S array is 5 * but we use index 2 for stored values and offsets @@ -291,38 +293,36 @@ static struct irq_chip ep93xx_gpio_irq_chip =3D { * gpiolib interface for EP93xx on-chip GPIOs *************************************************************************/ struct ep93xx_gpio_bank { + u8 idx; const char *label; int data; int dir; int base; - bool has_irq; - bool has_hierarchical_irq; unsigned int irq_base; }; =20 -#define EP93XX_GPIO_BANK(_label, _data, _dir, _base, _has_irq, _has_hier, = _irq_base) \ +#define EP93XX_GPIO_BANK(_index, _label, _data, _dir, _base, _irq_base) \ { \ + .idx =3D _index, \ .label =3D _label, \ .data =3D _data, \ .dir =3D _dir, \ .base =3D _base, \ - .has_irq =3D _has_irq, \ - .has_hierarchical_irq =3D _has_hier, \ .irq_base =3D _irq_base, \ } =20 static struct ep93xx_gpio_bank ep93xx_gpio_banks[] =3D { /* Bank A has 8 IRQs */ - EP93XX_GPIO_BANK("A", 0x00, 0x10, 0, true, false, EP93XX_GPIO_A_IRQ_BASE), + EP93XX_GPIO_BANK(0, "A", 0x00, 0x10, 0, EP93XX_GPIO_A_IRQ_BASE), /* Bank B has 8 IRQs */ - EP93XX_GPIO_BANK("B", 0x04, 0x14, 8, true, false, EP93XX_GPIO_B_IRQ_BASE), - EP93XX_GPIO_BANK("C", 0x08, 0x18, 40, false, false, 0), - EP93XX_GPIO_BANK("D", 0x0c, 0x1c, 24, false, false, 0), - EP93XX_GPIO_BANK("E", 0x20, 0x24, 32, false, false, 0), + EP93XX_GPIO_BANK(1, "B", 0x04, 0x14, 8, EP93XX_GPIO_B_IRQ_BASE), + EP93XX_GPIO_BANK(2, "C", 0x08, 0x18, 40, 0), + EP93XX_GPIO_BANK(3, "D", 0x0c, 0x1c, 24, 0), + EP93XX_GPIO_BANK(4, "E", 0x20, 0x24, 32, 0), /* Bank F has 8 IRQs */ - EP93XX_GPIO_BANK("F", 0x30, 0x34, 16, false, true, EP93XX_GPIO_F_IRQ_BASE= ), - EP93XX_GPIO_BANK("G", 0x38, 0x3c, 48, false, false, 0), - EP93XX_GPIO_BANK("H", 0x40, 0x44, 56, false, false, 0), + EP93XX_GPIO_BANK(5, "F", 0x30, 0x34, 16, EP93XX_GPIO_F_IRQ_BASE), + EP93XX_GPIO_BANK(6, "G", 0x38, 0x3c, 48, 0), + EP93XX_GPIO_BANK(7, "H", 0x40, 0x44, 56, 0), }; =20 static int ep93xx_gpio_set_config(struct gpio_chip *gc, unsigned offset, @@ -356,10 +356,11 @@ static void ep93xx_init_irq_chips(struct ep93xx_gpio = *epg) } =20 static int ep93xx_gpio_add_ab_irq_chip(struct platform_device *pdev, - struct gpio_irq_chip *girq, + struct gpio_chip *gc, unsigned int irq_base) { struct device *dev =3D &pdev->dev; + struct gpio_irq_chip *girq =3D &gc->irq; int ab_parent_irq =3D platform_get_irq(pdev, 0); =20 girq->parent_handler =3D ep93xx_gpio_ab_irq_handler; @@ -378,12 +379,13 @@ static int ep93xx_gpio_add_ab_irq_chip(struct platfor= m_device *pdev, } =20 static int ep93xx_gpio_add_f_irq_chip(struct platform_device *pdev, - struct gpio_irq_chip *girq, + struct gpio_chip *gc, unsigned int irq_base) { int gpio_irq; int i; struct device *dev =3D &pdev->dev; + struct gpio_irq_chip *girq =3D &gc->irq; =20 /* * FIXME: convert this to use hierarchical IRQ support! @@ -397,10 +399,10 @@ static int ep93xx_gpio_add_f_irq_chip(struct platform= _device *pdev, if (!girq->parents) return -ENOMEM; /* Pick resources 1..8 for these IRQs */ - for (i =3D 0; i < ARRAY_SIZE(girq->parents); i++) { + for (i =3D 0; i < girq->num_parents; i++) { girq->parents[i] =3D platform_get_irq(pdev, i + 1); gpio_irq =3D irq_base + i; - irq_set_chip_data(gpio_irq, &epg->gc[5]); + irq_set_chip_data(gpio_irq, gc); irq_set_chip_and_handler(gpio_irq, &ep93xx_gpio_irq_chip, handle_level_irq); @@ -433,21 +435,22 @@ static int ep93xx_gpio_add_bank(struct gpio_chip *gc, gc->base =3D bank->base; =20 girq =3D &gc->irq; - if (bank->has_irq || bank->has_hierarchical_irq) { + if (bank->irq_base !=3D 0) { gc->set_config =3D ep93xx_gpio_set_config; port =3D ep93xx_gpio_port(epg, gc); girq->chip =3D &epg->ic[port]; } =20 - if (bank->has_irq) { - err =3D ep93xx_gpio_add_ab_irq_chip(pdev, girq, bank->irq_base); + if (bank->idx =3D=3D EP93XX_GPIO_A_PORT_INDEX || + bank->idx =3D=3D EP93XX_GPIO_B_PORT_INDEX) { + err =3D ep93xx_gpio_add_ab_irq_chip(pdev, gc, bank->irq_base); if (err) return err; } =20 /* Only bank F has especially funky IRQ handling */ - if (bank->has_hierarchical_irq) { - err =3D ep93xx_gpio_add_f_irq_chip(pdev, girq, bank->irq_base); + if (bank->idx =3D=3D EP93XX_GPIO_F_PORT_INDEX) { + err =3D ep93xx_gpio_add_f_irq_chip(pdev, gc, bank->irq_base); if (err) return err; } --=20 2.29.2