summaryrefslogtreecommitdiff
path: root/driver/xf86-video-siliconmotion
diff options
context:
space:
mode:
Diffstat (limited to 'driver/xf86-video-siliconmotion')
-rw-r--r--driver/xf86-video-siliconmotion/ChangeLog35
-rw-r--r--driver/xf86-video-siliconmotion/compile2
-rw-r--r--driver/xf86-video-siliconmotion/configure20
-rw-r--r--driver/xf86-video-siliconmotion/configure.ac2
-rw-r--r--driver/xf86-video-siliconmotion/src/compat-api.h5
-rw-r--r--driver/xf86-video-siliconmotion/src/smi.h1
-rw-r--r--driver/xf86-video-siliconmotion/src/smi_driver.c2
-rw-r--r--driver/xf86-video-siliconmotion/src/smi_exa.c4
-rw-r--r--driver/xf86-video-siliconmotion/src/smi_xaa.c18
9 files changed, 67 insertions, 22 deletions
diff --git a/driver/xf86-video-siliconmotion/ChangeLog b/driver/xf86-video-siliconmotion/ChangeLog
index 6d8e7c88f..12dd31fbe 100644
--- a/driver/xf86-video-siliconmotion/ChangeLog
+++ b/driver/xf86-video-siliconmotion/ChangeLog
@@ -1,3 +1,38 @@
+commit d269962724b57e21142c9e1c6631a45a46d87b47
+Author: Matt Turner <mattst88@gmail.com>
+Date: Tue Jan 17 14:44:51 2017 -0800
+
+ xf86-video-siliconmotion 1.7.9
+
+ Signed-off-by: Matt Turner <mattst88@gmail.com>
+
+commit e67f3949648c20e16ac756ae28ea4a2b4a1d0f4c
+Author: Adam Jackson <ajax@redhat.com>
+Date: Tue Jul 19 10:03:56 2016 -0400
+
+ Adapt Block/WakeupHandler signature for ABI 23
+
+ Signed-off-by: Adam Jackson <ajax@redhat.com>
+
+commit 647e5a93d9387e3bc8d2c8569e3a5f996acfb169
+Author: Thomas Klausner <wiz@NetBSD.org>
+Date: Mon Sep 14 18:36:32 2015 +0200
+
+ Use X11/Xarch.h for endian detection.
+
+ Reviewed-by: Connor Behan <connor.behan@gmail.com>
+
+commit a4e406c20ab0590214f779c2319ac7b92594a606
+Author: Connor Behan <connor.behan@gmail.com>
+Date: Sun Aug 23 11:46:37 2015 -0400
+
+ Check for drawables before compositing
+
+ This should prevent a crash when something like Cairo tries to composite
+ a solid picture.
+
+ Signed-off-by: Connor Behan <connor.behan@gmail.com>
+
commit 70d3d3a384651e5d22840a0de8644eb8b10c5775
Author: Julien Cristau <jcristau@debian.org>
Date: Sat May 9 16:56:51 2015 +0200
diff --git a/driver/xf86-video-siliconmotion/compile b/driver/xf86-video-siliconmotion/compile
index 531136b06..a85b723c7 100644
--- a/driver/xf86-video-siliconmotion/compile
+++ b/driver/xf86-video-siliconmotion/compile
@@ -3,7 +3,7 @@
scriptversion=2012-10-14.11; # UTC
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
diff --git a/driver/xf86-video-siliconmotion/configure b/driver/xf86-video-siliconmotion/configure
index a03eeaa4c..76f23c209 100644
--- a/driver/xf86-video-siliconmotion/configure
+++ b/driver/xf86-video-siliconmotion/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for xf86-video-siliconmotion 1.7.8.
+# Generated by GNU Autoconf 2.69 for xf86-video-siliconmotion 1.7.9.
#
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/siliconmotion>.
#
@@ -591,8 +591,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='xf86-video-siliconmotion'
PACKAGE_TARNAME='xf86-video-siliconmotion'
-PACKAGE_VERSION='1.7.8'
-PACKAGE_STRING='xf86-video-siliconmotion 1.7.8'
+PACKAGE_VERSION='1.7.9'
+PACKAGE_STRING='xf86-video-siliconmotion 1.7.9'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/siliconmotion'
PACKAGE_URL=''
@@ -1366,7 +1366,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures xf86-video-siliconmotion 1.7.8 to adapt to many kinds of systems.
+\`configure' configures xf86-video-siliconmotion 1.7.9 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1437,7 +1437,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of xf86-video-siliconmotion 1.7.8:";;
+ short | recursive ) echo "Configuration of xf86-video-siliconmotion 1.7.9:";;
esac
cat <<\_ACEOF
@@ -1569,7 +1569,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-xf86-video-siliconmotion configure 1.7.8
+xf86-video-siliconmotion configure 1.7.9
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1984,7 +1984,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by xf86-video-siliconmotion $as_me 1.7.8, which was
+It was created by xf86-video-siliconmotion $as_me 1.7.9, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -10458,7 +10458,7 @@ fi
# Define the identity of the package.
PACKAGE='xf86-video-siliconmotion'
- VERSION='1.7.8'
+ VERSION='1.7.9'
cat >>confdefs.h <<_ACEOF
@@ -18766,7 +18766,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by xf86-video-siliconmotion $as_me 1.7.8, which was
+This file was extended by xf86-video-siliconmotion $as_me 1.7.9, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -18832,7 +18832,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-xf86-video-siliconmotion config.status 1.7.8
+xf86-video-siliconmotion config.status 1.7.9
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/driver/xf86-video-siliconmotion/configure.ac b/driver/xf86-video-siliconmotion/configure.ac
index 431a5648b..ad388e177 100644
--- a/driver/xf86-video-siliconmotion/configure.ac
+++ b/driver/xf86-video-siliconmotion/configure.ac
@@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xf86-video-siliconmotion],
- [1.7.8],
+ [1.7.9],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/siliconmotion],
[xf86-video-siliconmotion])
diff --git a/driver/xf86-video-siliconmotion/src/compat-api.h b/driver/xf86-video-siliconmotion/src/compat-api.h
index 6bc946fd6..89976e41c 100644
--- a/driver/xf86-video-siliconmotion/src/compat-api.h
+++ b/driver/xf86-video-siliconmotion/src/compat-api.h
@@ -75,8 +75,13 @@
#define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
+#if ABI_VIDEODRV_VERSION >= SET_ABI_VERSION(23, 0)
+#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout
+#define BLOCKHANDLER_ARGS arg, pTimeout
+#else
#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
+#endif
#define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
#define CLOSE_SCREEN_ARGS pScreen
diff --git a/driver/xf86-video-siliconmotion/src/smi.h b/driver/xf86-video-siliconmotion/src/smi.h
index 5e4489257..2742c8d9e 100644
--- a/driver/xf86-video-siliconmotion/src/smi.h
+++ b/driver/xf86-video-siliconmotion/src/smi.h
@@ -34,6 +34,7 @@ authorization from the XFree86 Project and Silicon Motion.
#include <string.h>
#include <stdio.h>
+#include <X11/Xarch.h>
#include "xf86.h"
#include "xf86_OSproc.h"
diff --git a/driver/xf86-video-siliconmotion/src/smi_driver.c b/driver/xf86-video-siliconmotion/src/smi_driver.c
index 2568637ae..8949caecf 100644
--- a/driver/xf86-video-siliconmotion/src/smi_driver.c
+++ b/driver/xf86-video-siliconmotion/src/smi_driver.c
@@ -487,7 +487,7 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags)
if (pScrn->depth > 8) {
/* The defaults are OK for us */
rgb zeros = {0, 0, 0};
-#if __BYTE_ORDER == __BIG_ENDIAN
+#if X_BYTE_ORDER == X_BIG_ENDIAN
rgb masks = {0xff00,0xff0000,0xff000000};
#else
rgb masks = {0, 0, 0};
diff --git a/driver/xf86-video-siliconmotion/src/smi_exa.c b/driver/xf86-video-siliconmotion/src/smi_exa.c
index 70298ed92..67a6fdde5 100644
--- a/driver/xf86-video-siliconmotion/src/smi_exa.c
+++ b/driver/xf86-video-siliconmotion/src/smi_exa.c
@@ -623,6 +623,10 @@ SMI_PrepareComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture, Pi
{
ScrnInfoPtr pScrn = xf86ScreenToScrn(pDst->drawable.pScreen);
SMIPtr pSmi = SMIPTR(pScrn);
+
+ if (!pSrc) return FALSE;
+ if (!pSrcPicture->pDrawable) return FALSE;
+
int src_pitch = exaGetPixmapPitch(pSrc) / (pSrc->drawable.bitsPerPixel >> 3);
int dst_pitch = exaGetPixmapPitch(pDst) / (pDst->drawable.bitsPerPixel >> 3);
diff --git a/driver/xf86-video-siliconmotion/src/smi_xaa.c b/driver/xf86-video-siliconmotion/src/smi_xaa.c
index a878098f7..cd861a171 100644
--- a/driver/xf86-video-siliconmotion/src/smi_xaa.c
+++ b/driver/xf86-video-siliconmotion/src/smi_xaa.c
@@ -211,7 +211,7 @@ SMI_SetupForScreenToScreenCopy(ScrnInfoPtr pScrn, int xdir, int ydir, int rop,
ENTER();
DEBUG("xdir=%d ydir=%d rop=%02X trans=%08X\n", xdir, ydir, rop, trans);
-#if __BYTE_ORDER == __BIG_ENDIAN
+#if X_BYTE_ORDER == X_BIG_ENDIAN
if (pScrn->depth >= 24)
trans = lswapl(trans);
#endif
@@ -296,7 +296,7 @@ SMI_SetupForSolidFill(ScrnInfoPtr pScrn, int color, int rop,
| SMI_BITBLT
| SMI_START_ENGINE;
-#if __BYTE_ORDER == __BIG_ENDIAN
+#if X_BYTE_ORDER == X_BIG_ENDIAN
if (pScrn->depth >= 24) {
/* because of the BGR values are in the MSB bytes,
* 'white' is not possible and -1 has a different meaning.
@@ -408,7 +408,7 @@ SMI_SetupForCPUToScreenColorExpandFill(ScrnInfoPtr pScrn, int fg, int bg,
ENTER();
DEBUG("fg=%08X bg=%08X rop=%02X\n", fg, bg, rop);
-#if __BYTE_ORDER == __BIG_ENDIAN
+#if X_BYTE_ORDER == X_BIG_ENDIAN
if (pScrn->depth >= 24) {
/* see remark elswere */
if (fg == 0x7FFFFFFF)
@@ -431,7 +431,7 @@ SMI_SetupForCPUToScreenColorExpandFill(ScrnInfoPtr pScrn, int fg, int bg,
WRITE_DPR(pSmi, 0x18, ~fg);
WRITE_DPR(pSmi, 0x20, fg);
} else {
-#if __BYTE_ORDER == __BIG_ENDIAN
+#if X_BYTE_ORDER == X_BIG_ENDIAN
if (bg == 0xFFFFFF7F)
bg = -1;
#endif
@@ -498,7 +498,7 @@ SMI_SetupForMono8x8PatternFill(ScrnInfoPtr pScrn, int patx, int paty, int fg,
DEBUG("patx=%08X paty=%08X fg=%08X bg=%08X rop=%02X\n",
patx, paty, fg, bg, rop);
-#if __BYTE_ORDER == __BIG_ENDIAN
+#if X_BYTE_ORDER == X_BIG_ENDIAN
if (pScrn->depth >= 24) {
if (fg == 0x7FFFFFFF)
fg = -1;
@@ -524,7 +524,7 @@ SMI_SetupForMono8x8PatternFill(ScrnInfoPtr pScrn, int patx, int paty, int fg,
WRITE_DPR(pSmi, 0x34, patx);
WRITE_DPR(pSmi, 0x38, paty);
} else {
-#if __BYTE_ORDER == __BIG_ENDIAN
+#if X_BYTE_ORDER == X_BIG_ENDIAN
if (bg == 0xFFFFFF7F)
bg = -1;
#endif
@@ -582,7 +582,7 @@ SMI_SetupForColor8x8PatternFill(ScrnInfoPtr pScrn, int patx, int paty, int rop,
| SMI_COLOR_PATTERN
| SMI_START_ENGINE;
-#if __BYTE_ORDER == __BIG_ENDIAN
+#if X_BYTE_ORDER == X_BIG_ENDIAN
if (pScrn->depth >= 24)
trans_color = lswapl(trans_color);
#endif
@@ -666,7 +666,7 @@ SMI_SetupForImageWrite(ScrnInfoPtr pScrn, int rop, unsigned int planemask,
DEBUG("rop=%02X trans_color=%08X bpp=%d depth=%d\n",
rop, trans_color, bpp, depth);
-#if __BYTE_ORDER == __BIG_ENDIAN
+#if X_BYTE_ORDER == X_BIG_ENDIAN
if (pScrn->depth >= 24)
trans_color = lswapl(trans_color);
#endif
@@ -675,7 +675,7 @@ SMI_SetupForImageWrite(ScrnInfoPtr pScrn, int rop, unsigned int planemask,
| SMI_START_ENGINE;
if (trans_color != -1) {
-#if __BYTE_ORDER == __BIG_ENDIAN
+#if X_BYTE_ORDER == X_BIG_ENDIAN
if (trans_color == 0xFFFFFF7F)
trans_color = -1;
#endif