COPYING | 76 +++++++- ChangeLog | 60 ++++++ README | 13 - configure.ac | 2 debian/README.source | 73 ++++++++ debian/changelog | 9 + debian/control | 2 debian/patches/02_gen_pci_ids.diff | 19 -- debian/patches/series | 1 debian/xserver-xorg-video-siliconmotion.install | 1 debian/xsfbs/xsfbs.sh | 12 - src/smi_driver.c | 214 +++++++++--------------- src/smi_exa.c | 40 +--- src/smilynx_crtc.c | 2 14 files changed, 318 insertions(+), 206 deletions(-)
New commits: commit 976b6738d9d9197763b47500ee1d42b1f7869d91 Author: Brice Goglin <bgog...@debian.org> Date: Mon Jul 20 00:13:45 2009 +0200 Prepare changelog for upload diff --git a/debian/changelog b/debian/changelog index 1fcab88..600fe5e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,11 +1,11 @@ -xserver-xorg-video-siliconmotion (1:1.7.2-1) UNRELEASED; urgency=low +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 <bgog...@debian.org> Mon, 20 Jul 2009 00:12:47 +0200 + -- Brice Goglin <bgog...@debian.org> Mon, 20 Jul 2009 00:13:38 +0200 xserver-xorg-video-siliconmotion (1:1.7.1-1) unstable; urgency=low commit fc32a9937876c958bbc62db08e60a7a33b763d10 Author: Brice Goglin <bgog...@debian.org> Date: Mon Jul 20 00:13:28 2009 +0200 Remove 01_gen_pci_ids.diff. The X server now uses an internal table to choose a driver during autoconfiguration. diff --git a/debian/changelog b/debian/changelog index d9a2744..1fcab88 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,8 +2,10 @@ xserver-xorg-video-siliconmotion (1:1.7.2-1) UNRELEASED; 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 <bgog...@debian.org> Mon, 20 Jul 2009 00:10:55 +0200 + -- Brice Goglin <bgog...@debian.org> Mon, 20 Jul 2009 00:12:47 +0200 xserver-xorg-video-siliconmotion (1:1.7.1-1) unstable; urgency=low diff --git a/debian/patches/02_gen_pci_ids.diff b/debian/patches/02_gen_pci_ids.diff deleted file mode 100644 index 540c02a..0000000 --- a/debian/patches/02_gen_pci_ids.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- /dev/null -+++ xserver-xorg-video-siliconmotion/src/siliconmotion.ids -@@ -0,0 +1,7 @@ -+126F0910 -+126F0810 -+126F0820 -+126F0710 -+126F0712 -+126F0720 -+126F0730 ---- xserver-xorg-video-siliconmotion.orig/src/Makefile.am -+++ xserver-xorg-video-siliconmotion/src/Makefile.am -@@ -51,3 +51,6 @@ - smilynx.h \ - smi501_crtc.c \ - smi501_output.c -+ -+pcidatadir = $(datadir)/xserver-xorg/pci -+pcidata_DATA = siliconmotion.ids diff --git a/debian/patches/series b/debian/patches/series index 09a16fd..5e9a9e7 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,2 +1 @@ #01_siliconmotion_rotate_option_disables_randr.diff -02_gen_pci_ids.diff diff --git a/debian/xserver-xorg-video-siliconmotion.install b/debian/xserver-xorg-video-siliconmotion.install index 8a9f4ba..614cfb4 100644 --- a/debian/xserver-xorg-video-siliconmotion.install +++ b/debian/xserver-xorg-video-siliconmotion.install @@ -1,3 +1,2 @@ usr/lib/xorg/modules/drivers/*.so usr/share/man/man4/* -usr/share/xserver-xorg/pci/* commit aea4e2e85d0662cbe99f2530c12e32d1574331eb Author: Brice Goglin <bgog...@debian.org> Date: Mon Jul 20 00:11:16 2009 +0200 New upstream release diff --git a/ChangeLog b/ChangeLog index fa254f0..d6633da 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,63 @@ +commit d754e9a2954e56a26a94e58d87a450a825c250e6 +Author: Adam Jackson <a...@redhat.com> +Date: Thu Jul 2 11:43:52 2009 -0400 + + siliconmotion 1.7.2 + +commit cd9e9f25294abb739c1772e3a9a7a9c0a921ee82 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Tue Jun 23 13:11:02 2009 +0200 + + Fix EXA rotation for SM502 at 32bpp (bug 22432). + +commit 97498c048c897e5753e61d3b4ab231025974d67c +Author: Adam Jackson <a...@redhat.com> +Date: Thu May 28 15:17:58 2009 -0400 + + Remove useless loader symbol lists. + +commit 536e5df957698251206326edc5a13e833f7c72b1 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Wed May 27 01:23:36 2009 +0200 + + Program MCLK/MXCLK on startup for a secondary SM502. + + This should allow using a SM502 as secondary display + device (bug 21810). + +commit 6a370fa2b6b8fcbd556dd6f9bf92872e9bea23e8 +Author: Alan Coopersmith <alan.coopersm...@sun.com> +Date: Mon May 11 22:31:30 2009 -0700 + + Fill in COPYING file, add SubmittingPatches URL to README + +commit 962e0c4f08180ac51994aef8d6d042108d5841c1 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Sun May 10 01:53:05 2009 +0200 + + Widen the pixel clock readjust interval for SM712. + + Set it to 3MHz so that the pixel clock frequency is overridden + when it's found to be 49MHz, which is reported to be unstable. + +commit 3cc1b9d4bcf1b7a756ea4426c93392ff6d82e9a6 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Tue May 5 00:45:10 2009 +0200 + + Fail gracefully when the specified virtual screen doesn't fit in RAM. + +commit 32628d9884d577d7a672c172c12b7097be276700 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Tue May 5 00:44:17 2009 +0200 + + Probe the amount of installed memory by trial and error on SM712. + + In some cases the BIOS hasn't filled in the "scratchpad registers" + (SR71) with the right amount of memory installed (e.g. MIPS + platform). There seems to be no other way to do it than to test it. + + This should fix bug 21528. + commit 00921b014fa0b5358c22a769cf2450cbd4bdc8a5 Author: Francisco Jerez <curroje...@riseup.net> Date: Tue Apr 28 22:24:03 2009 +0200 diff --git a/debian/changelog b/debian/changelog index 8a5cd6e..d9a2744 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,9 @@ -xserver-xorg-video-siliconmotion (1:1.7.1-2) UNRELEASED; urgency=low +xserver-xorg-video-siliconmotion (1:1.7.2-1) UNRELEASED; urgency=low + * New upstream release. * Bump Standards-Version to 3.8.2. - -- Brice Goglin <bgog...@debian.org> Mon, 20 Jul 2009 00:09:57 +0200 + -- Brice Goglin <bgog...@debian.org> Mon, 20 Jul 2009 00:10:55 +0200 xserver-xorg-video-siliconmotion (1:1.7.1-1) unstable; urgency=low commit 58d938a7cde6c604632c97dd575b6e229db3ac52 Author: Brice Goglin <bgog...@debian.org> Date: Mon Jul 20 00:10:15 2009 +0200 Adding README.source means we can bump Standards-Version diff --git a/debian/changelog b/debian/changelog index f103a3f..8a5cd6e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +xserver-xorg-video-siliconmotion (1:1.7.1-2) UNRELEASED; urgency=low + + * Bump Standards-Version to 3.8.2. + + -- Brice Goglin <bgog...@debian.org> Mon, 20 Jul 2009 00:09:57 +0200 + xserver-xorg-video-siliconmotion (1:1.7.1-1) unstable; urgency=low * New upstream release. diff --git a/debian/control b/debian/control index ce76da6..c13eca3 100644 --- a/debian/control +++ b/debian/control @@ -18,7 +18,7 @@ Build-Depends: automake, libtool, xutils-dev -Standards-Version: 3.7.3 +Standards-Version: 3.8.2 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 commit d754e9a2954e56a26a94e58d87a450a825c250e6 Author: Adam Jackson <a...@redhat.com> Date: Thu Jul 2 11:43:52 2009 -0400 siliconmotion 1.7.2 diff --git a/configure.ac b/configure.ac index da129c8..ec0e99e 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-siliconmotion], - 1.7.1, + 1.7.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-siliconmotion) commit cd9e9f25294abb739c1772e3a9a7a9c0a921ee82 Author: Francisco Jerez <curroje...@riseup.net> Date: Tue Jun 23 13:11:02 2009 +0200 Fix EXA rotation for SM502 at 32bpp (bug 22432). diff --git a/src/smi_exa.c b/src/smi_exa.c index 1b6d42f..5103924 100644 --- a/src/smi_exa.c +++ b/src/smi_exa.c @@ -78,9 +78,6 @@ static void SMI_Composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY, int dstX, int dstY, int width, int height); static void -SMI501_Composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY, - int dstX, int dstY, int width, int height); -static void SMI730_Composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY, int dstX, int dstY, int width, int height); static void @@ -169,12 +166,11 @@ SMI_EXAInit(ScreenPtr pScreen) pSmi->EXADriverPtr->CheckComposite = SMI_CheckComposite; pSmi->EXADriverPtr->PrepareComposite = SMI_PrepareComposite; - if (IS_MSOC(pSmi)) - pSmi->EXADriverPtr->Composite = SMI501_Composite; - else if (pSmi->Chipset == SMI_COUGAR3DR) + if (IS_MSOC(pSmi) || pSmi->Chipset == SMI_COUGAR3DR) pSmi->EXADriverPtr->Composite = SMI730_Composite; else pSmi->EXADriverPtr->Composite = SMI_Composite; + pSmi->EXADriverPtr->DoneComposite = SMI_DoneComposite; if(!exaDriverInit(pScreen, pSmi->EXADriverPtr)) { @@ -711,38 +707,22 @@ SMI_Composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY, LEAVE(); } -#define MSOC_ROTBLTWIDTH 8 -static void -SMI501_Composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY, - int dstX, int dstY, int width, int height) -{ - ENTER(); - - /* SMI501 cannot rotate-blt more than 32 bytes. - * Based on smi's sample smi_shadow.c */ - while (height > MSOC_ROTBLTWIDTH) { - SMI_Composite(pDst, srcX, srcY, maskX, maskY, dstX, dstY, - width, MSOC_ROTBLTWIDTH); - srcY += MSOC_ROTBLTWIDTH; - dstY += MSOC_ROTBLTWIDTH; - height -= MSOC_ROTBLTWIDTH; - } - SMI_Composite(pDst, srcX, srcY, maskX, maskY, dstX, dstY, width, height); - - LEAVE(); -} - static void SMI730_Composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY, int dstX, int dstY, int width, int height) { + ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum]; + SMIPtr pSmi = SMIPTR(pScrn); int maxPixels; ENTER(); - /* SM731 cannot rotate-blt more than a certain number of pixels - (based on a calculation from the Windows driver source */ - maxPixels = 1280 / pDst->drawable.bitsPerPixel; + /* Both SM501 and SM731 cannot rotate-blt more than a certain + number of pixels. */ + if(IS_MSOC(pSmi)) + maxPixels = 128 / pDst->drawable.bitsPerPixel; + else + maxPixels = 1280 / pDst->drawable.bitsPerPixel; while(height>0){ SMI_Composite(pDst, srcX, srcY, maskX, maskY, dstX, dstY, width, min(height, maxPixels)); commit 8f72294ada477f003888b6776883c1dd98289f3f Author: Julien Cristau <jcris...@debian.org> Date: Wed Jun 3 03:37:37 2009 +0200 Kill custom readlink function This was needed for very, very old versions of debianutils. Closes: #498890 diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh index 197eb74..781826f 100644 --- a/debian/xsfbs/xsfbs.sh +++ b/debian/xsfbs/xsfbs.sh @@ -303,16 +303,6 @@ EOF fi } -# we require a readlink command or shell function -if ! which readlink > /dev/null 2>&1; then - message "The readlink command was not found. Please install version" \ - "1.13.1 or later of the debianutils package." - readlink () { - # returns what symlink in $1 actually points to - perl -e '$l = shift; exit 1 unless -l $l; $r = readlink $l; exit 1 unless $r; print "$r\n"' "$1" - } -fi - check_symlink () { # syntax: check_symlink symlink # commit 97498c048c897e5753e61d3b4ab231025974d67c Author: Adam Jackson <a...@redhat.com> Date: Thu May 28 15:17:58 2009 -0400 Remove useless loader symbol lists. diff --git a/src/smi_driver.c b/src/smi_driver.c index 985563b..b47f774 100644 --- a/src/smi_driver.c +++ b/src/smi_driver.c @@ -190,104 +190,6 @@ static const OptionInfoRec SMIOptions[] = { -1, NULL, OPTV_NONE, {0}, FALSE } }; -/* - * Lists of symbols that may/may not be required by this driver. - * This allows the loader to know which ones to issue warnings for. - * - * Note that vgahwSymbols and xaaSymbols are referenced outside the - * XFree86LOADER define in later code, so are defined outside of that - * define here also. - */ - -static const char *vgahwSymbols[] = -{ - "vgaHWCopyReg", - "vgaHWGetHWRec", - "vgaHWGetIOBase", - "vgaHWGetIndex", - "vgaHWInit", - "vgaHWLock", - "vgaHWMapMem", - "vgaHWProtect", - "vgaHWRestore", - "vgaHWSave", - "vgaHWSaveScreen", - "vgaHWSetMmioFuncs", - "vgaHWSetStdFuncs", - "vgaHWUnmapMem", - "vgaHWddc1SetSpeedWeak", - NULL -}; - -static const char *xaaSymbols[] = -{ - "XAAGetCopyROP", - "XAACreateInfoRec", - "XAADestroyInfoRec", - "XAAGetFallbackOps", - "XAAInit", - "XAAGetPatternROP", - NULL -}; - -static const char *exaSymbols[] = -{ - "exaDriverAlloc", - "exaDriverInit", - "exaDriverFini", - "exaOffscreenAlloc", - "exaOffscreenFree", - "exaGetPixmapPitch", - "exaGetPixmapOffset", - "exaGetPixmapSize", - NULL -}; - -static const char *ddcSymbols[] = -{ - "xf86PrintEDID", - "xf86DoEDID_DDC1", - "xf86DoEDID_DDC2", - "xf86SetDDCproperties", - NULL -}; - -static const char *i2cSymbols[] = -{ - "xf86CreateI2CBusRec", - "xf86CreateI2CDevRec", - "xf86DestroyI2CBusRec", - "xf86DestroyI2CDevRec", - "xf86I2CBusInit", - "xf86I2CDevInit", - "xf86I2CReadBytes", - "xf86I2CWriteByte", - NULL -}; - -static const char *int10Symbols[] = -{ - "xf86ExecX86int10", - "xf86FreeInt10", - "xf86InitInt10", - NULL -}; - -static const char *vbeSymbols[] = -{ - "VBEInit", - "vbeDoEDID", - "vbeFree", - NULL -}; - -static const char *fbSymbols[] = -{ - "fbPictureInit", - "fbScreenInit", - NULL -}; - #ifdef XFree86LOADER static MODULESETUPPROTO(siliconmotionSetup); @@ -330,19 +232,6 @@ siliconmotionSetup(pointer module, pointer opts, int *errmaj, int *errmin) xf86AddDriver(&SILICONMOTION, module, 0); /* - * Modules that this driver always requires can be loaded here - * by calling LoadSubModule(). - */ - - /* - * Tell the loader about symbols from other modules that this module - * might refer to. - */ - LoaderRefSymLists(vgahwSymbols, fbSymbols, xaaSymbols, exaSymbols, - ddcSymbols, i2cSymbols, int10Symbols, vbeSymbols, - NULL); - - /* * The return value must be non-NULL on success even though there * is no TearDownProc. */ @@ -537,8 +426,6 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags) if (!xf86LoadSubModule(pScrn, "vgahw")) LEAVE(FALSE); - xf86LoaderReqSymLists(vgahwSymbols, NULL); - /* * Allocate a vgaHWRec */ @@ -721,12 +608,10 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags) if (pSmi->useBIOS) { if (xf86LoadSubModule(pScrn,"int10")) { - xf86LoaderReqSymLists(int10Symbols,NULL); pSmi->pInt10 = xf86InitInt10(pEnt->index); } if (pSmi->pInt10 && xf86LoadSubModule(pScrn, "vbe")) { - xf86LoaderReqSymLists(vbeSymbols, NULL); pSmi->pVbe = VBEInit(pSmi->pInt10, pEnt->index); } @@ -890,12 +775,9 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags) if(!IS_MSOC(pSmi)){ if (xf86LoadSubModule(pScrn, "i2c")) { - xf86LoaderReqSymLists(i2cSymbols, NULL); SMI_I2CInit(pScrn); } - if (xf86LoadSubModule(pScrn, "ddc")) { - xf86LoaderReqSymLists(ddcSymbols, NULL); - } + xf86LoadSubModule(pScrn, "ddc"); } /* @@ -981,8 +863,6 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags) LEAVE(FALSE); } - xf86LoaderReqSymLists(fbSymbols, NULL); - /* Load XAA or EXA if needed */ if (!pSmi->NoAccel) { if (!pSmi->useEXA) { @@ -990,7 +870,6 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags) SMI_FreeRec(pScrn); LEAVE(FALSE); } - xf86LoaderReqSymLists(xaaSymbols, NULL); } else { XF86ModReqInfo req; int errmaj, errmin; @@ -1005,7 +884,6 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags) SMI_FreeRec(pScrn); LEAVE(FALSE); } - xf86LoaderReqSymLists(exaSymbols, NULL); } } commit 536e5df957698251206326edc5a13e833f7c72b1 Author: Francisco Jerez <curroje...@riseup.net> Date: Wed May 27 01:23:36 2009 +0200 Program MCLK/MXCLK on startup for a secondary SM502. This should allow using a SM502 as secondary display device (bug 21810). diff --git a/src/smi_driver.c b/src/smi_driver.c index b788ed6..985563b 100644 --- a/src/smi_driver.c +++ b/src/smi_driver.c @@ -1250,10 +1250,21 @@ SMI_DetectMCLK(ScrnInfoPtr pScrn) /* The SM712 can be safely clocked up to 157MHz, according to Silicon Motion engineers. */ pSmi->MCLK = 157000; - }else - pSmi->MCLK = 0; - pSmi->MXCLK = 0; + } else if (IS_MSOC(pSmi)) { + /* Set some sane defaults for the clock settings if we are on a + SM502 and it's likely to be uninitialized. */ + + if (!xf86IsPrimaryPci(pSmi->PciInfo) && + (READ_SCR(pSmi, DEVICE_ID) & 0xFF) >= 0xC0) { + pSmi->MCLK = 112000; + pSmi->MXCLK = 144000; + } + + } else { + pSmi->MCLK = 0; + pSmi->MXCLK = 0; + } /* MCLK from user settings */ if (xf86GetOptValFreq(pSmi->Options, OPTION_MCLK, OPTUNITS_MHZ, &real)) { commit 7deebf983f53c505bc25171ab77fdc408f250a6e Author: Julien Cristau <jcris...@debian.org> Date: Tue May 26 15:58:19 2009 +0200 xsfbs: don't run dpkg --print-installation-architecture This is deprecated in new dpkg, and had no users anyway. diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh index 8840ff9..197eb74 100644 --- a/debian/xsfbs/xsfbs.sh +++ b/debian/xsfbs/xsfbs.sh @@ -57,8 +57,6 @@ EOF exit $SHELL_LIB_USAGE_ERROR fi -ARCHITECTURE="$(dpkg --print-installation-architecture)" - if [ "$1" = "reconfigure" ] || [ -n "$DEBCONF_RECONFIGURE" ]; then RECONFIGURE="true" else commit 4178d948cd66a938222d0d7c6353ee8d60229e40 Author: David Nusinow <dnusi...@debian.org> Date: Mon May 25 20:08:50 2009 -0400 Add README.source diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 0000000..34ab4bf --- /dev/null +++ b/debian/README.source @@ -0,0 +1,73 @@ +------------------------------------------------------ +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 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. + +quilt is actually invoked by the Debian X packaging through a larger +set of scripts called XSFBS. XSFBS brings some other X specific +features such as managing dependencies and conflicts due to the video +and input driver ABIs. +XSFBS itself is maintained in a separate repository at + git://git.debian.org/pkg-xorg/xsfbs.git +and it is pulled inside the other Debian X repositories when needed. + +The XSFBS patching system requires a build dependency on quilt. Also +a dependency on $(STAMP_DIR)/patch has to be added to debian/rules +so that the XSFBS patching occurs before the actual build. So the +very first target of the build (likely the one running autoreconf) +should depend on $(STAMP_DIR)/patch. It should also not depend on +anything so that parallel builds are correctly supported (nothing +should probably run while patching is being done). And finally, the +clean target should depend on the xsfclean target so that patches +are unapplied on clean. + +When the upstream sources contain some DFSG-nonfree files, they are +listed in text files in debian/prune/ in the "debian-*" branch of +the Debian repository. XSFBS' scripts then take care of removing +these listed files during the build so as to generate a modified +DFSG-free .orig.tar.gz tarball. commit 6a370fa2b6b8fcbd556dd6f9bf92872e9bea23e8 Author: Alan Coopersmith <alan.coopersm...@sun.com> Date: Mon May 11 22:31:30 2009 -0700 Fill in COPYING file, add SubmittingPatches URL to README diff --git a/COPYING b/COPYING index 7f33cbf..2101aa1 100644 --- a/COPYING +++ b/COPYING @@ -1,12 +1,72 @@ -This is a stub file. This package has not yet had its complete licensing -information compiled. Please see the individual source files for details on -your rights to use and modify this software. +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. -Please submit updated COPYING files to the Xorg bugzilla: +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: -https://bugs.freedesktop.org/enter_bug.cgi?product=xorg +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -All licensing questions regarding this software should be directed at the -Xorg mailing list: +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. -http://lists.freedesktop.org/mailman/listinfo/xorg +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. diff --git a/README b/README index 282d6a4..b3b6674 100644 --- a/README +++ b/README @@ -1,22 +1,25 @@ xf86-video-siliconmotion - Silicon Motion video driver for the Xorg X server -Please submit bugs & patches to the Xorg bugzilla: - - https://bugs.freedesktop.org/enter_bug.cgi?product=xorg - All questions regarding this software should be directed at the Xorg mailing list: http://lists.freedesktop.org/mailman/listinfo/xorg +Please submit bug reports to the Xorg bugzilla: + + https://bugs.freedesktop.org/enter_bug.cgi?product=xorg + The master development code repository can be found at: git://anongit.freedesktop.org/git/xorg/driver/xf86-video-siliconmotion http://cgit.freedesktop.org/xorg/driver/xf86-video-siliconmotion +For patch submission instructions, see: + + http://www.x.org/wiki/Development/Documentation/SubmittingPatches + For more information on the git code manager, see: http://wiki.x.org/wiki/GitPage ----------------------------------------------------------------------------- commit 962e0c4f08180ac51994aef8d6d042108d5841c1 Author: Francisco Jerez <curroje...@riseup.net> Date: Sun May 10 01:53:05 2009 +0200 Widen the pixel clock readjust interval for SM712. Set it to 3MHz so that the pixel clock frequency is overridden when it's found to be 49MHz, which is reported to be unstable. diff --git a/src/smilynx_crtc.c b/src/smilynx_crtc.c index a8c0a03..fb7183c 100644 --- a/src/smilynx_crtc.c +++ b/src/smilynx_crtc.c @@ -241,7 +241,7 @@ SMILynx_CrtcModeFixup(xf86CrtcPtr crtc, /* Adjust the pixel clock in case it is near one of the known stable frequencies (KHz) */ int stable_clocks[] = {46534,}; - int epsilon = 2000; + int epsilon = 3000; int i; for (i=0; i < sizeof(stable_clocks)/sizeof(int); i++) { commit 3cc1b9d4bcf1b7a756ea4426c93392ff6d82e9a6 Author: Francisco Jerez <curroje...@riseup.net> Date: Tue May 5 00:45:10 2009 +0200 Fail gracefully when the specified virtual screen doesn't fit in RAM. diff --git a/src/smi_driver.c b/src/smi_driver.c index c0e72e4..b788ed6 100644 --- a/src/smi_driver.c +++ b/src/smi_driver.c @@ -578,6 +578,8 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags) xf86PrintDepthBpp(pScrn); + pSmi->Bpp = pScrn->bitsPerPixel >> 3; + /* * This must happen after pScrn->display has been set because * xf86SetWeight references it. @@ -937,9 +939,27 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags) /* Only allow growing the screen dimensions if EXA is being used */ if (!xf86InitialConfiguration (pScrn, !pSmi->NoAccel && pSmi->useEXA)){ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "No valid modes found\n"); + + SMI_EnableVideo(pScrn); + SMI_UnmapMem(pScrn); LEAVE(FALSE); } + /* Ensure that the framebuffer size just set fits in video memory. */ + { + int aligned_pitch = (pScrn->virtualX*pSmi->Bpp + 15) & ~15; + + if(aligned_pitch * pScrn->virtualY > pSmi->FBReserved){ + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Not enough video memory " + "for the configured screen size (%dx%d) and color depth.\n", + pScrn->virtualX, pScrn->virtualY); + + SMI_EnableVideo(pScrn); + SMI_UnmapMem(pScrn); + LEAVE(FALSE); + } + } + SMI_EnableVideo(pScrn); SMI_UnmapMem(pScrn); @@ -1724,7 +1744,6 @@ SMI_ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) pScrn->vtSema = TRUE; pScrn->pScreen = pScreen; - pSmi->Bpp = pScrn->bitsPerPixel >> 3; pScrn->displayWidth = ((pScrn->virtualX * pSmi->Bpp + 15) & ~15) / pSmi->Bpp; pSmi->fbArea = NULL; commit 32628d9884d577d7a672c172c12b7097be276700 Author: Francisco Jerez <curroje...@riseup.net> Date: Tue May 5 00:44:17 2009 +0200 Probe the amount of installed memory by trial and error on SM712. In some cases the BIOS hasn't filled in the "scratchpad registers" (SR71) with the right amount of memory installed (e.g. MIPS platform). There seems to be no other way to do it than to test it. This should fix bug 21528. diff --git a/src/smi_driver.c b/src/smi_driver.c index 7219612..c0e72e4 100644 --- a/src/smi_driver.c +++ b/src/smi_driver.c @@ -1423,6 +1423,55 @@ SMI_MapMmio(ScrnInfoPtr pScrn) return (TRUE); } +/* HACK - In some cases the BIOS hasn't filled in the "scratchpad + registers" (SR71) with the right amount of memory installed (e.g. MIPS + platform). Probe it manually. */ +static unsigned long +SMI_ProbeMem(ScrnInfoPtr pScrn, unsigned long mem_skip, unsigned long mem_max) +{ + SMIPtr pSmi = SMIPTR(pScrn); + unsigned long mem_probe = 1024*1024; + unsigned long aperture_base; + void* mem; + + ENTER(); + + aperture_base = PCI_REGION_BASE(pSmi->PciInfo, 0, REGION_MEM) + mem_skip; + mem_max = min(mem_max , PCI_REGION_SIZE(pSmi->PciInfo, 0) - mem_skip); + +#ifndef XSERVER_LIBPCIACCESS + mem = xf86MapPciMem(pScrn->scrnIndex, VIDMEM_MMIO, pSmi->PciTag, + aperture_base, mem_max); + + if(!mem) + LEAVE(0); +#else + if(pci_device_map_range(pSmi->PciInfo, aperture_base, mem_max, + PCI_DEV_MAP_FLAG_WRITABLE, &mem)) + LEAVE(0); +#endif + + while(mem_probe <= mem_max){ + MMIO_OUT32(mem, mem_probe-4, 0x55555555); + if(MMIO_IN32(mem, mem_probe-4) != 0x55555555) + break; + + MMIO_OUT32(mem, mem_probe-4, 0xAAAAAAAA); + if(MMIO_IN32(mem, mem_probe-4) != 0xAAAAAAAA) + break; + + mem_probe <<= 1; + } + +#ifndef XSERVER_LIBPCIACCESS + xf86UnMapVidMem(pScrn->scrnIndex, mem, mem_max); +#else + pci_device_unmap_range(pSmi->PciInfo, mem, mem_max); +#endif + + LEAVE(mem_probe >> 1); +} + static Bool SMI_DetectMem(ScrnInfoPtr pScrn) { @@ -1452,6 +1501,9 @@ SMI_DetectMem(ScrnInfoPtr pScrn) pSmi->videoRAMKBytes = lynx3d_table[config >> 6] * 1024 + 512; break; + case SMI_LYNXEMplus: + pSmi->videoRAMKBytes = SMI_ProbeMem(pScrn, 0, 0x400000) / 1024; + break; case SMI_LYNX3DM: pSmi->videoRAMKBytes = lynx3dm_table[config >> 6] * 1024; break; -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org