* [PATCH 0/3] LinuxTV.org DVB+V4L fixes
@ 2003-10-21 9:36 Michael Hunold
2003-10-21 9:36 ` [PATCH 1/3] Fix bugs in various DVB drivers Michael Hunold
0 siblings, 1 reply; 4+ messages in thread
From: Michael Hunold @ 2003-10-21 9:36 UTC (permalink / raw)
To: torvalds, linux-kernel
Hi Linus,
these 3 patches fix serious bugs found by users of 2.6.0-test8 in the
drivers hosted by LinuxTV.org.
As usual, detailed descriptions are at the beginning of each patch.
Please apply.
Thanks!
Michael.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/3] Fix bugs in various DVB drivers
2003-10-21 9:36 [PATCH 0/3] LinuxTV.org DVB+V4L fixes Michael Hunold
@ 2003-10-21 9:36 ` Michael Hunold
2003-10-21 9:36 ` [PATCH 2/3] Fix bug in saa7146 analog tv i2c-handling Michael Hunold
0 siblings, 1 reply; 4+ messages in thread
From: Michael Hunold @ 2003-10-21 9:36 UTC (permalink / raw)
To: torvalds, linux-kernel
- [DVB] DVB networking uses big endian crc32, so change all occurences of crc32_le to crc32_be
- [DVB] fix usage of firmware location Kconfig option in tda1004x frontend driver
- [DVB] add missing VBI line decoding initialization to saa7113 code for av7110 driver
- [DVB] make av7110 firmware static and *not* __initdata, so recover_arm() can work in case the driver is compiled in statically
diff -u linux/drivers/media/dvb/dvb-core/dvb_demux.c:1.38 linux/drivers/media/dvb/dvb-core/dvb_demux.c:1.39
--- linux/drivers/media/dvb/dvb-core/dvb_demux.c:1.38 Mon Oct 13 02:34:51 2003
+++ linux/drivers/media/dvb/dvb-core/dvb_demux.c Thu Oct 16 10:36:58 2003
@@ -107,7 +107,7 @@
{
u32 crc;
- crc = crc32_le(~0, data, length);
+ crc = crc32_be(~0, data, length);
data[length] = (crc >> 24) & 0xff;
data[length+1] = (crc >> 16) & 0xff;
@@ -118,7 +118,7 @@
static u32 dvb_dmx_crc32 (struct dvb_demux_feed *f, const u8 *src, size_t len)
{
- return (f->feed.sec.crc_val = crc32_le (f->feed.sec.crc_val, src, len));
+ return (f->feed.sec.crc_val = crc32_be (f->feed.sec.crc_val, src, len));
}
diff -u linux/drivers/media/dvb/frontends/tda1004x.c:1.7 linux/drivers/media/dvb/frontends/tda1004x.c:1.8
--- linux/drivers/media/dvb/frontends/tda1004x.c:1.7 Thu Oct 9 01:12:46 2003
+++ linux/drivers/media/dvb/frontends/tda1004x.c Thu Oct 16 10:40:02 2003
@@ -44,12 +44,12 @@
#include "dvb_frontend.h"
#include "dvb_functions.h"
-#ifndef CONFIG_TDA1004X_MC_LOCATION
-#define CONFIG_TDA1004X_MC_LOCATION "/etc/dvb/tda1004x.mc"
+#ifndef DVB_TDA1004X_FIRMWARE_FILE
+#define DVB_TDA1004X_FIRMWARE_FILE "/etc/dvb/tda1004x.mc"
#endif
static int tda1004x_debug = 0;
-static char *tda1004x_firmware = CONFIG_TDA1004X_MC_LOCATION;
+static char *tda1004x_firmware = DVB_TDA1004X_FIRMWARE_FILE;
#define TDA10045H_ADDRESS 0x08
diff -u linux/drivers/media/dvb/ttpci/av7110.c:1.90 linux/drivers/media/dvb/ttpci/av7110.c:1.91
--- linux/drivers/media/dvb/ttpci/av7110.c:1.90 Wed Oct 15 12:06:04 2003
+++ linux/drivers/media/dvb/ttpci/av7110.c Fri Oct 17 19:01:24 2003
@@ -4498,6 +4498,30 @@
0x1d, 0x00,
0x1e, 0x00,
+ 0x41, 0x77,
+ 0x42, 0x77,
+ 0x43, 0x77,
+ 0x44, 0x77,
+ 0x45, 0x77,
+ 0x46, 0x77,
+ 0x47, 0x77,
+ 0x48, 0x77,
+ 0x49, 0x77,
+ 0x4a, 0x77,
+ 0x4b, 0x77,
+ 0x4c, 0x77,
+ 0x4d, 0x77,
+ 0x4e, 0x77,
+ 0x4f, 0x77,
+ 0x50, 0x77,
+ 0x51, 0x77,
+ 0x52, 0x77,
+ 0x53, 0x77,
+ 0x54, 0x77,
+ 0x55, 0x77,
+ 0x56, 0x77,
+ 0x57, 0xff,
+
0xff
};
diff -u linux/drivers/media/dvb/ttpci/av7110_firm.h:1.18 linux/drivers/media/dvb/ttpci/av7110_firm.h:1.19
--- linux/drivers/media/dvb/ttpci/av7110_firm.h:1.18 Mon Oct 13 19:46:23 2003
+++ linux/drivers/media/dvb/ttpci/av7110_firm.h Mon Oct 20 17:33:17 2003
@@ -1,7 +1,7 @@
#include <asm/types.h>
-u8 Dpram [] __initdata = {
+static u8 Dpram [] = {
0xe5, 0x9f, 0xf0, 0x1c, 0xe1, 0xb0, 0xf0, 0x0e,
0xe5, 0x9f, 0xf0, 0x18, 0xe2, 0x5e, 0xf0, 0x04,
0xe2, 0x5e, 0xf0, 0x08, 0xe1, 0xa0, 0x00, 0x00,
@@ -41,7 +41,7 @@
};
-u8 Root [] __initdata = {
+static u8 Root [] = {
0xb4, 0x90, 0x49, 0x18, 0x1c, 0x0b, 0x4a, 0x18,
0x1a, 0x50, 0x4f, 0x18, 0x1a, 0x79, 0x10, 0x8f,
0x21, 0x00, 0x2f, 0x00, 0xdd, 0x04, 0xcb, 0x10,
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 2/3] Fix bug in saa7146 analog tv i2c-handling
2003-10-21 9:36 ` [PATCH 1/3] Fix bugs in various DVB drivers Michael Hunold
@ 2003-10-21 9:36 ` Michael Hunold
2003-10-21 9:36 ` [PATCH 3/3] Fix bugs in analog tv i2c-helper chipset drivers Michael Hunold
0 siblings, 1 reply; 4+ messages in thread
From: Michael Hunold @ 2003-10-21 9:36 UTC (permalink / raw)
To: torvalds, linux-kernel
- [V4L] remove cruft, add I2C_ADAP_CLASS_TV_ANALOG identifier for analog tv i2c handler
diff -ura xx-linux-2.6.0-test8/drivers/media/common/saa7146_i2c.c linux-2.6.0-test8-p/drivers/media/common/saa7146_i2c.c
--- xx-linux-2.6.0-test8/drivers/media/common/saa7146_i2c.c 2003-10-09 10:39:08.000000000 +0200
+++ linux-2.6.0-test8-p/drivers/media/common/saa7146_i2c.c 2003-10-21 11:21:36.000000000 +0200
@@ -409,11 +409,8 @@
if( NULL != i2c_adapter ) {
memset(i2c_adapter,0,sizeof(struct i2c_adapter));
strcpy(i2c_adapter->name, dev->name);
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
- i2c_adapter->data = dev;
-#else
i2c_set_adapdata(i2c_adapter,dev);
-#endif
+ i2c_adapter->class = I2C_ADAP_CLASS_TV_ANALOG;
i2c_adapter->algo = &saa7146_algo;
i2c_adapter->algo_data = NULL;
i2c_adapter->id = I2C_ALGO_SAA7146;
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 3/3] Fix bugs in analog tv i2c-helper chipset drivers
2003-10-21 9:36 ` [PATCH 2/3] Fix bug in saa7146 analog tv i2c-handling Michael Hunold
@ 2003-10-21 9:36 ` Michael Hunold
0 siblings, 0 replies; 4+ messages in thread
From: Michael Hunold @ 2003-10-21 9:36 UTC (permalink / raw)
To: torvalds, linux-kernel
- [V4L] remove cruft, memset() i2c-client structures in tda9840, tea6420, tea6415c driver, otherwise i2c_register()/kobject() segfaults later on
diff -ura xx-linux-2.6.0-test8/drivers/media/video/tda9840.c linux-2.6.0-test8-p/drivers/media/video/tda9840.c
--- xx-linux-2.6.0-test8/drivers/media/video/tda9840.c 2003-09-10 11:28:54.000000000 +0200
+++ linux-2.6.0-test8-p/drivers/media/video/tda9840.c 2003-10-21 11:21:02.000000000 +0200
@@ -196,6 +196,7 @@
printk("tda9840.o: not enough kernel memory.\n");
return -ENOMEM;
}
+ memset(client, 0, sizeof(struct i2c_client));
/* fill client structure */
sprintf(client->name,"tda9840 (0x%02x)", address);
@@ -258,9 +259,7 @@
}
static struct i2c_driver driver = {
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,54)
.owner = THIS_MODULE,
-#endif
.name = "tda9840 driver",
.id = I2C_DRIVERID_TDA9840,
.flags = I2C_DF_NOTIFY,
diff -ura xx-linux-2.6.0-test8/drivers/media/video/tea6415c.c linux-2.6.0-test8-p/drivers/media/video/tea6415c.c
--- xx-linux-2.6.0-test8/drivers/media/video/tea6415c.c 2003-09-10 11:28:54.000000000 +0200
+++ linux-2.6.0-test8-p/drivers/media/video/tea6415c.c 2003-10-21 11:20:48.000000000 +0200
@@ -70,6 +70,7 @@
if (0 == client) {
return -ENOMEM;
}
+ memset(client, 0, sizeof(struct i2c_client));
/* fill client structure */
sprintf(client->name,"tea6415c (0x%02x)", address);
@@ -207,9 +208,7 @@
}
static struct i2c_driver driver = {
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,54)
.owner = THIS_MODULE,
-#endif
.name = "tea6415c driver",
.id = I2C_DRIVERID_TEA6415C,
.flags = I2C_DF_NOTIFY,
diff -ura xx-linux-2.6.0-test8/drivers/media/video/tea6420.c linux-2.6.0-test8-p/drivers/media/video/tea6420.c
--- xx-linux-2.6.0-test8/drivers/media/video/tea6420.c 2003-09-10 11:28:54.000000000 +0200
+++ linux-2.6.0-test8-p/drivers/media/video/tea6420.c 2003-10-21 11:20:56.000000000 +0200
@@ -110,7 +110,8 @@
if (0 == client) {
return -ENOMEM;
}
-
+ memset(client, 0x0, sizeof(struct i2c_client));
+
/* fill client structure */
sprintf(client->name,"tea6420 (0x%02x)", address);
client->id = tea6420_id++;
@@ -187,9 +188,7 @@
}
static struct i2c_driver driver = {
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,54)
.owner = THIS_MODULE,
-#endif
.name = "tea6420 driver",
.id = I2C_DRIVERID_TEA6420,
.flags = I2C_DF_NOTIFY,
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2003-10-21 9:38 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-10-21 9:36 [PATCH 0/3] LinuxTV.org DVB+V4L fixes Michael Hunold
2003-10-21 9:36 ` [PATCH 1/3] Fix bugs in various DVB drivers Michael Hunold
2003-10-21 9:36 ` [PATCH 2/3] Fix bug in saa7146 analog tv i2c-handling Michael Hunold
2003-10-21 9:36 ` [PATCH 3/3] Fix bugs in analog tv i2c-helper chipset drivers Michael Hunold
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome