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>