From 5d31d921448006722d790d84e727c2f2844c35d5 Mon Sep 17 00:00:00 2001 From: Nicolas Reynolds Date: Fri, 17 Feb 2012 16:39:45 -0300 Subject: missing patches for siliconmotion --- .../98_sm712_CRT_enable.diff | 14 + ...f86-video-siliconmotion-1.7.3-fix-loongson.diff | 160 +++++ extra/xf86-video-siliconmotion/medanr04.diff | 81 +++ ...o-siliconmotion-1.7.5-loongson-video-accl.patch | 139 ++++ ...-xorg-video-siliconmotion-2.2.8-medan.r04.patch | 104 +++ ...-xorg-video-siliconmotion_1.7.5-1loongson2.diff | 707 +++++++++++++++++++++ 6 files changed, 1205 insertions(+) create mode 100644 extra/xf86-video-siliconmotion/98_sm712_CRT_enable.diff create mode 100644 extra/xf86-video-siliconmotion/99_xf86-video-siliconmotion-1.7.3-fix-loongson.diff create mode 100644 extra/xf86-video-siliconmotion/medanr04.diff create mode 100644 extra/xf86-video-siliconmotion/xf86-video-siliconmotion-1.7.5-loongson-video-accl.patch create mode 100644 extra/xf86-video-siliconmotion/xserver-xorg-video-siliconmotion-2.2.8-medan.r04.patch create mode 100644 extra/xf86-video-siliconmotion/xserver-xorg-video-siliconmotion_1.7.5-1loongson2.diff (limited to 'extra') diff --git a/extra/xf86-video-siliconmotion/98_sm712_CRT_enable.diff b/extra/xf86-video-siliconmotion/98_sm712_CRT_enable.diff new file mode 100644 index 000000000..9ff473aff --- /dev/null +++ b/extra/xf86-video-siliconmotion/98_sm712_CRT_enable.diff @@ -0,0 +1,14 @@ +--- ../xx/xserver-xorg-video-siliconmotion-1.7.3/src/smi_driver.c 2010-03-09 23:39:23.451798382 +0800 ++++ xserver-xorg-video-siliconmotion-1.7.3/src/smi_driver.c 2010-03-10 10:36:58.835798871 +0800 +@@ -1805,6 +1797,11 @@ + pScreen->SaveScreen = SMI_SaveScreen; + pSmi->CloseScreen = pScreen->CloseScreen; + pScreen->CloseScreen = SMI_CloseScreen; ++ /* Added by Belcon to enable LCD Panel Control Select */ ++ if (pSmi->Chipset == SMI_LYNXEMplus) ++ { ++ VGAOUT8_INDEX (pSmi, VGA_SEQ_INDEX, VGA_SEQ_DATA, 0x22, 2); ++ } + + if ((IS_MSOC(pSmi) && + !xf86DPMSInit(pScreen, SMI501_DisplayPowerManagementSet, 0)) || diff --git a/extra/xf86-video-siliconmotion/99_xf86-video-siliconmotion-1.7.3-fix-loongson.diff b/extra/xf86-video-siliconmotion/99_xf86-video-siliconmotion-1.7.3-fix-loongson.diff new file mode 100644 index 000000000..4be6d6469 --- /dev/null +++ b/extra/xf86-video-siliconmotion/99_xf86-video-siliconmotion-1.7.3-fix-loongson.diff @@ -0,0 +1,160 @@ +rixed@happyleptic.org + 发送至 loongson-dev + +A patch for siliconmotion 1.7.3 is available in the bug trackers +at freedesktop.org, but a better one will be available monday. +Still, it lacks the most interresting part : the MMX pack function, +which should not be implemented there but probably either directly +in Xv or in pixman (and make Xv use pixman). + +So for now the simpliest is to fix these manually. +For the impatient I attach a patch against SM 1.7.3 +With it, 16bpp and AccelMethod = "XAA" works quite well. + +Just an ugly hack really. +diff -ur orig/src/smi_video.c mod/src/smi_video.c +--- orig/src/smi_video.c 2010-02-05 13:11:18.000000000 +0100 ++++ mod/src/smi_video.c 2010-02-05 13:20:36.000000000 +0100 +@@ -276,6 +276,7 @@ + XVIMAGE_YUY2, + XVIMAGE_YV12, + XVIMAGE_I420, ++ XVIMAGE_UYVY, + { + FOURCC_RV15, /* id */ + XvRGB, /* type */ +@@ -1462,6 +1463,117 @@ + LEAVE(); + } + ++static void myXVCopyYUV12ToPacked(const unsigned char *srcy, const unsigned char *srcv, const unsigned char *srcu, ++ unsigned char *dst, int srcPitchy, int srcPitchuv, int dstPitch, int h, int w) ++{ ++ int i, j; ++ unsigned char const *y, *u, *v; ++ int dstinc, yinc, uinc, vinc; ++ ++ y = srcy; ++ u = srcu; ++ v = srcv; ++ ++ dstinc = dstPitch - 2*w; ++ yinc = srcPitchy - w; ++ uinc = srcPitchuv - w/2; ++ vinc = srcPitchuv - w/2; ++ ++ for (i = 0; i < h; i++) { ++ asm ( ++// ".set arch=loongson2f\n\t" ++ ".set noreorder\n\t" ++ "move $8, %8 \n\t" ++ "1: \n\t" ++ "beqz $8, 2f \n\t" ++ "xor $f0, $f0, $f0 \n\t" ++ "ldc1 $f4, (%0) \n\t" ++ "punpcklbh $f2, $f4, $f0 \n\t" ++ "punpckhbh $f4, $f4, $f0 \n\t" ++ "ldc1 $f16, 8(%0) \n\t" ++ "punpcklbh $f14, $f16, $f0 \n\t" ++ "punpckhbh $f16, $f16, $f0 \n\t" ++ ++ "lwc1 $f8, (%1) \n\t" ++ "lwc1 $f12, (%2) \n\t" ++ "punpcklbh $f8, $f8, $f12 \n\t" ++ "punpcklbh $f6, $f0, $f8 \n\t" ++ "punpckhbh $f8, $f0, $f8 \n\t" ++ "lwc1 $f18, 4(%1) \n\t" ++ "lwc1 $f12, 4(%2) \n\t" ++ "punpcklbh $f18, $f18, $f12 \n\t" ++ "punpcklbh $f10, $f0, $f18 \n\t" ++ "punpckhbh $f12, $f0, $f18 \n\t" ++ ++ "or $f2, $f2, $f6 \n\t" ++ "or $f4, $f4, $f8 \n\t" ++ "or $f14, $f14, $f10 \n\t" ++ "or $f16, $f16, $f12 \n\t" ++ ++ "sdc1 $f2, (%3) \n\t" ++ "sdc1 $f4, 8(%3) \n\t" ++ "add %0, 16 \n\t" ++ "add %1, 8 \n\t" ++ "add %2, 8 \n\t" ++ "sdc1 $f14, 0x10(%3) \n\t" ++ "sdc1 $f16, 0x18(%3) \n\t" ++ "add $8, -1 \n\t" ++ "b 1b \n\t" ++ "add %3, 32 \n\t" ++ "2: \n\t" ++ ".set reorder\n\t" ++ : "=r" (y), "=r" (u), "=r" (v), "=r" (dst) ++ : "0" (y), "1" (u), "2" (v), "3" (dst), "r" (w>>4) ++ : "memory","$8" ++ ); ++ ++ asm ( ++// ".set arch=loongson2f\n\t" ++ ".set noreorder\n\t" ++ "move $8, %8 \n\t" ++ "1: \n\t" ++ "beqz $8, 2f \n\t" ++ "xor $f0, $f0, $f0 \n\t" ++ "ldc1 $f4, (%0) \n\t" ++ "punpcklbh $f2, $f4, $f0 \n\t" ++ "punpckhbh $f4, $f4, $f0 \n\t" ++ ++ "lwc1 $f8, (%1) \n\t" ++ "lwc1 $f12, (%2) \n\t" ++ "punpcklbh $f8, $f8, $f12 \n\t" ++ "punpcklbh $f6, $f0, $f8 \n\t" ++ "punpckhbh $f8, $f0, $f8 \n\t" ++ ++ "or $f2, $f2, $f6 \n\t" ++ "or $f4, $f4, $f8 \n\t" ++ ++ "sdc1 $f2, (%3) \n\t" ++ "sdc1 $f4, 8(%3) \n\t" ++ "add %0, 8 \n\t" ++ "add %1, 4 \n\t" ++ "add %2, 4 \n\t" ++ "add $8, -1 \n\t" ++ "b 1b \n\t" ++ "add %3, 16 \n\t" ++ "2:\n\t" ++ ".set reorder\n\t" ++ : "=r" (y), "=r" (u), "=r" (v), "=r" (dst) ++ : "0" (y), "1" (u), "2" (v), "3" (dst), "r" ((w&0xf)/8) ++ : "memory","$8" ++ ); ++ ++ for (j = (w&7)/2; j; j--) { ++ *dst++ = *y++; ++ *dst++ = *u++; ++ *dst++ = *y++; ++ *dst++ = *v++; ++ } ++ y += yinc; ++ u = (i%2) ? (u + uinc): (u - w/2); ++ v = (i%2) ? (v + vinc): (v - w/2); ++ dst += dstinc; ++ } ++} + + static int + SMI_PutImage( +@@ -1593,7 +1705,7 @@ + offset3 = tmp; + } + nLines = ((((y2 + 0xffff) >> 16) + 1) & ~1) - top; +- xf86XVCopyYUV12ToPacked(buf + (top * srcPitch) + (left >> 1), ++ myXVCopyYUV12ToPacked(buf + (top * srcPitch) + (left >> 1), + buf + offset2, buf + offset3, dstStart, + srcPitch, srcPitch2, dstPitch, nLines, + nPixels); +@@ -1793,6 +1905,7 @@ + WRITE_VPR(pSmi, 0x1C, offset >> 3); + WRITE_VPR(pSmi, 0x20, (pitch >> 3) | ((pitch >> 3) << 16)); + WRITE_VPR(pSmi, 0x24, (hstretch & 0xff00) | ((vstretch & 0xff00) >> 8)); ++ WRITE_VPR(pSmi, 0x68, ((hstretch & 0xff) << 8) | (vstretch & 0xff)); + if (pSmi->Chipset == SMI_LYNXEMplus) { /* This one can store additional precision */ + WRITE_VPR(pSmi, 0x68, ((hstretch & 0xff) << 8) | (vstretch & 0xff)); + } diff --git a/extra/xf86-video-siliconmotion/medanr04.diff b/extra/xf86-video-siliconmotion/medanr04.diff new file mode 100644 index 000000000..85a15f393 --- /dev/null +++ b/extra/xf86-video-siliconmotion/medanr04.diff @@ -0,0 +1,81 @@ +--- orig/src/smi_video.c 2009-07-27 09:42:44.000000000 +0600 ++++ new/src/smi_video.c 2011-04-02 19:21:53.545665717 +0600 +@@ -223,7 +223,7 @@ + + /**************************************************************************/ + /* number of (generated) XV_ENCODING vaulues */ +-#define N_ENCODINGS ((N_VIDEO_NORMS) * (N_COMPOSITE_CHANNELS + N_SVIDEO_CHANNELS)) ++#define N_ENCODINGS (((N_VIDEO_NORMS) * (N_COMPOSITE_CHANNELS + N_SVIDEO_CHANNELS)) +1) + + + /**************************************************************************/ +@@ -288,7 +288,7 @@ + XvPacked, /* format */ + 1, /* num_planes */ + 15, /* depth */ +- 0x001F, 0x03E0, 0x7C00, /* red_mask, green, blue */ ++ 0x7C00, 0x03E0, 0x001F, /* red_mask, green, blue */ + 0, 0, 0, /* y_sample_bits, u, v */ + 0, 0, 0, /* horz_y_period, u, v */ + 0, 0, 0, /* vert_y_period, u, v */ +@@ -307,7 +307,7 @@ + XvPacked, /* format */ + 1, /* num_planes */ + 16, /* depth */ +- 0x001F, 0x07E0, 0xF800, /* red_mask, green, blue */ ++ 0xF800, 0x07E0, 0x001F, /* red_mask, green, blue */ + 0, 0, 0, /* y_sample_bits, u, v */ + 0, 0, 0, /* horz_y_period, u, v */ + 0, 0, 0, /* vert_y_period, u, v */ +@@ -326,7 +326,7 @@ + XvPacked, /* format */ + 1, /* num_planes */ + 24, /* depth */ +- 0x0000FF, 0x00FF00, 0xFF0000, /* red_mask, green, blue */ ++ 0xFF0000, 0x00FF00, 0x0000FF, /* red_mask, green, blue */ + 0, 0, 0, /* y_sample_bits, u, v */ + 0, 0, 0, /* horz_y_period, u, v */ + 0, 0, 0, /* vert_y_period, u, v */ +@@ -345,7 +345,7 @@ + XvPacked, /* format */ + 1, /* num_planes */ + 24, /* depth */ +- 0x0000FF, 0x00FF00, 0xFF0000, /* red_mask, green, blue */ ++ 0xFF0000, 0x00FF00, 0x0000FF, /* red_mask, green, blue */ + 0, 0, 0, /* y_sample_bits, u, v */ + 0, 0, 0, /* horz_y_period, u, v */ + 0, 0, 0, /* vert_y_period, u, v */ +@@ -372,7 +372,7 @@ + XvPacked, /* format */ + 1, /* num_planes */ + 16, /* depth */ +- 0x001F, 0x07E0, 0xF800, /* red_mask, green, blue */ ++ 0xF800, 0x07E0, 0x001F, /* red_mask, green, blue */ + 0, 0, 0, /* y_sample_bits, u, v */ + 0, 0, 0, /* horz_y_period, u, v */ + 0, 0, 0, /* vert_y_period, u, v */ +@@ -391,7 +391,7 @@ + XvPacked, /* format */ + 1, /* num_planes */ + 24, /* depth */ +- 0x0000FF, 0x00FF00, 0xFF0000, /* red_mask, green, blue */ ++ 0xFF0000, 0x00FF00, 0x0000FF, /* red_mask, green, blue */ + 0, 0, 0, /* y_sample_bits, u, v */ + 0, 0, 0, /* horz_y_period, u, v */ + 0, 0, 0, /* vert_y_period, u, v */ +@@ -569,6 +569,15 @@ + + /* fill arrays */ + p->nenc = 0; ++ /* force XV_IMAGE at 0 */ ++ p->enc[0].width = 2048; ++ p->enc[0].height = 2048; ++ p->enc[0].rate.numerator = 1; ++ p->enc[0].rate.denominator = 1; ++ p->enc[0].name = xalloc(strlen("XV_IMAGE")+1); ++ sprintf(p->enc[0].name, "% s", "XV_IMAGE"); ++ ++ p->nenc = 1; + for (ch = 0; ch < N_COMPOSITE_CHANNELS; ch++) { + for (n = 0; n < N_VIDEO_NORMS; n++) { + SMI_AddEncoding(p->enc, p->nenc, n, VID_COMPOSITE, ch); diff --git a/extra/xf86-video-siliconmotion/xf86-video-siliconmotion-1.7.5-loongson-video-accl.patch b/extra/xf86-video-siliconmotion/xf86-video-siliconmotion-1.7.5-loongson-video-accl.patch new file mode 100644 index 000000000..e31044473 --- /dev/null +++ b/extra/xf86-video-siliconmotion/xf86-video-siliconmotion-1.7.5-loongson-video-accl.patch @@ -0,0 +1,139 @@ +diff --git a/src/smi_video.c b/src/smi_video.c +index c2e8868..3e128fa 100644 +--- a/src/smi_video.c ++++ b/src/smi_video.c +@@ -276,6 +276,7 @@ static XF86ImageRec SMI_VideoImages[] = + XVIMAGE_YUY2, + XVIMAGE_YV12, + XVIMAGE_I420, ++ XVIMAGE_UYVY, + { + FOURCC_RV15, /* id */ + XvRGB, /* type */ +@@ -1464,6 +1465,117 @@ SMI_QueryBestSize( + LEAVE(); + } + ++static void myXVCopyYUV12ToPacked(const unsigned char *srcy, const unsigned char *srcv, const unsigned char *srcu, ++ unsigned char *dst, int srcPitchy, int srcPitchuv, int dstPitch, int h, int w) ++{ ++ int i, j; ++ unsigned char const *y, *u, *v; ++ int dstinc, yinc, uinc, vinc; ++ ++ y = srcy; ++ u = srcu; ++ v = srcv; ++ ++ dstinc = dstPitch - 2*w; ++ yinc = srcPitchy - w; ++ uinc = srcPitchuv - w/2; ++ vinc = srcPitchuv - w/2; ++ ++ for (i = 0; i < h; i++) { ++ asm ( ++// ".set arch=loongson2f\n\t" ++ ".set noreorder\n\t" ++ "move $8, %8 \n\t" ++ "1: \n\t" ++ "beqz $8, 2f \n\t" ++ "xor $f0, $f0, $f0 \n\t" ++ "ldc1 $f4, (%0) \n\t" ++ "punpcklbh $f2, $f4, $f0 \n\t" ++ "punpckhbh $f4, $f4, $f0 \n\t" ++ "ldc1 $f16, 8(%0) \n\t" ++ "punpcklbh $f14, $f16, $f0 \n\t" ++ "punpckhbh $f16, $f16, $f0 \n\t" ++ ++ "lwc1 $f8, (%1) \n\t" ++ "lwc1 $f12, (%2) \n\t" ++ "punpcklbh $f8, $f8, $f12 \n\t" ++ "punpcklbh $f6, $f0, $f8 \n\t" ++ "punpckhbh $f8, $f0, $f8 \n\t" ++ "lwc1 $f18, 4(%1) \n\t" ++ "lwc1 $f12, 4(%2) \n\t" ++ "punpcklbh $f18, $f18, $f12 \n\t" ++ "punpcklbh $f10, $f0, $f18 \n\t" ++ "punpckhbh $f12, $f0, $f18 \n\t" ++ ++ "or $f2, $f2, $f6 \n\t" ++ "or $f4, $f4, $f8 \n\t" ++ "or $f14, $f14, $f10 \n\t" ++ "or $f16, $f16, $f12 \n\t" ++ ++ "sdc1 $f2, (%3) \n\t" ++ "sdc1 $f4, 8(%3) \n\t" ++ "add %0, 16 \n\t" ++ "add %1, 8 \n\t" ++ "add %2, 8 \n\t" ++ "sdc1 $f14, 0x10(%3) \n\t" ++ "sdc1 $f16, 0x18(%3) \n\t" ++ "add $8, -1 \n\t" ++ "b 1b \n\t" ++ "add %3, 32 \n\t" ++ "2: \n\t" ++ ".set reorder\n\t" ++ : "=r" (y), "=r" (u), "=r" (v), "=r" (dst) ++ : "0" (y), "1" (u), "2" (v), "3" (dst), "r" (w>>4) ++ : "memory","$8" ++ ); ++ ++ asm ( ++// ".set arch=loongson2f\n\t" ++ ".set noreorder\n\t" ++ "move $8, %8 \n\t" ++ "1: \n\t" ++ "beqz $8, 2f \n\t" ++ "xor $f0, $f0, $f0 \n\t" ++ "ldc1 $f4, (%0) \n\t" ++ "punpcklbh $f2, $f4, $f0 \n\t" ++ "punpckhbh $f4, $f4, $f0 \n\t" ++ ++ "lwc1 $f8, (%1) \n\t" ++ "lwc1 $f12, (%2) \n\t" ++ "punpcklbh $f8, $f8, $f12 \n\t" ++ "punpcklbh $f6, $f0, $f8 \n\t" ++ "punpckhbh $f8, $f0, $f8 \n\t" ++ ++ "or $f2, $f2, $f6 \n\t" ++ "or $f4, $f4, $f8 \n\t" ++ ++ "sdc1 $f2, (%3) \n\t" ++ "sdc1 $f4, 8(%3) \n\t" ++ "add %0, 8 \n\t" ++ "add %1, 4 \n\t" ++ "add %2, 4 \n\t" ++ "add $8, -1 \n\t" ++ "b 1b \n\t" ++ "add %3, 16 \n\t" ++ "2:\n\t" ++ ".set reorder\n\t" ++ : "=r" (y), "=r" (u), "=r" (v), "=r" (dst) ++ : "0" (y), "1" (u), "2" (v), "3" (dst), "r" ((w&0xf)/8) ++ : "memory","$8" ++ ); ++ ++ for (j = (w&7)/2; j; j--) { ++ *dst++ = *y++; ++ *dst++ = *u++; ++ *dst++ = *y++; ++ *dst++ = *v++; ++ } ++ y += yinc; ++ u = (i%2) ? (u + uinc): (u - w/2); ++ v = (i%2) ? (v + vinc): (v - w/2); ++ dst += dstinc; ++ } ++} + + static int + SMI_PutImage( +@@ -1592,7 +1704,7 @@ SMI_PutImage( + offset3 = tmp; + } + nLines = ((((y2 + 0xffff) >> 16) + 1) & ~1) - top; +- xf86XVCopyYUV12ToPacked(buf + (top * srcPitch) + (left >> 1), ++ myXVCopyYUV12ToPacked(buf + (top * srcPitch) + (left >> 1), + buf + offset2, buf + offset3, dstStart, + srcPitch, srcPitch2, dstPitch, nLines, + nPixels); diff --git a/extra/xf86-video-siliconmotion/xserver-xorg-video-siliconmotion-2.2.8-medan.r04.patch b/extra/xf86-video-siliconmotion/xserver-xorg-video-siliconmotion-2.2.8-medan.r04.patch new file mode 100644 index 000000000..acb9716be --- /dev/null +++ b/extra/xf86-video-siliconmotion/xserver-xorg-video-siliconmotion-2.2.8-medan.r04.patch @@ -0,0 +1,104 @@ +diff -Naur xserver-xorg-video-siliconmotion-2.2.8/debian/changelog xserver-xorg-video-siliconmotion-2.2.8-new/debian/changelog +--- xserver-xorg-video-siliconmotion-2.2.8/debian/changelog 2009-02-22 02:19:30.000000000 +0800 ++++ xserver-xorg-video-siliconmotion-2.2.8-new/debian/changelog 2009-02-21 07:36:10.000000000 +0800 +@@ -1,3 +1,18 @@ ++xserver-xorg-video-siliconmotion (2:2.2.8-medan.r04) unstable; urgency=low ++ ++ * Fixed Xv not reporting any imaging modes. Caused all SDL overlays to ++ be software scaled and drawn in xshm. ++ ++ -- Derrick Sobodash Sat, 21 Feb 2009 06:49:11 +0000 ++ ++xserver-xorg-video-siliconmotion (2:2.2.8-medan.r03) unstable; urgency=low ++ ++ * Hacked Xv to fix driver reporting RGB colorspaces as BGR. ++ * Forked from 2:2.2.8-lemote.r02. Next revision writes Loongson opcodes, ++ which GCC is not supporting. How do you compile it!? ++ ++ -- Derrick Sobodash Sat, 14 Feb 2009 06:49:11 +0000 ++ + xserver-xorg-video-siliconmotion (2:2.2.8-lemote.r02) unstable; urgency=low + + * Add fast Xv packed ouput for YeeLoong notebook without lost of quality. +diff -Naur xserver-xorg-video-siliconmotion-2.2.8/src/smi_video.c xserver-xorg-video-siliconmotion-2.2.8-new/src/smi_video.c +--- xserver-xorg-video-siliconmotion-2.2.8/src/smi_video.c 2009-02-22 02:19:30.000000000 +0800 ++++ xserver-xorg-video-siliconmotion-2.2.8-new/src/smi_video.c 2009-02-22 02:23:55.000000000 +0800 +@@ -245,7 +245,7 @@ + + /**************************************************************************/ + /* number of (generated) XV_ENCODING vaulues */ +-#define N_ENCODINGS ((N_VIDEO_NORMS) * (N_COMPOSITE_CHANNELS + N_SVIDEO_CHANNELS)) ++#define N_ENCODINGS (((N_VIDEO_NORMS) * (N_COMPOSITE_CHANNELS + N_SVIDEO_CHANNELS)) +1) + + + /**************************************************************************/ +@@ -310,7 +310,7 @@ + XvPacked, /* format */ + 1, /* num_planes */ + 15, /* depth */ +- 0x001F, 0x03E0, 0x7C00, /* red_mask, green, blue */ ++ 0x7C00, 0x03E0, 0x001F, /* red_mask, green, blue */ + 0, 0, 0, /* y_sample_bits, u, v */ + 0, 0, 0, /* horz_y_period, u, v */ + 0, 0, 0, /* vert_y_period, u, v */ +@@ -329,7 +329,7 @@ + XvPacked, /* format */ + 1, /* num_planes */ + 16, /* depth */ +- 0x001F, 0x07E0, 0xF800, /* red_mask, green, blue */ ++ 0xF800, 0x07E0, 0x001F, /* red_mask, green, blue */ + 0, 0, 0, /* y_sample_bits, u, v */ + 0, 0, 0, /* horz_y_period, u, v */ + 0, 0, 0, /* vert_y_period, u, v */ +@@ -348,7 +348,7 @@ + XvPacked, /* format */ + 1, /* num_planes */ + 24, /* depth */ +- 0x0000FF, 0x00FF00, 0xFF0000, /* red_mask, green, blue */ ++ 0xFF0000, 0x00FF00, 0x0000FF, /* red_mask, green, blue */ + 0, 0, 0, /* y_sample_bits, u, v */ + 0, 0, 0, /* horz_y_period, u, v */ + 0, 0, 0, /* vert_y_period, u, v */ +@@ -367,7 +367,7 @@ + XvPacked, /* format */ + 1, /* num_planes */ + 24, /* depth */ +- 0x0000FF, 0x00FF00, 0xFF0000, /* red_mask, green, blue */ ++ 0xFF0000, 0x00FF00, 0x0000FF, /* red_mask, green, blue */ + 0, 0, 0, /* y_sample_bits, u, v */ + 0, 0, 0, /* horz_y_period, u, v */ + 0, 0, 0, /* vert_y_period, u, v */ +@@ -394,7 +394,7 @@ + XvPacked, /* format */ + 1, /* num_planes */ + 16, /* depth */ +- 0x001F, 0x07E0, 0xF800, /* red_mask, green, blue */ ++ 0xF800, 0x07E0, 0x001F, /* red_mask, green, blue */ + 0, 0, 0, /* y_sample_bits, u, v */ + 0, 0, 0, /* horz_y_period, u, v */ + 0, 0, 0, /* vert_y_period, u, v */ +@@ -413,7 +413,7 @@ + XvPacked, /* format */ + 1, /* num_planes */ + 24, /* depth */ +- 0x0000FF, 0x00FF00, 0xFF0000, /* red_mask, green, blue */ ++ 0xFF0000, 0x00FF00, 0x0000FF, /* red_mask, green, blue */ + 0, 0, 0, /* y_sample_bits, u, v */ + 0, 0, 0, /* horz_y_period, u, v */ + 0, 0, 0, /* vert_y_period, u, v */ +@@ -589,6 +589,15 @@ + + /* fill arrays */ + p->nenc = 0; ++ /* force XV_IMAGE at 0 */ ++ p->enc[0].width = 2048; ++ p->enc[0].height = 2048; ++ p->enc[0].rate.numerator = 1; ++ p->enc[0].rate.denominator = 1; ++ p->enc[0].name = xalloc(strlen("XV_IMAGE")+1); ++ sprintf(p->enc[0].name, "% s", "XV_IMAGE"); ++ ++ p->nenc = 1; + for (ch = 0; ch < N_COMPOSITE_CHANNELS; ch++) { + for (n = 0; n < N_VIDEO_NORMS; n++) { + SMI_AddEncoding(p->enc, p->nenc, n, VID_COMPOSITE, ch); diff --git a/extra/xf86-video-siliconmotion/xserver-xorg-video-siliconmotion_1.7.5-1loongson2.diff b/extra/xf86-video-siliconmotion/xserver-xorg-video-siliconmotion_1.7.5-1loongson2.diff new file mode 100644 index 000000000..8b9f49395 --- /dev/null +++ b/extra/xf86-video-siliconmotion/xserver-xorg-video-siliconmotion_1.7.5-1loongson2.diff @@ -0,0 +1,707 @@ +--- xserver-xorg-video-siliconmotion-1.7.5.orig/autogen.sh ++++ xserver-xorg-video-siliconmotion-1.7.5/autogen.sh +@@ -0,0 +1,12 @@ ++#! /bin/sh ++ ++srcdir=`dirname $0` ++test -z "$srcdir" && srcdir=. ++ ++ORIGDIR=`pwd` ++cd $srcdir ++ ++autoreconf -v --install || exit 1 ++cd $ORIGDIR || exit $? ++ ++$srcdir/configure --enable-maintainer-mode "$@" +--- xserver-xorg-video-siliconmotion-1.7.5.orig/debian/README.source ++++ xserver-xorg-video-siliconmotion-1.7.5/debian/README.source +@@ -0,0 +1,49 @@ ++------------------------------------------------------ ++Quick Guide To Patching This Package For The Impatient ++------------------------------------------------------ ++ ++1. Make sure you have quilt installed ++2. Unpack the package as usual with "dpkg-source -x" ++3. Run the "patch" target in debian/rules ++4. Create a new patch with "quilt new" (see quilt(1)) ++5. Edit all the files you want to include in the patch with "quilt edit" ++ (see quilt(1)). ++6. Write the patch with "quilt refresh" (see quilt(1)) ++7. Run the "clean" target in debian/rules ++ ++Alternatively, instead of using quilt directly, you can drop the patch in to ++debian/patches and add the name of the patch to debian/patches/series. ++ ++------------------------------------ ++Guide To The X Strike Force Packages ++------------------------------------ ++ ++The X Strike Force team maintains X packages in git repositories on ++git.debian.org in the pkg-xorg subdirectory. Most upstream packages ++are actually maintained in git repositories as well, so they often ++just need to be pulled into git.debian.org in a "upstream-*" branch. ++Otherwise, the upstream sources are manually installed in the Debian ++git repository. ++ ++The .orig.tar.gz upstream source file could be generated using this ++"upstream-*" branch in the Debian git repository but it is actually ++copied from upstream tarballs directly. ++ ++Due to X.org being highly modular, packaging all X.org applications ++as their own independent packages would have created too many Debian ++packages. For this reason, some X.org applications have been grouped ++into larger packages: xutils, xutils-dev, x11-apps, x11-session-utils, ++x11-utils, x11-xfs-utils, x11-xkb-utils, x11-xserver-utils. ++Most packages, including the X.org server itself and all libraries ++and drivers are, however maintained independently. ++ ++The Debian packaging is added by creating the "debian-*" git branch ++which contains the aforementioned "upstream-*" branch plus the debian/ ++repository files. ++When a patch has to be applied to the Debian package, two solutions ++are involved: ++* If the patch is available in one of the upstream branches, it ++ may be git'cherry-picked into the Debian repository. In this ++ case, it appears directly in the .diff.gz. ++* Otherwise, the patch is added to debian/patches/ which is managed ++ with quilt as documented in /usr/share/doc/quilt/README.source. +--- xserver-xorg-video-siliconmotion-1.7.5.orig/debian/changelog ++++ xserver-xorg-video-siliconmotion-1.7.5/debian/changelog +@@ -0,0 +1,287 @@ ++xserver-xorg-video-siliconmotion (1:1.7.5-1loongson2) unstable; urgency=low ++ ++ * Non-maintainer upload. ++ * enable CRT output, ++ * loongson2f ++ ++ -- liu shiwei Sun, 15 May 2011 21:35:08 +0800 ++ ++xserver-xorg-video-siliconmotion (1:1.7.5-1) unstable; urgency=low ++ ++ * New upstream release. ++ * Bump xutils-dev build-dep for new macros. ++ * Update debian/copyright from upstream COPYING. ++ ++ -- Cyril Brulebois Wed, 09 Mar 2011 00:31:34 +0100 ++ ++xserver-xorg-video-siliconmotion (1:1.7.4-3) unstable; urgency=low ++ ++ * Switch to dh: ++ - Use debhelper 8. ++ - Use dh-autoreconf. ++ - Bump xserver-xorg-dev build-dep for dh_xsf_substvars and xsf ++ debhelper sequence. ++ * Remove xsfbs accordingly. ++ * Update Uploaders list. Thanks, David & Brice! ++ * Remove long obsolete Replaces/Conflicts. ++ * Wrap Depends/Provides. ++ * Bump Standards-Version to 3.9.1 (no changes needed). ++ ++ -- Cyril Brulebois Sat, 05 Feb 2011 14:55:28 +0100 ++ ++xserver-xorg-video-siliconmotion (1:1.7.4-2) experimental; urgency=low ++ ++ [ Julien Cristau ] ++ * Drop 01_siliconmotion_rotate_option_disables_randr.diff, it was disabled ++ since 1.7.0 and most likely obsoleted by randr 1.2 support in that ++ release. ++ ++ [ Cyril Brulebois ] ++ * Build against Xserver 1.9.1 rc1. ++ ++ -- Cyril Brulebois Sat, 16 Oct 2010 21:03:39 +0200 ++ ++xserver-xorg-video-siliconmotion (1:1.7.4-1) experimental; urgency=low ++ ++ [ Christopher James Halse Rogers ] ++ * New upstream release ++ - Fixes FTBFS against Xserver 1.8 ++ ++ -- Julien Cristau Thu, 10 Jun 2010 11:32:50 +0200 ++ ++xserver-xorg-video-siliconmotion (1:1.7.3-2) unstable; urgency=low ++ ++ [ Julien Cristau ] ++ * Rename the build directory to not include DEB_BUILD_GNU_TYPE for no ++ good reason. Thanks, Colin Watson! ++ * Remove myself from Uploaders ++ ++ [ Cyril Brulebois ] ++ * Update to new xsfbs, replace deprecated ${xserver:Depends} with ++ ${xviddriver:Depends} in Depends, and bump B-D on xserver-xorg-dev ++ accordingly. ++ * Add myself to Uploaders. ++ * Bump Standards-Version from 3.8.3 to 3.8.4 (no changes needed). ++ ++ -- Cyril Brulebois Tue, 04 May 2010 00:19:15 +0200 ++ ++xserver-xorg-video-siliconmotion (1:1.7.3-1) experimental; urgency=low ++ ++ [ Timo Aaltonen ] ++ * New upstream release. ++ * Bump Standards-Version to 3.8.3. ++ * Build against Xserver 1.7. ++ ++ [ Cyril Brulebois ] ++ * Upload to experimental. ++ ++ -- Cyril Brulebois Sun, 06 Dec 2009 01:50:22 +0100 ++ ++xserver-xorg-video-siliconmotion (1:1.7.2-1) unstable; urgency=low ++ ++ * New upstream release. ++ * Bump Standards-Version to 3.8.2. ++ * Remove 01_gen_pci_ids.diff. The X server now uses an internal table to ++ choose a driver during autoconfiguration. ++ ++ -- Brice Goglin Mon, 20 Jul 2009 00:13:38 +0200 ++ ++xserver-xorg-video-siliconmotion (1:1.7.1-1) unstable; urgency=low ++ ++ * New upstream release. ++ ++ -- Brice Goglin Wed, 29 Apr 2009 18:33:55 +0200 ++ ++xserver-xorg-video-siliconmotion (1:1.7.0-2) unstable; urgency=low ++ ++ * Upload to unstable. ++ ++ -- Julien Cristau Thu, 09 Apr 2009 11:38:48 +0100 ++ ++xserver-xorg-video-siliconmotion (1:1.7.0-1) experimental; urgency=low ++ ++ * New upstream release. ++ + Add support for EXA, RandR 1.2 and some smi 50x chipsets. ++ + Disable 01_siliconmotion_rotate_option_disables_randr.diff. ++ * Build against xserver 1.6 rc1. ++ * Allow parallel builds. ++ * Run autoreconf on build; add build-deps on automake, libtool and ++ xutils-dev. ++ * Add myself to Uploaders. ++ ++ -- Brice Goglin Sun, 01 Feb 2009 16:15:46 +0100 ++ ++xserver-xorg-video-siliconmotion (1:1.6.0-2) experimental; urgency=low ++ ++ * Build against xserver 1.5. ++ ++ -- Julien Cristau Mon, 08 Sep 2008 19:37:00 +0100 ++ ++xserver-xorg-video-siliconmotion (1:1.6.0-1) unstable; urgency=low ++ ++ [ Brice Goglin ] ++ * Add upstream URL to debian/copyright. ++ ++ [ Julien Cristau ] ++ * New upstream release. ++ * Refresh patches. ++ * Remove Branden from Uploaders with his permission, and add myself. ++ * Bump Standards-Version to 3.7.3. ++ * Drop the XS- prefix from Vcs-* control fields. ++ * Run dpkg-shlibdeps with --warnings=6. Drivers reference symbols from ++ /usr/bin/Xorg and other modules, and that's not a bug, so we want ++ dpkg-shlibdeps to shut up about symbols it can't find. Build-depend on ++ dpkg-dev >= 1.14.17. ++ ++ -- Julien Cristau Fri, 06 Jun 2008 12:19:48 +0200 ++ ++xserver-xorg-video-siliconmotion (1:1.5.1-3) unstable; urgency=low ++ ++ * Upload to unstable ++ ++ -- David Nusinow Sun, 16 Sep 2007 15:43:48 -0400 ++ ++xserver-xorg-video-siliconmotion (1:1.5.1-2) experimental; urgency=low ++ ++ * Build against xserver 1.4 and build-dep on it ++ * Add 02_gen_pci_ids.diff. This patch provides a set of pci id's supported ++ by this driver so that it can be automatically loaded by the server. ++ ++ -- David Nusinow Thu, 13 Sep 2007 20:20:40 -0400 ++ ++xserver-xorg-video-siliconmotion (1:1.5.1-1) unstable; urgency=low ++ ++ [ Julien Cristau ] ++ * Add link to xserver-xorg-core bug script, so that bugreports contain ++ the user's config and log files. ++ * Bump dependency on xserver-xorg-core to >= 2:1.1.1-11, as previous ++ versions don't have the bug script. ++ ++ [ Timo Aaltonen ] ++ * Replaces/Conflicts: xserver-xorg-driver-siliconmotion. ++ ++ [ Brice Goglin ] ++ * New upstream version ++ + Pull more upstream fixes up-to 1a803a8f91a931c00106f9d3d41cfa5d74c19f55 ++ + Refresh 01_siliconmotion_rotate_option_disables_randr.diff ++ * Install the upstream changelog. ++ * Bump Build-Depends: xserver-xorg-dev to >= 2:1.2.99.902 ++ (needed to let xsfbs get access to serverminver). ++ * Add XS-Vcs-*. ++ * Add a link to www.X.org and a reference to the xf86-video-siliconmotion ++ module in the long description. ++ * Remove Fabio from uploaders with his permission. He's always welcome back. ++ ++ -- Julien Cristau Wed, 02 May 2007 15:08:45 +0200 ++ ++xserver-xorg-video-siliconmotion (1:1.4.2-1) experimental; urgency=low ++ ++ * New upstream version ++ * Generate server dependencies automatically from the ABI ++ ++ -- David Nusinow Wed, 21 Feb 2007 22:54:34 -0500 ++ ++xserver-xorg-video-siliconmotion (1:1.4.1-4) unstable; urgency=low ++ ++ * Add quilt to build-depends. Thanks lamont. closes: #388641 ++ * Bump standards version to 3.7.2.0. No changes needed. ++ ++ -- David Nusinow Thu, 21 Sep 2006 22:20:51 -0400 ++ ++xserver-xorg-video-siliconmotion (1:1.4.1-3) unstable; urgency=low ++ ++ [ Steve Langasek ] ++ * Upload to unstable ++ ++ -- David Nusinow Mon, 18 Sep 2006 19:57:51 -0400 ++ ++xserver-xorg-video-siliconmotion (1:1.4.1-2) experimental; urgency=low ++ ++ [ Drew Parsons ] ++ * Provides: xserver-xorg-video-1.0 not xserver-xorg-video. ++ ++ [ David Nusinow ] ++ * Bump xserver (build-)depends epochs to 2: to deal with botched ++ server upload ++ ++ -- David Nusinow Tue, 22 Aug 2006 23:46:40 +0000 ++ ++xserver-xorg-video-siliconmotion (1:1.4.1-1) experimental; urgency=low ++ ++ [ Andres Salomon ] ++ * Test for obj-$(DEB_BUILD_GNU_TYPE) before creating it during build; ++ idempotency fix. ++ * Run dh_install w/ --list-missing. ++ ++ [ David Nusinow ] ++ * New upstream release ++ * Add dependency on xserver-xorg-core to >= 1:1.1.1. Bump version for ++ the build-dep on xserver-xorg-dev. ++ * Bump debhelper compat to 5 ++ ++ -- David Nusinow Tue, 15 Aug 2006 23:45:05 +0000 ++ ++xserver-xorg-video-siliconmotion (1:1.3.1.5-3) unstable; urgency=low ++ ++ * Upload to modular ++ ++ -- David Nusinow Sun, 26 Mar 2006 20:25:54 -0500 ++ ++xserver-xorg-video-siliconmotion (1:1.3.1.5-2) experimental; urgency=low ++ ++ * Port patches from trunk: ++ + general/083_siliconmotion_rotate_option_disables_randr.diff ++ ++ -- David Nusinow Sun, 26 Feb 2006 17:53:12 -0500 ++ ++xserver-xorg-video-siliconmotion (1:1.3.1.5-1) experimental; urgency=low ++ ++ * First upload to Debian ++ * Change source package, package, and provides names to denote the ++ type of driver and that they are for xserver-xorg ++ ++ -- David Nusinow Fri, 13 Jan 2006 00:40:05 -0500 ++ ++xserver-xorg-driver-siliconmotion (1:1.3.1.5-0ubuntu1) dapper; urgency=low ++ ++ * New upstream release. ++ * Add provides on xserver-xorg-driver. ++ ++ -- Daniel Stone Wed, 4 Jan 2006 20:02:33 +1100 ++ ++xserver-xorg-driver-siliconmotion (1:1.3.1.4-0ubuntu1) dapper; urgency=low ++ ++ * New upstream release. ++ ++ -- Daniel Stone Mon, 19 Dec 2005 09:11:22 +1100 ++ ++xserver-xorg-driver-siliconmotion (1:1.3.1.3-0ubuntu1) dapper; urgency=low ++ ++ * New upstream release. ++ ++ -- Daniel Stone Mon, 12 Dec 2005 13:07:11 +1100 ++ ++xserver-xorg-driver-siliconmotion (1:1.3.1.2-0ubuntu2) dapper; urgency=low ++ ++ * Add missing Build-Depends (x11proto-core-dev, x11proto-fonts-dev, ++ x11proto-randr-dev, x11proto-render-dev). ++ ++ -- Daniel Stone Mon, 5 Dec 2005 12:57:32 +1100 ++ ++xserver-xorg-driver-siliconmotion (1:1.3.1.2-0ubuntu1) dapper; urgency=low ++ ++ * New upstream release. ++ ++ -- Daniel Stone Tue, 22 Nov 2005 13:36:09 +1100 ++ ++xserver-xorg-driver-siliconmotion (1:1.3.1.1-1) dapper; urgency=low ++ ++ * New upstream release. ++ ++ -- Daniel Stone Tue, 25 Oct 2005 17:10:12 +1000 ++ ++xserver-xorg-driver-siliconmotion (1:1.3.1-1) breezy; urgency=low ++ ++ * First xserver-xorg-driver-siliconmotion release. ++ ++ -- Daniel Stone Wed, 6 Jul 2005 15:48:17 +1000 +--- xserver-xorg-video-siliconmotion-1.7.5.orig/debian/xserver-xorg-video-siliconmotion.install ++++ xserver-xorg-video-siliconmotion-1.7.5/debian/xserver-xorg-video-siliconmotion.install +@@ -0,0 +1,2 @@ ++usr/lib/xorg/modules/drivers/*.so ++usr/share/man/man4/* +--- xserver-xorg-video-siliconmotion-1.7.5.orig/debian/copyright ++++ xserver-xorg-video-siliconmotion-1.7.5/debian/copyright +@@ -0,0 +1,75 @@ ++This package was downloaded from ++http://xorg.freedesktop.org/releases/individual/driver/ ++ ++Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved. ++Copyright (C) 2000,2008 Silicon Motion, Inc. All Rights Reserved. ++Copyright (C) 2001 Corvin Zahn. All Rights Reserved. ++Copyright (C) 2008 Francisco Jerez. All Rights Reserved. ++Copyright (C) 2008 Mandriva Linux. All Rights Reserved. ++ ++Permission is hereby granted, free of charge, to any person obtaining a copy of ++this software and associated documentation files (the "Software"), to deal in ++the Software without restriction, including without limitation the rights to ++use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies ++of the Software, and to permit persons to whom the Software is furnished to do ++so, subject to the following conditions: ++ ++The above copyright notice and this permission notice shall be included in all ++copies or substantial portions of the Software. ++ ++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- ++NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN ++AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++ ++Except as contained in this notice, the names of The XFree86 Project and ++Silicon Motion shall not be used in advertising or otherwise to promote the ++sale, use or other dealings in this Software without prior written ++authorization from The XFree86 Project or Silicon Motion. ++ ++****************************************************************************** ++ ++Copyright 2007 George Sapountzis ++ ++Permission is hereby granted, free of charge, to any person obtaining a ++copy of this software and associated documentation files (the "Software"), ++to deal in the Software without restriction, including without limitation ++the rights to use, copy, modify, merge, publish, distribute, sublicense, ++and/or sell copies of the Software, and to permit persons to whom the ++Software is furnished to do so, subject to the following conditions: ++ ++The above copyright notice and this permission notice (including the next ++paragraph) shall be included in all copies or substantial portions of the ++Software. ++ ++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++SOFTWARE. ++ ++****************************************************************************** ++ ++Copyright (C) 2006 Dennis De Winter All Rights Reserved. ++Copyright (C) 2007 Alex Deucher All Rights Reserved. ++ ++Permission is hereby granted, free of charge, to any person obtaining a copy of ++this software and associated documentation files (the "Software"), to deal in ++the Software without restriction, including without limitation the rights to ++use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies ++of the Software, and to permit persons to whom the Software is furnished to do ++so, subject to the following conditions: ++ ++The above copyright notice and this permission notice shall be included in all ++copies or substantial portions of the Software. ++ ++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- ++NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN ++AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +--- xserver-xorg-video-siliconmotion-1.7.5.orig/debian/watch ++++ xserver-xorg-video-siliconmotion-1.7.5/debian/watch +@@ -0,0 +1,3 @@ ++#git=git://anongit.freedesktop.org/xorg/driver/xf86-video-siliconmotion ++version=3 ++http://xorg.freedesktop.org/releases/individual/driver/ xf86-video-siliconmotion-(.*)\.tar\.gz +--- xserver-xorg-video-siliconmotion-1.7.5.orig/debian/gbp.conf ++++ xserver-xorg-video-siliconmotion-1.7.5/debian/gbp.conf +@@ -0,0 +1,4 @@ ++[DEFAULT] ++upstream-branch=upstream-experimental ++debian-branch=debian-experimental ++pristine-tar = True +--- xserver-xorg-video-siliconmotion-1.7.5.orig/debian/rules ++++ xserver-xorg-video-siliconmotion-1.7.5/debian/rules +@@ -0,0 +1,17 @@ ++#!/usr/bin/make -f ++ ++# Install in debian/tmp to retain control through dh_install: ++override_dh_auto_install: ++ dh_auto_install --destdir=debian/tmp ++ ++# Kill *.la files, and forget no-one: ++override_dh_install: ++ find debian/tmp -name '*.la' -delete ++ dh_install --fail-missing ++ ++# That's a plugin, use appropriate warning level: ++override_dh_shlibdeps: ++ dh_shlibdeps -- --warnings=6 ++ ++%: ++ dh $@ --with quilt,autoreconf,xsf --builddirectory=build/ +--- xserver-xorg-video-siliconmotion-1.7.5.orig/debian/control ++++ xserver-xorg-video-siliconmotion-1.7.5/debian/control +@@ -0,0 +1,38 @@ ++Source: xserver-xorg-video-siliconmotion ++Section: x11 ++Priority: optional ++Maintainer: Debian X Strike Force ++Uploaders: Cyril Brulebois ++Build-Depends: ++ debhelper (>= 8), ++ dh-autoreconf, ++ pkg-config, ++ xserver-xorg-dev (>= 2:1.9.4), ++ x11proto-video-dev, ++ x11proto-xext-dev, ++ x11proto-core-dev, ++ x11proto-fonts-dev, ++ x11proto-randr-dev (>= 1.2), ++ x11proto-render-dev, ++ quilt, ++ xutils-dev (>= 1:7.5+4), ++Standards-Version: 3.9.1 ++Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-video-siliconmotion ++Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-video-siliconmotion.git ++ ++Package: xserver-xorg-video-siliconmotion ++Architecture: any ++Depends: ++ ${shlibs:Depends}, ++ ${misc:Depends}, ++ ${xviddriver:Depends}, ++Provides: ++ ${xviddriver:Provides} ++Description: X.Org X server -- SiliconMotion display driver ++ This package provides the driver for the SiliconMotion Lynx and Cougar family ++ of chipsets, commonly found in laptops. ++ . ++ More information about X.Org can be found at: ++ ++ . ++ This package is built from the X.org xf86-video-siliconmotion driver module. +--- xserver-xorg-video-siliconmotion-1.7.5.orig/debian/xserver-xorg-video-siliconmotion.links ++++ xserver-xorg-video-siliconmotion-1.7.5/debian/xserver-xorg-video-siliconmotion.links +@@ -0,0 +1 @@ ++usr/share/bug/xserver-xorg-core/script usr/share/bug/xserver-xorg-video-siliconmotion/script +--- xserver-xorg-video-siliconmotion-1.7.5.orig/debian/compat ++++ xserver-xorg-video-siliconmotion-1.7.5/debian/compat +@@ -0,0 +1 @@ ++8 +--- xserver-xorg-video-siliconmotion-1.7.5.orig/debian/patches/98_sm712_CRT_enable.diff ++++ xserver-xorg-video-siliconmotion-1.7.5/debian/patches/98_sm712_CRT_enable.diff +@@ -0,0 +1,14 @@ ++--- ../xx/xserver-xorg-video-siliconmotion-1.7.3/src/smi_driver.c 2010-03-09 23:39:23.451798382 +0800 +++++ xserver-xorg-video-siliconmotion-1.7.3/src/smi_driver.c 2010-03-10 10:36:58.835798871 +0800 ++@@ -1805,6 +1797,11 @@ ++ pScreen->SaveScreen = SMI_SaveScreen; ++ pSmi->CloseScreen = pScreen->CloseScreen; ++ pScreen->CloseScreen = SMI_CloseScreen; +++ /* Added by Belcon to enable LCD Panel Control Select */ +++ if (pSmi->Chipset == SMI_LYNXEMplus) +++ { +++ VGAOUT8_INDEX (pSmi, VGA_SEQ_INDEX, VGA_SEQ_DATA, 0x22, 2); +++ } ++ ++ if ((IS_MSOC(pSmi) && ++ !xf86DPMSInit(pScreen, SMI501_DisplayPowerManagementSet, 0)) || +--- xserver-xorg-video-siliconmotion-1.7.5.orig/debian/patches/series ++++ xserver-xorg-video-siliconmotion-1.7.5/debian/patches/series +@@ -0,0 +1,2 @@ ++98_sm712_CRT_enable.diff ++99_xf86-video-siliconmotion-1.7.3-fix-loongson.diff +--- xserver-xorg-video-siliconmotion-1.7.5.orig/debian/patches/99_xf86-video-siliconmotion-1.7.3-fix-loongson.diff ++++ xserver-xorg-video-siliconmotion-1.7.5/debian/patches/99_xf86-video-siliconmotion-1.7.3-fix-loongson.diff +@@ -0,0 +1,160 @@ ++rixed@happyleptic.org ++ 发送至 loongson-dev ++ ++A patch for siliconmotion 1.7.3 is available in the bug trackers ++at freedesktop.org, but a better one will be available monday. ++Still, it lacks the most interresting part : the MMX pack function, ++which should not be implemented there but probably either directly ++in Xv or in pixman (and make Xv use pixman). ++ ++So for now the simpliest is to fix these manually. ++For the impatient I attach a patch against SM 1.7.3 ++With it, 16bpp and AccelMethod = "XAA" works quite well. ++ ++Just an ugly hack really. ++diff -ur orig/src/smi_video.c mod/src/smi_video.c ++--- orig/src/smi_video.c 2010-02-05 13:11:18.000000000 +0100 +++++ mod/src/smi_video.c 2010-02-05 13:20:36.000000000 +0100 ++@@ -276,6 +276,7 @@ ++ XVIMAGE_YUY2, ++ XVIMAGE_YV12, ++ XVIMAGE_I420, +++ XVIMAGE_UYVY, ++ { ++ FOURCC_RV15, /* id */ ++ XvRGB, /* type */ ++@@ -1462,6 +1463,117 @@ ++ LEAVE(); ++ } ++ +++static void myXVCopyYUV12ToPacked(const unsigned char *srcy, const unsigned char *srcv, const unsigned char *srcu, +++ unsigned char *dst, int srcPitchy, int srcPitchuv, int dstPitch, int h, int w) +++{ +++ int i, j; +++ unsigned char const *y, *u, *v; +++ int dstinc, yinc, uinc, vinc; +++ +++ y = srcy; +++ u = srcu; +++ v = srcv; +++ +++ dstinc = dstPitch - 2*w; +++ yinc = srcPitchy - w; +++ uinc = srcPitchuv - w/2; +++ vinc = srcPitchuv - w/2; +++ +++ for (i = 0; i < h; i++) { +++ asm ( +++// ".set arch=loongson2f\n\t" +++ ".set noreorder\n\t" +++ "move $8, %8 \n\t" +++ "1: \n\t" +++ "beqz $8, 2f \n\t" +++ "xor $f0, $f0, $f0 \n\t" +++ "ldc1 $f4, (%0) \n\t" +++ "punpcklbh $f2, $f4, $f0 \n\t" +++ "punpckhbh $f4, $f4, $f0 \n\t" +++ "ldc1 $f16, 8(%0) \n\t" +++ "punpcklbh $f14, $f16, $f0 \n\t" +++ "punpckhbh $f16, $f16, $f0 \n\t" +++ +++ "lwc1 $f8, (%1) \n\t" +++ "lwc1 $f12, (%2) \n\t" +++ "punpcklbh $f8, $f8, $f12 \n\t" +++ "punpcklbh $f6, $f0, $f8 \n\t" +++ "punpckhbh $f8, $f0, $f8 \n\t" +++ "lwc1 $f18, 4(%1) \n\t" +++ "lwc1 $f12, 4(%2) \n\t" +++ "punpcklbh $f18, $f18, $f12 \n\t" +++ "punpcklbh $f10, $f0, $f18 \n\t" +++ "punpckhbh $f12, $f0, $f18 \n\t" +++ +++ "or $f2, $f2, $f6 \n\t" +++ "or $f4, $f4, $f8 \n\t" +++ "or $f14, $f14, $f10 \n\t" +++ "or $f16, $f16, $f12 \n\t" +++ +++ "sdc1 $f2, (%3) \n\t" +++ "sdc1 $f4, 8(%3) \n\t" +++ "add %0, 16 \n\t" +++ "add %1, 8 \n\t" +++ "add %2, 8 \n\t" +++ "sdc1 $f14, 0x10(%3) \n\t" +++ "sdc1 $f16, 0x18(%3) \n\t" +++ "add $8, -1 \n\t" +++ "b 1b \n\t" +++ "add %3, 32 \n\t" +++ "2: \n\t" +++ ".set reorder\n\t" +++ : "=r" (y), "=r" (u), "=r" (v), "=r" (dst) +++ : "0" (y), "1" (u), "2" (v), "3" (dst), "r" (w>>4) +++ : "memory","$8" +++ ); +++ +++ asm ( +++// ".set arch=loongson2f\n\t" +++ ".set noreorder\n\t" +++ "move $8, %8 \n\t" +++ "1: \n\t" +++ "beqz $8, 2f \n\t" +++ "xor $f0, $f0, $f0 \n\t" +++ "ldc1 $f4, (%0) \n\t" +++ "punpcklbh $f2, $f4, $f0 \n\t" +++ "punpckhbh $f4, $f4, $f0 \n\t" +++ +++ "lwc1 $f8, (%1) \n\t" +++ "lwc1 $f12, (%2) \n\t" +++ "punpcklbh $f8, $f8, $f12 \n\t" +++ "punpcklbh $f6, $f0, $f8 \n\t" +++ "punpckhbh $f8, $f0, $f8 \n\t" +++ +++ "or $f2, $f2, $f6 \n\t" +++ "or $f4, $f4, $f8 \n\t" +++ +++ "sdc1 $f2, (%3) \n\t" +++ "sdc1 $f4, 8(%3) \n\t" +++ "add %0, 8 \n\t" +++ "add %1, 4 \n\t" +++ "add %2, 4 \n\t" +++ "add $8, -1 \n\t" +++ "b 1b \n\t" +++ "add %3, 16 \n\t" +++ "2:\n\t" +++ ".set reorder\n\t" +++ : "=r" (y), "=r" (u), "=r" (v), "=r" (dst) +++ : "0" (y), "1" (u), "2" (v), "3" (dst), "r" ((w&0xf)/8) +++ : "memory","$8" +++ ); +++ +++ for (j = (w&7)/2; j; j--) { +++ *dst++ = *y++; +++ *dst++ = *u++; +++ *dst++ = *y++; +++ *dst++ = *v++; +++ } +++ y += yinc; +++ u = (i%2) ? (u + uinc): (u - w/2); +++ v = (i%2) ? (v + vinc): (v - w/2); +++ dst += dstinc; +++ } +++} ++ ++ static int ++ SMI_PutImage( ++@@ -1593,7 +1705,7 @@ ++ offset3 = tmp; ++ } ++ nLines = ((((y2 + 0xffff) >> 16) + 1) & ~1) - top; ++- xf86XVCopyYUV12ToPacked(buf + (top * srcPitch) + (left >> 1), +++ myXVCopyYUV12ToPacked(buf + (top * srcPitch) + (left >> 1), ++ buf + offset2, buf + offset3, dstStart, ++ srcPitch, srcPitch2, dstPitch, nLines, ++ nPixels); ++@@ -1793,6 +1905,7 @@ ++ WRITE_VPR(pSmi, 0x1C, offset >> 3); ++ WRITE_VPR(pSmi, 0x20, (pitch >> 3) | ((pitch >> 3) << 16)); ++ WRITE_VPR(pSmi, 0x24, (hstretch & 0xff00) | ((vstretch & 0xff00) >> 8)); +++ WRITE_VPR(pSmi, 0x68, ((hstretch & 0xff) << 8) | (vstretch & 0xff)); ++ if (pSmi->Chipset == SMI_LYNXEMplus) { /* This one can store additional precision */ ++ WRITE_VPR(pSmi, 0x68, ((hstretch & 0xff) << 8) | (vstretch & 0xff)); ++ } -- cgit v1.2.3-54-g00ecf