ACPI / LPSS: Make acpi_lpss_find_device() also find PCI devices
On some Cherry Trail systems the GPU ACPI fwnode has power-resources which point to the PMIC, which is connected over one of the LPSS I2C controllers. To get the suspend/resume ordering correct for this we need to be able to add device-links between the GPU and the I2c controller. The GPU is a PCI device, so this requires acpi_lpss_find_device() to also work on PCI devs. Tested-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
Родитель
a92a5563e3
Коммит
1e30124ac6
|
@ -16,6 +16,7 @@
|
|||
#include <linux/err.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/platform_data/clk-lpss.h>
|
||||
#include <linux/platform_data/x86/pmc_atom.h>
|
||||
|
@ -518,12 +519,18 @@ static int match_hid_uid(struct device *dev, void *data)
|
|||
|
||||
static struct device *acpi_lpss_find_device(const char *hid, const char *uid)
|
||||
{
|
||||
struct device *dev;
|
||||
|
||||
struct hid_uid data = {
|
||||
.hid = hid,
|
||||
.uid = uid,
|
||||
};
|
||||
|
||||
return bus_find_device(&platform_bus_type, NULL, &data, match_hid_uid);
|
||||
dev = bus_find_device(&platform_bus_type, NULL, &data, match_hid_uid);
|
||||
if (dev)
|
||||
return dev;
|
||||
|
||||
return bus_find_device(&pci_bus_type, NULL, &data, match_hid_uid);
|
||||
}
|
||||
|
||||
static bool acpi_lpss_dep(struct acpi_device *adev, acpi_handle handle)
|
||||
|
|
Загрузка…
Ссылка в новой задаче