diff mbox series

[v2,net-next,2/2] nfc: s3fwrn5: Remove hard coded interrupt trigger type from the i2c module

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

Commit Message

Bongsu Jeon Dec. 8, 2020, 2:10 p.m. UTC
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(-)

Comments

Krzysztof Kozlowski Dec. 10, 2020, 8:18 a.m. UTC | #1
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

>
diff mbox series

Patch

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;
+
 	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);