Input: atmel_mxt_ts - Make CHG line high after the interrupts are enabled
Subsystems (3)
PATCH 2/2 Input: atmel_mxt_ts - Make CHG line high after the interrupts are enabled
Make the CHG line (interrupt line) go high after the interrupts have been enabled to make sure we don't miss the falling edge.
--- drivers/input/touchscreen/atmel_mxt_ts.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)
drivers/input/touchscreen/atmel_mxt_ts.c +4 -4
@@ -804,10 +804,6 @@ static int mxt_initialize(struct mxt_data *data)if (error)return error; - error =mxt_make_highchg (data); -if (error) -return error; -mxt_handle_pdata (data);/* Backup to memory */
@@ -1098,6 +1094,10 @@ static int __devinit mxt_probe(struct i2c_client *client,if (error) goto err_unregister_device; + error =mxt_make_highchg (data); +if (error) + goto err_unregister_device; +return 0 ; err_unregister_device:
Signature · 1 line
1.7.0.4
Hi, Iiro.
2011/3/17 Iiro Valkonen <[email protected]>:
Quoted 23 lines
Make the CHG line (interrupt line) go high after the interrupts have been enabled to make sure we don't miss the falling edge.
Signed-off-by Iiro Valkonen <[email protected]>---
drivers/input/touchscreen/atmel_mxt_ts.c | 8 ++++----1 files changed, 4 insertions(+), 4 deletions(-)drivers/input/touchscreen/atmel_mxt_ts.c +0
-4@@ -804,10 +804,6 @@ static int mxt_initialize(struct mxt_data *data) if (error) return error; - error = mxt_make_highchg(data); - if (error) - return error; - mxt_handle_pdata(data); /* Backup to memory */
drivers/input/touchscreen/atmel_mxt_ts.c static int __devinit mxt_probe(struct i2c_client *client, · line 1100
Quoted 7 lines
drivers/input/touchscreen/atmel_mxt_ts.c +4
-0@@ -1098,6 +1094,10 @@ static int __devinit mxt_probe(struct i2c_client *client, if (error) goto err_unregister_device; + error = mxt_make_highchg(data); + if (error) + goto err_unregister_device; +
You are missing one error handling about sysfs_create_group() and please consider firmware update flow also.
Thanks.
Quoted 10 lines
drivers/input/touchscreen/atmel_mxt_ts.c +0
-0return 0;err_unregister_device:
--
1.7.0.4
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Signature · 5 lines
- Joonyoung Shim -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH v2 2/2 Input: atmel_mxt_ts - Make CHG line high after the interrupts are enabled
This is version 2 of the patch, where sysfs group is correctly removed in case of error, and the firmware update is also considered (mxt_make_highchg is also called from mxt_initialize).
Original description:
Make the CHG line (interrupt line) go high after the interrupts have been enabled to make sure we don't miss the falling edge.
--- drivers/input/touchscreen/atmel_mxt_ts.c | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-)
drivers/input/touchscreen/atmel_mxt_ts.c +10 -4
@@ -804,10 +804,6 @@ static int mxt_initialize(struct mxt_data *data)if (error)return error; - error =mxt_make_highchg (data); -if (error) -return error; -mxt_handle_pdata (data);/* Backup to memory */
@@ -832,6 +828,10 @@ static int mxt_initialize(struct mxt_data *data)return error; info->matrix_ysize = val; + error =mxt_make_highchg (data); +if (error) +return error; + dev_info(&client->dev, "Family ID: %d Variant ID: %d Version: %d Build: %d\n", info->family_id, info->variant_id, info->version,
@@ -1098,8 +1098,14 @@ static int __devinit mxt_probe(struct i2c_client *client,if (error) goto err_unregister_device; + error =mxt_make_highchg (data); +if (error) + goto err_remove_sysfs_group; +return 0 ; +err_remove_sysfs_group: +sysfs_remove_group (&client->dev.kobj, &mxt_attr_group); err_unregister_device:input_unregister_device (input_dev); input_dev =NULL ;
Signature · 1 line
1.7.0.4
Hi,
2011/4/1 Iiro Valkonen <[email protected]>:
Quoted 27 lines
This is version 2 of the patch, where sysfs group is correctly removed in case of error, and the firmware update is also considered (
mxt_make_highchgis also called frommxt_initialize).Original description:
Make the CHG line (interrupt line) go high after the interrupts have been enabled to make sure we don't miss the falling edge.
Signed-off-by Iiro Valkonen <[email protected]>---
drivers/input/touchscreen/atmel_mxt_ts.c | 14 ++++++++++----1 files changed, 10 insertions(+), 4 deletions(-)drivers/input/touchscreen/atmel_mxt_ts.c +0
-4@@ -804,10 +804,6 @@ static int mxt_initialize(struct mxt_data *data) if (error) return error; - error = mxt_make_highchg(data); - if (error) - return error; - mxt_handle_pdata(data); /* Backup to memory */
drivers/input/touchscreen/atmel_mxt_ts.c static int mxt_initialize(struct mxt_data *data) · line 834
Quoted 7 lines
drivers/input/touchscreen/atmel_mxt_ts.c +4
-0@@ -832,6 +828,10 @@ static int mxt_initialize(struct mxt_data *data) return error; info->matrix_ysize = val; + error = mxt_make_highchg(data); + if (error) + return error; +
This is unnecessary patch. If you add this for firmware update part, how about move to mxt_update_fw_store()?
drivers/input/touchscreen/atmel_mxt_ts.c static int __devinit mxt_probe(struct i2c_client *client, · line 1104
Quoted 11 lines
drivers/input/touchscreen/atmel_mxt_ts.c +4
-0dev_info(&client->dev, "Family ID: %d Variant ID: %d Version: %d Build: %d\n", info->family_id, info->variant_id, info->version,@@ -1098,8 +1098,14 @@ static int __devinit mxt_probe(struct i2c_client *client, if (error) goto err_unregister_device; + error = mxt_make_highchg(data); + if (error) + goto err_remove_sysfs_group; +
This is ok, but how about move this to the below request_threaded_irq() instead of adding error handling?
Quoted 10 lines
drivers/input/touchscreen/atmel_mxt_ts.c +2
-0return 0; +err_remove_sysfs_group: + sysfs_remove_group(&client->dev.kobj, &mxt_attr_group);err_unregister_device:
input_unregister_device(input_dev);
input_dev = NULL;
--
1.7.0.4
Thanks.
Signature · 5 lines
- Joonyoung Shim -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Hello,
Quoted 33 lines · Joonyoung Shim
Hi,
2011/4/1 Iiro Valkonen <[email protected]>:
Quoted 30 lines
This is version 2 of the patch, where sysfs group is correctly removed in case of error, and the firmware update is also considered (
mxt_make_highchgis also called frommxt_initialize).Original description:
Make the CHG line (interrupt line) go high after the interrupts have been enabled to make sure we don't miss the falling edge.
Signed-off-by Iiro Valkonen <[email protected]>--- drivers/input/touchscreen/atmel_mxt_ts.c | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-)drivers/input/touchscreen/atmel_mxt_ts.c +0
-4@@ -804,10 +804,6 @@ static int mxt_initialize(struct mxt_data *data)if (error)return error; - error =mxt_make_highchg (data); -if (error) -return error; -mxt_handle_pdata (data);/* Backup to memory */ @@ -832,6 +828,10 @@ static int mxt_initialize(struct mxt_data *data)return error; info->matrix_ysize = val;
Quoted 8 lines
drivers/input/touchscreen/atmel_mxt_ts.c static int mxt_initialize(struct mxt_data *data) · line 834
Quoted 4 lines
drivers/input/touchscreen/atmel_mxt_ts.c +4
-0+ error =mxt_make_highchg (data); +if (error) +return error; +This is unnecessary patch. If you add this for firmware update part, how about move to
mxt_update_fw_store()?
Good call.
Quoted 7 lines
Quoted 7 lines
drivers/input/touchscreen/atmel_mxt_ts.c +0
-0dev_info(&client->dev, "Family ID: %d Variant ID: %d Version: %d Build: %d\n", info->family_id, info->variant_id, info->version,@@ -1098,8 +1098,14 @@ static int __devinit mxt_probe(struct i2c_client *client,if (error) goto err_unregister_device;
Quoted 8 lines
drivers/input/touchscreen/atmel_mxt_ts.c static int __devinit mxt_probe(struct i2c_client *client, · line 1104
Quoted 4 lines
drivers/input/touchscreen/atmel_mxt_ts.c +4
-0+ error =mxt_make_highchg (data); +if (error) + goto err_remove_sysfs_group; +This is ok, but how about move this to the below
request_threaded_irq()instead of adding error handling?
Makes sense, will move it.
Thanks for the feedback.
BR,
Signature · 1 line
Iiro
Make the CHG line (interrupt line) go high after the interrupts have been enabled to make sure we don't miss the falling edge.
---
v3: Change the locations where this is done to ensure correct operation at FW update,
and to get rid of some error handling
drivers/input/touchscreen/atmel_mxt_ts.c | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-)
drivers/input/touchscreen/atmel_mxt_ts.c +8 -4
@@ -804,10 +804,6 @@ static int mxt_initialize(struct mxt_data *data)if (error)return error; - error =mxt_make_highchg (data); -if (error) -return error; -mxt_handle_pdata (data);/* Backup to memory */
@@ -981,6 +977,10 @@ static ssize_t mxt_update_fw_store(struct device *dev,enable_irq (data->irq); + error =mxt_make_highchg (data); +if (error) +return error; +return count; }
@@ -1090,6 +1090,10 @@ static int __devinit mxt_probe(struct i2c_client *client, goto err_free_object; } + error =mxt_make_highchg (data); +if (error) + goto err_free_irq; + error =input_register_device (input_dev);if (error) goto err_free_irq;
Signature · 1 line
1.7.0.4
Joonyoung Shim
Acked-by2011/4/8 Iiro Valkonen <[email protected]>:
Quoted 49 lines
Make the CHG line (interrupt line) go high after the interrupts have been enabled to make sure we don't miss the falling edge.
Signed-off-by Iiro Valkonen <[email protected]>---
v3: Change the locations where this is done to ensure correct operation at FW update, and to get rid of some error handlingdrivers/input/touchscreen/atmel_mxt_ts.c | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)drivers/input/touchscreen/atmel_mxt_ts.c +8
-5@@ -804,10 +804,6 @@ static int mxt_initialize(struct mxt_data *data) if (error) return error; - error = mxt_make_highchg(data); - if (error) - return error; - mxt_handle_pdata(data); /* Backup to memory */@@ -981,6 +977,10 @@ static ssize_t mxt_update_fw_store(struct device *dev, enable_irq(data->irq); + error = mxt_make_highchg(data); + if (error) + return error; + return count; }@@ -1090,6 +1090,10 @@ static int __devinit mxt_probe(struct i2c_client *client, goto err_free_object; } + error = mxt_make_highchg(data); + if (error) + goto err_free_irq; + error = input_register_device(input_dev); if (error) goto err_free_irq; --
Quoted 3 lines
1.7.0.4
Thanks.
Signature · 5 lines
- Joonyoung Shim -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html