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-all mailing list