rpms/xorg-x11-drv-psb/F-13 01_disable_lid_timer.patch, NONE, 1.1 poulsbo-modprobe.conf, NONE, 1.1 psb-config-display, NONE, 1.1 psb-init, NONE, 1.1 xorg-x11-drv-psb-0.31.0-ignoreacpi.patch, NONE, 1.1 xorg-x11-drv-psb-0.31.0-libdrm.patch, NONE, 1.1 xorg-x11-drv-psb-0.31.0-stubs.patch, NONE, 1.1 xorg-x11-drv-psb-0.31.0-xserver17.patch, NONE, 1.1 xorg-x11-drv-psb-0.32.0-exa_header.patch, NONE, 1.1 xorg-x11-drv-psb-0.32.0-mixed.patch, NONE, 1.1 xorg-x11-drv-psb-0.32.0-xv.patch, NONE, 1.1 xorg-x11-drv-psb.spec, NONE, 1.1 xserver-xorg-video-psb-0.31.0-assert.patch, NONE, 1.1 xserver-xorg-video-psb-0.31.0-comment_unused.patch, NONE, 1.1 xserver-xorg-video-psb-0.31.0-loader.patch, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2

Adam Williamson adamwill at rpmfusion.org
Fri Jul 16 00:49:20 CEST 2010


Author: adamwill

Update of /cvs/nonfree/rpms/xorg-x11-drv-psb/F-13
In directory se02.es.rpmfusion.net:/tmp/cvs-serv3704/F-13

Modified Files:
	.cvsignore sources 
Added Files:
	01_disable_lid_timer.patch poulsbo-modprobe.conf 
	psb-config-display psb-init 
	xorg-x11-drv-psb-0.31.0-ignoreacpi.patch 
	xorg-x11-drv-psb-0.31.0-libdrm.patch 
	xorg-x11-drv-psb-0.31.0-stubs.patch 
	xorg-x11-drv-psb-0.31.0-xserver17.patch 
	xorg-x11-drv-psb-0.32.0-exa_header.patch 
	xorg-x11-drv-psb-0.32.0-mixed.patch 
	xorg-x11-drv-psb-0.32.0-xv.patch xorg-x11-drv-psb.spec 
	xserver-xorg-video-psb-0.31.0-assert.patch 
	xserver-xorg-video-psb-0.31.0-comment_unused.patch 
	xserver-xorg-video-psb-0.31.0-loader.patch 
Log Message:
- initial import to F-13 branch (only 2D working for now)


01_disable_lid_timer.patch:
 psb_driver.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE 01_disable_lid_timer.patch ---
diff -Nurp xserver-xorg-video-psb-0.30.0+repack.orig/src/psb_driver.c xserver-xorg-video-psb-0.30.0+repack/src/psb_driver.c
--- xserver-xorg-video-psb-0.30.0+repack.orig/src/psb_driver.c	2009-04-17 00:00:46.000000000 +0200
+++ xserver-xorg-video-psb-0.30.0+repack/src/psb_driver.c	2009-08-06 18:13:43.000000000 +0200
@@ -753,7 +753,7 @@ psbInitOutputs(ScrnInfoPtr pScrn)
 
     xf86GetOptValBool(pPsb->options, OPTION_NOPANEL, &pPsb->noPanel);
 
-    pPsb->lidTimer = TRUE;
+    pPsb->lidTimer = FALSE;
     xf86GetOptValBool(pPsb->options, OPTION_LIDTIMER, &pPsb->lidTimer);
 
     xf86GetOptValBool(pPsb->options, OPTION_NOFITTING, &pPsb->noFitting);


--- NEW FILE poulsbo-modprobe.conf ---
alias pci:v00008086d00008108sv*sd*bc*sc*i* psb
alias pci:v00008086d00008109sv*sd*bc*sc*i* psb



--- NEW FILE psb-config-display ---
#!/usr/bin/python -tt
# -*- coding: UTF-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 only
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# Copyright 2003, 2004 Peter Backlund
# Copyright 2004 Thorsten Leemhuis
# Copyright 2006 Van Assche Alphonse
# Copyright 2006, 2007 Stewart Adam

import string
import os
import sys

from livnaConfigDisplay.const import *
from livnaConfigDisplay.const import _

import livnaConfigDisplay.ConfigDisplay
from livnaConfigDisplay.GlxConfig import *
from livnaConfigDisplay import Utils
from livnaConfigDisplay.ConfigFile import ConfigFile

