All of lore.kernel.org
 help / color / mirror / Atom feed
* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.