summaryrefslogtreecommitdiffstats
path: root/drivers/platform/x86
diff options
context:
space:
mode:
authorSuma Hegde <suma.hegde@amd.com>2024-01-06 02:25:24 +0000
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>2024-01-25 14:51:17 +0200
commite76064e34a371731e3f0da13ffbda16f6e51a202 (patch)
tree462869afdf80f0456e13af7a7e2aff62a5c63617 /drivers/platform/x86
parent287a821c76be80d69d9a82a94147d0daa5232a4b (diff)
downloadlinux-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.c33
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;
}