From owner-svn-src-stable-9@FreeBSD.ORG Sun Feb 9 19:54:41 2014 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0693D32B; Sun, 9 Feb 2014 19:54:41 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D5CB7118E; Sun, 9 Feb 2014 19:54:40 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s19JsehL090481; Sun, 9 Feb 2014 19:54:40 GMT (envelope-from dumbbell@svn.freebsd.org) Received: (from dumbbell@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s19Jse3G090475; Sun, 9 Feb 2014 19:54:40 GMT (envelope-from dumbbell@svn.freebsd.org) Message-Id: <201402091954.s19Jse3G090475@svn.freebsd.org> From: Jean-Sebastien Pedron Date: Sun, 9 Feb 2014 19:54:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r261673 - stable/9/sys/dev/drm2 X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Feb 2014 19:54:41 -0000 Author: dumbbell Date: Sun Feb 9 19:54:39 2014 New Revision: 261673 URL: http://svnweb.freebsd.org/changeset/base/261673 Log: MFC r258262: drm: Support DRM_CAP_TIMESTAMP_MONOTONIC capability This fixes DPMS with KDE and radeonkms. Without this, the display would freeze when the monitor is put into sleep state, and only resumes after several dozens of minutes once the monitor is powered on again. Tested by: Mathias Picker Modified: stable/9/sys/dev/drm2/drm.h stable/9/sys/dev/drm2/drmP.h stable/9/sys/dev/drm2/drm_drv.c stable/9/sys/dev/drm2/drm_ioctl.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sys/dev/drm2/drm.h ============================================================================== --- stable/9/sys/dev/drm2/drm.h Sun Feb 9 19:36:27 2014 (r261672) +++ stable/9/sys/dev/drm2/drm.h Sun Feb 9 19:54:39 2014 (r261673) @@ -1015,6 +1015,8 @@ struct drm_event_vblank { #define DRM_CAP_VBLANK_HIGH_CRTC 0x2 #define DRM_CAP_DUMB_PREFERRED_DEPTH 0x3 #define DRM_CAP_DUMB_PREFER_SHADOW 0x4 +#define DRM_CAP_PRIME 0x5 +#define DRM_CAP_TIMESTAMP_MONOTONIC 0x6 #include "drm_mode.h" Modified: stable/9/sys/dev/drm2/drmP.h ============================================================================== --- stable/9/sys/dev/drm2/drmP.h Sun Feb 9 19:36:27 2014 (r261672) +++ stable/9/sys/dev/drm2/drmP.h Sun Feb 9 19:54:39 2014 (r261673) @@ -1005,6 +1005,7 @@ extern int drm_debug_flag; extern int drm_notyet_flag; extern unsigned int drm_vblank_offdelay; extern unsigned int drm_timestamp_precision; +extern unsigned int drm_timestamp_monotonic; /* Device setup support (drm_drv.c) */ int drm_probe(device_t kdev, drm_pci_id_list_t *idlist); Modified: stable/9/sys/dev/drm2/drm_drv.c ============================================================================== --- stable/9/sys/dev/drm2/drm_drv.c Sun Feb 9 19:36:27 2014 (r261672) +++ stable/9/sys/dev/drm2/drm_drv.c Sun Feb 9 19:54:39 2014 (r261673) @@ -56,6 +56,12 @@ int drm_notyet_flag = 0; unsigned int drm_vblank_offdelay = 5000; /* Default to 5000 msecs. */ unsigned int drm_timestamp_precision = 20; /* Default to 20 usecs. */ +/* + * Default to use monotonic timestamps for wait-for-vblank and page-flip + * complete events. + */ +unsigned int drm_timestamp_monotonic = 1; + static int drm_load(struct drm_device *dev); static void drm_unload(struct drm_device *dev); static drm_pci_id_list_t *drm_find_description(int vendor, int device, Modified: stable/9/sys/dev/drm2/drm_ioctl.c ============================================================================== --- stable/9/sys/dev/drm2/drm_ioctl.c Sun Feb 9 19:36:27 2014 (r261672) +++ stable/9/sys/dev/drm2/drm_ioctl.c Sun Feb 9 19:54:39 2014 (r261673) @@ -250,6 +250,9 @@ int drm_getcap(struct drm_device *dev, v case DRM_CAP_DUMB_PREFER_SHADOW: req->value = dev->mode_config.prefer_shadow; break; + case DRM_CAP_TIMESTAMP_MONOTONIC: + req->value = drm_timestamp_monotonic; + break; default: return EINVAL; }