class psbConfigDisplay(GlxConfig):
    def __init__(self):
        GlxConfig.__init__(self)
        self.majorVendor = 'psb'
        self.ldconf = LD_CONF_FILE % (self.majorVendor)
        try:
            self.doAllBackups()
        except livnaConfigDisplayError, (bkupErrMsg):
            print bkupErrMsg
            sys.exit(1)
        self.xconfig, self.xconfigpath = self.loadXconfig()
        self.config = ConfigFile(STATUS_FILE)
        self.TOP_MOD_DIR = self.getModTopDir()

        # finally, run arg checks.
        self.run()


    def enable(self, isAutoConfigure = True):
        # Backup the file before make any change.
        currentDriver = self.getDriver()
        # Already enabled?
        if currentDriver == self.majorVendor:
            print _('Driver already enabled.')
            return
        # 'remembering' magic's in here.
        self.config.setOldDriver(currentDriver)
        #currentDriver = self.config.getOldDriver()
        self.toggleDriver(currentDriver, self.majorVendor)
        # Improves speed and reliability
        self.addOption(self.majorVendor,"MigrationHeuristic", "greedy")
        Utils.writeXorgConf(self.xconfig, self.xconfigpath)
        # We have to read saved status file to restore the Xorg configuration. 
        self.restoreconf()


    def disable(self, isAutoConfigure = True):
        # Check if it's already disabled
        if self.getDriver() != self.majorVendor:
            print _('Driver already disabled.')
            return
        # Backup the file before make any change.
        prevDriver = self.config.getOldDriver()
        if prevDriver == self.majorVendor:
            print _('Will not allow reverting from driver \'%s\' to \'%s\'.') % (self.majorVendor, self.majorVendor)
            print _('Using the \'vesa\' driver instead.')
            prevDriver = "vesa"
            self.config.setOldDriver("vesa")
        self.removeOption(self.majorVendor,"MigrationHeuristic")
        self.toggleDriver(self.majorVendor, prevDriver)
        Utils.writeXorgConf(self.xconfig, self.xconfigpath)
        # We have to save the status file so it can be restored later
        self.storeconf()
        # And return to the Fedora default.
        self.enableAiglx()

    def printUsage(self):
        print _("Usage: ") + self.majorVendor + _("-config-display [ enable|disable ]")

    def run(self):
        # Check number of arguments
        # arg = action
        if len(sys.argv) == 2:
            arg = sys.argv[1]
        else:
            print _('Wrong number of arguments')
            self.printUsage()
            sys.exit(1)
        # Check value of argument
        if arg.lower() != "enable" and arg.lower() != "disable":
            print _('Invalid command: %s') % arg.lower()
            self.printUsage()
            sys.exit(1)
        try:
            if arg == "enable":
                if self.getActive():
                    self.enable()
                else:
                    print _('livna-config-display\'s `active\' state is False - Exiting')
            elif arg == "disable":
                if self.getActive():
                    self.disable()
        except:
            raise # Uncomment me to show the real error
            print MSG_CONF_APPLY_ERROR
            try:
                self.doAllRestores()
                sys.exit(1)
            except livnaConfigDisplayError, (bkupErrMsg):
                #raise # Uncomment me to show the real error
                print MSG_CONF_RESTORE_ERROR + '\n' + MSG_TRACEBACK % (str(errMsg)) + '\n\n' + str(bkupErrMsg)
                sys.exit(1)

app = psbConfigDisplay()


--- NEW FILE psb-init ---
#!/bin/sh
#
# chkconfig:    2345 8 92
# description:  This script will check if a psb kernel module is present for\
#               the running kernel and modify the xorg.conf to  the appropriate\
#               configuration.

# Source function library.
. /etc/rc.d/init.d/functions

name='psb'
exec="/usr/sbin/$name-config-display"
prog="`basename $exec`"
lockfile="/var/lock/subsys/$name"

RETVAL=0
modname="psb.ko"
modpath="/lib/modules/$(uname -r)"
# Default to no module
module="noneWithSomeCrazyNameSoItsNeverFound"
# If one exists, then use it.
if test -e "${modpath}/extra/${modname}";then
    module="${modpath}/extra/${modname}"
elif test -e "${modpath}/extra/psb/${modname}";then
    module="${modpath}/extra/psb/${modname}"
elif test -e "${modpath}/kernel/drivers/video/psb/${modname}";then
    module="${modpath}/kernel/drivers/video/psb/${modname}"
fi


# Try to modify the below the least possible. If you need to change something, try
# using the variables above first, as most of the program control is based on
# the variables above. If something really needs to be changed, try to make
# the change in all the drivers for the sake of consistency.

# We shouldn't use lock files anymore because the lock file
# doesn't mean a driver is disabled or enabled. For example, we start()
# at boot and enable the driver. start() makes a lock file. We stop() on
# shutdown, which removes the lock file. But what if the user ran *config-display
# manually? Or if we don't `*config-display disable` in stop()?

start() {
    if action $"Checking for module $modname:" test -f $module;then
        action $"Enabling the $name driver:" $exec enable
        RETVAL=$?
    else
        echo -en $"$modname for kernel $(uname -r) was not found." && echo_warning;echo -en '\n'
        echo -en $"The $name driver will not be enabled until one is found." && echo_warning;echo -en '\n'
        $exec disable
        RETVAL=1
    fi
    if [ "$RETVAL" -eq "0" ];then
        #touch $lockfile
        # this is a nothing assignment so that bash doesn't complain.
        RETVAL=0
    else
        # Let them read the errors or warnings
        sleep 3
    fi
    return
}

stop() {
    #action $"Disabling the $name driver:" $exec disable
    #RETVAL=$?
    RETVAL=0
    #if [ "$RETVAL" -eq 0 ];then
    #    rm -f $lockfile
    #fi
    return
}

restart() {
    stop
    start
}

reload() {
    restart
}

