mbox series

[v2,net-next,0/2] nfc: s3fwrn5: Change I2C interrupt trigger to EDGE_RISING

Message ID 20201208141012.6033-1-bongsu.jeon@samsung.com
Headers show
Series nfc: s3fwrn5: Change I2C interrupt trigger to EDGE_RISING | expand

Message

Bongsu Jeon Dec. 8, 2020, 2:10 p.m. UTC
From: Bongsu Jeon <bongsu.jeon@samsung.com>

For stable Samsung's I2C interrupt handling, I changed the interrupt 
trigger from IRQ_TYPE_LEVEL_HIGH to IRQ_TYPE_EDGE_RISING and removed 
the hard coded interrupt trigger type in the i2c module for the flexible 
control.

1/2 is the changed dt binding for the edge rising trigger.
2/2 is to remove the hard coded interrupt trigger type in the i2c module.

ChangeLog:
 v2:
  2/2
   - remove the hard coded interrupt trigger type.

Bongsu Jeon (2):
  dt-bindings: net: nfc: s3fwrn5: Change I2C interrupt trigger to
    EDGE_RISING
  nfc: s3fwrn5: Remove hard coded interrupt trigger type from the i2c
    module

 .../devicetree/bindings/net/nfc/samsung,s3fwrn5.yaml      | 2 +-
 drivers/nfc/s3fwrn5/i2c.c                                 | 8 +++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

Comments

David Miller Dec. 10, 2020, 12:52 a.m. UTC | #1
From: Bongsu Jeon <bongsu.jeon2@gmail.com>
Date: Tue,  8 Dec 2020 23:10:10 +0900

> From: Bongsu Jeon <bongsu.jeon@samsung.com>
> 
> For stable Samsung's I2C interrupt handling, I changed the interrupt 
> trigger from IRQ_TYPE_LEVEL_HIGH to IRQ_TYPE_EDGE_RISING and removed 
> the hard coded interrupt trigger type in the i2c module for the flexible 
> control.
> 
> 1/2 is the changed dt binding for the edge rising trigger.
> 2/2 is to remove the hard coded interrupt trigger type in the i2c module.
> 
> ChangeLog:
>  v2:
>   2/2
>    - remove the hard coded interrupt trigger type.

Series applied, thanks.
Krzysztof Kozlowski Dec. 10, 2020, 8:18 a.m. UTC | #2
On Tue, Dec 08, 2020 at 11:10:12PM +0900, Bongsu Jeon wrote:
> From: Bongsu Jeon <bongsu.jeon@samsung.com>
> 
> For the flexible control of interrupt trigger type, remove the hard coded
> interrupt trigger type in the i2c module. The trigger type will be loaded
>  from a dts.
> 
> Signed-off-by: Bongsu Jeon <bongsu.jeon@samsung.com>
> ---
>  drivers/nfc/s3fwrn5/i2c.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/nfc/s3fwrn5/i2c.c b/drivers/nfc/s3fwrn5/i2c.c
> index e1bdde105f24..42f1f610ac2c 100644
> --- a/drivers/nfc/s3fwrn5/i2c.c
> +++ b/drivers/nfc/s3fwrn5/i2c.c
> @@ -179,6 +179,8 @@ static int s3fwrn5_i2c_probe(struct i2c_client *client,
>  				  const struct i2c_device_id *id)
>  {
>  	struct s3fwrn5_i2c_phy *phy;
> +	struct irq_data *irq_data;
> +	unsigned long irqflags;
>  	int ret;
>  
>  	phy = devm_kzalloc(&client->dev, sizeof(*phy), GFP_KERNEL);
> @@ -212,8 +214,11 @@ static int s3fwrn5_i2c_probe(struct i2c_client *client,
>  	if (ret < 0)
>  		return ret;
>  
> +	irq_data = irq_get_irq_data(client->irq);
> +	irqflags = irqd_get_trigger_type(irq_data) | IRQF_ONESHOT;

This patch is wrong and should not be applied. David, please give few
days to review the patches. :)

The irqd_get_trigger_type is not necessary.

I'll send follow ups to correct this.

Best regards,
Krzysztof


> +
>  	ret = devm_request_threaded_irq(&client->dev, phy->i2c_dev->irq, NULL,
> -		s3fwrn5_i2c_irq_thread_fn, IRQF_TRIGGER_HIGH | IRQF_ONESHOT,
> +		s3fwrn5_i2c_irq_thread_fn, irqflags,
>  		S3FWRN5_I2C_DRIVER_NAME, phy);
>  	if (ret)
>  		s3fwrn5_remove(phy->common.ndev);
> -- 
> 2.17.1
>