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

Input: misc - use platform_{get,set}_drvdata()

Use the wrapper functions for getting and setting the driver data using
platform_device instead of using dev_{get,set}_drvdata() with &pdev->dev,
so we can directly pass a struct platform_device.

Also, unnecessary dev_set_drvdata() is removed, because the driver core
clears the driver data to NULL after device_release or on probe failure.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

authored by

Jingoo Han and committed by
Dmitry Torokhov
35c4b122 d5201455

+7 -14
+2 -5
drivers/input/misc/sgi_btns.c
··· 128 128 __clear_bit(KEY_RESERVED, input->keybit); 129 129 130 130 bdev->poll_dev = poll_dev; 131 - dev_set_drvdata(&pdev->dev, bdev); 131 + platform_set_drvdata(pdev, bdev); 132 132 133 133 error = input_register_polled_device(poll_dev); 134 134 if (error) ··· 139 139 err_free_mem: 140 140 input_free_polled_device(poll_dev); 141 141 kfree(bdev); 142 - dev_set_drvdata(&pdev->dev, NULL); 143 142 return error; 144 143 } 145 144 146 145 static int sgi_buttons_remove(struct platform_device *pdev) 147 146 { 148 - struct device *dev = &pdev->dev; 149 - struct buttons_dev *bdev = dev_get_drvdata(dev); 147 + struct buttons_dev *bdev = platform_get_drvdata(pdev); 150 148 151 149 input_unregister_polled_device(bdev->poll_dev); 152 150 input_free_polled_device(bdev->poll_dev); 153 151 kfree(bdev); 154 - dev_set_drvdata(dev, NULL); 155 152 156 153 return 0; 157 154 }
+5 -9
drivers/input/misc/sparcspkr.c
··· 175 175 176 176 static void sparcspkr_shutdown(struct platform_device *dev) 177 177 { 178 - struct sparcspkr_state *state = dev_get_drvdata(&dev->dev); 178 + struct sparcspkr_state *state = platform_get_drvdata(dev); 179 179 struct input_dev *input_dev = state->input_dev; 180 180 181 181 /* turn off the speaker */ ··· 211 211 if (!info->regs) 212 212 goto out_free; 213 213 214 - dev_set_drvdata(&op->dev, state); 214 + platform_set_drvdata(op, state); 215 215 216 216 err = sparcspkr_probe(&op->dev); 217 217 if (err) ··· 220 220 return 0; 221 221 222 222 out_clear_drvdata: 223 - dev_set_drvdata(&op->dev, NULL); 224 223 of_iounmap(&op->resource[0], info->regs, 6); 225 224 226 225 out_free: ··· 230 231 231 232 static int bbc_remove(struct platform_device *op) 232 233 { 233 - struct sparcspkr_state *state = dev_get_drvdata(&op->dev); 234 + struct sparcspkr_state *state = platform_get_drvdata(op); 234 235 struct input_dev *input_dev = state->input_dev; 235 236 struct bbc_beep_info *info = &state->u.bbc; 236 237 ··· 241 242 242 243 of_iounmap(&op->resource[0], info->regs, 6); 243 244 244 - dev_set_drvdata(&op->dev, NULL); 245 245 kfree(state); 246 246 247 247 return 0; ··· 288 290 if (!info->enable_reg) 289 291 goto out_unmap_freq_regs; 290 292 291 - dev_set_drvdata(&op->dev, state); 293 + platform_set_drvdata(op, state); 292 294 293 295 err = sparcspkr_probe(&op->dev); 294 296 if (err) ··· 297 299 return 0; 298 300 299 301 out_clear_drvdata: 300 - dev_set_drvdata(&op->dev, NULL); 301 302 of_iounmap(&op->resource[3], info->enable_reg, 1); 302 303 303 304 out_unmap_freq_regs: ··· 309 312 310 313 static int grover_remove(struct platform_device *op) 311 314 { 312 - struct sparcspkr_state *state = dev_get_drvdata(&op->dev); 315 + struct sparcspkr_state *state = platform_get_drvdata(op); 313 316 struct grover_beep_info *info = &state->u.grover; 314 317 struct input_dev *input_dev = state->input_dev; 315 318 ··· 321 324 of_iounmap(&op->resource[3], info->enable_reg, 1); 322 325 of_iounmap(&op->resource[2], info->freq_regs, 2); 323 326 324 - dev_set_drvdata(&op->dev, NULL); 325 327 kfree(state); 326 328 327 329 return 0;