svn commit: r299381 - head/sys/dev/drm2/i915

Hans Petter Selasky hselasky at FreeBSD.org
Tue May 10 18:18:30 UTC 2016


Author: hselasky
Date: Tue May 10 18:18:29 2016
New Revision: 299381
URL: https://svnweb.freebsd.org/changeset/base/299381

Log:
  Ensure waiting loops terminate during cold boot. This fixes boot with
  MacBookPro and i915kms_load="YES" in /boot/loader.conf.
  
  A lowlevel timeout in one of the display ports caused an infinite wait
  because a ticks/jiffies comparison was constant. The clock subsystem
  which makes ticks/jiffies increment is started after the initial
  driver probing is done. Refer to sys/kernel.h and SI_SUB_DRIVERS vs
  SI_SUB_CLOCKS .
  
  Discussed with:	kmacy @

Modified:
  head/sys/dev/drm2/i915/intel_drv.h

Modified: head/sys/dev/drm2/i915/intel_drv.h
==============================================================================
--- head/sys/dev/drm2/i915/intel_drv.h	Tue May 10 18:00:37 2016	(r299380)
+++ head/sys/dev/drm2/i915/intel_drv.h	Tue May 10 18:18:29 2016	(r299381)
@@ -50,6 +50,8 @@
 			pause((WMSG), 1);				\
 		else							\
 			DELAY(1000);					\
+		if (cold)						\
+			end -= howmany(hz, 1000);			\
 	}								\
 									\
 	ret;								\
@@ -68,6 +70,8 @@
 		} else {						\
 			DELAY(1000);					\
 		}							\
+		if (cold)						\
+			timeout__ -= howmany(hz, 1000);			\
 	}								\
 	ret__;								\
 })


More information about the svn-src-head mailing list