configure.ac | 2 +- debian/changelog | 2 +- src/driver.c | 43 ++++++++++++++++++++++++------------------- src/drmmode_display.c | 2 +- src/drmmode_display.h | 2 +- 5 files changed, 28 insertions(+), 23 deletions(-)
New commits: commit 9949a0fdc3290717eed4f55a6cbee87ef74708b0 Author: Maarten Lankhorst <[email protected]> Date: Wed Jun 12 14:34:36 2013 +0200 bump version diff --git a/debian/changelog b/debian/changelog index ac74449..9a55573 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -xserver-xorg-video-modesetting (0.7.0-1) UNRELEASED; urgency=low +xserver-xorg-video-modesetting (0.8.0-1) UNRELEASED; urgency=low * New upstream release. * Require x-server 1.13rc1 commit 58d3dc53a89c5aa2acfc93e4ae5719dd92b785b9 Author: Maarten Lankhorst <[email protected]> Date: Wed Jun 12 14:11:53 2013 +0200 bump to 0.8.0 Signed-off-by: Maarten Lankhorst <[email protected]> diff --git a/configure.ac b/configure.ac index f0c267f..6f7a7be 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-modesetting], - [0.7.0], + [0.8.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-modesetting]) AC_CONFIG_SRCDIR([Makefile.am]) commit a299400b8404f935e5e2bc6a5b9c17821844bd0d Author: Maarten Lankhorst <[email protected]> Date: Wed Jun 12 14:05:19 2013 +0200 modesetting: probe only succeeds if connectors are detected This will prevent modesetting being used for outputless intel or nvidia cards. Signed-off-by: Maarten Lankhorst <[email protected]> diff --git a/src/driver.c b/src/driver.c index c3d78be..cc526f6 100644 --- a/src/driver.c +++ b/src/driver.c @@ -201,12 +201,25 @@ static int open_hw(char *dev) return fd; } +static int check_outputs(int fd) +{ + drmModeResPtr res = drmModeGetResources(fd); + int ret; + + if (!res) + return FALSE; + ret = res->count_connectors > 0; + drmModeFreeResources(res); + return ret; +} + static Bool probe_hw(char *dev) { int fd = open_hw(dev); if (fd != -1) { + int ret = check_outputs(fd); close(fd); - return TRUE; + return ret; } return FALSE; } @@ -226,7 +239,7 @@ ms_DRICreatePCIBusID(const struct pci_device *dev) static Bool probe_hw_pci(char *dev, struct pci_device *pdev) { - int fd = open_hw(dev); + int ret = FALSE, fd = open_hw(dev); char *id, *devid; drmSetVersion sv; @@ -247,13 +260,12 @@ static Bool probe_hw_pci(char *dev, struct pci_device *pdev) devid = ms_DRICreatePCIBusID(pdev); close(fd); - if (!id || !devid) - return FALSE; - - if (!strcmp(id, devid)) - return TRUE; + if (id && devid && !strcmp(id, devid)) + ret = check_outputs(fd); - return FALSE; + free(id); + free(devid); + return ret; } static const OptionInfoRec * AvailableOptions(int chipid, int busid) commit a62d5e60896166be88fcf3778921b8d10baec2c1 Author: Dave Airlie <[email protected]> Date: Tue Jun 11 10:29:25 2013 +1000 modesetting: fix adjust frame crash When SDL called this it was totally broken, actually hook up to the underlying drmmode function. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64808 Thanks to Peter Wu <[email protected]> for harassing me. Signed-off-by: Dave Airlie <[email protected]> diff --git a/src/driver.c b/src/driver.c index 742aadd..c3d78be 100644 --- a/src/driver.c +++ b/src/driver.c @@ -956,16 +956,9 @@ static void AdjustFrame(ADJUST_FRAME_ARGS_DECL) { SCRN_INFO_PTR(arg); - xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); - xf86OutputPtr output = config->output[config->compat_output]; - xf86CrtcPtr crtc = output->crtc; - - if (crtc && crtc->enabled) { - crtc->funcs->mode_set(crtc, pScrn->currentMode, pScrn->currentMode, x, - y); - crtc->x = output->initial_x + x; - crtc->y = output->initial_y + y; - } + modesettingPtr ms = modesettingPTR(pScrn); + + drmmode_adjust_frame(pScrn, &ms->drmmode, x, y); } static void diff --git a/src/drmmode_display.c b/src/drmmode_display.c index 2dc7576..ce90cea 100644 --- a/src/drmmode_display.c +++ b/src/drmmode_display.c @@ -1267,7 +1267,7 @@ Bool drmmode_pre_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int cpp) return TRUE; } -void drmmode_adjust_frame(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int x, int y, int flags) +void drmmode_adjust_frame(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int x, int y) { xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); xf86OutputPtr output = config->output[config->compat_output]; diff --git a/src/drmmode_display.h b/src/drmmode_display.h index 1d5522b..adf4b99 100644 --- a/src/drmmode_display.h +++ b/src/drmmode_display.h @@ -118,7 +118,7 @@ Bool drmmode_SetSlaveBO(PixmapPtr ppix, #endif extern Bool drmmode_pre_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int cpp); -void drmmode_adjust_frame(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int x, int y, int flags); +void drmmode_adjust_frame(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int x, int y); extern Bool drmmode_set_desired_modes(ScrnInfoPtr pScrn, drmmode_ptr drmmode); extern Bool drmmode_setup_colormap(ScreenPtr pScreen, ScrnInfoPtr pScrn); commit cba29fd8c2f605ed66718aa3a6b5833deb5d4cf9 Author: Maarten Lankhorst <[email protected]> Date: Wed Apr 3 12:08:44 2013 +0200 support 32 bpp pixmaps when 24 bpp fb is used. Fixes background corruption in ubuntu. Signed-off-by: Maarten Lankhorst <[email protected]> diff --git a/src/driver.c b/src/driver.c index 06d6d53..742aadd 100644 --- a/src/driver.c +++ b/src/driver.c @@ -650,7 +650,7 @@ PreInit(ScrnInfoPtr pScrn, int flags) #endif drmmode_get_default_bpp(pScrn, &ms->drmmode, &defaultdepth, &defaultbpp); if (defaultdepth == 24 && defaultbpp == 24) - bppflags = Support24bppFb; + bppflags = SupportConvert32to24 | Support24bppFb; else bppflags = PreferConvert24to32 | SupportConvert24to32 | Support32bppFb; -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

