Commit 58107695 authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Guenter Roeck

hwmon: (smsc47m1) Simplify device registration

Use platform_device_register_full() instead of open coding this
function.
Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Link: https://lore.kernel.org/r/ab326fb9b1ad2191583b4cb3a8bd624dfedb908e.1701957841.git.u.kleine-koenig@pengutronix.de
[groeck: Removed double empty line]
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 5c2833c8
...@@ -864,50 +864,33 @@ static struct platform_driver smsc47m1_driver __refdata = { ...@@ -864,50 +864,33 @@ static struct platform_driver smsc47m1_driver __refdata = {
static int __init smsc47m1_device_add(unsigned short address, static int __init smsc47m1_device_add(unsigned short address,
const struct smsc47m1_sio_data *sio_data) const struct smsc47m1_sio_data *sio_data)
{ {
struct resource res = { const struct resource res = {
.start = address, .start = address,
.end = address + SMSC_EXTENT - 1, .end = address + SMSC_EXTENT - 1,
.name = DRVNAME, .name = DRVNAME,
.flags = IORESOURCE_IO, .flags = IORESOURCE_IO,
}; };
const struct platform_device_info pdevinfo = {
.name = DRVNAME,
.id = address,
.res = &res,
.num_res = 1,
.data = sio_data,
.size_data = sizeof(struct smsc47m1_sio_data),
};
int err; int err;
err = smsc47m1_handle_resources(address, sio_data->type, CHECK, NULL); err = smsc47m1_handle_resources(address, sio_data->type, CHECK, NULL);
if (err) if (err)
goto exit; return err;
pdev = platform_device_alloc(DRVNAME, address); pdev = platform_device_register_full(&pdevinfo);
if (!pdev) { if (IS_ERR(pdev)) {
err = -ENOMEM;
pr_err("Device allocation failed\n"); pr_err("Device allocation failed\n");
goto exit; return PTR_ERR(pdev);
}
err = platform_device_add_resources(pdev, &res, 1);
if (err) {
pr_err("Device resource addition failed (%d)\n", err);
goto exit_device_put;
}
err = platform_device_add_data(pdev, sio_data,
sizeof(struct smsc47m1_sio_data));
if (err) {
pr_err("Platform data allocation failed\n");
goto exit_device_put;
}
err = platform_device_add(pdev);
if (err) {
pr_err("Device addition failed (%d)\n", err);
goto exit_device_put;
} }
return 0; return 0;
exit_device_put:
platform_device_put(pdev);
exit:
return err;
} }
static int __init sm_smsc47m1_init(void) static int __init sm_smsc47m1_init(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment