diff options
-rw-r--r-- | x11/modular-xorg-server/patches/patch-ag | 127 | ||||
-rw-r--r-- | x11/modular-xorg-server/patches/patch-ai | 39 | ||||
-rw-r--r-- | x11/modular-xorg-server/patches/patch-aj | 124 | ||||
-rw-r--r-- | x11/modular-xorg-server/patches/patch-ak | 33 | ||||
-rw-r--r-- | x11/modular-xorg-server/patches/patch-al | 31 |
5 files changed, 354 insertions, 0 deletions
diff --git a/x11/modular-xorg-server/patches/patch-ag b/x11/modular-xorg-server/patches/patch-ag new file mode 100644 index 00000000000..6a4013b6a13 --- /dev/null +++ b/x11/modular-xorg-server/patches/patch-ag @@ -0,0 +1,127 @@ +$NetBSD: patch-ag,v 1.5 2009/03/14 11:00:21 apb Exp $ + +Changes from NetBSD xsrc/external/mit/xorg-server/dist/\ +hw/xfree86/os-support/bsd/bsd_mouse.c + +---------------------------- +revision 1.5 +date: 2009/02/09 09:49:39; author: plunky; state: Exp; lines: +16 -0 +add horizontal mouse-wheel functionality to USB and WSMOUSE drivers +---------------------------- +revision 1.4 +date: 2009/02/02 03:06:37; author: christos; state: Exp; lines: +7 -11 +add a SetupMouse proc to condition the fd. Convert NetBSD's SetupAuto to +SetupMouse. +---------------------------- +revision 1.3 +date: 2009/01/19 00:54:29; author: christos; state: Exp; lines: +2 -1 +fix ioctl. +---------------------------- +revision 1.2 +date: 2009/01/13 18:43:46; author: christos; state: Exp; lines: +25 -0 +Set the mouse event protocol version. (untested, but head will be broken +unless I add this). +---------------------------- + +--- hw/xfree86/os-support/bsd/bsd_mouse.c.orig 2009-03-12 19:22:51.000000000 +0200 ++++ hw/xfree86/os-support/bsd/bsd_mouse.c +@@ -55,12 +55,15 @@ + + #define HUP_GENERIC_DESKTOP 0x0001 + #define HUP_BUTTON 0x0009 ++#define HUP_CONSUMER 0x000c + + #define HUG_X 0x0030 + #define HUG_Y 0x0031 + #define HUG_Z 0x0032 + #define HUG_WHEEL 0x0038 + ++#define HUC_AC_PAN 0x0238 ++ + #define HID_USAGE2(p,u) (((p) << 16) | u) + + /* The UMS mices have middle button as number 3 */ +@@ -340,6 +343,25 @@ + } + #endif + ++#if defined(__NetBSD__) ++ ++static Bool ++SetupMouse(InputInfoPtr pInfo) ++{ ++#ifdef WSCONS_SUPPORT ++#ifdef WSMOUSEIO_SETVERSION ++ int version = WSMOUSE_EVENT_VERSION; ++ if (ioctl(pInfo->fd, WSMOUSEIO_SETVERSION, &version) == -1) { ++ xf86Msg(X_WARNING, "%s: cannot set version\n", pInfo->name); ++ return FALSE; ++ } ++#endif ++#endif ++ return TRUE; ++} ++ ++#endif ++ + #if defined(__OpenBSD__) && defined(WSCONS_SUPPORT) + + /* Only support wsmouse configuration for now */ +@@ -430,6 +452,11 @@ + dz = event->value; + break; + #endif ++#ifdef WSCONS_EVENT_MOUSE_DELTA_W ++ case WSCONS_EVENT_MOUSE_DELTA_W: ++ dw = event->value; ++ break; ++#endif + default: + xf86Msg(X_WARNING, "%s: bad wsmouse event type=%d\n", pInfo->name, + event->type); +@@ -491,6 +518,7 @@ + hid_item_t loc_x; /* x locator item */ + hid_item_t loc_y; /* y locator item */ + hid_item_t loc_z; /* z (wheel) locator item */ ++ hid_item_t loc_w; /* w (pan) locator item */ + hid_item_t loc_btn[MSE_MAXBUTTONS]; /* buttons locator items */ + unsigned char *buffer; + } UsbMseRec, *UsbMsePtr; +@@ -610,6 +638,7 @@ + dx = hid_get_data(pBuf, &pUsbMse->loc_x); + dy = hid_get_data(pBuf, &pUsbMse->loc_y); + dz = hid_get_data(pBuf, &pUsbMse->loc_z); ++ dw = hid_get_data(pBuf, &pUsbMse->loc_w); + + buttons = 0; + for (n = 0; n < pMse->buttons; n++) { +@@ -701,6 +730,9 @@ + if (hid_locate(reportDesc, HID_USAGE2(HUP_GENERIC_DESKTOP, HUG_WHEEL), + hid_input, &pUsbMse->loc_z, pUsbMse->iid) < 0) { + } ++ if (hid_locate(reportDesc, HID_USAGE2(HUP_CONSUMER, HUC_AC_PAN), ++ hid_input, &pUsbMse->loc_w, pUsbMse->iid) < 0) { ++ } + #else + if (hid_locate(reportDesc, HID_USAGE2(HUP_GENERIC_DESKTOP, HUG_X), + hid_input, &pUsbMse->loc_x) < 0) { +@@ -713,6 +745,9 @@ + if (hid_locate(reportDesc, HID_USAGE2(HUP_GENERIC_DESKTOP, HUG_WHEEL), + hid_input, &pUsbMse->loc_z) < 0) { + } ++ if (hid_locate(reportDesc, HID_USAGE2(HUP_CONSUMER, HUC_AC_PAN), ++ hid_input, &pUsbMse->loc_w) < 0) { ++ } + #endif + /* Probe for number of buttons */ + for (i = 1; i <= MSE_MAXBUTTONS; i++) { +@@ -783,6 +818,9 @@ + p->SetupAuto = SetupAuto; + p->SetMiscRes = SetMouseRes; + #endif ++#if defined(__NetBSD__) ++ p->SetupMouse = SetupMouse; ++#endif + #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__DragonFly__) + p->FindDevice = FindDevice; + #endif diff --git a/x11/modular-xorg-server/patches/patch-ai b/x11/modular-xorg-server/patches/patch-ai new file mode 100644 index 00000000000..10790f37dea --- /dev/null +++ b/x11/modular-xorg-server/patches/patch-ai @@ -0,0 +1,39 @@ +$NetBSD: patch-ai,v 1.3 2009/03/14 11:00:22 apb Exp $ + +Changes from NetBSD xsrc/external/mit/xorg-server/dist/\ +hw/xfree86/os-support/xf86OSmouse.h + +---------------------------- +revision 1.2 +date: 2009/02/02 03:06:37; author: christos; state: Exp; lines: +4 -0 +add a SetupMouse proc to condition the fd. Convert NetBSD's SetupAuto to +SetupMouse. +---------------------------- + +--- hw/xfree86/os-support/xf86OSmouse.h.orig 2008-06-06 12:03:10.000000000 +0200 ++++ hw/xfree86/os-support/xf86OSmouse.h +@@ -82,6 +82,7 @@ typedef Bool (*BuiltinPreInitProc)(Input + int flags); + typedef const char *(*DefaultProtocolProc)(void); + typedef const char *(*SetupAutoProc)(InputInfoPtr pInfo, int *protoPara); ++typedef Bool (*SetupMouseProc)(InputInfoPtr pInfo); + typedef void (*SetResProc)(InputInfoPtr pInfo, const char* protocol, int rate, + int res); + typedef const char *(*FindDeviceProc)(InputInfoPtr pInfo, const char *protocol, +@@ -99,6 +100,7 @@ typedef struct { + BuiltinPreInitProc PreInit; + DefaultProtocolProc DefaultProtocol; + SetupAutoProc SetupAuto; ++ SetupMouseProc SetupMouse; + SetResProc SetPS2Res; + SetResProc SetBMRes; + SetResProc SetMiscRes; +@@ -141,6 +143,8 @@ typedef struct { + * + * SetBMRes: Set the resolution and sample rate for MSE_BM protocol types. + * ++ * SetupMouse: Called once after open to condition the file descriptor. ++ * + * SetMiscRes: Set the resolution and sample rate for MSE_MISC protocol types. + * + * FindDevice: This function gets called when no Device has been specified diff --git a/x11/modular-xorg-server/patches/patch-aj b/x11/modular-xorg-server/patches/patch-aj new file mode 100644 index 00000000000..7fdc464e31a --- /dev/null +++ b/x11/modular-xorg-server/patches/patch-aj @@ -0,0 +1,124 @@ +$NetBSD: patch-aj,v 1.3 2009/03/14 11:00:22 apb Exp $ + +Changes from NetBSD xsrc/external/mit/xorg-server/dist/\ +hw/xfree86/xaa/xaaFillRect.c + +---------------------------- +revision 1.2 +date: 2009/02/19 20:02:02; author: macallan; state: Exp; lines: +104 -0 +Actually use scanline image writes to upload images if available +---------------------------- + +--- hw/xfree86/xaa/xaaFillRect.c.orig 2008-06-06 12:03:10.000000000 +0200 ++++ hw/xfree86/xaa/xaaFillRect.c +@@ -779,6 +779,110 @@ XAAFillCacheExpandRects( + with reading past the edge of the pattern otherwise */ + + static void ++WriteColumnScanlines( ++ ScrnInfoPtr pScrn, ++ unsigned char *pSrc, ++ int x, int y, int w, int h, ++ int xoff, int yoff, ++ int pHeight, ++ int srcwidth, ++ int Bpp ++) { ++ XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCRNINFOPTR(pScrn); ++ unsigned char *src; ++ int skipleft, bytes, line, sline; ++ int buffer; ++ ++ pSrc += (Bpp * xoff); ++ ++ if((skipleft = (long)pSrc & 0x03L)) { ++ if(Bpp == 3) ++ skipleft = 4 - skipleft; ++ else ++ skipleft /= Bpp; ++ ++ x -= skipleft; ++ w += skipleft; ++ ++ if(Bpp == 3) ++ pSrc -= 3 * skipleft; ++ else /* is this Alpha friendly ? */ ++ pSrc = (unsigned char*)((long)pSrc & ~0x03L); ++ } ++ ++ src = pSrc + (yoff * srcwidth); ++ ++ bytes = w * Bpp; ++ ++ (*infoRec->SubsequentScanlineImageWriteRect)(pScrn, x, y, w, h, skipleft); ++ ++ buffer = 0; ++ sline = yoff; ++ for (line = 0; line < h; line++) { ++ memcpy(infoRec->ScanlineImageWriteBuffers[buffer], src, bytes); ++ (*infoRec->SubsequentImageWriteScanline)(pScrn, buffer); ++ buffer++; ++ src += srcwidth; ++ sline++; ++ if (sline >= pHeight) { ++ sline = 0; ++ src = pSrc; ++ } ++ if (buffer >= infoRec->NumScanlineImageWriteBuffers) ++ buffer = 0; ++ } ++} ++ ++void ++XAAFillScanlineImageWriteRects( ++ ScrnInfoPtr pScrn, ++ int rop, ++ unsigned int planemask, ++ int nBox, ++ BoxPtr pBox, ++ int xorg, int yorg, ++ PixmapPtr pPix ++){ ++ XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCRNINFOPTR(pScrn); ++ int x, phaseY, phaseX, height, width, blit_w; ++ int pHeight = pPix->drawable.height; ++ int pWidth = pPix->drawable.width; ++ int Bpp = pPix->drawable.bitsPerPixel >> 3; ++ int srcwidth = pPix->devKind; ++ ++ (*infoRec->SetupForScanlineImageWrite)(pScrn, rop, planemask, -1, ++ pPix->drawable.bitsPerPixel, pPix->drawable.depth); ++ ++ while(nBox--) { ++ x = pBox->x1; ++ phaseY = (pBox->y1 - yorg) % pHeight; ++ if(phaseY < 0) phaseY += pHeight; ++ phaseX = (x - xorg) % pWidth; ++ if(phaseX < 0) phaseX += pWidth; ++ height = pBox->y2 - pBox->y1; ++ width = pBox->x2 - x; ++ ++ while(1) { ++ blit_w = pWidth - phaseX; ++ if(blit_w > width) blit_w = width; ++ ++ WriteColumnScanlines(pScrn, pPix->devPrivate.ptr, x, pBox->y1, ++ blit_w, height, phaseX, phaseY, pHeight, srcwidth, Bpp); ++ ++ width -= blit_w; ++ if(!width) break; ++ x += blit_w; ++ phaseX = (phaseX + blit_w) % pWidth; ++ } ++ pBox++; ++ } ++ ++ if(infoRec->ScanlineImageWriteFlags & SYNC_AFTER_IMAGE_WRITE) ++ (*infoRec->Sync)(pScrn); ++ else SET_SYNC_FLAG(infoRec); ++} ++ ++static void + WriteColumn( + ScrnInfoPtr pScrn, + unsigned char *pSrc, diff --git a/x11/modular-xorg-server/patches/patch-ak b/x11/modular-xorg-server/patches/patch-ak new file mode 100644 index 00000000000..fca73867252 --- /dev/null +++ b/x11/modular-xorg-server/patches/patch-ak @@ -0,0 +1,33 @@ +$NetBSD: patch-ak,v 1.3 2009/03/14 11:00:22 apb Exp $ + +Changes from NetBSD xsrc/external/mit/xorg-server/dist/\ +hw/xfree86/xaa/xaaInitAccel.c + +---------------------------- +revision 1.2 +date: 2009/02/19 20:02:02; author: macallan; state: Exp; lines: +13 -0 +Actually use scanline image writes to upload images if available +---------------------------- + +--- hw/xfree86/xaa/xaaInitAccel.c.orig 2009-03-14 11:23:10.000000000 +0200 ++++ hw/xfree86/xaa/xaaInitAccel.c +@@ -821,6 +821,19 @@ XAAInitAccel(ScreenPtr pScreen, XAAInfoR + infoRec->FillImageWriteRectsFlags = infoRec->ImageWriteFlags; + } + ++ /**** FillScanlineImageWriteRects ****/ ++ ++ if(!infoRec->FillImageWriteRects) { ++ if(HaveScanlineImageWriteRect && ++ (infoRec->ScanlineImageWriteFlags & ++ LEFT_EDGE_CLIPPING_NEGATIVE_X) && ++ (infoRec->ScanlineImageWriteFlags & LEFT_EDGE_CLIPPING)) { ++ infoRec->FillImageWriteRects = XAAFillScanlineImageWriteRects; ++ infoRec->FillImageWriteRectsFlags = ++ infoRec->ScanlineImageWriteFlags; ++ } ++ } ++ + /**** WriteBitmap ****/ + + if(infoRec->WriteBitmap && diff --git a/x11/modular-xorg-server/patches/patch-al b/x11/modular-xorg-server/patches/patch-al new file mode 100644 index 00000000000..d26930ddcb4 --- /dev/null +++ b/x11/modular-xorg-server/patches/patch-al @@ -0,0 +1,31 @@ +$NetBSD: patch-al,v 1.3 2009/03/14 11:00:22 apb Exp $ + +Changes from NetBSD xsrc/external/mit/xorg-server/dist/\ +hw/xfree86/xaa/xaalocal.h + +---------------------------- +revision 1.2 +date: 2009/02/19 20:02:02; author: macallan; state: Exp; lines: +11 -0 +Actually use scanline image writes to upload images if available +---------------------------- + +--- hw/xfree86/xaa/xaalocal.h.orig 2008-06-10 19:57:19.000000000 +0200 ++++ hw/xfree86/xaa/xaalocal.h +@@ -602,6 +602,17 @@ XAAFillImageWriteRects( + PixmapPtr pPix + ); + ++void ++XAAFillScanlineImageWriteRects( ++ ScrnInfoPtr pScrn, ++ int rop, ++ unsigned int planemask, ++ int nBox, ++ BoxPtr pBox, ++ int xorg, int yorg, ++ PixmapPtr pPix ++); ++ + void + XAAPolyFillRect( + DrawablePtr pDraw, |