Patches for Wischip Go7007 Linux Driver

The wis-go7007 driver, used with the Plextor TV-402U and other MPEG hardware encoding devices, seems to be in a state of no support. I'm going to try and collect the drivers and patches here as long as I have interest in this hardware.

Driver

The last released driver was version 0.9.8. I offer it here because even the "official" source website seems to be down.

wis-go7007-linux-0.9.8.tar.bz2 [134KB - md5sum dbeaceae423972140d6a5107a1f586ec]

Patch 1 - as of 2.6.17

You'll need this patch for kernel 2.6.17. I mirror this, but didn't write it:

wis-go-0.9.8-2.6.17.patch [2.5KB - md5sum 83d3108be840a45871c195a25c4de4ca]

Patch 2 - as of 2.6.18

Several include files and constants changed as of 2.6.18. You'll need this patch for 2.6.18 and above (but not the first patch):

wis-go7007-updates.diff [8.0KB - md5sum 65ca94649d7a531b18e7395acdc584ea]

Patch 3 - as of 2.6.21

This third patch (by a third party, not me) is required at least for 2.6.21 and above. You will need to apply Patch 2 first. This combo of patch 2 plus patch 3 will work through 2.6.23. The original author's site seems down too, so I mirror here:

wis-go7007-2.6.21-typdefs.diff [1KB - md5sum 8e0eab7a8c421ae988d8a969230150aa]

Patch 4 - as of 2.6.24

As of 2.6.24, i2c_algorithm.algo_control() was removed from the kernel because it was (nearly) unused. It appears to be allocated but not used in in the go7007 driver, causing compilation to fail. I made this patch to remove the code and it compiles and seems to work fine. You'll need this, in addition to patch two and patch three, for 2.6.24 and later:

wis-go7007-2.6.24-no_algo_control.diff [1.6KB - md5sum f935e01688bac21573af4b7cdcfc451e]

Patch 5 - as of 2.6.26

As of 2.6.26, the 'NOPAGE_SIGBUS' macro was removed from the kernel. This will cause failure of the wis-go7007 driver to compile. Here is the commit [external link] that broke it. The only solution within my means is to remove the offending code. I suspect this code was only called during a debug trace. You'll need this, in addition to patch two, three and four, for 2.6.26 and later.

wis-go7007-2.6.26-nopage.diff [871B - md5sum e4c7bc33d6e69eafc10bd107cf648828]

Patch 6 - as of 2.6.27

Tom Shield has made a patch for our series based on info here [external link]. You'll need this, in addition to patch two, three, four and five, for 2.6.27 and later.

wis-go7007-linux-0.9.8-2-2.6.27.patch [3.2kB - md5sum 3b89d8746adf70102eeeb47d03627ece]

Note: this patch compiles and works for 2.6.28. However, I am getting kernel oops/panic lockups (having found the cause -- it seems quite random, a few times a day).

Patch 7 - all versions

This is another patch from nikosapi's site. I didn't see any stability improvements from using it, but it is an obvious code error and is worth applying (probably for all kernel versions).

tuner-fix.patch [<1kB - md5sum 0fd94f3976876e681068ff678e4b342a]

Patch 8 - as of 2.6.29

As of 2.6.29, the `inode` parameter has been removed from video_usercopy() in v4l2_ioctl.h. I've patched the driver to remove this, but there are a lot of deprecation warnings. The driver builds and installs but there are also many errors in the syslog, so more work is needed. It's only a matter of time before this driver needs major repair.

wis-go7007-linux-0.9.8-2.6.29.patch [<1kB - md5sum 389981a6ebd14cd4fe35d1df93852614]

Patch 9 - as of 2.6.35 (and possibly earlier)

Amit Joshi contribued this patch with these comments:

    Hello,
    
    Not sure if you are still keeping track of patches to allow the go7007
    driver to compile under different versions of Linux. I have taken the fixes
    in the staging version version of the driver and applied them back to the
    package to allow the code to compile unde 2.6.35 (probably older versions
    too - not tried). The changes are:
    
    - Replaced the semaphore and related calls with mutex (back port from the
    staging driver).
    - Fixed an uninitialized variable - suspect it would have unexpected
    failures.
    - Changed the firmware load script so it works under ubuntu 10.04
    
    I'll probably try to get a standard Debian package made (I used
    checkinstall to install under Ubuntu).
    
    Thanks,
    
    Amit Joshi

Please note, I have not looked at this patch myself, but I have verification from one user that is applies to the wis-go7007-linux-098-5b source provided on go7007.imploder.org and works with Ubuntu 10.04.

wis-go7007-linux-0.9.8-5-2.6.35.patch [20kB - md5sum d8f829c0bc9828d0fa5583f04fc8cf20]

Patches for gorecord application

Unfortunately, not many developers have supported MPEG-in-hardware devices yet, so we're stuck with gorecord. As supplied with the SDK/drivers, it has no provisions for "live" viewing or more importantly, for A-V sync. There are patches that fix both of these problems here:

http://colabti.org/convertx/ [external link]

Other patches and development

Jeff sends this patch [5KB - md5sum 6225630f46a69f6c7e0fe97f7dcae7ec], as hope of getting the drivers to work with the ADS DVDXpress DX2. I can't vouch for this, but I provide it for reference.

I've noticed that the go7007 driver had been added to Greg Kroah-Hartman's linux-staging tree [external link], as of 2.6.26-rc7.

From: Greg KH <greg@kroah.com>
To: linux-kernel@vger.kernel.org
Subject: linux-staging for 2.6.26-rc7
Date: Sat, 21 Jun 2008 01:50:54 -0700
 
[...]
For details about what the linux-staging tree is, how to use it, and the rules for it, please see the README file in the git tree at: http://git.kernel.org/?p=linux/kernel/git/gregkh/staging.git

Links

go7007.imploder.org - alternative source for patched drivers
http://nikosapi.org/ - hardware info and wiki.

Contact

There you have it. Good luck!

bender647@yahoo.com

Please note, I am not a developer -- I am just making very minor modifications to existing driver code to allow it to compile with the latest kernels. I likely can't help you get this driver working with other hardware. I don't have any chip datasheets or hardware documentation.

Those of you coming from nikosapi's site [external link], I do have his email address but don't have permission to distribute it. I can say that it is a guessable email address.