status() {
    #if [ -e $lockfile ];then
        if [ -f $module ] && lsmod | grep ^${modname%%.ko} &>/dev/null ;then
            echo $"$modname for kernel $(uname -r) was found."
            echo $"The driver is enabled."
        else
            echo $"$modname for kernel $(uname -r) was not found."
            echo $"The $name driver cannot be enabled until one is found."
        fi
    #else
    #    echo $"The $name driver has not been enabled."
    #fi
    RETVAL=0
}

fdrstatus() {
    status $prog
}

case "$1" in
    start|stop|restart|reload)
        $1
    ;;
    status)
        fdrstatus
    ;;
    condrestart)
        restart
    ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
        exit 1
    ;;
esac

exit $RETVAL

xorg-x11-drv-psb-0.31.0-ignoreacpi.patch:
 psb_driver.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE xorg-x11-drv-psb-0.31.0-ignoreacpi.patch ---
--- xserver-xorg-video-psb-0.31.0/src/psb_driver.c	2009-04-17 11:22:26.000000000 -0700
+++ xserver-xorg-video-psb-0.31.0/src/psb_driver.c.new	2009-08-14 15:41:35.047596131 -0700
@@ -909,7 +909,7 @@
     xf86DrvMsg(pScrn->scrnIndex, from, "Use %s cursor.\n",
 	       pPsb->sWCursor ? "software" : "hardware");
 
-    pPsb->ignoreACPI = FALSE;
+    pPsb->ignoreACPI = TRUE;
     from =
 	xf86GetOptValBool(pPsb->options, OPTION_IGNORE_ACPI,
 			  &pPsb->ignoreACPI)

xorg-x11-drv-psb-0.31.0-libdrm.patch:
 configure.ac |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE xorg-x11-drv-psb-0.31.0-libdrm.patch ---
--- xserver-xorg-video-psb-0.31.0/configure.ac	2009-04-17 11:22:24.000000000 -0700
+++ xserver-xorg-video-psb-0.31.0/configure.ac.new	2009-08-11 09:26:55.384720283 -0700
@@ -99,7 +99,7 @@
 
 AM_CONDITIONAL(DRI, test x$DRI = xyes)
 if test "$DRI" = yes; then
-        PKG_CHECK_MODULES(DRI, [libdrm >= 2.0 xf86driproto])
+        PKG_CHECK_MODULES(DRI, [libdrm-poulsbo >= 2.0 xf86driproto])
         AC_DEFINE(XF86DRI,1,[Enable DRI driver support])
         AC_DEFINE(XF86DRI_DEVEL,1,[Enable developmental DRI driver support])
 fi

xorg-x11-drv-psb-0.31.0-stubs.patch:
 psb_driver.c |   13 +++++++++++++
 1 file changed, 13 insertions(+)

--- NEW FILE xorg-x11-drv-psb-0.31.0-stubs.patch ---
diff -p -up xserver-xorg-video-psb-0.31.0/src/psb_driver.c.orig xserver-xorg-video-psb-0.31.0/src/psb_driver.c
--- xserver-xorg-video-psb-0.31.0/src/psb_driver.c.orig	2010-04-30 08:58:06.798598457 +0200
+++ xserver-xorg-video-psb-0.31.0/src/psb_driver.c	2010-04-30 09:03:04.186597975 +0200
@@ -643,6 +643,19 @@ psbPreInitDRI(ScrnInfoPtr pScrn)
     return TRUE;
 }
 
