Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 May 2016 18:18:29 +0000 (UTC)
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r299381 - head/sys/dev/drm2/i915
Message-ID:  <201605101818.u4AIITDW019938@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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__;								\
 })



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201605101818.u4AIITDW019938>