{
        struct platform_device *pdev = to_platform_device(dev->parent);
        struct platform_device *sdev = to_platform_device(dev);
+       struct acpi_device *adev = ACPI_COMPANION(dev);
        struct l2cache_pmu *l2cache_pmu = data;
        struct cluster_pmu *cluster;
-       struct acpi_device *device;
        unsigned long fw_cluster_id;
        int err;
        int irq;
 
-       if (acpi_bus_get_device(ACPI_HANDLE(dev), &device))
-               return -ENODEV;
-
-       if (kstrtoul(device->pnp.unique_id, 10, &fw_cluster_id) < 0) {
+       if (!adev || kstrtoul(adev->pnp.unique_id, 10, &fw_cluster_id) < 0) {
                dev_err(&pdev->dev, "unable to read ACPI uid\n");
                return -ENODEV;
        }