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.

Unofficial Driver and Patches

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]

Patch 10 - for 3.x.x series

I have received this patch for the 3.x.x series. I offer it to you totally untested.

    Date: Tue, 11 Sep 2012 16:28:14 -0400
    From: Tamas Vincze
    Subject: [PATCH] wis go7007 support for 3.x.x kernels

    Hi:
    
    If you still maintain the "Patches for Wischip Go7007 Linux Driver" page 
    at http://home.comcast.net/~bender647/go7007/ then you may want to add 
    the attached patch that makes the driver work with newer 3.x.x kernels 
    and applies to 
    http://go7007.imploder.org/wp-content/uploads/2009/11/wis-go7007-linux-098-5b.tgz
    I'm successfully using it with Debian wheezy's 3.2.27 kernel.
    
    Tamas

wis-go7007-linux-0.9.8-5.patch [23kB - md5sum 43b7727f4bb1dcb0fe2013662cd924ab]

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

ADS DVDXpress DX2

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.

go7007 in Staging!

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

Patch for Adlink MPG24

The following patch comes via email. I have not reviewed or tested it at all. Please contact the original author if you have questions.

Date: Mon, 14 May 2012 11:21:28 +0400
From: volokh@telros.ru
Subject: Angelo MPG24

Hello, can you place some patches for Adlink MPG24 on home.comcast.net/~bender647/go7007/
or an another public place.
This pathces was compiled&tested for 3.4.x branch

Thanks.

Regards,
Volokh Konstantin

0001-staging-media-go7007-Adlink-MPG24-board.patch [8kB - md5sum f714d41724ef24d265b640c41437e64e]

0002-staging-media-go7007-Adlink-MPG24-board.patch [16kB - md5sum 9c598c62d155641e18957d7c0939d7bb]

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.