autogen.sh            |    4 +-
 configure.ac          |    2 -
 debian/changelog      |   12 ++++--
 debian/patches/series |    2 -
 src/driver.c          |   30 +++++++++++-----
 src/drmmode_display.c |   91 +++++++++++++++++++++++++++++++++++++++++++++++++-
 6 files changed, 125 insertions(+), 16 deletions(-)

New commits:
commit f124f218a4fd0c36b6cc71e5a13305fd540b4679
Author: Maarten Lankhorst <maarten.lankho...@canonical.com>
Date:   Wed Mar 27 13:35:00 2013 +0100

    Merge from unreleased debian git.

diff --git a/debian/changelog b/debian/changelog
index 0ac3632..6a6c913 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-video-modesetting (0.7.0-0ubuntu1) precise; urgency=low
+
+  * Merge from unreleased debian git.
+
+ -- Maarten Lankhorst <maarten.lankho...@ubuntu.com>  Wed, 27 Mar 2013 
13:34:24 +0100
+
 xserver-xorg-video-modesetting (0.7.0-1) UNRELEASED; urgency=low
 
   * New upstream release.
diff --git a/debian/patches/series b/debian/patches/series
index a82d1b4..fdffa2a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1 @@
-#placeholder
+# placeholder

commit ae209703ba6bdff292c00a4b93a5a1314324b9d3
Author: Maarten Lankhorst <maarten.lankho...@canonical.com>
Date:   Wed Mar 27 13:32:03 2013 +0100

    new upstream release

diff --git a/debian/changelog b/debian/changelog
index 086dcfb..ac74449 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xserver-xorg-video-modesetting (0.6.0-1) UNRELEASED; urgency=low
+xserver-xorg-video-modesetting (0.7.0-1) UNRELEASED; urgency=low
 
   * New upstream release.
   * Require x-server 1.13rc1

commit 332fbe8e13502c11bf32353123cba5e1e1bf3796
Author: Maarten Lankhorst <maarten.lankho...@canonical.com>
Date:   Wed Mar 27 10:33:46 2013 +0100

    bump version to 0.7.0

diff --git a/configure.ac b/configure.ac
index 562249e..f0c267f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-modesetting],
-        [0.6.0],
+        [0.7.0],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-modesetting])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 3c631228a9f57e73ee693d5283894db1a460e0a4
Author: Maarten Lankhorst <maarten.lankho...@canonical.com>
Date:   Tue Mar 26 15:19:52 2013 +0100

    modesetting: return null for get_modes if output could not be retrieved
    
    Signed-off-by: Maarten Lankhorst <maarten.lankho...@canonical.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index e8ebef1..2dc7576 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -709,6 +709,9 @@ drmmode_output_get_modes(xf86OutputPtr output)
        drmModePropertyPtr props;
        xf86MonPtr mon = NULL;
 
+       if (!koutput)
+               return NULL;
+
        /* look for an EDID property */
        for (i = 0; i < koutput->count_props; i++) {
                props = drmModeGetProperty(drmmode->fd, koutput->props[i]);

commit e5b5297ac449fb4ac62cc6471f933ae2265778a2
Author: Maarten Lankhorst <maarten.lankho...@canonical.com>
Date:   Tue Mar 26 15:19:33 2013 +0100

    modesetting: clean up leaks
    
    Signed-off-by: Maarten Lankhorst <maarten.lankho...@canonical.com>

diff --git a/src/driver.c b/src/driver.c
index 87ba272..06d6d53 100644
--- a/src/driver.c
+++ b/src/driver.c
@@ -206,7 +206,7 @@ static Bool probe_hw(char *dev)
     int fd = open_hw(dev);
     if (fd != -1) {
         close(fd);
-       return TRUE;
+        return TRUE;
     }
     return FALSE;
 }
@@ -530,15 +530,27 @@ static void msBlockHandler(BLOCKHANDLER_ARGS_DECL)
 static void
 FreeRec(ScrnInfoPtr pScrn)
 {
+    modesettingPtr ms;
+
     if (!pScrn)
-       return;
+        return;
 
-    if (!pScrn->driverPrivate)
-       return;
+    ms = modesettingPTR(pScrn);
+    if (!ms)
+        return;
+    pScrn->driverPrivate = NULL;
 
-    free(pScrn->driverPrivate);
+    if (ms->fd > 0) {
+        int ret;
+
+        if (ms->pEnt->location.type == BUS_PCI)
+            ret = drmClose(ms->fd);
+        else
+            ret = close(ms->fd);
+    }
+    free(ms->Options);
+    free(ms);
 
-    pScrn->driverPrivate = NULL;
 }
 
 static Bool
