debian/changelog | 8 + debian/patches/adding-platform-bus-support.patch | 141 +++++++++++++++++++++++ debian/patches/series | 2 3 files changed, 150 insertions(+), 1 deletion(-)
New commits: commit 1a543a01a1029f1c64e9c3d9fa5fa73b6e959cb6 Author: Timo Aaltonen <tjaal...@ubuntu.com> Date: Sun Aug 26 18:38:20 2012 +0300 release to quantal * debian/patches/adding-platform-bus-support.patch: - Adding platformBus support, to protect xorg on also loading the fbdev driver when running on ARM (mostly platform devices) (LP: #1041727) diff --git a/debian/changelog b/debian/changelog index 6648608..6858738 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +xserver-xorg-video-modesetting (0.4.0-0ubuntu2) quantal; urgency=low + + * debian/patches/adding-platform-bus-support.patch: + - Adding platformBus support, to protect xorg on also loading the fbdev + driver when running on ARM (mostly platform devices) (LP: #1041727) + + -- Ricardo Salveti de Araujo <ricardo.salv...@linaro.org> Sun, 26 Aug 2012 00:10:21 -0300 + xserver-xorg-video-modesetting (0.4.0-0ubuntu1) quantal-proposed; urgency=low * Sync from unreleased debian git. diff --git a/debian/patches/adding-platform-bus-support.patch b/debian/patches/adding-platform-bus-support.patch new file mode 100644 index 0000000..72b4019 --- /dev/null +++ b/debian/patches/adding-platform-bus-support.patch @@ -0,0 +1,141 @@ +From: Dave Airlie <airl...@redhat.com> +Subject: modesetting: add platform bus support +Origin: upstream, http://cgit.freedesktop.org/xorg/driver/xf86-video-modesetting/commit/?id=65054df +Bug-Ubuntu: http://bugs.launchpad.net/bugs/1041727 + +diff --git a/src/driver.c b/src/driver.c +index 8c3f4a4..86be277 100644 +--- a/src/driver.c ++++ b/src/driver.c +@@ -52,6 +52,9 @@ + #include "xf86xv.h" + #include <X11/extensions/Xv.h> + #include <xorg-server.h> ++#ifdef XSERVER_PLATFORM_BUS ++#include "xf86platformBus.h" ++#endif + #if XSERVER_LIBPCIACCESS + #include <pciaccess.h> + #endif +@@ -88,6 +91,12 @@ static const struct pci_id_match ms_device_match[] = { + }; + #endif + ++#ifdef XSERVER_PLATFORM_BUS ++static Bool ms_platform_probe(DriverPtr driver, ++ int entity_num, int flags, struct xf86_platform_device *device, ++ intptr_t match_data); ++#endif ++ + _X_EXPORT DriverRec modesetting = { + 1, + "modesetting", +@@ -99,6 +108,9 @@ _X_EXPORT DriverRec modesetting = { + NULL, + ms_device_match, + ms_pci_probe, ++#ifdef XSERVER_PLATFORM_BUS ++ ms_platform_probe, ++#endif + }; + + static SymTabRec Chipsets[] = { +@@ -288,6 +300,40 @@ ms_pci_probe(DriverPtr driver, + } + #endif + ++#ifdef XSERVER_PLATFORM_BUS ++static Bool ++ms_platform_probe(DriverPtr driver, ++ int entity_num, int flags, struct xf86_platform_device *dev, intptr_t match_data) ++{ ++ ScrnInfoPtr scrn = NULL; ++ char *path = xf86_get_platform_device_attrib(dev, ODEV_ATTRIB_PATH); ++ int scr_flags = 0; ++ ++ if (flags & PLATFORM_PROBE_GPU_SCREEN) ++ scr_flags = XF86_ALLOCATE_GPU_SCREEN; ++ ++ if (probe_hw(path)) { ++ scrn = xf86AllocateScreen(driver, scr_flags); ++ xf86AddEntityToScreen(scrn, entity_num); ++ ++ scrn->driverName = "modesetting"; ++ scrn->name = "modesetting"; ++ scrn->PreInit = PreInit; ++ scrn->ScreenInit = ScreenInit; ++ scrn->SwitchMode = SwitchMode; ++ scrn->AdjustFrame = AdjustFrame; ++ scrn->EnterVT = EnterVT; ++ scrn->LeaveVT = LeaveVT; ++ scrn->FreeScreen = FreeScreen; ++ scrn->ValidMode = ValidMode; ++ xf86DrvMsg(scrn->scrnIndex, X_INFO, ++ "using drv %s\n", path ? path : "default device"); ++ } ++ ++ return scrn != NULL; ++} ++#endif ++ + static Bool + Probe(DriverPtr drv, int flags) + { +@@ -431,7 +477,7 @@ PreInit(ScrnInfoPtr pScrn, int flags) + rgb defaultWeight = { 0, 0, 0 }; + EntityInfoPtr pEnt; + EntPtr msEnt = NULL; +- char *BusID, *devicename; ++ char *BusID = NULL, *devicename; + Bool prefer_shadow = TRUE; + uint64_t value = 0; + int ret; +@@ -477,24 +523,32 @@ PreInit(ScrnInfoPtr pScrn, int flags) + pScrn->progClock = TRUE; + pScrn->rgbBits = 8; + +- ms->PciInfo = xf86GetPciInfoForEntity(ms->pEnt->index); +- if (ms->PciInfo) { +- BusID = malloc(64); +- sprintf(BusID, "PCI:%d:%d:%d", ++#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); ++ } ++ else ++#endif ++ if (pEnt->location.type == BUS_PCI) { ++ ms->PciInfo = xf86GetPciInfoForEntity(ms->pEnt->index); ++ if (ms->PciInfo) { ++ BusID = malloc(64); ++ sprintf(BusID, "PCI:%d:%d:%d", + #if XSERVER_LIBPCIACCESS +- ((ms->PciInfo->domain << 8) | ms->PciInfo->bus), +- ms->PciInfo->dev, ms->PciInfo->func ++ ((ms->PciInfo->domain << 8) | ms->PciInfo->bus), ++ ms->PciInfo->dev, ms->PciInfo->func + #else +- ((pciConfigPtr) ms->PciInfo->thisCard)->busnum, +- ((pciConfigPtr) ms->PciInfo->thisCard)->devnum, +- ((pciConfigPtr) ms->PciInfo->thisCard)->funcnum ++ ((pciConfigPtr) ms->PciInfo->thisCard)->busnum, ++ ((pciConfigPtr) ms->PciInfo->thisCard)->devnum, ++ ((pciConfigPtr) ms->PciInfo->thisCard)->funcnum + #endif +- ); +- +- ms->fd = drmOpen(NULL, BusID); ++ ); ++ } ++ ms->fd = drmOpen(NULL, BusID); + } else { +- devicename = xf86FindOptionValue(ms->pEnt->device->options, "kmsdev"); +- ms->fd = open_hw(devicename); ++ devicename = xf86FindOptionValue(ms->pEnt->device->options, "kmsdev"); ++ ms->fd = open_hw(devicename); + } + if (ms->fd < 0) + return FALSE; +-- +1.7.9.5 diff --git a/debian/patches/series b/debian/patches/series index fdffa2a..d696b3b 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +1 @@ -# placeholder +adding-platform-bus-support.patch -- 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/e1t5evp-0001xi...@vasks.debian.org