[mythtv-users] patch for ck71d ivtv driver for 2.6.8
Frank Riley
fhriley at yahoo.com
Mon Aug 23 23:05:46 EDT 2004
Here is a patch to get the ck71d ivtv driver working on the 2.6.8 kernel.
Note that I have only verified this works on gentoo-dev-sources 2.6.8-r1. It
may not work on other distributions.
-------------- next part --------------
diff -urN ivtv-0.1.10-pre2-ck71d.orig/driver/ivtv-api.c ivtv-0.1.10-pre2-ck71d/driver/ivtv-api.c
--- ivtv-0.1.10-pre2-ck71d.orig/driver/ivtv-api.c 2004-05-22 20:39:03.000000000 -0700
+++ ivtv-0.1.10-pre2-ck71d/driver/ivtv-api.c 2004-08-23 19:15:44.455446952 -0700
@@ -4253,12 +4253,15 @@
*/
static void ivtv_dualwatch_set_dual(struct ivtv *itv)
{
- if(!itv->dualwatch.encoding)
+ u32 audio_bitmap;
+ int stereo_flag;
+ int goal_stereo_flag;
+
+ if(!itv->dualwatch.encoding)
return;
- u32 audio_bitmap = itv->dualwatch.audio_bitmap;
- int stereo_flag = audio_bitmap&IVTV_CODEC_AUDIO_MPEG_STEREO_MASK;
- int goal_stereo_flag;
+ audio_bitmap = itv->dualwatch.audio_bitmap;
+ stereo_flag = audio_bitmap&IVTV_CODEC_AUDIO_MPEG_STEREO_MASK;
if(itv->dualwatch.enabled) {
struct v4l2_tuner vt;
memset(&vt, 0, sizeof(vt));
diff -urN ivtv-0.1.10-pre2-ck71d.orig/driver/ivtv-driver.c ivtv-0.1.10-pre2-ck71d/driver/ivtv-driver.c
--- ivtv-0.1.10-pre2-ck71d.orig/driver/ivtv-driver.c 2004-05-23 08:24:18.000000000 -0700
+++ ivtv-0.1.10-pre2-ck71d/driver/ivtv-driver.c 2004-08-23 11:01:03.049452104 -0700
@@ -689,13 +689,13 @@
set_fs(get_ds());
- if ( (fd = open(fn, 0, 0)) == -1) {
+ if ( (fd = sys_open(fn, 0, 0)) == -1) {
printk(KERN_INFO "Unable to open '%s'.\n", fn);
l = -EINVAL;
goto failure;
}
/* the 2 means SEEK_END */
- l = lseek(fd, 0L, 2);
+ l = sys_lseek(fd, 0L, 2);
if (l <= 0 || l > IVTV_FIRM_IMAGE_SIZE) {
printk(KERN_INFO "Firmware image too large '%s'\n", fn);
@@ -704,15 +704,15 @@
}
/* the 2 means SEEK_SET */
- lseek(fd, 0L, 0);
+ sys_lseek(fd, 0L, 0);
- if (read(fd, mem, l) != l){
+ if (sys_read(fd, mem, l) != l){
printk(KERN_INFO "Failed to read '%s'.\n", fn);
l = -ENOMEM;
}
out:
- close(fd);
+ sys_close(fd);
failure:
set_fs(fs);
@@ -1776,7 +1776,7 @@
/* wait 2s for EOS interrupt */
while((!test_bit(IVTV_F_I_EOS, &itv->i_flags)) &&
- (jiffies < (then + (2.5 * HZ)))) {
+ (jiffies < (then + (5 * HZ)/2))) {
schedule_timeout(HZ/100);
}
then = jiffies - then;
diff -urN ivtv-0.1.10-pre2-ck71d.orig/driver/ivtv-firmware.c ivtv-0.1.10-pre2-ck71d/driver/ivtv-firmware.c
--- ivtv-0.1.10-pre2-ck71d.orig/driver/ivtv-firmware.c 2004-05-15 23:04:42.000000000 -0700
+++ ivtv-0.1.10-pre2-ck71d/driver/ivtv-firmware.c 2004-08-23 08:46:45.918763200 -0700
@@ -83,13 +83,13 @@
set_fs(get_ds());
- if ( (fd = open(fn, 0, 0)) == -1) {
+ if ( (fd = sys_open(fn, 0, 0)) == -1) {
printk(KERN_INFO "Unable to open '%s'.\n", fn);
l = -EINVAL;
goto failure;
}
/* the 2 means SEEK_END */
- l = lseek(fd, 0L, 2);
+ l = sys_lseek(fd, 0L, 2);
if (l <= 0 || l > IVTV_FIRM_IMAGE_SIZE) {
printk(KERN_INFO "Firmware image too large '%s'\n", fn);
@@ -98,15 +98,15 @@
}
/* the 2 means SEEK_SET */
- lseek(fd, 0L, 0);
+ sys_lseek(fd, 0L, 0);
- if (read(fd, mem, l) != l){
+ if (sys_read(fd, mem, l) != l){
printk(KERN_INFO "Failed to read '%s'.\n", fn);
l = -ENOMEM;
}
out:
- close(fd);
+ sys_close(fd);
failure:
set_fs(fs);
diff -urN ivtv-0.1.10-pre2-ck71d.orig/driver/ivtv-i2c.c ivtv-0.1.10-pre2-ck71d/driver/ivtv-i2c.c
--- ivtv-0.1.10-pre2-ck71d.orig/driver/ivtv-i2c.c 2004-05-07 14:41:58.000000000 -0700
+++ ivtv-0.1.10-pre2-ck71d/driver/ivtv-i2c.c 2004-08-23 08:41:26.762282360 -0700
@@ -56,7 +56,7 @@
.owner = THIS_MODULE,
#endif
#ifdef LINUX26
- .class = I2C_ADAP_CLASS_TV_ANALOG,
+ .class = I2C_CLASS_TV_ANALOG,
#endif
};
diff -urN ivtv-0.1.10-pre2-ck71d.orig/driver/ivtv.h ivtv-0.1.10-pre2-ck71d/driver/ivtv.h
--- ivtv-0.1.10-pre2-ck71d.orig/driver/ivtv.h 2004-05-22 20:29:38.000000000 -0700
+++ ivtv-0.1.10-pre2-ck71d/driver/ivtv.h 2004-08-23 08:44:31.635177408 -0700
@@ -34,6 +34,7 @@
#include <linux/videodev.h>
#include <linux/list.h>
#include <linux/unistd.h>
+#include <linux/syscalls.h>
#include <asm/uaccess.h>
#include <asm/semaphore.h>
#include <asm/system.h>
diff -urN ivtv-0.1.10-pre2-ck71d.orig/driver/msp3400.c ivtv-0.1.10-pre2-ck71d/driver/msp3400.c
--- ivtv-0.1.10-pre2-ck71d.orig/driver/msp3400.c 2004-05-15 07:41:25.000000000 -0700
+++ ivtv-0.1.10-pre2-ck71d/driver/msp3400.c 2004-08-23 19:12:34.173374224 -0700
@@ -184,6 +184,7 @@
{
int err;
+ int retval;
unsigned char write[3];
unsigned char read[2];
struct i2c_msg msgs[2] = {
@@ -208,7 +209,7 @@
msp3400c_reset(client);
return -1;
}
- int retval = read[0] << 8 | read[1];
+ retval = read[0] << 8 | read[1];
dprintk_trace("trace: msp3400c_read(0x%x, 0x%x): 0x%x\n", dev, addr, retval);
return retval;
}
@@ -1311,6 +1312,7 @@
struct msp3400c *msp = i2c_get_clientdata(client);
int i;
int modus;
+ int std;
if(msp3400c_reset(client))
return -1;
@@ -1345,7 +1347,7 @@
0x5a00 /* default: 9db gain (as recommended) */))
return -1;
- int std=standard;
+ std=standard;
if(msp3400c_write(client,
I2C_MSP3400C_DEM,
0x20, /* STANDARD SELECT */
More information about the mythtv-users
mailing list