diff options
author | Suma Hegde <suma.hegde@amd.com> | 2024-01-06 02:25:24 +0000 |
---|---|---|
committer | Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> | 2024-01-25 14:51:17 +0200 |
commit | e76064e34a371731e3f0da13ffbda16f6e51a202 (patch) | |
tree | 462869afdf80f0456e13af7a7e2aff62a5c63617 /drivers/platform/x86 | |
parent | 287a821c76be80d69d9a82a94147d0daa5232a4b (diff) | |
download | linux-stable-e76064e34a371731e3f0da13ffbda16f6e51a202.tar.gz linux-stable-e76064e34a371731e3f0da13ffbda16f6e51a202.tar.bz2 linux-stable-e76064e34a371731e3f0da13ffbda16f6e51a202.zip |
platform/x86/amd/hsmp: Create static func to handle platdev
Create a static function and call platform device alloc and add device,
which will simplify handling acpi and plat device probing.
Signed-off-by: Suma Hegde <suma.hegde@amd.com>
Signed-off-by: Naveen Krishna Chatradhi <nchatrad@amd.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20240106022532.1746932-3-suma.hegde@amd.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Diffstat (limited to 'drivers/platform/x86')
-rw-r--r-- | drivers/platform/x86/amd/hsmp.c | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/drivers/platform/x86/amd/hsmp.c b/drivers/platform/x86/amd/hsmp.c index 1a2abe4460f9..e3354683b138 100644 --- a/drivers/platform/x86/amd/hsmp.c +++ b/drivers/platform/x86/amd/hsmp.c @@ -551,6 +551,21 @@ static struct platform_driver amd_hsmp_driver = { static struct platform_device *amd_hsmp_platdev; +static int hsmp_plat_dev_register(void) +{ + int ret; + + amd_hsmp_platdev = platform_device_alloc(DRIVER_NAME, PLATFORM_DEVID_NONE); + if (!amd_hsmp_platdev) + return -ENOMEM; + + ret = platform_device_add(amd_hsmp_platdev); + if (ret) + platform_device_put(amd_hsmp_platdev); + + return ret; +} + static int __init hsmp_plt_init(void) { int ret = -ENODEV; @@ -573,22 +588,10 @@ static int __init hsmp_plt_init(void) if (ret) return ret; - amd_hsmp_platdev = platform_device_alloc(DRIVER_NAME, PLATFORM_DEVID_NONE); - if (!amd_hsmp_platdev) { - ret = -ENOMEM; - goto drv_unregister; - } - - ret = platform_device_add(amd_hsmp_platdev); - if (ret) { - platform_device_put(amd_hsmp_platdev); - goto drv_unregister; - } - - return 0; + ret = hsmp_plat_dev_register(); + if (ret) + platform_driver_unregister(&amd_hsmp_driver); -drv_unregister: - platform_driver_unregister(&amd_hsmp_driver); return ret; } |