return ret;
 }
 
+/*
+ * This check is only needed for backward compatibility of previous platforms.
+ * All new platforms are expected to support ACPI based probing.
+ */
+static bool legacy_hsmp_support(void)
+{
+       if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
+               return false;
+
+       switch (boot_cpu_data.x86) {
+       case 0x19:
+               switch (boot_cpu_data.x86_model) {
+               case 0x00 ... 0x1F:
+               case 0x30 ... 0x3F:
+               case 0x90 ... 0x9F:
+               case 0xA0 ... 0xAF:
+                       return true;
+               default:
+                       return false;
+               }
+       case 0x1A:
+               switch (boot_cpu_data.x86_model) {
+               case 0x00 ... 0x1F:
+                       return true;
+               default:
+                       return false;
+               }
+       default:
+               return false;
+       }
+
+       return false;
+}
+
 static int __init hsmp_plt_init(void)
 {
        int ret = -ENODEV;
 
-       if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD || boot_cpu_data.x86 < 0x19) {
-               pr_err("HSMP is not supported on Family:%x model:%x\n",
-                      boot_cpu_data.x86, boot_cpu_data.x86_model);
-               return ret;
-       }
-
        /*
         * amd_nb_num() returns number of SMN/DF interfaces present in the system
         * if we have N SMN/DF interfaces that ideally means N sockets
                return ret;
 
        if (!plat_dev.is_acpi_device) {
-               ret = hsmp_plat_dev_register();
+               if (legacy_hsmp_support()) {
+                       /* Not ACPI device, but supports HSMP, register a plat_dev */
+                       ret = hsmp_plat_dev_register();
+               } else {
+                       /* Not ACPI, Does not support HSMP */
+                       pr_info("HSMP is not supported on Family:%x model:%x\n",
+                               boot_cpu_data.x86, boot_cpu_data.x86_model);
+                       ret = -ENODEV;
+               }
                if (ret)
                        platform_driver_unregister(&amd_hsmp_driver);
        }