summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /media-tv/wis-go7007
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'media-tv/wis-go7007')
-rw-r--r--media-tv/wis-go7007/Manifest1
-rw-r--r--media-tv/wis-go7007/files/snd.patch130
-rw-r--r--media-tv/wis-go7007/files/wis-go7007-0.9.8-fix-udev.diff20
-rw-r--r--media-tv/wis-go7007/files/wis-go7007-0.9.8-kernel-2.6.17.diff200
-rw-r--r--media-tv/wis-go7007/files/wis-go7007-2.6.21-typdefs.diff20
-rw-r--r--media-tv/wis-go7007/files/wis-go7007-2.6.24-no_algo_control.diff54
-rw-r--r--media-tv/wis-go7007/files/wis-go7007-2.6.26-nopage.diff26
-rw-r--r--media-tv/wis-go7007/files/wis-go7007-updates.diff242
-rw-r--r--media-tv/wis-go7007/metadata.xml5
-rw-r--r--media-tv/wis-go7007/wis-go7007-0.9.8-r3.ebuild106
10 files changed, 804 insertions, 0 deletions
diff --git a/media-tv/wis-go7007/Manifest b/media-tv/wis-go7007/Manifest
new file mode 100644
index 000000000000..261335200c38
--- /dev/null
+++ b/media-tv/wis-go7007/Manifest
@@ -0,0 +1 @@
+DIST wis-go7007-linux-0.9.8.tar.bz2 136517 SHA256 efd7600d881fc57e0484ddd7f0820c18a3bd98dce8060418dfba1626c8a79b1a
diff --git a/media-tv/wis-go7007/files/snd.patch b/media-tv/wis-go7007/files/snd.patch
new file mode 100644
index 000000000000..26c864671c2d
--- /dev/null
+++ b/media-tv/wis-go7007/files/snd.patch
@@ -0,0 +1,130 @@
+diff -ur wis-go7007-linux-0.9.8.old/kernel/snd-go7007.c wis-go7007-linux-0.9.8/kernel/snd-go7007.c
+--- wis-go7007-linux-0.9.8.old/kernel/snd-go7007.c 2007-07-16 19:54:38.736387914 +0100
++++ wis-go7007-linux-0.9.8/kernel/snd-go7007.c 2007-07-16 19:56:18.309084853 +0100
+@@ -58,9 +58,9 @@
+ MODULE_PARM_DESC(index, "Enable for the go7007 audio driver");
+
+ struct go7007_snd {
+- snd_card_t *card;
+- snd_pcm_t *pcm;
+- snd_pcm_substream_t *substream;
++ struct snd_card *card;
++ struct snd_pcm *pcm;
++ struct snd_pcm_substream *substream;
+ spinlock_t lock;
+ int w_idx;
+ int hw_ptr;
+@@ -68,7 +68,7 @@
+ int capturing;
+ };
+
+-static snd_pcm_hardware_t go7007_snd_capture_hw = {
++static struct snd_pcm_hardware go7007_snd_capture_hw = {
+ .info = (SNDRV_PCM_INFO_MMAP |
+ SNDRV_PCM_INFO_INTERLEAVED |
+ SNDRV_PCM_INFO_BLOCK_TRANSFER |
+@@ -89,7 +89,7 @@
+ static void parse_audio_stream_data(struct go7007 *go, u8 *buf, int length)
+ {
+ struct go7007_snd *gosnd = go->snd_context;
+- snd_pcm_runtime_t *runtime = gosnd->substream->runtime;
++ struct snd_pcm_runtime *runtime = gosnd->substream->runtime;
+ int frames = bytes_to_frames(runtime, length);
+
+ spin_lock(&gosnd->lock);
+@@ -119,8 +119,8 @@
+ snd_pcm_period_elapsed(gosnd->substream);
+ }
+
+-static int go7007_snd_hw_params(snd_pcm_substream_t *substream,
+- snd_pcm_hw_params_t *hw_params)
++static int go7007_snd_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *hw_params)
+ {
+ struct go7007 *go = snd_pcm_substream_chip(substream);
+ unsigned int bytes;
+@@ -137,7 +137,7 @@
+ return 0;
+ }
+
+-static int go7007_snd_hw_free(snd_pcm_substream_t *substream)
++static int go7007_snd_hw_free(struct snd_pcm_substream *substream)
+ {
+ struct go7007 *go = snd_pcm_substream_chip(substream);
+
+@@ -148,7 +148,7 @@
+ return 0;
+ }
+
+-static int go7007_snd_capture_open(snd_pcm_substream_t *substream)
++static int go7007_snd_capture_open(struct snd_pcm_substream *substream)
+ {
+ struct go7007 *go = snd_pcm_substream_chip(substream);
+ struct go7007_snd *gosnd = go->snd_context;
+@@ -166,7 +166,7 @@
+ return r;
+ }
+
+-static int go7007_snd_capture_close(snd_pcm_substream_t *substream)
++static int go7007_snd_capture_close(struct snd_pcm_substream *substream)
+ {
+ struct go7007 *go = snd_pcm_substream_chip(substream);
+ struct go7007_snd *gosnd = go->snd_context;
+@@ -175,12 +175,12 @@
+ return 0;
+ }
+
+-static int go7007_snd_pcm_prepare(snd_pcm_substream_t *substream)
++static int go7007_snd_pcm_prepare(struct snd_pcm_substream *substream)
+ {
+ return 0;
+ }
+
+-static int go7007_snd_pcm_trigger(snd_pcm_substream_t *substream, int cmd)
++static int go7007_snd_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
+ {
+ struct go7007 *go = snd_pcm_substream_chip(substream);
+ struct go7007_snd *gosnd = go->snd_context;
+@@ -200,7 +200,7 @@
+ }
+ }
+
+-static snd_pcm_uframes_t go7007_snd_pcm_pointer(snd_pcm_substream_t *substream)
++static snd_pcm_uframes_t go7007_snd_pcm_pointer(struct snd_pcm_substream *substream)
+ {
+ struct go7007 *go = snd_pcm_substream_chip(substream);
+ struct go7007_snd *gosnd = go->snd_context;
+@@ -208,13 +208,13 @@
+ return gosnd->hw_ptr;
+ }
+
+-static struct page *go7007_snd_pcm_page(snd_pcm_substream_t *substream,
++static struct page *go7007_snd_pcm_page(struct snd_pcm_substream *substream,
+ unsigned long offset)
+ {
+ return vmalloc_to_page(substream->runtime->dma_area + offset);
+ }
+
+-static snd_pcm_ops_t go7007_snd_capture_ops = {
++static struct snd_pcm_ops go7007_snd_capture_ops = {
+ .open = go7007_snd_capture_open,
+ .close = go7007_snd_capture_close,
+ .ioctl = snd_pcm_lib_ioctl,
+@@ -226,7 +226,7 @@
+ .page = go7007_snd_pcm_page,
+ };
+
+-static int go7007_snd_free(snd_device_t *device)
++static int go7007_snd_free(struct snd_device *device)
+ {
+ struct go7007 *go = device->device_data;
+
+@@ -237,7 +237,7 @@
+ return 0;
+ }
+
+-static snd_device_ops_t go7007_snd_device_ops = {
++static struct snd_device_ops go7007_snd_device_ops = {
+ .dev_free = go7007_snd_free,
+ };
+
diff --git a/media-tv/wis-go7007/files/wis-go7007-0.9.8-fix-udev.diff b/media-tv/wis-go7007/files/wis-go7007-0.9.8-fix-udev.diff
new file mode 100644
index 000000000000..6712b9c427d3
--- /dev/null
+++ b/media-tv/wis-go7007/files/wis-go7007-0.9.8-fix-udev.diff
@@ -0,0 +1,20 @@
+diff -ru wis-go7007-linux-0.9.8-orig/udev/wis-ezusb.rules.in wis-go7007-linux-0.9.8/udev/wis-ezusb.rules.in
+--- wis-go7007-linux-0.9.8-orig/udev/wis-ezusb.rules.in 2007-04-26 10:32:05.967814203 +0200
++++ wis-go7007-linux-0.9.8/udev/wis-ezusb.rules.in 2007-04-26 10:38:00.372601940 +0200
+@@ -1,8 +1,8 @@
+-ACTION=="add", BUS=="usb", ENV{PRODUCT}=="93b/a002/*", \
+- RUN+="@FXLOAD@ -t fx2 -I @FIRMWARE_DIR@/ezusb/hpi_PX-M402U.hex"
+-ACTION=="add", BUS=="usb", ENV{PRODUCT}=="93b/a004/*", \
+- RUN+="@FXLOAD@ -t fx2 -I @FIRMWARE_DIR@/ezusb/hpi_PX-TV402U.hex"
+-ACTION=="add", BUS=="usb", ENV{PRODUCT}=="eb1/6666/*", \
+- RUN+="@FXLOAD@ -t fx2 -I @FIRMWARE_DIR@/ezusb/hpi_LR192.hex"
+-ACTION=="add", BUS=="usb", ENV{PRODUCT}=="eb1/6668/*", \
+- RUN+="@FXLOAD@ -t fx2 -I @FIRMWARE_DIR@/ezusb/hpi_StarTrek.hex"
++ACTION=="add", SUBSYSTEM=="usb_device", ATTRS{idVendor}=="093b", ATTRS{idProduct}=="a002", \
++ RUN+="@FXLOAD@ -t fx2 -I @FIRMWARE_DIR@/ezusb/hpi_PX-M402U.hex -D %N"
++ACTION=="add", SUBSYSTEM=="usb_device", ATTRS{idVendor}=="093b", ATTRS{idProduct}=="a004", \
++ RUN+="@FXLOAD@ -t fx2 -I @FIRMWARE_DIR@/ezusb/hpi_PX-TV402U.hex -D %N"
++ACTION=="add", SUBSYSTEM=="usb_device", ATTRS{idVendor}=="0eb1", ATTRS{idProduct}=="6666", \
++ RUN+="@FXLOAD@ -t fx2 -I @FIRMWARE_DIR@/ezusb/hpi_LR192.hex -D %N"
++ACTION=="add", SUBSYSTEM=="usb_device", ATTRS{idVendor}=="0eb1", ATTRS{idProduct}=="6668", \
++ RUN+="@FXLOAD@ -t fx2 -I @FIRMWARE_DIR@/ezusb/hpi_StarTrek.hex -D %N"
diff --git a/media-tv/wis-go7007/files/wis-go7007-0.9.8-kernel-2.6.17.diff b/media-tv/wis-go7007/files/wis-go7007-0.9.8-kernel-2.6.17.diff
new file mode 100644
index 000000000000..720f4c0650b2
--- /dev/null
+++ b/media-tv/wis-go7007/files/wis-go7007-0.9.8-kernel-2.6.17.diff
@@ -0,0 +1,200 @@
+diff -ru wis-go7007-linux-0.9.8-orig/kernel/go7007-driver.c wis-go7007-linux-0.9.8/kernel/go7007-driver.c
+--- wis-go7007-linux-0.9.8-orig/kernel/go7007-driver.c 2007-04-26 18:34:44.000000000 +0200
++++ wis-go7007-linux-0.9.8/kernel/go7007-driver.c 2007-04-26 18:35:06.000000000 +0200
+@@ -18,7 +18,9 @@
+ #include <linux/module.h>
+ #include <linux/version.h>
+ #include <linux/init.h>
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,17)
+ #include <linux/config.h>
++#endif
+ #include <linux/delay.h>
+ #include <linux/sched.h>
+ #include <linux/spinlock.h>
+diff -ru wis-go7007-linux-0.9.8-orig/kernel/go7007-fw.c wis-go7007-linux-0.9.8/kernel/go7007-fw.c
+--- wis-go7007-linux-0.9.8-orig/kernel/go7007-fw.c 2007-04-26 18:34:44.000000000 +0200
++++ wis-go7007-linux-0.9.8/kernel/go7007-fw.c 2007-04-26 18:35:06.000000000 +0200
+@@ -26,7 +26,10 @@
+
+ #include <linux/module.h>
+ #include <linux/init.h>
++#include <linux/version.h>
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,17)
+ #include <linux/config.h>
++#endif
+ #include <linux/time.h>
+ #include <linux/mm.h>
+ #include <linux/device.h>
+diff -ru wis-go7007-linux-0.9.8-orig/kernel/go7007-i2c.c wis-go7007-linux-0.9.8/kernel/go7007-i2c.c
+--- wis-go7007-linux-0.9.8-orig/kernel/go7007-i2c.c 2007-04-26 18:34:44.000000000 +0200
++++ wis-go7007-linux-0.9.8/kernel/go7007-i2c.c 2007-04-26 18:35:06.000000000 +0200
+@@ -15,9 +15,11 @@
+ * Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
+ */
+
++#include <linux/version.h>
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,17)
+ #include <linux/config.h>
++#endif
+ #include <linux/module.h>
+-#include <linux/version.h>
+ #include <linux/init.h>
+ #include <linux/delay.h>
+ #include <linux/sched.h>
+diff -ru wis-go7007-linux-0.9.8-orig/kernel/go7007-usb.c wis-go7007-linux-0.9.8/kernel/go7007-usb.c
+--- wis-go7007-linux-0.9.8-orig/kernel/go7007-usb.c 2007-04-26 18:34:44.000000000 +0200
++++ wis-go7007-linux-0.9.8/kernel/go7007-usb.c 2007-04-26 18:35:06.000000000 +0200
+@@ -27,7 +27,7 @@
+ #include <linux/usb.h>
+ #include <linux/i2c.h>
+ #include <asm/byteorder.h>
+-#include <media/audiochip.h>
++#include <media/tvaudio.h>
+
+ #include "go7007-priv.h"
+ #include "wis-i2c.h"
+@@ -225,17 +225,17 @@
+ .inputs = {
+ {
+ .video_input = 1,
+- .audio_input = AUDIO_EXTERN,
++ .audio_input = TVAUDIO_INPUT_EXTERN,
+ .name = "Composite",
+ },
+ {
+ .video_input = 8,
+- .audio_input = AUDIO_EXTERN,
++ .audio_input = TVAUDIO_INPUT_EXTERN,
+ .name = "S-Video",
+ },
+ {
+ .video_input = 3,
+- .audio_input = AUDIO_TUNER,
++ .audio_input = TVAUDIO_INPUT_TUNER,
+ .name = "Tuner",
+ },
+ },
+diff -ru wis-go7007-linux-0.9.8-orig/kernel/go7007-v4l2.c wis-go7007-linux-0.9.8/kernel/go7007-v4l2.c
+--- wis-go7007-linux-0.9.8-orig/kernel/go7007-v4l2.c 2007-04-26 18:34:44.000000000 +0200
++++ wis-go7007-linux-0.9.8/kernel/go7007-v4l2.c 2007-04-26 18:35:06.000000000 +0200
+@@ -17,8 +17,10 @@
+
+ #include <linux/module.h>
+ #include <linux/init.h>
+-#include <linux/config.h>
+ #include <linux/version.h>
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,17)
++#include <linux/config.h>
++#endif
+ #include <linux/delay.h>
+ #include <linux/sched.h>
+ #include <linux/spinlock.h>
+@@ -939,7 +941,7 @@
+ if (go->i2c_adapter_online) {
+ i2c_clients_command(&go->i2c_adapter, DECODER_SET_INPUT,
+ &go->board_info->inputs[*input].video_input);
+- i2c_clients_command(&go->i2c_adapter, AUDC_SET_INPUT,
++ i2c_clients_command(&go->i2c_adapter, VIDIOC_S_AUDIO,
+ &go->board_info->inputs[*input].audio_input);
+ }
+ return 0;
+diff -ru wis-go7007-linux-0.9.8-orig/kernel/snd-go7007.c wis-go7007-linux-0.9.8/kernel/snd-go7007.c
+--- wis-go7007-linux-0.9.8-orig/kernel/snd-go7007.c 2007-04-26 18:34:44.000000000 +0200
++++ wis-go7007-linux-0.9.8/kernel/snd-go7007.c 2007-04-26 18:38:24.000000000 +0200
+@@ -20,7 +20,9 @@
+ #include <linux/version.h>
+ #include <linux/moduleparam.h>
+ #include <linux/init.h>
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,17)
+ #include <linux/config.h>
++#endif
+ #include <linux/delay.h>
+ #include <linux/sched.h>
+ #include <linux/vmalloc.h>
+@@ -305,7 +307,11 @@
+ struct go7007_snd *gosnd = go->snd_context;
+
+ snd_card_disconnect(gosnd->card);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
+ snd_card_free_in_thread(gosnd->card);
++#else
++ snd_card_free_when_closed(gosnd->card);
++#endif
+ return 0;
+ }
+ EXPORT_SYMBOL(go7007_snd_remove);
+diff -ru wis-go7007-linux-0.9.8-orig/kernel/wis-saa7113.c wis-go7007-linux-0.9.8/kernel/wis-saa7113.c
+--- wis-go7007-linux-0.9.8-orig/kernel/wis-saa7113.c 2007-04-26 18:34:44.000000000 +0200
++++ wis-go7007-linux-0.9.8/kernel/wis-saa7113.c 2007-04-26 18:35:06.000000000 +0200
+@@ -21,6 +21,7 @@
+ #include <linux/i2c.h>
+ #include <linux/videodev.h>
+ #include <linux/video_decoder.h>
++#include <linux/ioctl.h>
+
+ #include "wis-i2c.h"
+
+diff -ru wis-go7007-linux-0.9.8-orig/kernel/wis-saa7115.c wis-go7007-linux-0.9.8/kernel/wis-saa7115.c
+--- wis-go7007-linux-0.9.8-orig/kernel/wis-saa7115.c 2007-04-26 18:34:44.000000000 +0200
++++ wis-go7007-linux-0.9.8/kernel/wis-saa7115.c 2007-04-26 18:35:06.000000000 +0200
+@@ -21,6 +21,7 @@
+ #include <linux/i2c.h>
+ #include <linux/videodev.h>
+ #include <linux/video_decoder.h>
++#include <linux/ioctl.h>
+
+ #include "wis-i2c.h"
+
+diff -ru wis-go7007-linux-0.9.8-orig/kernel/wis-tw2804.c wis-go7007-linux-0.9.8/kernel/wis-tw2804.c
+--- wis-go7007-linux-0.9.8-orig/kernel/wis-tw2804.c 2007-04-26 18:34:44.000000000 +0200
++++ wis-go7007-linux-0.9.8/kernel/wis-tw2804.c 2007-04-26 18:35:06.000000000 +0200
+@@ -21,6 +21,7 @@
+ #include <linux/i2c.h>
+ #include <linux/videodev.h>
+ #include <linux/video_decoder.h>
++#include <linux/ioctl.h>
+
+ #include "wis-i2c.h"
+
+diff -ru wis-go7007-linux-0.9.8-orig/kernel/wis-tw9903.c wis-go7007-linux-0.9.8/kernel/wis-tw9903.c
+--- wis-go7007-linux-0.9.8-orig/kernel/wis-tw9903.c 2007-04-26 18:34:44.000000000 +0200
++++ wis-go7007-linux-0.9.8/kernel/wis-tw9903.c 2007-04-26 18:35:06.000000000 +0200
+@@ -21,6 +21,7 @@
+ #include <linux/i2c.h>
+ #include <linux/videodev.h>
+ #include <linux/video_decoder.h>
++#include <linux/ioctl.h>
+
+ #include "wis-i2c.h"
+
+diff -ru wis-go7007-linux-0.9.8-orig/kernel/wis-uda1342.c wis-go7007-linux-0.9.8/kernel/wis-uda1342.c
+--- wis-go7007-linux-0.9.8-orig/kernel/wis-uda1342.c 2007-04-26 18:34:44.000000000 +0200
++++ wis-go7007-linux-0.9.8/kernel/wis-uda1342.c 2007-04-26 18:35:06.000000000 +0200
+@@ -20,7 +20,7 @@
+ #include <linux/version.h>
+ #include <linux/i2c.h>
+ #include <linux/videodev.h>
+-#include <media/audiochip.h>
++#include <media/tvaudio.h>
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+ #include <media/v4l2-common.h>
+ #endif
+@@ -38,15 +38,15 @@
+ unsigned int cmd, void *arg)
+ {
+ switch (cmd) {
+- case AUDC_SET_INPUT:
++ case VIDIOC_S_AUDIO:
+ {
+ int *inp = arg;
+
+ switch (*inp) {
+- case AUDIO_TUNER:
++ case TVAUDIO_INPUT_TUNER:
+ write_reg(client, 0x00, 0x1441); /* select input 2 */
+ break;
+- case AUDIO_EXTERN:
++ case TVAUDIO_INPUT_EXTERN:
+ write_reg(client, 0x00, 0x1241); /* select input 1 */
+ break;
+ default:
diff --git a/media-tv/wis-go7007/files/wis-go7007-2.6.21-typdefs.diff b/media-tv/wis-go7007/files/wis-go7007-2.6.21-typdefs.diff
new file mode 100644
index 000000000000..e3a9bf0c9298
--- /dev/null
+++ b/media-tv/wis-go7007/files/wis-go7007-2.6.21-typdefs.diff
@@ -0,0 +1,20 @@
+diff -ru work/wis-go7007-linux-0.9.8/kernel/snd-go7007.c fixed/kernel/snd-go7007.c
+--- work/wis-go7007-linux-0.9.8/kernel/snd-go7007.c 2007-04-30 11:11:35.000000000 -0300
++++ fixed/kernel/snd-go7007.c 2007-04-30 11:09:14.000000000 -0300
+@@ -57,6 +57,16 @@
+ MODULE_PARM_DESC(index, "ID string for the go7007 audio driver");
+ MODULE_PARM_DESC(index, "Enable for the go7007 audio driver");
+
++typedef struct snd_card snd_card_t;
++typedef struct snd_pcm snd_pcm_t;
++typedef struct snd_pcm_substream snd_pcm_substream_t;
++typedef struct snd_pcm_hardware snd_pcm_hardware_t;
++typedef struct snd_pcm_runtime snd_pcm_runtime_t;
++typedef struct snd_pcm_hw_params snd_pcm_hw_params_t;
++typedef struct snd_pcm_ops snd_pcm_ops_t;
++typedef struct snd_device snd_device_t;
++typedef struct snd_device_ops snd_device_ops_t;
++
+ struct go7007_snd {
+ snd_card_t *card;
+ snd_pcm_t *pcm;
diff --git a/media-tv/wis-go7007/files/wis-go7007-2.6.24-no_algo_control.diff b/media-tv/wis-go7007/files/wis-go7007-2.6.24-no_algo_control.diff
new file mode 100644
index 000000000000..9de0552dce9f
--- /dev/null
+++ b/media-tv/wis-go7007/files/wis-go7007-2.6.24-no_algo_control.diff
@@ -0,0 +1,54 @@
+diff -urN wis-go7007-linux-0.9.8.orig/kernel/go7007-i2c.c wis-go7007-linux-0.9.8/kernel/go7007-i2c.c
+--- wis-go7007-linux-0.9.8.orig/kernel/go7007-i2c.c 2008-02-23 13:58:12.000000000 -0500
++++ wis-go7007-linux-0.9.8/kernel/go7007-i2c.c 2008-02-23 13:59:44.000000000 -0500
+@@ -278,11 +278,13 @@
+ return 0;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
+ static int go7007_algo_control(struct i2c_adapter *adapter,
+ unsigned int cmd, unsigned long arg)
+ {
+ return 0;
+ }
++#endif
+
+ static u32 go7007_functionality(struct i2c_adapter *adapter)
+ {
+@@ -296,7 +298,9 @@
+ #endif
+ .smbus_xfer = go7007_smbus_xfer,
+ .master_xfer = go7007_i2c_master_xfer,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
+ .algo_control = go7007_algo_control,
++#endif
+ .functionality = go7007_functionality,
+ };
+
+diff -urN wis-go7007-linux-0.9.8.orig/kernel/go7007-usb.c wis-go7007-linux-0.9.8/kernel/go7007-usb.c
+--- wis-go7007-linux-0.9.8.orig/kernel/go7007-usb.c 2008-02-23 13:58:12.000000000 -0500
++++ wis-go7007-linux-0.9.8/kernel/go7007-usb.c 2008-02-23 13:59:48.000000000 -0500
+@@ -918,11 +918,13 @@
+ return ret;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
+ static int go7007_usb_algo_control(struct i2c_adapter *adapter,
+ unsigned int cmd, unsigned long arg)
+ {
+ return 0;
+ }
++#endif
+
+ static u32 go7007_usb_functionality(struct i2c_adapter *adapter)
+ {
+@@ -937,7 +939,9 @@
+ .id = I2C_ALGO_GO7007,
+ #endif
+ .master_xfer = go7007_usb_i2c_master_xfer,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
+ .algo_control = go7007_usb_algo_control,
++#endif
+ .functionality = go7007_usb_functionality,
+ };
+
diff --git a/media-tv/wis-go7007/files/wis-go7007-2.6.26-nopage.diff b/media-tv/wis-go7007/files/wis-go7007-2.6.26-nopage.diff
new file mode 100644
index 000000000000..2fd1cca4a636
--- /dev/null
+++ b/media-tv/wis-go7007/files/wis-go7007-2.6.26-nopage.diff
@@ -0,0 +1,26 @@
+diff -urN wis-go7007-linux-0.9.8.orig/kernel/go7007-v4l2.c wis-go7007-linux-0.9.8/kernel/go7007-v4l2.c
+--- wis-go7007-linux-0.9.8.orig/kernel/go7007-v4l2.c 2007-05-09 13:56:07.000000000 -0400
++++ wis-go7007-linux-0.9.8/kernel/go7007-v4l2.c 2008-08-03 16:01:35.000000000 -0400
+@@ -1375,6 +1375,7 @@
+ }
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)
+ /* This is really only going to ever be called when we
+ * do get_user_pages() in VIDIOC_QBUF */
+ static struct page *go7007_vm_nopage(struct vm_area_struct *vma,
+@@ -1392,11 +1393,14 @@
+ *type = VM_FAULT_MINOR;
+ return page;
+ }
++#endif
+
+ static struct vm_operations_struct go7007_vm_ops = {
+ .open = go7007_vm_open,
+ .close = go7007_vm_close,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)
+ .nopage = go7007_vm_nopage,
++#endif
+ };
+
+ static int go7007_mmap(struct file *file, struct vm_area_struct *vma)
diff --git a/media-tv/wis-go7007/files/wis-go7007-updates.diff b/media-tv/wis-go7007/files/wis-go7007-updates.diff
new file mode 100644
index 000000000000..83dfd015bd5d
--- /dev/null
+++ b/media-tv/wis-go7007/files/wis-go7007-updates.diff
@@ -0,0 +1,242 @@
+diff -ru wis-go7007-linux-0.9.8/kernel/go7007-driver.c wis-go7007-linux-0.9.8-new/kernel/go7007-driver.c
+--- wis-go7007-linux-0.9.8/kernel/go7007-driver.c 2006-04-02 00:35:48.000000000 +0200
++++ wis-go7007-linux-0.9.8-new/kernel/go7007-driver.c 2006-08-19 10:55:47.000000000 +0200
+@@ -18,7 +18,9 @@
+ #include <linux/module.h>
+ #include <linux/version.h>
+ #include <linux/init.h>
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,17)
+ #include <linux/config.h>
++#endif
+ #include <linux/delay.h>
+ #include <linux/sched.h>
+ #include <linux/spinlock.h>
+diff -ru wis-go7007-linux-0.9.8/kernel/go7007-fw.c wis-go7007-linux-0.9.8-new/kernel/go7007-fw.c
+--- wis-go7007-linux-0.9.8/kernel/go7007-fw.c 2006-04-02 00:35:55.000000000 +0200
++++ wis-go7007-linux-0.9.8-new/kernel/go7007-fw.c 2006-08-19 11:01:51.000000000 +0200
+@@ -26,7 +26,10 @@
+
+ #include <linux/module.h>
+ #include <linux/init.h>
++#include <linux/version.h>
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,17)
+ #include <linux/config.h>
++#endif
+ #include <linux/time.h>
+ #include <linux/mm.h>
+ #include <linux/device.h>
+diff -ru wis-go7007-linux-0.9.8/kernel/go7007-i2c.c wis-go7007-linux-0.9.8-new/kernel/go7007-i2c.c
+--- wis-go7007-linux-0.9.8/kernel/go7007-i2c.c 2006-04-02 00:36:00.000000000 +0200
++++ wis-go7007-linux-0.9.8-new/kernel/go7007-i2c.c 2006-08-19 11:01:28.000000000 +0200
+@@ -15,9 +15,11 @@
+ * Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
+ */
+
++#include <linux/version.h>
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,17)
+ #include <linux/config.h>
++#endif
+ #include <linux/module.h>
+-#include <linux/version.h>
+ #include <linux/init.h>
+ #include <linux/delay.h>
+ #include <linux/sched.h>
+diff -ru wis-go7007-linux-0.9.8/kernel/go7007-usb.c wis-go7007-linux-0.9.8-new/kernel/go7007-usb.c
+--- wis-go7007-linux-0.9.8/kernel/go7007-usb.c 2006-04-02 00:57:04.000000000 +0200
++++ wis-go7007-linux-0.9.8-new/kernel/go7007-usb.c 2006-12-17 13:16:11.000000000 +0100
+@@ -27,7 +27,7 @@
+ #include <linux/usb.h>
+ #include <linux/i2c.h>
+ #include <asm/byteorder.h>
+-#include <media/audiochip.h>
++#include <media/tvaudio.h>
+
+ #include "go7007-priv.h"
+ #include "wis-i2c.h"
+@@ -225,17 +225,17 @@
+ .inputs = {
+ {
+ .video_input = 1,
+- .audio_input = AUDIO_EXTERN,
++ .audio_input = TVAUDIO_INPUT_EXTERN,
+ .name = "Composite",
+ },
+ {
+ .video_input = 8,
+- .audio_input = AUDIO_EXTERN,
++ .audio_input = TVAUDIO_INPUT_EXTERN,
+ .name = "S-Video",
+ },
+ {
+ .video_input = 3,
+- .audio_input = AUDIO_TUNER,
++ .audio_input = TVAUDIO_INPUT_TUNER,
+ .name = "Tuner",
+ },
+ },
+@@ -645,8 +645,12 @@
+ return 0;
+ }
+
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18)
+ static void go7007_usb_readinterrupt_complete(struct urb *urb,
+- struct pt_regs *pt_regs)
++ struct pt_regs *pt_regs)
++#else
++static void go7007_usb_readinterrupt_complete(struct urb *urb)
++#endif
+ {
+ struct go7007 *go = (struct go7007 *)urb->context;
+ u16 *regs = (u16 *)urb->transfer_buffer;
+@@ -690,8 +694,12 @@
+ return 0;
+ }
+
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18)
+ static void go7007_usb_read_video_pipe_complete(struct urb *urb,
+- struct pt_regs *pt_regs)
++ struct pt_regs *pt_regs)
++#else
++static void go7007_usb_read_video_pipe_complete(struct urb *urb)
++#endif
+ {
+ struct go7007 *go = (struct go7007 *)urb->context;
+ int r;
+@@ -715,8 +723,12 @@
+ printk(KERN_ERR "go7007-usb: error in video pipe: %d\n", r);
+ }
+
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18)
+ static void go7007_usb_read_audio_pipe_complete(struct urb *urb,
+- struct pt_regs *pt_regs)
++ struct pt_regs *pt_regs)
++#else
++static void go7007_usb_read_audio_pipe_complete(struct urb *urb)
++#endif
+ {
+ struct go7007 *go = (struct go7007 *)urb->context;
+ int r;
+diff -ru wis-go7007-linux-0.9.8/kernel/go7007-v4l2.c wis-go7007-linux-0.9.8-new/kernel/go7007-v4l2.c
+--- wis-go7007-linux-0.9.8/kernel/go7007-v4l2.c 2006-04-02 01:22:03.000000000 +0200
++++ wis-go7007-linux-0.9.8-new/kernel/go7007-v4l2.c 2006-08-19 11:01:14.000000000 +0200
+@@ -17,8 +17,10 @@
+
+ #include <linux/module.h>
+ #include <linux/init.h>
+-#include <linux/config.h>
+ #include <linux/version.h>
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,17)
++#include <linux/config.h>
++#endif
+ #include <linux/delay.h>
+ #include <linux/sched.h>
+ #include <linux/spinlock.h>
+@@ -939,7 +941,7 @@
+ if (go->i2c_adapter_online) {
+ i2c_clients_command(&go->i2c_adapter, DECODER_SET_INPUT,
+ &go->board_info->inputs[*input].video_input);
+- i2c_clients_command(&go->i2c_adapter, AUDC_SET_INPUT,
++ i2c_clients_command(&go->i2c_adapter, VIDIOC_S_AUDIO,
+ &go->board_info->inputs[*input].audio_input);
+ }
+ return 0;
+diff -ru wis-go7007-linux-0.9.8/kernel/snd-go7007.c wis-go7007-linux-0.9.8-new/kernel/snd-go7007.c
+--- wis-go7007-linux-0.9.8/kernel/snd-go7007.c 2006-04-02 00:36:38.000000000 +0200
++++ wis-go7007-linux-0.9.8-new/kernel/snd-go7007.c 2006-12-17 12:20:54.000000000 +0100
+@@ -20,7 +20,9 @@
+ #include <linux/version.h>
+ #include <linux/moduleparam.h>
+ #include <linux/init.h>
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,17)
+ #include <linux/config.h>
++#endif
+ #include <linux/delay.h>
+ #include <linux/sched.h>
+ #include <linux/vmalloc.h>
+@@ -305,7 +307,11 @@
+ struct go7007_snd *gosnd = go->snd_context;
+
+ snd_card_disconnect(gosnd->card);
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18)
+ snd_card_free_in_thread(gosnd->card);
++#else
++ snd_card_free_when_closed(gosnd->card);
++#endif
+ return 0;
+ }
+ EXPORT_SYMBOL(go7007_snd_remove);
+diff -ru wis-go7007-linux-0.9.8/kernel/wis-saa7113.c wis-go7007-linux-0.9.8-new/kernel/wis-saa7113.c
+--- wis-go7007-linux-0.9.8/kernel/wis-saa7113.c 2006-04-02 00:37:06.000000000 +0200
++++ wis-go7007-linux-0.9.8-new/kernel/wis-saa7113.c 2006-08-19 11:03:04.000000000 +0200
+@@ -21,6 +21,7 @@
+ #include <linux/i2c.h>
+ #include <linux/videodev.h>
+ #include <linux/video_decoder.h>
++#include <linux/ioctl.h>
+
+ #include "wis-i2c.h"
+
+diff -ru wis-go7007-linux-0.9.8/kernel/wis-saa7115.c wis-go7007-linux-0.9.8-new/kernel/wis-saa7115.c
+--- wis-go7007-linux-0.9.8/kernel/wis-saa7115.c 2006-04-02 00:37:12.000000000 +0200
++++ wis-go7007-linux-0.9.8-new/kernel/wis-saa7115.c 2006-08-19 11:02:28.000000000 +0200
+@@ -21,6 +21,7 @@
+ #include <linux/i2c.h>
+ #include <linux/videodev.h>
+ #include <linux/video_decoder.h>
++#include <linux/ioctl.h>
+
+ #include "wis-i2c.h"
+
+diff -ru wis-go7007-linux-0.9.8/kernel/wis-tw2804.c wis-go7007-linux-0.9.8-new/kernel/wis-tw2804.c
+--- wis-go7007-linux-0.9.8/kernel/wis-tw2804.c 2006-04-02 00:37:22.000000000 +0200
++++ wis-go7007-linux-0.9.8-new/kernel/wis-tw2804.c 2006-08-19 11:02:43.000000000 +0200
+@@ -21,6 +21,7 @@
+ #include <linux/i2c.h>
+ #include <linux/videodev.h>
+ #include <linux/video_decoder.h>
++#include <linux/ioctl.h>
+
+ #include "wis-i2c.h"
+
+diff -ru wis-go7007-linux-0.9.8/kernel/wis-tw9903.c wis-go7007-linux-0.9.8-new/kernel/wis-tw9903.c
+--- wis-go7007-linux-0.9.8/kernel/wis-tw9903.c 2006-04-02 00:37:28.000000000 +0200
++++ wis-go7007-linux-0.9.8-new/kernel/wis-tw9903.c 2006-08-19 11:02:47.000000000 +0200
+@@ -21,6 +21,7 @@
+ #include <linux/i2c.h>
+ #include <linux/videodev.h>
+ #include <linux/video_decoder.h>
++#include <linux/ioctl.h>
+
+ #include "wis-i2c.h"
+
+diff -ru wis-go7007-linux-0.9.8/kernel/wis-uda1342.c wis-go7007-linux-0.9.8-new/kernel/wis-uda1342.c
+--- wis-go7007-linux-0.9.8/kernel/wis-uda1342.c 2006-04-02 00:37:32.000000000 +0200
++++ wis-go7007-linux-0.9.8-new/kernel/wis-uda1342.c 2006-04-03 13:07:04.000000000 +0200
+@@ -20,7 +20,7 @@
+ #include <linux/version.h>
+ #include <linux/i2c.h>
+ #include <linux/videodev.h>
+-#include <media/audiochip.h>
++#include <media/tvaudio.h>
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+ #include <media/v4l2-common.h>
+ #endif
+@@ -38,15 +38,15 @@
+ unsigned int cmd, void *arg)
+ {
+ switch (cmd) {
+- case AUDC_SET_INPUT:
++ case VIDIOC_S_AUDIO:
+ {
+ int *inp = arg;
+
+ switch (*inp) {
+- case AUDIO_TUNER:
++ case TVAUDIO_INPUT_TUNER:
+ write_reg(client, 0x00, 0x1441); /* select input 2 */
+ break;
+- case AUDIO_EXTERN:
++ case TVAUDIO_INPUT_EXTERN:
+ write_reg(client, 0x00, 0x1241); /* select input 1 */
+ break;
+ default:
diff --git a/media-tv/wis-go7007/metadata.xml b/media-tv/wis-go7007/metadata.xml
new file mode 100644
index 000000000000..a6b9e38a1b93
--- /dev/null
+++ b/media-tv/wis-go7007/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>media-tv</herd>
+</pkgmetadata>
diff --git a/media-tv/wis-go7007/wis-go7007-0.9.8-r3.ebuild b/media-tv/wis-go7007/wis-go7007-0.9.8-r3.ebuild
new file mode 100644
index 000000000000..05523665b3ce
--- /dev/null
+++ b/media-tv/wis-go7007/wis-go7007-0.9.8-r3.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit eutils linux-mod udev
+
+MY_PN=${PN}-linux
+DESCRIPTION="Linux drivers for go7007 chipsets (Plextor ConvertX PVR)"
+HOMEPAGE="http://oss.wischip.com/ http://home.comcast.net/~bender647/go7007/"
+SRC_URI="http://oss.wischip.com/${MY_PN}-${PV}.tar.bz2"
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+IUSE="alsa"
+DEPEND="virtual/udev
+ sys-apps/fxload"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/${MY_PN}-${PV}
+
+pkg_setup() {
+ BUILD_TARGETS="all"
+ BUILD_PARAMS="KERNELSRC=${KERNEL_DIR}"
+ CONFIG_CHECK="HOTPLUG MODULES KMOD FW_LOADER I2C VIDEO_DEV SOUND SND USB
+ USB_DEVICEFS USB_EHCI_HCD"
+
+ if use alsa; then
+ CONFIG_CHECK="${CONFIG_CHECK} SND_MIXER_OSS SND_PCM_OSS"
+ fi
+
+ if ! kernel_is ge 2 6 26; then
+ eerror "This ebuild version will only work with a 2.6.26 kernel"
+ die "Needs a different kernel"
+ fi
+
+ linux-mod_pkg_setup
+ MODULE_NAMES="go7007(extra:${S}:${S}/kernel)
+ go7007-usb(extra:${S}:${S}/kernel)
+ snd-go7007(extra:${S}:${S}/kernel)
+ wis-ov7640(extra:${S}:${S}/kernel)
+ wis-sony-tuner(extra:${S}:${S}/kernel)
+ wis-tw9903(extra:${S}:${S}/kernel)
+ wis-uda1342(extra:${S}:${S}/kernel)
+ wis-saa7113(extra:${S}:${S}/kernel)
+ wis-saa7115(extra:${S}:${S}/kernel)"
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ if kernel_is ge 2 6 26; then
+ epatch "${FILESDIR}/wis-go7007-updates.diff"
+ epatch "${FILESDIR}/wis-go7007-2.6.21-typdefs.diff"
+ epatch "${FILESDIR}/wis-go7007-2.6.24-no_algo_control.diff"
+ epatch "${FILESDIR}/wis-go7007-2.6.26-nopage.diff"
+ fi
+}
+
+src_compile() {
+ linux-mod_src_compile || die "failed to build driver "
+}
+
+src_install() {
+ cd "${S}/apps"
+ make KERNELDIR="${KERNEL_DIR}" DESTDIR="${D}" PREFIX=/usr install || die "failed to install"
+ cd "${S}"
+ dodir "/lib/modules"
+ insinto "/lib/modules"
+ dodoc README README.saa7134 RELEASE-NOTES
+ cd "${S}/kernel"
+ linux-mod_src_install || die "failed to install modules"
+
+ insinto "${KERNEL_DIR}/include/linux"
+ doins "${S}/include/*.h"
+ insinto "/lib/firmware"
+ doins "${S}/firmware/*.bin"
+ insinto "/lib/firmware/ezusb"
+ doins "${S}/firmware/ezusb/*.hex"
+ udev_dorules "${S}/udev/wis-ezusb.rules"
+
+ exeinto "/usr/bin"
+ use alsa && doexe "${S}/apps/gorecord"
+ doexe "${S}/apps/modet"
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ elog ""
+ elog "For more information on how to use the Plextor devices with Gentoo"
+ elog "you can follow this thread for tips and tricks:"
+ elog "http://forums.gentoo.org/viewtopic-t-306559-highlight-.html"
+ elog ""
+ elog "Also, the unofficial Gentoo wiki has a HOWTO page:"
+ elog "http://gentoo-wiki.com/HARDWARE_go7007"
+ elog ""
+ ewarn "Don't forget to add your modules to /etc/modules.autoload.d/kernel.2.6"
+ ewarn "so they will load on startup:"
+ ewarn ""
+ ewarn "snd_go7007"
+ ewarn "go7007"
+ ewarn "go7007_usb"
+ ewarn "wis_saa7115"
+ ewarn "wis_uda1342"
+ ewarn "wis_sony_tuner"
+}