@@ -596,8 +608,8 @@ PreInit(ScrnInfoPtr pScrn, int flags)
 
 #if XSERVER_PLATFORM_BUS
     if (pEnt->location.type == BUS_PLATFORM) {
-            char *path = 
xf86_get_platform_device_attrib(pEnt->location.id.plat, ODEV_ATTRIB_PATH);
-            ms->fd = open_hw(path);
+        char *path = xf86_get_platform_device_attrib(pEnt->location.id.plat, 
ODEV_ATTRIB_PATH);
+        ms->fd = open_hw(path);
     }
     else 
 #endif

commit 1e571934629280053caeb155e418acbdca609e36
Author: Aaron Plattner <aplatt...@nvidia.com>
Date:   Wed Feb 20 17:27:16 2013 -0800

    modesetting: match PCI class 3, any subclass
    
    If a device is not primary, the PCI device match fails because the
    xf86-video-modesetting driver looks specifically for a PCI class match of
    0x30000 with a mask of 0xffffff.  This fails to match, for example, a
    non-primary Intel VGA device, because it is reported as having a class of
    0x38000.
    
    Fix that by ignoring the low 16 bits of the class in the pci_id_match table.
    
    Signed-off-by: Aaron Plattner <aplatt...@nvidia.com>
    Reviewed on IRC by Adam Jackson <a...@redhat.com>

