Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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.

Signed-off-by: Pramod Gurav <pramod.gurav@smartplayin.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

authored by

Pramod Gurav and committed by
Dmitry Torokhov
4b080e3b f3f33c67

+13 -32
+13 -32
drivers/input/touchscreen/jornada720_ts.c
··· 104 104 struct input_dev *input_dev; 105 105 int error; 106 106 107 - jornada_ts = kzalloc(sizeof(struct jornada_ts), GFP_KERNEL); 108 - input_dev = input_allocate_device(); 107 + jornada_ts = devm_kzalloc(&pdev->dev, sizeof(*jornada_ts), GFP_KERNEL); 108 + if (!jornada_ts) 109 + return -ENOMEM; 109 110 110 - if (!jornada_ts || !input_dev) { 111 - error = -ENOMEM; 112 - goto fail1; 113 - } 111 + input_dev = devm_input_allocate_device(&pdev->dev); 112 + if (!input_dev) 113 + return -ENOMEM; 114 114 115 115 platform_set_drvdata(pdev, jornada_ts); 116 116 ··· 126 126 input_set_abs_params(input_dev, ABS_X, 270, 3900, 0, 0); 127 127 input_set_abs_params(input_dev, ABS_Y, 180, 3700, 0, 0); 128 128 129 - error = request_irq(IRQ_GPIO9, 130 - jornada720_ts_interrupt, 131 - IRQF_TRIGGER_RISING, 132 - "HP7XX Touchscreen driver", pdev); 129 + error = devm_request_irq(&pdev->dev, IRQ_GPIO9, 130 + jornada720_ts_interrupt, 131 + IRQF_TRIGGER_RISING, 132 + "HP7XX Touchscreen driver", pdev); 133 133 if (error) { 134 - printk(KERN_INFO "HP7XX TS : Unable to acquire irq!\n"); 135 - goto fail1; 134 + dev_err(&pdev->dev, "HP7XX TS : Unable to acquire irq!\n"); 135 + return error; 136 136 } 137 137 138 138 error = input_register_device(jornada_ts->dev); 139 139 if (error) 140 - goto fail2; 141 - 142 - return 0; 143 - 144 - fail2: 145 - free_irq(IRQ_GPIO9, pdev); 146 - fail1: 147 - input_free_device(input_dev); 148 - kfree(jornada_ts); 149 - return error; 150 - } 151 - 152 - static int jornada720_ts_remove(struct platform_device *pdev) 153 - { 154 - struct jornada_ts *jornada_ts = platform_get_drvdata(pdev); 155 - 156 - free_irq(IRQ_GPIO9, pdev); 157 - input_unregister_device(jornada_ts->dev); 158 - kfree(jornada_ts); 140 + return error; 159 141 160 142 return 0; 161 143 } ··· 147 165 148 166 static struct platform_driver jornada720_ts_driver = { 149 167 .probe = jornada720_ts_probe, 150 - .remove = jornada720_ts_remove, 151 168 .driver = { 152 169 .name = "jornada_ts", 153 170 .owner = THIS_MODULE,