The first 5 patches restructure the code to make it easier to support ACPI and platform device based probing. The 6th patch adds the ACPI support, reading the ACPI table and decoding the data. The 7th patch adds support for non-ACPI based probing on family 0x1A and model 0x00-0x0F as we support both methods. Patch 1: In case of ACPI based probing, mailbox registers are read from ACPI table which is possible only in the probe(). So, message HSMP_TEST will not succeed during platform init time. Hence, move hsmp_test() to probe. Patch 2: Cache pci device object of root complex in struct hsmp_socket. This will make amd_hsmp_rdrw() work with both the methods. Patch 3: Move platform_device_alloc() and add() to a function to make it easier to add a condition check for non acpi. Patch 4: Create struct hsmp_mbaddr_info to contain all the mailbox register information for ACPI and non-ACPI methods. Patch 5: Move struct device pointer to struct hsmp_socket to isolate multiple probes in multi socket system. Patch 6: Convert probe to ACPI based probing with maintinaing support for platform device probing. Patch 7: Support non-ACPI based BIOS on family 0x1A model 0~Fh. Suma Hegde (7): platform/x86: Move hsmp_test to probe platform/x86: Cache pci_dev in struct hsmp_socket platform/x86: Create static func to handle platdev platform/x86: Define a struct to hold mailbox regs platform/x86: Move dev from platdev to hsmp_socket platform/x86: Convert to ACPI based probing platform/x86: Non-ACPI support for AMD F1A_M00~0Fh drivers/platform/x86/amd/hsmp.c | 501 ++++++++++++++++++++++++++------ 1 file changed, 410 insertions(+), 91 deletions(-) -- 2.25.1