ec60b7f929
After r340644 there were two things wrong in cases where there is both an ECDT, and an EC device exposed via acpica. The first is a rather trivial situation where the device desc would say ECDT even when it was not implicitly created via ECDT (not really sure why the compiler doesn't seem to warn about this). The other more pervasive issue is that the code is designed to essentially not do anything for EC probe when its uid was already created an EC based on the ECDT's uid. The issue was that probe would still return 0 in this case, and so we'd end up with some weird duplication. Now to be honest, I'm not actually sure what exactly broke, but it was definitely not working as intended. To fix this, all that is really needed is to make sure we return ENXIO when we're probing the device already added for the ECDT entry. While here though, move the check for this earlier to avoid wasted cycles when we know after obtaining the uid that it's duplicative. There remains one questionable bit here which I don't want to touch - when doing probe for PNP0C09, if acquiring _UID for the device fails, 0 is assumed, which is a valid UID used by the implicit ECDT. Reported by: Charlie Li, et al. Reviewed by: jhb Differential Revision: https://reviews.freebsd.org/D18311 |
||
---|---|---|
.. | ||
Osd | ||
acpi_acad.c | ||
acpi_battery.c | ||
acpi_bus_if.m | ||
acpi_button.c | ||
acpi_cmbat.c | ||
acpi_container.c | ||
acpi_cpu.c | ||
acpi_dock.c | ||
acpi_ec.c | ||
acpi_hpet.c | ||
acpi_hpet.h | ||
acpi_if.m | ||
acpi_isab.c | ||
acpi_lid.c | ||
acpi_package.c | ||
acpi_pci_link.c | ||
acpi_pci.c | ||
acpi_pcib_acpi.c | ||
acpi_pcib_pci.c | ||
acpi_pcib.c | ||
acpi_pcibvar.h | ||
acpi_pcivar.h | ||
acpi_perf.c | ||
acpi_powerres.c | ||
acpi_quirk.c | ||
acpi_quirks | ||
acpi_resource.c | ||
acpi_smbat.c | ||
acpi_smbus.h | ||
acpi_thermal.c | ||
acpi_throttle.c | ||
acpi_timer.c | ||
acpi_video.c | ||
acpi.c | ||
acpiio.h | ||
acpivar.h |