+/* removed in Xserver 1.7, add it again so that proprietary Xpsb can be loaded */
+void
+xf86AddModuleInfo(pointer info, pointer module)
+{
+}
+
+/* removed in mesa, add it again so that proprietary Xpsb can be loaded */
+typedef void (*_glapi_warning_func)(void *ctx, const char *str, ...);
+void
+_glapi_set_warning_func( _glapi_warning_func func )
+{
+}
+
 static Bool
 psbPreInitXpsb(ScrnInfoPtr pScrn)
 {

xorg-x11-drv-psb-0.31.0-xserver17.patch:
 Xpsb.h       |    2 ++
 i830_i2c.c   |    2 ++
 psb_driver.c |    4 +++-
 psb_driver.h |    3 ++-
 psb_video.c  |    2 ++
 5 files changed, 11 insertions(+), 2 deletions(-)

--- NEW FILE xorg-x11-drv-psb-0.31.0-xserver17.patch ---
--- xserver-xorg-video-psb-0.31.0/src/Xpsb.h	2009-04-17 11:22:26.000000000 -0700
+++ xserver-xorg-video-psb-0.31.0/src/Xpsb.h.new	2009-08-28 09:24:16.333677591 -0700
@@ -38,7 +38,9 @@
 #include "xf86drm.h"
 #include "xf86.h"
 #include "xf86_OSproc.h"
+#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
 #include "xf86Resources.h"
+#endif
 #include "compiler.h"
 
 #define XPSB_VOFFSET_X 0
--- xserver-xorg-video-psb-0.31.0/src/psb_driver.h	2009-04-17 11:22:25.000000000 -0700
+++ xserver-xorg-video-psb-0.31.0/src/psb_driver.h.new	2009-08-28 09:24:11.822679667 -0700
@@ -34,7 +34,6 @@
 
 #include "xf86.h"
 #include "xf86_OSproc.h"
-#include "xf86Resources.h"
 #include "compiler.h"
 #include "xf86PciInfo.h"
 #include "vgaHW.h"
@@ -46,8 +45,10 @@
 #include "xf86int10.h"
 #include "mibank.h"
 #include "dgaproc.h"
+#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
 #include "xf86Resources.h"
 #include "xf86RAC.h"
+#endif
 #include "fb.h"
 #include "xaa.h"
 #include "xf86xv.h"
--- xserver-xorg-video-psb-0.31.0/src/i830_i2c.c	2009-04-17 11:22:24.000000000 -0700
+++ xserver-xorg-video-psb-0.31.0/src/i830_i2c.c.new	2009-08-28 09:33:06.789804272 -0700
@@ -31,8 +31,10 @@
 
 #include "xf86.h"
 #include "xf86_OSproc.h"
+#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
 #include "xf86Resources.h"
 #include "xf86RAC.h"
+#endif
 #include "xf86cmap.h"
 #include "compiler.h"
 #include "mibstore.h"
--- xserver-xorg-video-psb-0.31.0/src/psb_video.c	2009-04-17 11:22:26.000000000 -0700
+++ xserver-xorg-video-psb-0.31.0/src/psb_video.c.new	2009-08-28 09:35:03.874805663 -0700
@@ -36,7 +36,9 @@
 
 #include "xf86.h"
 #include "xf86_OSproc.h"
+#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
 #include "xf86Resources.h"
+#endif
 #include "compiler.h"
 
 #include "xf86xv.h"
--- xserver-xorg-video-psb-0.31.0/src/psb_driver.c	2009-04-17 11:22:26.000000000 -0700
+++ xserver-xorg-video-psb-0.31.0/src/psb_driver.c.new	2009-08-28 10:30:32.325553685 -0700
@@ -317,7 +317,7 @@
  * This data is accessed by the loader.  The name must be the module name
  * followed by "ModuleData".
  */
-XF86ModuleData psbModuleData = { &psbVersionRec, psbSetup, NULL };
+_X_EXPORT XF86ModuleData psbModuleData = { &psbVersionRec, psbSetup, NULL };
 
 static pointer
 psbSetup(pointer Module, pointer Options, int *ErrorMajor, int *ErrorMinor)
@@ -1023,11 +1023,13 @@
 
     PSB_DEBUG(scrnIndex, 3, "Initializing device\n");
 
+#ifndef XSERVER_LIBPCIACCESS
     if (xf86RegisterResources(pDevice->pEnt->index, NULL, ResExclusive)) {
 	xf86DrvMsg(scrnIndex, X_ERROR,
 		   "Could not registrer device. Resource conflict.\n");
 	return FALSE;
     }
+#endif
 
     if (!xf86LoadSubModule(pDevice->pScrns[0], "vgahw"))
 	return FALSE;

xorg-x11-drv-psb-0.32.0-exa_header.patch:
 psb_accel.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE xorg-x11-drv-psb-0.32.0-exa_header.patch ---
--- xserver-xorg-video-psb-0.32.0/src/psb_accel.h	2009-05-11 18:37:53.000000000 -0700
+++ xserver-xorg-video-psb-0.32.0/src/psb_accel.h.new	2010-07-09 12:15:36.173298815 -0700
@@ -35,7 +35,7 @@
 #define _PSB_ACCEL_H_
 
 #include <xf86.h>
-#include "../exa/exa.h"
+#include "exa.h"
 #include "psb_buffers.h"
 #include "Xpsb.h"
 

xorg-x11-drv-psb-0.32.0-mixed.patch:
 psb_accel.c |   12 ++++++++++++
 1 file changed, 12 insertions(+)

--- NEW FILE xorg-x11-drv-psb-0.32.0-mixed.patch ---
--- xserver-xorg-video-psb-0.32.1/src/psb_accel.c.orig	2010-07-04 19:27:48.691227698 +0200
+++ xserver-xorg-video-psb-0.32.1/src/psb_accel.c	2010-07-04 19:27:15.338230809 +0200
@@ -308,6 +308,14 @@
 }
 #endif
 
+static void*
+psbExaCreatePixmap(ScreenPtr pScreen, int w, int h, int depth, int usage_hint, int bpp, int* new_pitch  )
+{
+	return NULL;
+}
+static void
+psbExaDestroyPixmap(ScreenPtr pScreen, void* driverPriv ){
+}
 static Bool
 psbExaPixmapIsOffscreen(PixmapPtr p)
 {
@@ -1313,6 +1321,7 @@
     pExa->pixmapOffsetAlign = 8;
     pExa->pixmapPitchAlign = 32 * 4;
     pExa->flags = EXA_OFFSCREEN_PIXMAPS;
+    pExa->flags |= EXA_HANDLES_PIXMAPS | EXA_MIXED_PIXMAPS;
     pExa->maxX = 2047;
     pExa->maxY = 2047;
     pExa->WaitMarker = psbExaWaitMarker;
@@ -1328,6 +1337,9 @@
     pExa->Composite = psbExaSuperComposite;
     pExa->DoneComposite = psbExaDoneComposite;
     pExa->PixmapIsOffscreen = psbExaPixmapIsOffscreen;
+	pExa->CreatePixmap = NULL;
+	pExa->CreatePixmap2 = psbExaCreatePixmap;
+	pExa->DestroyPixmap = psbExaDestroyPixmap;
     pExa->PrepareAccess = psbExaPrepareAccess;
     pExa->FinishAccess = psbExaFinishAccess;
     pExa->UploadToScreen = psbExaUploadToScreen;

xorg-x11-drv-psb-0.32.0-xv.patch:
 psb_video.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

--- NEW FILE xorg-x11-drv-psb-0.32.0-xv.patch ---
--- xserver-xorg-video-psb-0.36.0-ref/src/psb_video.c	2010-06-07 22:17:46.302760345 +0200
+++ xserver-xorg-video-psb-0.32/src/psb_video.c	2010-06-10 17:29:23.400003434 +0200
@@ -686,8 +684,13 @@
      * coordinates) to the backing pixmap.
      */
 