diff --git a/src/driver.c b/src/driver.c
index 05b6176..87ba272 100644
--- a/src/driver.c
+++ b/src/driver.c
@@ -86,7 +86,7 @@ static Bool ms_driver_func(ScrnInfoPtr scrn, xorgDriverFuncOp 
op,
 static const struct pci_id_match ms_device_match[] = {
     {
        PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY,
-       0x00030000, 0x00ffffff, 0
+       0x00030000, 0x00ff0000, 0
     },
 
     { 0, 0, 0 },

commit 8dd5b22ea4469515b4218fad0deaf76cc98e3b9c
Author: Colin Walters <walt...@verbum.org>
Date:   Wed Jan 4 22:37:06 2012 +0000

    autogen.sh: Implement GNOME Build API
    
    http://people.gnome.org/~walters/docs/build-api.txt
    
    Signed-off-by: Adam Jackson <a...@redhat.com>

diff --git a/autogen.sh b/autogen.sh
index f83ed27..7415c05 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -10,4 +10,6 @@ test -d m4 || mkdir m4
 autoreconf -v --install || exit 1
 cd $ORIGDIR || exit $?
 
-$srcdir/configure --enable-maintainer-mode "$@"
+if test -z "$NOCONFIGURE"; then
+    $srcdir/configure "$@"
+fi

commit 06618a9b3d9585508b0debd18d5b981636f98c54
Author: Chris Wilson <ch...@chris-wilson.co.uk>
Date:   Mon Dec 3 13:25:19 2012 +0000

    Add missing GTF modes
    
    A fixed-mode output device like a panel will often only inform of its
    preferred mode through its EDID. However, the driver will adjust user
    specified modes for display through use of a panel-fitter allowing
    greater flexibility in upscaling. This is often used by games to set a
    low resolution for performance and use the panel fitter to fill the
    screen.
    
    v2: Use the presence of the 'scaling mode' connector property as an
    indication that a panel fitter is attached to that pipe.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=55564

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 63cecc3..e8ebef1 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -626,6 +626,78 @@ drmmode_output_mode_valid(xf86OutputPtr output, 
DisplayModePtr pModes)
        return MODE_OK;
 }
 
+static Bool
+has_panel_fitter(xf86OutputPtr output)
+{
+       drmmode_output_private_ptr drmmode_output = output->driver_private;
+       drmModeConnectorPtr koutput = drmmode_output->mode_output;
+       drmmode_ptr drmmode = drmmode_output->drmmode;
+       int i;
+
+       /* Presume that if the output supports scaling, then we have a
+        * panel fitter capable of adjust any mode to suit.
+        */
+       for (i = 0; i < koutput->count_props; i++) {
+               drmModePropertyPtr props;
+               Bool found = FALSE;
+
+               props = drmModeGetProperty(drmmode->fd, koutput->props[i]);
+               if (props) {
+                       found = strcmp(props->name, "scaling mode") == 0;
+                       drmModeFreeProperty(props);
+               }
+
+               if (found)
+                       return TRUE;
+       }
+
+       return FALSE;
+}
+
+static DisplayModePtr
+drmmode_output_add_gtf_modes(xf86OutputPtr output,
+                            DisplayModePtr Modes)
+{
+       xf86MonPtr mon = output->MonInfo;
+       DisplayModePtr i, m, preferred = NULL;
+       int max_x = 0, max_y = 0;
+       float max_vrefresh = 0.0;
+
+       if (mon && GTF_SUPPORTED(mon->features.msc))
+               return Modes;
+
+       if (!has_panel_fitter(output))
+               return Modes;
+
+       for (m = Modes; m; m = m->next) {
+               if (m->type & M_T_PREFERRED)
+                       preferred = m;
+               max_x = max(max_x, m->HDisplay);
+               max_y = max(max_y, m->VDisplay);
+               max_vrefresh = max(max_vrefresh, xf86ModeVRefresh(m));
+       }
+
+       max_vrefresh = max(max_vrefresh, 60.0);
+       max_vrefresh *= (1 + SYNC_TOLERANCE);
+
+       m = xf86GetDefaultModes();
+       xf86ValidateModesSize(output->scrn, m, max_x, max_y, 0);
+
+       for (i = m; i; i = i->next) {
+               if (xf86ModeVRefresh(i) > max_vrefresh)
+                       i->status = MODE_VSYNC;
+               if (preferred &&
+                   i->HDisplay >= preferred->HDisplay &&
+                   i->VDisplay >= preferred->VDisplay &&
+                   xf86ModeVRefresh(i) >= xf86ModeVRefresh(preferred))
+                       i->status = MODE_VSYNC;
+       }
+
+       xf86PruneInvalidModes(output->scrn, &m, FALSE);
+
+       return xf86ModesAdd(Modes, m);
+}
+
 static DisplayModePtr
 drmmode_output_get_modes(xf86OutputPtr output)
 {
@@ -666,7 +738,8 @@ drmmode_output_get_modes(xf86OutputPtr output)
                Modes = xf86ModesAdd(Modes, Mode);
 
        }
-       return Modes;
+
+       return drmmode_output_add_gtf_modes(output, Modes);
 }
 
 static void

commit acb90bc34ad99a7c4de8c69a26ff09a65cd0281d
Author: Dave Airlie <airl...@redhat.com>
Date:   Thu Feb 7 12:24:20 2013 +1000

    modesetting: provide dummy hooks for shadow
    
    Since in some wierd cases the server can call these without checking they
    exist.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 42cd5ac..63cecc3 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -547,6 +547,17 @@ drmmode_set_scanout_pixmap(xf86CrtcPtr crtc, PixmapPtr 
ppix)
 }
 #endif
 
+static void *drmmode_shadow_allocate(xf86CrtcPtr crtc, int width, int height)
+{
+       return NULL;
+}
+
+static PixmapPtr drmmode_shadow_create(xf86CrtcPtr crtc, void *data, int width,
+                                      int height)
+{
+       return NULL;
+}
+
 static const xf86CrtcFuncsRec drmmode_crtc_funcs = {
     .dpms = drmmode_crtc_dpms,
     .set_mode_major = drmmode_set_mode_major,
@@ -561,6 +572,8 @@ static const xf86CrtcFuncsRec drmmode_crtc_funcs = {
 #ifdef MODESETTING_OUTPUT_SLAVE_SUPPORT
     .set_scanout_pixmap = drmmode_set_scanout_pixmap,
 #endif
+    .shadow_allocate = drmmode_shadow_allocate,
+    .shadow_create = drmmode_shadow_create,
 };
 
 static void


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1ukpac-0006ek...@vasks.debian.org

Reply via email to