svn commit: r367677 - in stable/12/sys/dev: acpi_support acpica iicbus
Vladimir Kondratyev
wulf at FreeBSD.org
Sat Nov 14 12:02:51 UTC 2020
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);
More information about the svn-src-stable
mailing list