-    while (!psbExaGetSuperOffset(pPixmap, &pre_add, &dstBuf))
+    if(!psbExaGetSuperOffset(pPixmap, &pre_add, &dstBuf)){
 	exaMoveInPixmap(pPixmap);
+        if(!psbExaGetSuperOffset(pPixmap, &pre_add, &dstBuf)){
+             return FALSE;
+        }
+    }
+	
 
     dst.buffer = mmKernelBuf(dstBuf);
     dst.offset = pre_add;


--- NEW FILE xorg-x11-drv-psb.spec ---
%global tarball		xserver-xorg-video-psb
%global moduledir	%(pkg-config xorg-server --variable=moduledir )
%global driverdir	%{moduledir}/drivers

Summary:	Intel GMA500 (Poulsbo) video driver
Name:		xorg-x11-drv-psb
Version:	0.32.0
Release:	3%{?dist}
URL:		http://netbook-remix.archive.canonical.com/updates/pool/public/x/xserver-xorg-video-psb/
Source0:	http://netbook-remix.archive.canonical.com/updates/pool/public/x/xserver-xorg-video-psb/%{tarball}_%{version}.orig.tar.gz
# Causes psb module to be loaded when a GMA500 adapter PCI ID is found
# because the freaking module's too broken to include its own modalias
Source1:	poulsbo-modprobe.conf
# Automates X.org configuration (stolen from the NVIDIA package)
Source2:	psb-config-display
Source3:	psb-init
# Look for the variant libdrm in the right place
Patch0:		xorg-x11-drv-psb-0.31.0-libdrm.patch
# Don't do ACPI detection by default
Patch1:		xorg-x11-drv-psb-0.31.0-ignoreacpi.patch
# Patch for X server 1.7
Patch2:		xorg-x11-drv-psb-0.31.0-xserver17.patch
# From UNR: disable LidTimer option to suppress polling
Patch3:		01_disable_lid_timer.patch
# Further patches for X server 1.7 compatibility, all from Mandriva
Patch4:		xserver-xorg-video-psb-0.31.0-loader.patch
Patch5:		xserver-xorg-video-psb-0.31.0-comment_unused.patch
Patch6:		xserver-xorg-video-psb-0.31.0-assert.patch
# Adapted version of xf86AddModuleInfo.patch that also adds a mesa function
# From Ubuntu community packages
Patch7:		xorg-x11-drv-psb-0.31.0-stubs.patch
# Fix up an include of the internal exa.h rather than the public one
# Thanks Eric Piel
Patch8:		xorg-x11-drv-psb-0.32.0-exa_header.patch
# From Yves De Muyter - fix problems with using 3D and video playback
Patch9:		xorg-x11-drv-psb-0.32.0-mixed.patch
# From Yves - fix a problem with Xv
Patch10:	xorg-x11-drv-psb-0.32.0-xv.patch
License:	MIT
Group:		User Interface/X Hardware Support
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%if 0%{?fedora} > 11
ExclusiveArch:  i686
%else %if 0%{?fedora} > 10
ExclusiveArch:  i586
%else
ExclusiveArch:  i386
%endif

BuildRequires:	pkgconfig
BuildRequires:	autoconf
BuildRequires:	automake
BuildRequires:	libtool
BuildRequires:	xorg-x11-server-sdk
BuildRequires:	xorg-x11-proto-devel
BuildRequires:	libdrm-poulsbo-devel
BuildRequires:	mesa-libGL-devel
BuildRequires:	freeglut-devel

Requires:	xorg-x11-server-Xorg >= 1.1.0
Requires:	kmod-psb
Requires:	psb-firmware
Requires:	xpsb-glx
Requires:	libdrm-poulsbo
Provides:	psb-kmod-common
Requires:	livna-config-display

Requires(post):		livna-config-display
Requires(preun):	livna-config-display
Requires(post):		chkconfig
Requires(preun):	chkconfig

%description 
Video driver for the Intel GMA500 video chipset, also known as Poulsbo.
Note this driver depends on several proprietary pieces (and an
obsolete version of libdrm) to work, and is hence inappropriate for
submission to the main Fedora repositories.

%prep
%setup -q -n %{tarball}-%{version}
%patch0 -p1 -b .libdrm
%patch1 -p1 -b .ignoreacpi
%patch2 -p1 -b .xserver17
%patch3 -p1 -b .lidtimer
%patch4 -p1 -b .loader
%patch5 -p1 -b .unused
%patch6 -p1 -b .assert
%patch7 -p1 -b .addinfo
%patch8 -p1 -b .header
%patch9 -p1 -b .mixed
%patch10 -p1 -b .xv


