mirror of https://lore.kernel.org/lkml/
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome