[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <91d182fe-179b-4fad-9d67-3b62230dcb86@lunn.ch>
Date: Thu, 22 Feb 2024 16:07:53 +0100
From: Andrew Lunn <andrew@...n.ch>
To: Jiawen Wu <jiawenwu@...stnetic.com>
Cc: davem@...emloft.net, edumazet@...gle.com, kuba@...nel.org,
pabeni@...hat.com, maciej.fijalkowski@...el.com,
netdev@...r.kernel.org, mengyuanlou@...-swift.com
Subject: Re: [PATCH] net: txgbe: fix GPIO interrupt blocking
> There are flags passed in sfp.c:
>
> err = devm_request_threaded_irq(sfp->dev, sfp->gpio_irq[i],
> NULL, sfp_irq,
> IRQF_ONESHOT |
> IRQF_TRIGGER_RISING |
> IRQF_TRIGGER_FALLING,
> sfp_irq_name, sfp);
Does you hardware support edges for GPIOs? And by that, i mean the
whole chain of interrupt controllers? So your GPIO controller notices
an edge in the GPIO. It then passed a notification to the interrupt
controller within the GPIO controller. It then sets a bit to indicate
an interrupt has happened. At that point you have a level
interrupt. That bit causes a level interrupt to the interrupt
controller above in the chain. And it needs to be level all way up.
Andrew
Powered by blists - more mailing lists