From: Quanyang Wang <quanyang.w...@windriver.com> When an gpio pin is requested as "eirq" in dts file as following:
pmic { ... interrupt-parent = <&gpio>; interrupts = <35 IRQ_TYPE_EDGE_FALLING>; ... }; the direction of this pin should be set as "input" by calling siul2_gpio_dir_in. Unfortunately, the function siul2_gpio_dir_in is using mutex_lock/unlock(), so it can't be called in irq_unmask or irq_set_type. The irq_chip::irq_request_resources callback isn't running under the atomic context, it's safe to call siul2_gpio_dir_in. Signed-off-by: Quanyang Wang <quanyang.w...@windriver.com> --- Hi Bruce, Would you please help merge this patch to the branches: v6.1/standard/preempt-rt/nxp-sdk-5.15/nxp-s32g v6.1/standard/nxp-sdk-5.15/nxp-s32g Thanks, Quanyang --- drivers/gpio/gpio-siul2-s32cc.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-siul2-s32cc.c b/drivers/gpio/gpio-siul2-s32cc.c index aed63d3a0fdbf..041c182374297 100644 --- a/drivers/gpio/gpio-siul2-s32cc.c +++ b/drivers/gpio/gpio-siul2-s32cc.c @@ -401,6 +401,22 @@ static int siul2_gpio_irq_set_type(struct irq_data *d, unsigned int type) return ret; } +static int suil2_gpio_irq_reqres(struct irq_data *d) +{ + struct gpio_chip *gc = irq_data_get_irq_chip_data(d); + irq_hw_number_t gpio = irqd_to_hwirq(d); + int ret; + + ret = siul2_gpio_dir_in(gc, gpio); + if (ret) { + dev_err(gc->parent, "Failed to configure GPIO %lu as input\n", + gpio); + return ret; + } + + return gpiochip_reqres_irq(gc, d->hwirq); +} + static irqreturn_t siul2_gpio_irq_handler(int irq, void *data) { struct siul2_gpio_dev *gpio_dev = data; @@ -1116,8 +1132,9 @@ static const struct irq_chip siul2_irqchip = { .irq_mask = siul2_gpio_irq_mask, .irq_unmask = siul2_gpio_irq_unmask, .irq_set_type = siul2_gpio_irq_set_type, + .irq_request_resources = suil2_gpio_irq_reqres, + .irq_release_resources = gpiochip_irq_relres, .flags = IRQCHIP_IMMUTABLE, - GPIOCHIP_IRQ_RESOURCE_HELPERS, }; static int siul2_gpio_probe(struct platform_device *pdev) -- 2.36.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#14022): https://lists.yoctoproject.org/g/linux-yocto/message/14022 Mute This Topic: https://lists.yoctoproject.org/mt/106609417/21656 Group Owner: linux-yocto+ow...@lists.yoctoproject.org Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-