In the PRP0001 case, the compatible string may have additional data
affiliated with the device.  When we call device_get_match_data() on
such device, we will get nothing since currently
acpi_device_get_match_data() doesn't respect PRP0001.
To fix the above, try acpi_of_match_device() if there is no ACPI
table in the driver.
Anyway, note that the device is expected to get its own proper
ACPI ID.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
 }
 EXPORT_SYMBOL_GPL(acpi_match_device);
 
+static const void *acpi_of_device_get_match_data(const struct device *dev)
+{
+       struct acpi_device *adev = ACPI_COMPANION(dev);
+       const struct of_device_id *match = NULL;
+
+       if (!acpi_of_match_device(adev, dev->driver->of_match_table, &match))
+               return NULL;
+
+       return match->data;
+}
+
 const void *acpi_device_get_match_data(const struct device *dev)
 {
        const struct acpi_device_id *match;
 
+       if (!dev->driver->acpi_match_table)
+               return acpi_of_device_get_match_data(dev);
+
        match = acpi_match_device(dev->driver->acpi_match_table, dev);
        if (!match)
                return NULL;