On Mon, Nov 30, 2020 at 01:31:25PM +0000, Daniel Scally wrote: > ACPI devices declare themselves dependent on other devices via the _DEP > buffer. Fetching the dependee from dependent is a matter of parsing > _DEP, but currently there's no method to fetch dependent from dependee. > Add one, so we can parse sensors dependent on a PMIC from the PMIC's > acpi_driver. Do I understand correctly that it's an existing table provided by firmware that (ab)uses _DEP in such way? Note, the specification doesn't tell we may use it in this way, OTOH I don't remember if it strictly forbids such use. So, please elaborate in the commit message why you need this and pint out to the 6.5.8 "_DEP (Operation Region Dependencies)" which clearly says about OpRegions and that part already supported by ACPI in the Linux, if I'm not mistaken, need to refresh my memory. ... > + handle = adev->handle; > + > + if (!acpi_has_method(handle, "_DEP")) > + return 0; > + > + status = acpi_evaluate_reference(handle, "_DEP", NULL, &dep_handles); > + if (ACPI_FAILURE(status)) > + return 0; > + > + for (i = 0; i < dep_handles.count; i++) { > + struct acpi_device_info *info; > + > + status = acpi_get_object_info(dep_handles.handles[i], &info); > + if (ACPI_FAILURE(status)) > + continue; > + > + if (info->valid & ACPI_VALID_HID) { > + ret = acpi_bus_get_device(dep_handles.handles[i], &candidate); > + if (ret || !candidate) { > + kfree(info); > + continue; > + } > + > + if (candidate == dependee) { > + acpi_dev_put(candidate); > + kfree(info); > + return 1; > + } > + > + kfree(info); > + } > + } Can you utilize (by moving to here and export for ACPI layer the acpi_lpss_dep()? -- With Best Regards, Andy Shevchenko