2014-07-30 12:16:38

by Pramod Gurav

[permalink] [raw]
Subject: [PATCH] Input: jornada720_ts: Switch to using Managed resources

This switches the driver to using managed resources to simplify
error handling and to do away with remove function.

Also fixes some indentations by replacing spaces with tabs.

CC: Dmitry Torokhov <[email protected]>
CC: Paul Gortmaker <[email protected]>

Signed-off-by: Pramod Gurav <[email protected]>
---
drivers/input/touchscreen/jornada720_ts.c | 62 ++++++++++-------------------
1 file changed, 20 insertions(+), 42 deletions(-)

diff --git a/drivers/input/touchscreen/jornada720_ts.c b/drivers/input/touchscreen/jornada720_ts.c
index 7324c5c..0c23bba 100644
--- a/drivers/input/touchscreen/jornada720_ts.c
+++ b/drivers/input/touchscreen/jornada720_ts.c
@@ -37,21 +37,21 @@ struct jornada_ts {
static void jornada720_ts_collect_data(struct jornada_ts *jornada_ts)
{

- /* 3 low word X samples */
- jornada_ts->x_data[0] = jornada_ssp_byte(TXDUMMY);
- jornada_ts->x_data[1] = jornada_ssp_byte(TXDUMMY);
- jornada_ts->x_data[2] = jornada_ssp_byte(TXDUMMY);
+ /* 3 low word X samples */
+ jornada_ts->x_data[0] = jornada_ssp_byte(TXDUMMY);
+ jornada_ts->x_data[1] = jornada_ssp_byte(TXDUMMY);
+ jornada_ts->x_data[2] = jornada_ssp_byte(TXDUMMY);

- /* 3 low word Y samples */
- jornada_ts->y_data[0] = jornada_ssp_byte(TXDUMMY);
- jornada_ts->y_data[1] = jornada_ssp_byte(TXDUMMY);
- jornada_ts->y_data[2] = jornada_ssp_byte(TXDUMMY);
+ /* 3 low word Y samples */
+ jornada_ts->y_data[0] = jornada_ssp_byte(TXDUMMY);
+ jornada_ts->y_data[1] = jornada_ssp_byte(TXDUMMY);
+ jornada_ts->y_data[2] = jornada_ssp_byte(TXDUMMY);

- /* combined x samples bits */
- jornada_ts->x_data[3] = jornada_ssp_byte(TXDUMMY);
+ /* combined x samples bits */
+ jornada_ts->x_data[3] = jornada_ssp_byte(TXDUMMY);

- /* combined y samples bits */
- jornada_ts->y_data[3] = jornada_ssp_byte(TXDUMMY);
+ /* combined y samples bits */
+ jornada_ts->y_data[3] = jornada_ssp_byte(TXDUMMY);
}

static int jornada720_ts_average(int coords[4])
@@ -104,13 +104,10 @@ static int jornada720_ts_probe(struct platform_device *pdev)
struct input_dev *input_dev;
int error;

- jornada_ts = kzalloc(sizeof(struct jornada_ts), GFP_KERNEL);
- input_dev = input_allocate_device();
-
- if (!jornada_ts || !input_dev) {
- error = -ENOMEM;
- goto fail1;
- }
+ jornada_ts = devm_kzalloc(&pdev->dev, sizeof(*jornada_ts), GFP_KERNEL);
+ input_dev = devm_input_allocate_device(&pdev->dev);
+ if (!jornada_ts || !input_dev)
+ return -ENOMEM;

platform_set_drvdata(pdev, jornada_ts);

@@ -126,36 +123,18 @@ static int jornada720_ts_probe(struct platform_device *pdev)
input_set_abs_params(input_dev, ABS_X, 270, 3900, 0, 0);
input_set_abs_params(input_dev, ABS_Y, 180, 3700, 0, 0);

- error = request_irq(IRQ_GPIO9,
+ error = devm_request_irq(&pdev->dev, IRQ_GPIO9,
jornada720_ts_interrupt,
IRQF_TRIGGER_RISING,
"HP7XX Touchscreen driver", pdev);
if (error) {
- printk(KERN_INFO "HP7XX TS : Unable to acquire irq!\n");
- goto fail1;
+ dev_err(&pdev->dev, "HP7XX TS : Unable to acquire irq!\n");
+ return error;
}

error = input_register_device(jornada_ts->dev);
if (error)
- goto fail2;
-
- return 0;
-
- fail2:
- free_irq(IRQ_GPIO9, pdev);
- fail1:
- input_free_device(input_dev);
- kfree(jornada_ts);
- return error;
-}
-
-static int jornada720_ts_remove(struct platform_device *pdev)
-{
- struct jornada_ts *jornada_ts = platform_get_drvdata(pdev);
-
- free_irq(IRQ_GPIO9, pdev);
- input_unregister_device(jornada_ts->dev);
- kfree(jornada_ts);
+ return error;

return 0;
}
@@ -165,7 +144,6 @@ MODULE_ALIAS("platform:jornada_ts");

static struct platform_driver jornada720_ts_driver = {
.probe = jornada720_ts_probe,
- .remove = jornada720_ts_remove,
.driver = {
.name = "jornada_ts",
.owner = THIS_MODULE,
--
1.7.9.5


2014-07-30 13:18:11

by Paul Gortmaker

[permalink] [raw]
Subject: Re: [PATCH] Input: jornada720_ts: Switch to using Managed resources

On 14-07-30 08:09 AM, Pramod Gurav wrote:
> This switches the driver to using managed resources to simplify
> error handling and to do away with remove function.
>
> Also fixes some indentations by replacing spaces with tabs.
>
> CC: Dmitry Torokhov <[email protected]>
> CC: Paul Gortmaker <[email protected]>
>
> Signed-off-by: Pramod Gurav <[email protected]>
> ---
> drivers/input/touchscreen/jornada720_ts.c | 62 ++++++++++-------------------
> 1 file changed, 20 insertions(+), 42 deletions(-)
>
> diff --git a/drivers/input/touchscreen/jornada720_ts.c b/drivers/input/touchscreen/jornada720_ts.c
> index 7324c5c..0c23bba 100644
> --- a/drivers/input/touchscreen/jornada720_ts.c
> +++ b/drivers/input/touchscreen/jornada720_ts.c
> @@ -37,21 +37,21 @@ struct jornada_ts {
> static void jornada720_ts_collect_data(struct jornada_ts *jornada_ts)
> {
>
> - /* 3 low word X samples */
> - jornada_ts->x_data[0] = jornada_ssp_byte(TXDUMMY);
> - jornada_ts->x_data[1] = jornada_ssp_byte(TXDUMMY);
> - jornada_ts->x_data[2] = jornada_ssp_byte(TXDUMMY);
> + /* 3 low word X samples */
> + jornada_ts->x_data[0] = jornada_ssp_byte(TXDUMMY);
> + jornada_ts->x_data[1] = jornada_ssp_byte(TXDUMMY);
> + jornada_ts->x_data[2] = jornada_ssp_byte(TXDUMMY);

Please don't mix pure whitespace changes with technical changes.
While I can't fault you for wanting to get rid of the 4 space
tabs, it makes review more complicated when they are mixed in
a single commit.

P.
--

>
> - /* 3 low word Y samples */
> - jornada_ts->y_data[0] = jornada_ssp_byte(TXDUMMY);
> - jornada_ts->y_data[1] = jornada_ssp_byte(TXDUMMY);
> - jornada_ts->y_data[2] = jornada_ssp_byte(TXDUMMY);
> + /* 3 low word Y samples */
> + jornada_ts->y_data[0] = jornada_ssp_byte(TXDUMMY);
> + jornada_ts->y_data[1] = jornada_ssp_byte(TXDUMMY);
> + jornada_ts->y_data[2] = jornada_ssp_byte(TXDUMMY);
>
> - /* combined x samples bits */
> - jornada_ts->x_data[3] = jornada_ssp_byte(TXDUMMY);
> + /* combined x samples bits */
> + jornada_ts->x_data[3] = jornada_ssp_byte(TXDUMMY);
>
> - /* combined y samples bits */
> - jornada_ts->y_data[3] = jornada_ssp_byte(TXDUMMY);
> + /* combined y samples bits */
> + jornada_ts->y_data[3] = jornada_ssp_byte(TXDUMMY);
> }
>
> static int jornada720_ts_average(int coords[4])
> @@ -104,13 +104,10 @@ static int jornada720_ts_probe(struct platform_device *pdev)
> struct input_dev *input_dev;
> int error;
>
> - jornada_ts = kzalloc(sizeof(struct jornada_ts), GFP_KERNEL);
> - input_dev = input_allocate_device();
> -
> - if (!jornada_ts || !input_dev) {
> - error = -ENOMEM;
> - goto fail1;
> - }
> + jornada_ts = devm_kzalloc(&pdev->dev, sizeof(*jornada_ts), GFP_KERNEL);
> + input_dev = devm_input_allocate_device(&pdev->dev);
> + if (!jornada_ts || !input_dev)
> + return -ENOMEM;
>
> platform_set_drvdata(pdev, jornada_ts);
>
> @@ -126,36 +123,18 @@ static int jornada720_ts_probe(struct platform_device *pdev)
> input_set_abs_params(input_dev, ABS_X, 270, 3900, 0, 0);
> input_set_abs_params(input_dev, ABS_Y, 180, 3700, 0, 0);
>
> - error = request_irq(IRQ_GPIO9,
> + error = devm_request_irq(&pdev->dev, IRQ_GPIO9,
> jornada720_ts_interrupt,
> IRQF_TRIGGER_RISING,
> "HP7XX Touchscreen driver", pdev);
> if (error) {
> - printk(KERN_INFO "HP7XX TS : Unable to acquire irq!\n");
> - goto fail1;
> + dev_err(&pdev->dev, "HP7XX TS : Unable to acquire irq!\n");
> + return error;
> }
>
> error = input_register_device(jornada_ts->dev);
> if (error)
> - goto fail2;
> -
> - return 0;
> -
> - fail2:
> - free_irq(IRQ_GPIO9, pdev);
> - fail1:
> - input_free_device(input_dev);
> - kfree(jornada_ts);
> - return error;
> -}
> -
> -static int jornada720_ts_remove(struct platform_device *pdev)
> -{
> - struct jornada_ts *jornada_ts = platform_get_drvdata(pdev);
> -
> - free_irq(IRQ_GPIO9, pdev);
> - input_unregister_device(jornada_ts->dev);
> - kfree(jornada_ts);
> + return error;
>
> return 0;
> }
> @@ -165,7 +144,6 @@ MODULE_ALIAS("platform:jornada_ts");
>
> static struct platform_driver jornada720_ts_driver = {
> .probe = jornada720_ts_probe,
> - .remove = jornada720_ts_remove,
> .driver = {
> .name = "jornada_ts",
> .owner = THIS_MODULE,
>

2014-07-30 13:28:15

by Pramod Gurav

[permalink] [raw]
Subject: Re: [PATCH] Input: jornada720_ts: Switch to using Managed resources

On Wed, Jul 30, 2014 at 6:48 PM, Paul Gortmaker
<[email protected]> wrote:
> On 14-07-30 08:09 AM, Pramod Gurav wrote:
>> This switches the driver to using managed resources to simplify
>> error handling and to do away with remove function.
>>
>> Also fixes some indentations by replacing spaces with tabs.
>>
>> CC: Dmitry Torokhov <[email protected]>
>> CC: Paul Gortmaker <[email protected]>
>>
>> Signed-off-by: Pramod Gurav <[email protected]>
>> ---
>> drivers/input/touchscreen/jornada720_ts.c | 62 ++++++++++-------------------
>> 1 file changed, 20 insertions(+), 42 deletions(-)
>>
>> diff --git a/drivers/input/touchscreen/jornada720_ts.c b/drivers/input/touchscreen/jornada720_ts.c
>> index 7324c5c..0c23bba 100644
>> --- a/drivers/input/touchscreen/jornada720_ts.c
>> +++ b/drivers/input/touchscreen/jornada720_ts.c
>> @@ -37,21 +37,21 @@ struct jornada_ts {
>> static void jornada720_ts_collect_data(struct jornada_ts *jornada_ts)
>> {
>>
>> - /* 3 low word X samples */
>> - jornada_ts->x_data[0] = jornada_ssp_byte(TXDUMMY);
>> - jornada_ts->x_data[1] = jornada_ssp_byte(TXDUMMY);
>> - jornada_ts->x_data[2] = jornada_ssp_byte(TXDUMMY);
>> + /* 3 low word X samples */
>> + jornada_ts->x_data[0] = jornada_ssp_byte(TXDUMMY);
>> + jornada_ts->x_data[1] = jornada_ssp_byte(TXDUMMY);
>> + jornada_ts->x_data[2] = jornada_ssp_byte(TXDUMMY);
>
> Please don't mix pure whitespace changes with technical changes.
> While I can't fault you for wanting to get rid of the 4 space
> tabs, it makes review more complicated when they are mixed in
> a single commit.

Thanks for highlighting that. Will send two patches then.

>
> P.
> --
>
>>
>> - /* 3 low word Y samples */
>> - jornada_ts->y_data[0] = jornada_ssp_byte(TXDUMMY);
>> - jornada_ts->y_data[1] = jornada_ssp_byte(TXDUMMY);
>> - jornada_ts->y_data[2] = jornada_ssp_byte(TXDUMMY);
>> + /* 3 low word Y samples */
>> + jornada_ts->y_data[0] = jornada_ssp_byte(TXDUMMY);
>> + jornada_ts->y_data[1] = jornada_ssp_byte(TXDUMMY);
>> + jornada_ts->y_data[2] = jornada_ssp_byte(TXDUMMY);
>>
>> - /* combined x samples bits */
>> - jornada_ts->x_data[3] = jornada_ssp_byte(TXDUMMY);
>> + /* combined x samples bits */
>> + jornada_ts->x_data[3] = jornada_ssp_byte(TXDUMMY);
>>
>> - /* combined y samples bits */
>> - jornada_ts->y_data[3] = jornada_ssp_byte(TXDUMMY);
>> + /* combined y samples bits */
>> + jornada_ts->y_data[3] = jornada_ssp_byte(TXDUMMY);
>> }
>>
>> static int jornada720_ts_average(int coords[4])
>> @@ -104,13 +104,10 @@ static int jornada720_ts_probe(struct platform_device *pdev)
>> struct input_dev *input_dev;
>> int error;
>>
>> - jornada_ts = kzalloc(sizeof(struct jornada_ts), GFP_KERNEL);
>> - input_dev = input_allocate_device();
>> -
>> - if (!jornada_ts || !input_dev) {
>> - error = -ENOMEM;
>> - goto fail1;
>> - }
>> + jornada_ts = devm_kzalloc(&pdev->dev, sizeof(*jornada_ts), GFP_KERNEL);
>> + input_dev = devm_input_allocate_device(&pdev->dev);
>> + if (!jornada_ts || !input_dev)
>> + return -ENOMEM;
>>
>> platform_set_drvdata(pdev, jornada_ts);
>>
>> @@ -126,36 +123,18 @@ static int jornada720_ts_probe(struct platform_device *pdev)
>> input_set_abs_params(input_dev, ABS_X, 270, 3900, 0, 0);
>> input_set_abs_params(input_dev, ABS_Y, 180, 3700, 0, 0);
>>
>> - error = request_irq(IRQ_GPIO9,
>> + error = devm_request_irq(&pdev->dev, IRQ_GPIO9,
>> jornada720_ts_interrupt,
>> IRQF_TRIGGER_RISING,
>> "HP7XX Touchscreen driver", pdev);
>> if (error) {
>> - printk(KERN_INFO "HP7XX TS : Unable to acquire irq!\n");
>> - goto fail1;
>> + dev_err(&pdev->dev, "HP7XX TS : Unable to acquire irq!\n");
>> + return error;
>> }
>>
>> error = input_register_device(jornada_ts->dev);
>> if (error)
>> - goto fail2;
>> -
>> - return 0;
>> -
>> - fail2:
>> - free_irq(IRQ_GPIO9, pdev);
>> - fail1:
>> - input_free_device(input_dev);
>> - kfree(jornada_ts);
>> - return error;
>> -}
>> -
>> -static int jornada720_ts_remove(struct platform_device *pdev)
>> -{
>> - struct jornada_ts *jornada_ts = platform_get_drvdata(pdev);
>> -
>> - free_irq(IRQ_GPIO9, pdev);
>> - input_unregister_device(jornada_ts->dev);
>> - kfree(jornada_ts);
>> + return error;
>>
>> return 0;
>> }
>> @@ -165,7 +144,6 @@ MODULE_ALIAS("platform:jornada_ts");
>>
>> static struct platform_driver jornada720_ts_driver = {
>> .probe = jornada720_ts_probe,
>> - .remove = jornada720_ts_remove,
>> .driver = {
>> .name = "jornada_ts",
>> .owner = THIS_MODULE,
>>
> --
> 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



--
Thanks and Regards
Pramod