iconv -f iso-8859-15 -t utf-8 -o man/psb.man.utf8 man/psb.man && mv man/psb.man.utf8 man/psb.man

%build
autoreconf -i
export CFLAGS="%{optflags} -fvisibility=default"
%configure --disable-static
make

%install
rm -rf %{buildroot}
%makeinstall mandir=%{_mandir} DESTDIR=%{buildroot}

# FIXME: Remove all libtool archives (*.la) from modules directory.  This
# should be fixed in upstream Makefile.am or whatever.
find %{buildroot} -regex ".*\.la$" | xargs rm -f --

mkdir -p %{buildroot}%{_sysconfdir}/modprobe.d
install -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/modprobe.d/poulsbo.conf

install -D -p -m 0755 %{SOURCE2} %{buildroot}%{_sbindir}/psb-config-display
install -D -p -m 0755 %{SOURCE3} %{buildroot}%{_initrddir}/psb

%clean
rm -rf %{buildroot}

%post
if [ "$1" -eq "1" ]; then
  # Enable driver when installing
  %{_sbindir}/psb-config-display enable &>/dev/null ||:
  # Add init script and start it
  /sbin/chkconfig --add psb ||:
  %{_initrddir}/psb start &>/dev/null ||:
fi

%preun
if [ "$1" -eq "0" ]; then
    # Disable driver on final removal
    test -f %{_sbindir}/psb-config-display && %{_sbindir}/nvidia-config-display disable &>/dev/null ||:
    %{_initrddir}/psb stop &> /dev/null ||:
    /sbin/chkconfig --del psb ||:
fi ||:

