Date: Sat, 14 Nov 2020 12:02:50 +0000 (UTC) From: Vladimir Kondratyev <wulf@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r367677 - in stable/12/sys/dev: acpi_support acpica iicbus Message-ID: <202011141202.0AEC2o1Q078576@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: wulf Date: Sat Nov 14 12:02:50 2020 New Revision: 367677 URL: https://svnweb.freebsd.org/changeset/base/367677 Log: MFC r367239-367241: r367239: Add plug and play information macroses for ACPI and I2C buses. Matching table format is compatible with ACPI_ID_PROBE bus method. Note that while ACPI_ID_PROBE matches against _HID and all _CIDs, current acpi_pnpinfo_str() exports only _HID and first _CID. That means second and further _CIDs should be added to both acpi_pnpinfo_str() and ACPICOMPAT_PNP_INFO if device matching against them is required. r367240: acpi_wmi(4): Add ACPI_PNP_INFO r367241: acpi_dock(4): Add ACPI_PNP_INFO Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D26824 Modified: stable/12/sys/dev/acpi_support/acpi_wmi.c stable/12/sys/dev/acpica/acpi_dock.c stable/12/sys/dev/acpica/acpivar.h stable/12/sys/dev/iicbus/iicbus.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/acpi_support/acpi_wmi.c ============================================================================== --- stable/12/sys/dev/acpi_support/acpi_wmi.c Sat Nov 14 11:51:37 2020 (r367676) +++ stable/12/sys/dev/acpi_support/acpi_wmi.c Sat Nov 14 12:02:50 2020 (r367677) @@ -201,6 +201,7 @@ DRIVER_MODULE(acpi_wmi, acpi, acpi_wmi_driver, acpi_wm MODULE_VERSION(acpi_wmi, 1); MODULE_DEPEND(acpi_wmi, acpi, 1, 1, 1); static char *wmi_ids[] = {"PNP0C14", NULL}; +ACPI_PNP_INFO(wmi_ids); /* * Probe for the PNP0C14 ACPI node Modified: stable/12/sys/dev/acpica/acpi_dock.c ============================================================================== --- stable/12/sys/dev/acpica/acpi_dock.c Sat Nov 14 11:51:37 2020 (r367676) +++ stable/12/sys/dev/acpica/acpi_dock.c Sat Nov 14 12:02:50 2020 (r367677) @@ -64,6 +64,8 @@ struct acpi_dock_softc { ACPI_SERIAL_DECL(dock, "ACPI Docking Station"); +static char *acpi_dock_pnp_ids[] = {"PNP0C15", NULL}; + /* * Utility functions */ @@ -545,3 +547,4 @@ static devclass_t acpi_dock_devclass; DRIVER_MODULE(acpi_dock, acpi, acpi_dock_driver, acpi_dock_devclass, 0, 0); MODULE_DEPEND(acpi_dock, acpi, 1, 1, 1); +ACPI_PNP_INFO(acpi_dock_pnp_ids); Modified: stable/12/sys/dev/acpica/acpivar.h ============================================================================== --- stable/12/sys/dev/acpica/acpivar.h Sat Nov 14 11:51:37 2020 (r367676) +++ stable/12/sys/dev/acpica/acpivar.h Sat Nov 14 12:02:50 2020 (r367677) @@ -232,6 +232,20 @@ extern int acpi_quirks; #define ACPI_Q_MADT_IRQ0 (1 << 2) /* + * Plug and play information for device matching. Matching table format + * is compatible with ids parameter of ACPI_ID_PROBE bus method. + * + * XXX: While ACPI_ID_PROBE matches against _HID and all _CIDs, current + * acpi_pnpinfo_str() exports only _HID and first _CID. That means second + * and further _CIDs should be added to both acpi_pnpinfo_str() and + * ACPICOMPAT_PNP_INFO if device matching against them is required. + */ +#define ACPICOMPAT_PNP_INFO(t, busname) \ + MODULE_PNP_INFO("Z:_HID", busname, t##hid, t, nitems(t)-1); \ + MODULE_PNP_INFO("Z:_CID", busname, t##cid, t, nitems(t)-1); +#define ACPI_PNP_INFO(t) ACPICOMPAT_PNP_INFO(t, acpi) + +/* * Note that the low ivar values are reserved to provide * interface compatibility with ISA drivers which can also * attach to ACPI. Modified: stable/12/sys/dev/iicbus/iicbus.h ============================================================================== --- stable/12/sys/dev/iicbus/iicbus.h Sat Nov 14 11:51:37 2020 (r367676) +++ stable/12/sys/dev/iicbus/iicbus.h Sat Nov 14 12:02:50 2020 (r367677) @@ -77,6 +77,12 @@ IICBUS_ACCESSOR(addr, ADDR, uint32_t) #define IICBUS_FDT_PNP_INFO(t) #endif +#ifdef DEV_ACPI +#define IICBUS_ACPI_PNP_INFO(t) ACPICOMPAT_PNP_INFO(t, iicbus) +#else +#define IICBUS_ACPI_PNP_INFO(t) +#endif + int iicbus_generic_intr(device_t dev, int event, char *buf); void iicbus_init_frequency(device_t dev, u_int bus_freq);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202011141202.0AEC2o1Q078576>