svn commit: r342178 - head/sys/dev/ichiic

Mark Johnston markj at FreeBSD.org
Mon Dec 17 21:13:10 UTC 2018


Author: markj
Date: Mon Dec 17 21:13:05 2018
New Revision: 342178
URL: https://svnweb.freebsd.org/changeset/base/342178

Log:
  Revert r336326.
  
  In testing on a Dell Latitude 7480, having ig4.ko loaded during a
  suspend caused the system to hang.  It turns out that ig4iic_intr() was
  being called after the device entered D3, and entered an infinite loop
  because a read of the I2C status register returned all ones, causing us
  to attempt to read a byte from the data buffer until one of the status
  bits clears.  This occured because ig4iic_pci0 shares an interrupt with
  the VGA device on this laptop, so ig4iic_intr() gets called even when
  there is no work to do.  This is exactly the problem fixed by r342170,
  which resolves the hang for me and allows suspend/resume to work with
  ig4.ko loaded.  So, re-enable autoloading of ig4.ko in the hope that
  r342170 resolves the problem universally.
  
  Reviewed by:	gonzo
  MFC after:	1 month (pending an MFC of r342170)
  Differential Revision:	https://reviews.freebsd.org/D18587

Modified:
  head/sys/dev/ichiic/ig4_pci.c

Modified: head/sys/dev/ichiic/ig4_pci.c
==============================================================================
--- head/sys/dev/ichiic/ig4_pci.c	Mon Dec 17 20:23:27 2018	(r342177)
+++ head/sys/dev/ichiic/ig4_pci.c	Mon Dec 17 21:13:05 2018	(r342178)
@@ -232,7 +232,5 @@ DRIVER_MODULE_ORDERED(ig4iic_pci, pci, ig4iic_pci_driv
 MODULE_DEPEND(ig4iic_pci, pci, 1, 1, 1);
 MODULE_DEPEND(ig4iic_pci, iicbus, IICBUS_MINVER, IICBUS_PREFVER, IICBUS_MAXVER);
 MODULE_VERSION(ig4iic_pci, 1);
-/*
- * Loading this module breaks suspend/resume on laptops
- * Do not add MODULE_PNP_INFO until it's impleneted
- */ 
+MODULE_PNP_INFO("W32:vendor/device", pci, ig4iic_pci, ig4iic_pci_devices,
+    sizeof(ig4iic_pci_devices[0]), nitems(ig4iic_pci_devices));


More information about the svn-src-head mailing list