%files
%defattr(-,root,root,-)
%{driverdir}/psb_drv.so
%{driverdir}/libmm.so
%{_sbindir}/psb-config-display
%{_initrddir}/psb
%config %{_sysconfdir}/modprobe.d/poulsbo.conf
%{_mandir}/man4/*.4*

%changelog
* Thu Jul 15 2010 Adam Williamson <adamwill AT shaw DOT ca> - 0.32.0-3
- add patches from Yves de Muyter, Ubuntu community and Eric Piel for
  later X compatibility

* Fri May 21 2010 Adam Williamson <adamwill AT shaw DOT ca> - 0.32.0-2
- add several patches from Olivier Blin at Mandriva for later X compatibility

* Thu Dec 3 2009 Adam Williamson <adamwill AT shaw DOT ca> - 0.32.0-1
- newer upstream release 0.32.0 (fixes a "single SDVO jitter issue")
- add 01_disable_lid_timer.patch from UNR: disable LidTimer option
  by default to suppress polling for lid status every second

* Wed Sep 30 2009 Adam Williamson <adamwill AT shaw DOT ca> - 0.31.0-15
- change my email address in changelog to correct one for Fusion

* Fri Sep 25 2009 Adam Williamson <adamwill AT shaw DOT ca> - 0.31.0-14
- switch to requiring kmod-psb not akmod-psb now we're in rpmfusion

* Fri Aug 28 2009 Adam Williamson <adamwill AT shaw DOT ca> - 0.31.0-13
- update X server 1.7 patch with a further fix (thanks ajax)

* Fri Aug 28 2009 Adam Williamson <adamwill AT shaw DOT ca> - 0.31.0-12
- try and patch for X server 1.7 (F12)

* Mon Aug 24 2009 Adam Williamson <adamwill AT shaw DOT ca> - 0.31.0-11
- correct exclusivearch for rpmfusion buildsystem

* Thu Aug 20 2009 Adam Williamson <adamwill AT shaw DOT ca> - 0.31.0-10
- exclusivearch ix86 (there's no 64-bit poulsbo hardware)
- mark config file as config
- fix nvidia reference in comments of init script

* Wed Aug 19 2009 Adam Williamson <adamwill AT shaw DOT ca> - 0.31.0-9
- add another PCI ID to the modprobe config file

* Wed Aug 19 2009 Adam Williamson <adamwill AT shaw DOT ca> - 0.31.0-8
- fix up manpage character set

* Wed Aug 19 2009 Adam Williamson <adamwill AT shaw DOT ca> - 0.31.0-7
- drop greedy.patch as it doesn't seem to work (can't work out why)
- add xorg.conf handling initscript and script based on the ones used
  in NVIDIA and ATI packages, including setting migration heuristic
  in xorg.conf since the patch didn't work

* Fri Aug 14 2009 Adam Williamson <adamwill AT shaw DOT ca> - 0.31.0-6
- add greedy.patch: default to greedy migration heuristic (gives
  better performance for multiple testers)
- add ignoreacpi.patch: default to ignoreACPI (required to avoid X
  crashing for multiple testers)

* Tue Aug 11 2009 Adam Williamson <adamwill AT shaw DOT ca> - 0.31.0-5
- patch build to find newly relocated libdrm-poulsbo

* Mon Aug 10 2009 Adam Williamson <adamwill AT shaw DOT ca> - 0.31.0-4
- add a modprobe config file to make the kernel module auto-load (in
  this package as it's doing the job of psb-kmod-common)

* Mon Aug 10 2009 Adam Williamson <adamwill AT shaw DOT ca> - 0.31.0-3
- Require akmod-psb not kmod-psb so I don't have to keep rebuilding

* Mon Aug 10 2009 Adam Williamson <adamwill AT shaw DOT ca> - 0.31.0-2
- Begin changelog tracking


xserver-xorg-video-psb-0.31.0-assert.patch:
 mm_drm.c |    1 +
 1 file changed, 1 insertion(+)

--- NEW FILE xserver-xorg-video-psb-0.31.0-assert.patch ---
diff -p -up xserver-xorg-video-psb-0.31.0/libmm/mm_drm.c.assert xserver-xorg-video-psb-0.31.0/libmm/mm_drm.c
--- xserver-xorg-video-psb-0.31.0/libmm/mm_drm.c.assert	2010-04-26 13:40:50.000000000 +0200
+++ xserver-xorg-video-psb-0.31.0/libmm/mm_drm.c	2010-04-26 13:48:28.000000000 +0200
@@ -30,6 +30,7 @@
 #include "xf86mm.h"
 #include "xf86drm.h"
 #include "stdio.h"
+#include <assert.h>
 
 /*
  * This is a simple wrapper around libdrm's buffer interface to be used 

xserver-xorg-video-psb-0.31.0-comment_unused.patch:
 mm_drm.c       |    4 +++-
 mm_interface.h |    4 +++-
 mm_user.c      |    2 ++
 3 files changed, 8 insertions(+), 2 deletions(-)

--- NEW FILE xserver-xorg-video-psb-0.31.0-comment_unused.patch ---
diff -p -up xserver-xorg-video-psb-0.31.0/libmm/mm_drm.c.comment_unused xserver-xorg-video-psb-0.31.0/libmm/mm_drm.c
--- xserver-xorg-video-psb-0.31.0/libmm/mm_drm.c.comment_unused	2009-04-17 20:22:26.000000000 +0200
+++ xserver-xorg-video-psb-0.31.0/libmm/mm_drm.c	2010-04-26 13:40:50.000000000 +0200
@@ -277,6 +277,7 @@ createFence(struct _MMManager *mm,
     return &dFence->mf;
 }
 
+/*
 static void
 fenceDestroy(struct _MMFence *mf)
 {
@@ -288,6 +289,7 @@ fenceDestroy(struct _MMFence *mf)
     assert(ret == 0);
     free(dFence);
 }
+*/
 
 static int
 fenceEmit(struct _MMFence *mf, unsigned fence_class,
@@ -369,7 +371,7 @@ mmCreateDRM(int drmFD)
     mm->fenceSignaled = fenceSignaled;
     mm->fenceWait = fenceWait;
     mm->fenceError = NULL;
-    mm->fenceDestroy = fenceDestroy;
+    /* mm->fenceDestroy = fenceDestroy; */
     mm->destroy = destroy;
     return mm;
 
diff -p -up xserver-xorg-video-psb-0.31.0/libmm/mm_interface.h.comment_unused xserver-xorg-video-psb-0.31.0/libmm/mm_interface.h
--- xserver-xorg-video-psb-0.31.0/libmm/mm_interface.h.comment_unused	2009-04-17 20:22:26.000000000 +0200
+++ xserver-xorg-video-psb-0.31.0/libmm/mm_interface.h	2010-04-26 13:45:22.000000000 +0200
@@ -141,7 +141,7 @@ typedef struct _MMManager
     int (*fenceWait) (struct _MMFence * mf, unsigned flushMask,
 		      unsigned flags);
     unsigned (*fenceError) (struct _MMFence * mf);
-    void (*fenceDestroy) (struct _MMFence * mf);
+    /* void (*fenceDestroy) (struct _MMFence * mf); */
 } MMManager;
 
 /*
@@ -204,6 +204,7 @@ mmFenceEmit(struct _MMFence *mf, unsigne
     return mf->man->fenceEmit(mf, class, type, flags);
 }
 
+/*
 static inline void
 mmFenceUnReference(struct _MMFence **mfP)
 {
@@ -214,6 +215,7 @@ mmFenceUnReference(struct _MMFence **mfP
     }
     *mfP = NULL;
 }
+*/
 
 static inline struct _MMFence *
 mmFenceReference(struct _MMFence *mf)
diff -p -up xserver-xorg-video-psb-0.31.0/libmm/mm_user.c.comment_unused xserver-xorg-video-psb-0.31.0/libmm/mm_user.c
--- xserver-xorg-video-psb-0.31.0/libmm/mm_user.c.comment_unused	2009-04-17 20:22:26.000000000 +0200
+++ xserver-xorg-video-psb-0.31.0/libmm/mm_user.c	2010-04-26 13:05:15.000000000 +0200
@@ -77,6 +77,7 @@ typedef struct _UserSignal
     UserManager *man;
 } UserSignal;
 
+/*
 void
 mmFenceSignal(struct _MMSignal *signal, unsigned class,
 	      unsigned type, unsigned sequence, unsigned error,
@@ -148,6 +149,7 @@ mmFenceSignal(struct _MMSignal *signal,
 	type |= fence->signalPrevious;
     }
 }
+*/
 
 static int
 fenceEmit(struct _MMFence *mf, unsigned class, unsigned type, unsigned flags)

xserver-xorg-video-psb-0.31.0-loader.patch:
 psb_dri.c    |    2 --
 psb_driver.c |   13 -------------
 2 files changed, 15 deletions(-)

