* Re: [PATCH RFC net 1/2] nfc: nxp-nci: Fix i2c read on ThinkPad hardware
[not found] ` <20230607170009.9458-2-giorgi.marco.96@disroot.org>
@ 2023-06-07 17:45 ` Krzysztof Kozlowski
[not found] ` <20230611181707.1227de20@T590-Marco>
0 siblings, 1 reply; 3+ messages in thread
From: Krzysztof Kozlowski @ 2023-06-07 17:45 UTC (permalink / raw
To: Marco Giorgi, netdev; +Cc: u.kleine-koenig, davem, michael, kuba, linux-kernel
On 07/06/2023 19:00, Marco Giorgi wrote:
> Add the IRQ GPIO configuration.
Why? Please include reasons in commit msg. What you are doing is quite
easy to see.
>
> Signed-off-by: Marco Giorgi <giorgi.marco.96@disroot.org>
> ---
> drivers/nfc/nxp-nci/i2c.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/drivers/nfc/nxp-nci/i2c.c b/drivers/nfc/nxp-nci/i2c.c
> index d4c299be7949..4ba26a958258 100644
> --- a/drivers/nfc/nxp-nci/i2c.c
> +++ b/drivers/nfc/nxp-nci/i2c.c
> @@ -35,6 +35,7 @@ struct nxp_nci_i2c_phy {
>
> struct gpio_desc *gpiod_en;
> struct gpio_desc *gpiod_fw;
> + struct gpio_desc *gpiod_irq;
>
> int hard_fault; /*
> * < 0 if hardware error occurred (e.g. i2c err)
> @@ -254,10 +255,12 @@ static irqreturn_t nxp_nci_i2c_irq_thread_fn(int irq, void *phy_id)
> return IRQ_NONE;
> }
>
> +static const struct acpi_gpio_params irq_gpios = { 0, 0, false };
> static const struct acpi_gpio_params firmware_gpios = { 1, 0, false };
> static const struct acpi_gpio_params enable_gpios = { 2, 0, false };
>
> static const struct acpi_gpio_mapping acpi_nxp_nci_gpios[] = {
> + { "irq-gpios", &irq_gpios, 1 },
> { "enable-gpios", &enable_gpios, 1 },
> { "firmware-gpios", &firmware_gpios, 1 },
> { }
> @@ -286,6 +289,12 @@ static int nxp_nci_i2c_probe(struct i2c_client *client)
> if (r)
> dev_dbg(dev, "Unable to add GPIO mapping table\n");
>
> + phy->gpiod_irq = devm_gpiod_get(dev, "irq", GPIOD_IN);
Bindings do not allow it. Please update bindings... or not, because they
clearly state that interrupts are already there.
You need to explain what is this.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH RFC net 2/2] nfc: nxp-nci: Fix i2c read on ThinkPad hardware
[not found] ` <20230607170009.9458-3-giorgi.marco.96@disroot.org>
@ 2023-06-07 17:46 ` Krzysztof Kozlowski
0 siblings, 0 replies; 3+ messages in thread
From: Krzysztof Kozlowski @ 2023-06-07 17:46 UTC (permalink / raw
To: Marco Giorgi, netdev; +Cc: u.kleine-koenig, davem, michael, kuba, linux-kernel
On 07/06/2023 19:00, Marco Giorgi wrote:
> Read IRQ GPIO value and exit from IRQ if the device is not ready.
Why? What problem are you solving?
Why IRQ GPIO - whatever it is - means device is not ready for I2C transfer?
>
> Signed-off-by: Marco Giorgi <giorgi.marco.96@disroot.org>
> ---
> drivers/nfc/nxp-nci/i2c.c | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH RFC net 1/2] nfc: nxp-nci: Fix i2c read on ThinkPad hardware
[not found] ` <20230611181707.1227de20@T590-Marco>
@ 2023-06-12 7:15 ` Krzysztof Kozlowski
0 siblings, 0 replies; 3+ messages in thread
From: Krzysztof Kozlowski @ 2023-06-12 7:15 UTC (permalink / raw
To: Marco Giorgi; +Cc: netdev, u.kleine-koenig, davem, michael, kuba, linux-kernel
On 11/06/2023 18:25, Marco Giorgi wrote:
> Hi Krzysztof,
>
> On Wed, 7 Jun 2023 19:45:25 +0200
> Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:
>
>> On 07/06/2023 19:00, Marco Giorgi wrote:
>>> Add the IRQ GPIO configuration.
>>
>> Why? Please include reasons in commit msg. What you are doing is quite
>> easy to see.
>
> This is my fault, I only put the patch reason in patch [0/2].
>
> Basically, I found out that the mainline driver is not working on my
> machine (Lenovo ThinkPad T590).
>
> I suspect that the I2C read IRQ is somehow misconfigured, and it
> triggers even when the NFC chip is not ready to be read, resulting in
> an error.
Isn't this then a problem of your I2C controller?
>
> In this patch [1/2], I'm adding the "IRQ" GPIO to the driver so its
> value can be directly read from the IRQ thread.
What is IRQ GPIO? If this is interrupt line, you are not handling it
correctly. This is quite surprising code.
>
> In patch [2/2], I'm safely returning from the IRQ thread when the IRQ
> GPIO is not active.
>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-06-12 7:34 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20230607170009.9458-1-giorgi.marco.96@disroot.org>
[not found] ` <20230607170009.9458-2-giorgi.marco.96@disroot.org>
2023-06-07 17:45 ` [PATCH RFC net 1/2] nfc: nxp-nci: Fix i2c read on ThinkPad hardware Krzysztof Kozlowski
[not found] ` <20230611181707.1227de20@T590-Marco>
2023-06-12 7:15 ` Krzysztof Kozlowski
[not found] ` <20230607170009.9458-3-giorgi.marco.96@disroot.org>
2023-06-07 17:46 ` [PATCH RFC net 2/2] " Krzysztof Kozlowski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).