summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hilber <sparkie@lowbyte.de>2009-05-27 06:23:20 +0200
committerPaul Menzel <paulepanter@users.sourceforge.net>2009-06-02 17:03:39 +0200
commit5c5d411df8afce61409dd086400f0290d0d47ce2 (patch)
tree00a47e37a86500d844f75e7be873faf05d1a205c
parent8391071547044fa296e5a9fb8ed3184744eb742e (diff)
downloadxf86-video-intel-frc-5c5d411df8afce61409dd086400f0290d0d47ce2.tar.gz
xf86-video-intel-frc-5c5d411df8afce61409dd086400f0290d0d47ce2.tar.bz2
Add new scheduling option.
- new scheduling option added Signed-off-by: Thomas Hilber <sparkie@lowbyte.de> Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net>
-rw-r--r--src/i830_driver.c16
-rw-r--r--src/i830_video.c2
2 files changed, 16 insertions, 2 deletions
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 498e93c5..85aaba96 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -201,6 +201,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <sys/mman.h>
#endif
#include "sys/resource.h"
+#include <sched.h>
#ifdef INTEL_XVMC
#define _INTEL_XVMC_SERVER_
@@ -2032,7 +2033,20 @@ I830PreInit(ScrnInfoPtr pScrn, int flags)
}
if (pI830->sync_fields) {
if (pI830->SchedPrio != ~0) {
- if (pI830->SchedPrio) {
+ if (pI830->SchedPrio < -20) {
+ struct sched_param sched;
+
+ sched.sched_priority = -pI830->SchedPrio;
+ if (sched_setscheduler(0, SCHED_FIFO, &sched)) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "failed to set SCHED_FIFO priority as requested: %s\n", strerror(errno));
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "set SCHED_FIFO priority to (policy %d/ priority %d) as requested\n",
+ sched_getscheduler(0),
+ sched_getparam(0, &sched) ? ~0 : sched.sched_priority);
+ }
+ } else if (pI830->SchedPrio) {
if (setpriority(PRIO_PROCESS, 0, pI830->SchedPrio)) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"failed to set scheduling priority as requested: %s\n", strerror(errno));
diff --git a/src/i830_video.c b/src/i830_video.c
index b97abfe7..30d89884 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -3211,7 +3211,7 @@ vga_sync_fields(pI830)
if (abs(vbl_usec - vbl_usec_prev) > SYF_WARN_RANGE) {
log_graph(vbl_usec - vbl_usec_prev, '%');
}
- if (abs(vbl_usec - SYF_PAL_FIELD_CYCLE) > SYF_WARN_RANGE) {
+ if (abs(vbl_usec - SYF_SYNC_POINT) > SYF_WARN_RANGE) {
log_graph(vbl_usec - SYF_SYNC_POINT, ':');
}
}