--- NEW FILE xserver-xorg-video-psb-0.31.0-loader.patch ---
diff -p -up xserver-xorg-video-psb-0.31.0/src/psb_dri.c.loader xserver-xorg-video-psb-0.31.0/src/psb_dri.c
--- xserver-xorg-video-psb-0.31.0/src/psb_dri.c.loader	2009-04-17 20:22:24.000000000 +0200
+++ xserver-xorg-video-psb-0.31.0/src/psb_dri.c	2010-03-12 15:03:33.000000000 +0100
@@ -548,8 +548,6 @@ psbDRIScreenInit(ScreenPtr pScreen)
 
     PSB_DEBUG(pScrn->scrnIndex, 3, "psbDRIScreenInit\n");
 
-    xf86LoaderReqSymLists(driReqSymbols, NULL);
-
     pPsb->pDRIInfo = NULL;
 
     /*
diff -p -up xserver-xorg-video-psb-0.31.0/src/psb_driver.c.loader xserver-xorg-video-psb-0.31.0/src/psb_driver.c
--- xserver-xorg-video-psb-0.31.0/src/psb_driver.c.loader	2010-03-12 13:48:52.000000000 +0100
+++ xserver-xorg-video-psb-0.31.0/src/psb_driver.c	2010-03-12 15:03:26.000000000 +0100
@@ -329,12 +329,6 @@ psbSetup(pointer Module, pointer Options
     if (!Initialised) {
 	Initialised = TRUE;
 	xf86AddDriver(&psb, Module, 0);
-	LoaderRefSymLists(fbSymbols, ddcSymbols, shadowSymbols,
-			  psbvgahwSymbols,
-#ifdef XF86DRI
-			  psbDRMSymbols, psbDRISymbols,
-#endif
-			  NULL);
 	return (pointer) TRUE;
     }
 
@@ -639,7 +633,6 @@ psbPreInitDRI(ScrnInfoPtr pScrn)
     if (!xf86LoadSubModule(pScrn, "dri"))
 	return FALSE;
 
-    xf86LoaderReqSymLists(psbDRISymbols, psbDRMSymbols, NULL);
     return TRUE;
 }
 
@@ -660,7 +653,6 @@ psbPreInitXpsb(ScrnInfoPtr pScrn)
 
     pPsb->xpsb = TRUE;
 
-    xf86LoaderReqSymLists(psbXpsbSymbols, NULL);
     return TRUE;
 }
 #endif
@@ -680,7 +672,6 @@ psbPreInitAccel(ScrnInfoPtr pScrn)
 	if (!xf86LoadSubModule(pScrn, "exa"))
 	    return FALSE;
 
-	xf86LoaderReqSymLists(exaSymbols, NULL);
     }
 
     xf86DrvMsg(pScrn->scrnIndex, from, "Acceleration %sabled\n",
@@ -720,7 +711,6 @@ psbPreInitShadowFB(ScrnInfoPtr pScrn)
 	if (!xf86LoadSubModule(pScrn, "shadow"))
 	    return FALSE;
 
-	xf86LoaderReqSymLists(shadowSymbols, NULL);
     }
 
     xf86DrvMsg(pScrn->scrnIndex, from, "Shadow framebuffer %sabled\n",
@@ -854,7 +844,6 @@ psbPreInit(ScrnInfoPtr pScrn, int flags)
 
     if (!xf86LoadSubModule(pScrn, "vbe"))
 	return FALSE;
-    xf86LoaderReqSymLists(vbeSymbols, NULL);
 
     /*
      * Parse options and load required modules here.
@@ -874,7 +863,6 @@ psbPreInit(ScrnInfoPtr pScrn, int flags)
 
     if (!xf86LoadSubModule(pScrn, "fb"))
 	return (FALSE);
-    xf86LoaderReqSymLists(fbSymbols, NULL);
 
     pScrn->chipset = "Intel GMA500";
     pScrn->monitor = pScrn->confScreen->monitor;
@@ -1033,7 +1021,6 @@ psbDeviceInit(PsbDevicePtr pDevice, int
 
     if (!xf86LoadSubModule(pDevice->pScrns[0], "vgahw"))
 	return FALSE;
-    xf86LoaderReqSymLists(psbvgahwSymbols, NULL);
 
     if (!vgaHWGetHWRec(pDevice->pScrns[0]))
 	return FALSE;


Index: .cvsignore
===================================================================
RCS file: /cvs/nonfree/rpms/xorg-x11-drv-psb/F-13/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore	24 Sep 2009 15:21:18 -0000	1.1
+++ .cvsignore	15 Jul 2010 22:49:19 -0000	1.2
@@ -0,0 +1 @@
+xserver-xorg-video-psb_0.32.0.orig.tar.gz


Index: sources
===================================================================
RCS file: /cvs/nonfree/rpms/xorg-x11-drv-psb/F-13/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sources	24 Sep 2009 15:21:18 -0000	1.1
+++ sources	15 Jul 2010 22:49:19 -0000	1.2
@@ -0,0 +1 @@
+65df9e204315705071edcc82109b477b  xserver-xorg-video-psb_0.32.0.orig.tar.gz



More information about the rpmfusion-commits mailing list