All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <45EB01E8.5080003@assembler.cz>

diff --git a/a/1.txt b/N1/1.txt
index c1b1332..16c6059 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -50,3 +50,12 @@ relation...
 
 Thanks,
 Rudolf
+
+
+-------------- next part --------------
+A non-text attachment was scrubbed...
+Name: acpi-io-sync.patch
+Type: text/x-diff
+Size: 7824 bytes
+Desc: not available
+Url : http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20070304/8d85322d/attachment.bin
diff --git a/a/2.hdr b/a/2.hdr
deleted file mode 100644
index e252004..0000000
--- a/a/2.hdr
+++ /dev/null
@@ -1,5 +0,0 @@
-Content-Type: text/x-diff;
- name="acpi-io-sync.patch"
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline;
- filename="acpi-io-sync.patch"
diff --git a/a/2.txt b/a/2.txt
deleted file mode 100644
index 9036813..0000000
--- a/a/2.txt
+++ /dev/null
@@ -1,280 +0,0 @@
-Index: linux-2.6.20/include/linux/ioport.h
-===================================================================
---- linux-2.6.20.orig/include/linux/ioport.h	2007-03-04 10:31:03.457166952 +0100
-+++ linux-2.6.20/include/linux/ioport.h	2007-03-04 15:55:03.458260761 +0100
-@@ -14,10 +14,19 @@
-  * Resources are tree-like, allowing
-  * nesting etc..
-  */
-+
-+struct resource_ops {
-+	int (*read_io)(u32 size, u32 port, u32 *where, void *priv);
-+	int (*write_io)(u32 size, u32 port, u32 val, void *priv);
-+	void *priv_data;
-+};
-+
- struct resource {
- 	resource_size_t start;
- 	resource_size_t end;
- 	const char *name;
-+	//void *resource_data;
-+	struct resource_ops *res_ops;
- 	unsigned long flags;
- 	struct resource *parent, *sibling, *child;
- };
-Index: linux-2.6.20/drivers/acpi/osl.c
-===================================================================
---- linux-2.6.20.orig/drivers/acpi/osl.c	2007-03-04 10:31:30.626715256 +0100
-+++ linux-2.6.20/drivers/acpi/osl.c	2007-03-04 16:18:29.958412636 +0100
-@@ -36,6 +36,7 @@
- #include <linux/delay.h>
- #include <linux/workqueue.h>
- #include <linux/nmi.h>
-+#include <linux/ioport.h>
- #include <acpi/acpi.h>
- #include <asm/io.h>
- #include <acpi/acpi_bus.h>
-@@ -331,13 +332,8 @@
- 	return ++t;
- }
- 
--acpi_status acpi_os_read_port(acpi_io_address port, u32 * value, u32 width)
-+static acpi_status acpi_os_read_port_raw(acpi_io_address port, u32 * value, u32 width)
- {
--	u32 dummy;
--
--	if (!value)
--		value = &dummy;
--
- 	switch (width) {
- 	case 8:
- 		*(u8 *) value = inb(port);
-@@ -355,10 +351,51 @@
- 	return AE_OK;
- }
- 
-+acpi_status acpi_os_read_port(acpi_io_address port, u32 * value, u32 width)
-+{
-+	acpi_status ret = AE_OK;
-+	struct resource *conflict, res;
-+	u32 dummy;
-+	int retval;
-+
-+	if (!value)
-+		value = &dummy;
-+
-+	printk("%s: Port %x\n", __FUNCTION__ , (int) port);
-+	res.flags = 0;
-+	res.name = "ACPI Access";
-+	res.start = port;
-+	res.end = port + width/8 - 1;
-+	
-+	conflict = ____request_resource(&ioport_resource, &res);
-+
-+	while ((conflict) && (conflict->child))
-+		conflict = ____request_resource(conflict, &res);
-+
-+	if ((conflict) && (conflict->res_ops) && (conflict->res_ops->write_io)) {
-+		printk("Redir called\n");
-+		retval = conflict->res_ops->read_io(width, port, value, conflict->res_ops->priv_data);
-+
-+		//this needs coding fix
-+		if (retval < 0) {
-+			ret = acpi_os_read_port_raw(port, value, width);
-+		} else {
-+			ret = AE_OK;
-+		}
-+	} else {
-+		printk("Ordinary job\n");
-+		ret = acpi_os_read_port_raw(port, value, width);
-+		if (conflict == NULL)
-+			release_resource(&res);
-+	}
-+
-+	return ret;
-+}
-+
- EXPORT_SYMBOL(acpi_os_read_port);
- 
--acpi_status acpi_os_write_port(acpi_io_address port, u32 value, u32 width)
--{
-+static acpi_status acpi_os_write_port_raw(acpi_io_address port, u32 value, u32 width) {
-+
- 	switch (width) {
- 	case 8:
- 		outb(value, port);
-@@ -376,6 +413,41 @@
- 	return AE_OK;
- }
- 
-+acpi_status acpi_os_write_port(acpi_io_address port, u32 value, u32 width)
-+{
-+	struct resource *conflict, res;
-+	acpi_status ret = AE_OK;
-+	int retval;
-+	res.flags = 0;
-+	res.start = port;
-+	res.end = port + width/8 - 1;
-+	res.name = "ACPI Access";
-+	printk("%s: Port %x\n", __FUNCTION__ , (int) port);
-+	
-+	conflict = ____request_resource(&ioport_resource, &res);
-+
-+	while ((conflict) && (conflict->child))
-+		conflict = ____request_resource(conflict, &res);
-+
-+	if ((conflict) && (conflict->res_ops) && (conflict->res_ops->write_io)) {
-+		printk("Redir called\n");
-+		retval = conflict->res_ops->write_io(width, port, value,
-+							conflict->res_ops->priv_data);
-+		//this needs coding fix
-+		if (retval < 0) {
-+			ret = acpi_os_write_port_raw(port, value, width);
-+		} else {
-+			ret = AE_OK;
-+		}
-+	} else {
-+		printk("Ordinary job\n");
-+		ret = acpi_os_write_port_raw(port, value, width);
-+		if (conflict == NULL)
-+			release_resource(&res);
-+	}
-+	return ret;
-+}
-+
- EXPORT_SYMBOL(acpi_os_write_port);
- 
- acpi_status
-Index: linux-2.6.20/drivers/hwmon/w83627ehf.c
-===================================================================
---- linux-2.6.20.orig/drivers/hwmon/w83627ehf.c	2007-03-04 10:31:03.689180173 +0100
-+++ linux-2.6.20/drivers/hwmon/w83627ehf.c	2007-03-04 15:51:23.737739602 +0100
-@@ -245,6 +245,9 @@
- 	char valid;		/* !=0 if following fields are valid */
- 	unsigned long last_updated;	/* In jiffies */
- 
-+	u8 reg_pointer;
-+	u8 reg_bank;
-+
- 	/* Register values */
- 	u8 in[10];		/* Register value */
- 	u8 in_max[10];		/* Register value */
-@@ -270,6 +273,7 @@
- 
- 	u8 fan_min_output[4]; /* minimum fan speed */
- 	u8 fan_stop_time[4];
-+	struct resource_ops res_ops;
- };
- 
- static inline int is_word_sized(u16 reg)
-@@ -344,6 +348,74 @@
- 	return 0;
- }
- 
-+
-+//we may return error/unsuppored and legacy acpi outb/inb stuff might take a chance
-+
-+static int acpi_emul_read(u32 size, u32 port, u32 *where, void *priv_data) {
-+	struct i2c_client *client =  (struct i2c_client *) priv_data;
-+	struct w83627ehf_data *data =  i2c_get_clientdata(client);
-+	u16 tmp, reg = (data->reg_bank << 8) | data->reg_pointer;
-+
-+	if (size != 8) {
-+		printk("this io port size is not emulated\n");
-+		return -EINVAL;
-+	}
-+
-+	if (port != (client->addr + DATA_REG_OFFSET)) {
-+		printk("this port %x is not emulated\n", port);
-+		return -EINVAL;
-+	}
-+
-+	printk("%s: client addr %x port: %x \n", __FUNCTION__ , client->addr, port);
-+	printk("Calling read with bank %x reg %x (%x)\n",
-+			data->reg_bank, data->reg_pointer,reg);
-+
-+	tmp = w83627ehf_read_value(client, reg);
-+	*((u8 *) where) = (is_word_sized(reg)) ? tmp >> 8 : tmp;
-+	return 0;
-+}
-+
-+static int acpi_emul_write(u32 size, u32 port, u32 val, void *priv_data) {
-+	struct i2c_client *client = (struct i2c_client *) priv_data;
-+	struct w83627ehf_data *data = i2c_get_clientdata(client);
-+	u16 reg;
-+
-+	if (size != 8) {
-+		printk("this io port size is not emulated\n");
-+		return -EINVAL;
-+	}
-+
-+	printk("%s client addr %x port %x\n", __FUNCTION__ , client->addr, port);
-+
-+	if (port == (client->addr + ADDR_REG_OFFSET)) {
-+		data->reg_pointer = val;
-+	} else if (port == (client->addr + DATA_REG_OFFSET)) {
-+
-+		if (data->reg_pointer == W83627EHF_REG_BANK) {
-+			data->reg_bank = val & 0x3;
-+			printk("REG bank changed %x\n", data->reg_bank);
-+		} else { 
-+			reg = (data->reg_bank << 8) | data->reg_pointer;
-+			printk("Calling write with bank %x reg %x value %x\n",
-+				data->reg_bank, data->reg_pointer, val);
-+			
-+			if (is_word_sized(reg)) {
-+				u16 tmp = w83627ehf_read_value(client, reg);
-+				tmp &= 0xff;
-+				w83627ehf_write_value(client, reg, (val << 8) | tmp);
-+			} else {
-+				w83627ehf_write_value(client, reg, val);
-+			}
-+			data->valid = 0; /* invalidate cache */
-+		}
-+	} else {
-+		printk("this port %x is not emulated\n", port);
-+		return -EINVAL;	
-+	}
-+	return 0;
-+}
-+
-+
- /* This function assumes that the caller holds data->update_lock */
- static void w83627ehf_write_fan_div(struct i2c_client *client, int nr)
- {
-@@ -1173,11 +1245,12 @@
- 	struct i2c_client *client;
- 	struct w83627ehf_data *data;
- 	struct device *dev;
-+	struct resource *res;
- 	u8 fan4pin, fan5pin;
- 	int i, err = 0;
- 
--	if (!request_region(address + REGION_OFFSET, REGION_LENGTH,
--	                    w83627ehf_driver.driver.name)) {
-+	if (!(res = request_region(address + REGION_OFFSET, REGION_LENGTH,
-+	                    w83627ehf_driver.driver.name))) {
- 		err = -EBUSY;
- 		goto exit;
- 	}
-@@ -1292,6 +1365,13 @@
- 		goto exit_remove;
- 	}
- 
-+	/* there is race condition right now */
-+	
-+	printk("RES %p res->res_ops %p client %p\n",res, res->res_ops, client);
-+	data->res_ops.write_io = &acpi_emul_write;
-+	data->res_ops.read_io = &acpi_emul_read;
-+	data->res_ops.priv_data = client;
-+	res->res_ops=&data->res_ops;
- 	return 0;
- 
- exit_remove:
-@@ -1315,6 +1395,7 @@
- 
- 	if ((err = i2c_detach_client(client)))
- 		return err;
-+
- 	release_region(client->addr + REGION_OFFSET, REGION_LENGTH);
- 	kfree(data);
diff --git a/a/content_digest b/N1/content_digest
index 0f31db3..f624fd6 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -10,16 +10,16 @@
  "ref\04dfa50520703030747g3c887f5bxe25caefd1723c635@mail.gmail.com\0"
  "ref\020070303155048.GA22755@srcf.ucam.org\0"
  "ref\045E9AB8B.1070804@assembler.cz\0"
- "From\0Rudolf Marek <r.marek@assembler.cz>\0"
- "Subject\0Re: [lm-sensors] Could the k8temp driver be interfering with ACPI?\0"
- "Date\0Sun, 04 Mar 2007 18:29:12 +0100\0"
+ "From\0r.marek@assembler.cz (Rudolf Marek)\0"
+ "Subject\0[lm-sensors] Could the k8temp driver be interfering with ACPI?\0"
+ "Date\0Sun, 04 Mar 2007 17:29:12 +0000\0"
  "To\0Matthew Garrett <mjg59@srcf.ucam.org>\0"
  "Cc\0Chuck Ebbert <cebbert@redhat.com>"
   linux-kernel <linux-kernel@vger.kernel.org>
   lm-sensors@lm-sensors.org
   linux-acpi@vger.kernel.org
  " Pavel Machek <pavel@ucw.cz>\0"
- "\01:1\0"
+ "\00:1\0"
  "b\0"
  "Hello again,\n"
  "\n"
@@ -72,289 +72,15 @@
  "relation...\n"
  "\n"
  "Thanks,\n"
- Rudolf
- "\01:2\0"
- "fn\0acpi-io-sync.patch\0"
- "b\0"
- "Index: linux-2.6.20/include/linux/ioport.h\n"
- "===================================================================\n"
- "--- linux-2.6.20.orig/include/linux/ioport.h\t2007-03-04 10:31:03.457166952 +0100\n"
- "+++ linux-2.6.20/include/linux/ioport.h\t2007-03-04 15:55:03.458260761 +0100\n"
- "@@ -14,10 +14,19 @@\n"
- "  * Resources are tree-like, allowing\n"
- "  * nesting etc..\n"
- "  */\n"
- "+\n"
- "+struct resource_ops {\n"
- "+\tint (*read_io)(u32 size, u32 port, u32 *where, void *priv);\n"
- "+\tint (*write_io)(u32 size, u32 port, u32 val, void *priv);\n"
- "+\tvoid *priv_data;\n"
- "+};\n"
- "+\n"
- " struct resource {\n"
- " \tresource_size_t start;\n"
- " \tresource_size_t end;\n"
- " \tconst char *name;\n"
- "+\t//void *resource_data;\n"
- "+\tstruct resource_ops *res_ops;\n"
- " \tunsigned long flags;\n"
- " \tstruct resource *parent, *sibling, *child;\n"
- " };\n"
- "Index: linux-2.6.20/drivers/acpi/osl.c\n"
- "===================================================================\n"
- "--- linux-2.6.20.orig/drivers/acpi/osl.c\t2007-03-04 10:31:30.626715256 +0100\n"
- "+++ linux-2.6.20/drivers/acpi/osl.c\t2007-03-04 16:18:29.958412636 +0100\n"
- "@@ -36,6 +36,7 @@\n"
- " #include <linux/delay.h>\n"
- " #include <linux/workqueue.h>\n"
- " #include <linux/nmi.h>\n"
- "+#include <linux/ioport.h>\n"
- " #include <acpi/acpi.h>\n"
- " #include <asm/io.h>\n"
- " #include <acpi/acpi_bus.h>\n"
- "@@ -331,13 +332,8 @@\n"
- " \treturn ++t;\n"
- " }\n"
- " \n"
- "-acpi_status acpi_os_read_port(acpi_io_address port, u32 * value, u32 width)\n"
- "+static acpi_status acpi_os_read_port_raw(acpi_io_address port, u32 * value, u32 width)\n"
- " {\n"
- "-\tu32 dummy;\n"
- "-\n"
- "-\tif (!value)\n"
- "-\t\tvalue = &dummy;\n"
- "-\n"
- " \tswitch (width) {\n"
- " \tcase 8:\n"
- " \t\t*(u8 *) value = inb(port);\n"
- "@@ -355,10 +351,51 @@\n"
- " \treturn AE_OK;\n"
- " }\n"
- " \n"
- "+acpi_status acpi_os_read_port(acpi_io_address port, u32 * value, u32 width)\n"
- "+{\n"
- "+\tacpi_status ret = AE_OK;\n"
- "+\tstruct resource *conflict, res;\n"
- "+\tu32 dummy;\n"
- "+\tint retval;\n"
- "+\n"
- "+\tif (!value)\n"
- "+\t\tvalue = &dummy;\n"
- "+\n"
- "+\tprintk(\"%s: Port %x\\n\", __FUNCTION__ , (int) port);\n"
- "+\tres.flags = 0;\n"
- "+\tres.name = \"ACPI Access\";\n"
- "+\tres.start = port;\n"
- "+\tres.end = port + width/8 - 1;\n"
- "+\t\n"
- "+\tconflict = ____request_resource(&ioport_resource, &res);\n"
- "+\n"
- "+\twhile ((conflict) && (conflict->child))\n"
- "+\t\tconflict = ____request_resource(conflict, &res);\n"
- "+\n"
- "+\tif ((conflict) && (conflict->res_ops) && (conflict->res_ops->write_io)) {\n"
- "+\t\tprintk(\"Redir called\\n\");\n"
- "+\t\tretval = conflict->res_ops->read_io(width, port, value, conflict->res_ops->priv_data);\n"
- "+\n"
- "+\t\t//this needs coding fix\n"
- "+\t\tif (retval < 0) {\n"
- "+\t\t\tret = acpi_os_read_port_raw(port, value, width);\n"
- "+\t\t} else {\n"
- "+\t\t\tret = AE_OK;\n"
- "+\t\t}\n"
- "+\t} else {\n"
- "+\t\tprintk(\"Ordinary job\\n\");\n"
- "+\t\tret = acpi_os_read_port_raw(port, value, width);\n"
- "+\t\tif (conflict == NULL)\n"
- "+\t\t\trelease_resource(&res);\n"
- "+\t}\n"
- "+\n"
- "+\treturn ret;\n"
- "+}\n"
- "+\n"
- " EXPORT_SYMBOL(acpi_os_read_port);\n"
- " \n"
- "-acpi_status acpi_os_write_port(acpi_io_address port, u32 value, u32 width)\n"
- "-{\n"
- "+static acpi_status acpi_os_write_port_raw(acpi_io_address port, u32 value, u32 width) {\n"
- "+\n"
- " \tswitch (width) {\n"
- " \tcase 8:\n"
- " \t\toutb(value, port);\n"
- "@@ -376,6 +413,41 @@\n"
- " \treturn AE_OK;\n"
- " }\n"
- " \n"
- "+acpi_status acpi_os_write_port(acpi_io_address port, u32 value, u32 width)\n"
- "+{\n"
- "+\tstruct resource *conflict, res;\n"
- "+\tacpi_status ret = AE_OK;\n"
- "+\tint retval;\n"
- "+\tres.flags = 0;\n"
- "+\tres.start = port;\n"
- "+\tres.end = port + width/8 - 1;\n"
- "+\tres.name = \"ACPI Access\";\n"
- "+\tprintk(\"%s: Port %x\\n\", __FUNCTION__ , (int) port);\n"
- "+\t\n"
- "+\tconflict = ____request_resource(&ioport_resource, &res);\n"
- "+\n"
- "+\twhile ((conflict) && (conflict->child))\n"
- "+\t\tconflict = ____request_resource(conflict, &res);\n"
- "+\n"
- "+\tif ((conflict) && (conflict->res_ops) && (conflict->res_ops->write_io)) {\n"
- "+\t\tprintk(\"Redir called\\n\");\n"
- "+\t\tretval = conflict->res_ops->write_io(width, port, value,\n"
- "+\t\t\t\t\t\t\tconflict->res_ops->priv_data);\n"
- "+\t\t//this needs coding fix\n"
- "+\t\tif (retval < 0) {\n"
- "+\t\t\tret = acpi_os_write_port_raw(port, value, width);\n"
- "+\t\t} else {\n"
- "+\t\t\tret = AE_OK;\n"
- "+\t\t}\n"
- "+\t} else {\n"
- "+\t\tprintk(\"Ordinary job\\n\");\n"
- "+\t\tret = acpi_os_write_port_raw(port, value, width);\n"
- "+\t\tif (conflict == NULL)\n"
- "+\t\t\trelease_resource(&res);\n"
- "+\t}\n"
- "+\treturn ret;\n"
- "+}\n"
- "+\n"
- " EXPORT_SYMBOL(acpi_os_write_port);\n"
- " \n"
- " acpi_status\n"
- "Index: linux-2.6.20/drivers/hwmon/w83627ehf.c\n"
- "===================================================================\n"
- "--- linux-2.6.20.orig/drivers/hwmon/w83627ehf.c\t2007-03-04 10:31:03.689180173 +0100\n"
- "+++ linux-2.6.20/drivers/hwmon/w83627ehf.c\t2007-03-04 15:51:23.737739602 +0100\n"
- "@@ -245,6 +245,9 @@\n"
- " \tchar valid;\t\t/* !=0 if following fields are valid */\n"
- " \tunsigned long last_updated;\t/* In jiffies */\n"
- " \n"
- "+\tu8 reg_pointer;\n"
- "+\tu8 reg_bank;\n"
- "+\n"
- " \t/* Register values */\n"
- " \tu8 in[10];\t\t/* Register value */\n"
- " \tu8 in_max[10];\t\t/* Register value */\n"
- "@@ -270,6 +273,7 @@\n"
- " \n"
- " \tu8 fan_min_output[4]; /* minimum fan speed */\n"
- " \tu8 fan_stop_time[4];\n"
- "+\tstruct resource_ops res_ops;\n"
- " };\n"
- " \n"
- " static inline int is_word_sized(u16 reg)\n"
- "@@ -344,6 +348,74 @@\n"
- " \treturn 0;\n"
- " }\n"
- " \n"
- "+\n"
- "+//we may return error/unsuppored and legacy acpi outb/inb stuff might take a chance\n"
- "+\n"
- "+static int acpi_emul_read(u32 size, u32 port, u32 *where, void *priv_data) {\n"
- "+\tstruct i2c_client *client =  (struct i2c_client *) priv_data;\n"
- "+\tstruct w83627ehf_data *data =  i2c_get_clientdata(client);\n"
- "+\tu16 tmp, reg = (data->reg_bank << 8) | data->reg_pointer;\n"
- "+\n"
- "+\tif (size != 8) {\n"
- "+\t\tprintk(\"this io port size is not emulated\\n\");\n"
- "+\t\treturn -EINVAL;\n"
- "+\t}\n"
- "+\n"
- "+\tif (port != (client->addr + DATA_REG_OFFSET)) {\n"
- "+\t\tprintk(\"this port %x is not emulated\\n\", port);\n"
- "+\t\treturn -EINVAL;\n"
- "+\t}\n"
- "+\n"
- "+\tprintk(\"%s: client addr %x port: %x \\n\", __FUNCTION__ , client->addr, port);\n"
- "+\tprintk(\"Calling read with bank %x reg %x (%x)\\n\",\n"
- "+\t\t\tdata->reg_bank, data->reg_pointer,reg);\n"
- "+\n"
- "+\ttmp = w83627ehf_read_value(client, reg);\n"
- "+\t*((u8 *) where) = (is_word_sized(reg)) ? tmp >> 8 : tmp;\n"
- "+\treturn 0;\n"
- "+}\n"
- "+\n"
- "+static int acpi_emul_write(u32 size, u32 port, u32 val, void *priv_data) {\n"
- "+\tstruct i2c_client *client = (struct i2c_client *) priv_data;\n"
- "+\tstruct w83627ehf_data *data = i2c_get_clientdata(client);\n"
- "+\tu16 reg;\n"
- "+\n"
- "+\tif (size != 8) {\n"
- "+\t\tprintk(\"this io port size is not emulated\\n\");\n"
- "+\t\treturn -EINVAL;\n"
- "+\t}\n"
- "+\n"
- "+\tprintk(\"%s client addr %x port %x\\n\", __FUNCTION__ , client->addr, port);\n"
- "+\n"
- "+\tif (port == (client->addr + ADDR_REG_OFFSET)) {\n"
- "+\t\tdata->reg_pointer = val;\n"
- "+\t} else if (port == (client->addr + DATA_REG_OFFSET)) {\n"
- "+\n"
- "+\t\tif (data->reg_pointer == W83627EHF_REG_BANK) {\n"
- "+\t\t\tdata->reg_bank = val & 0x3;\n"
- "+\t\t\tprintk(\"REG bank changed %x\\n\", data->reg_bank);\n"
- "+\t\t} else { \n"
- "+\t\t\treg = (data->reg_bank << 8) | data->reg_pointer;\n"
- "+\t\t\tprintk(\"Calling write with bank %x reg %x value %x\\n\",\n"
- "+\t\t\t\tdata->reg_bank, data->reg_pointer, val);\n"
- "+\t\t\t\n"
- "+\t\t\tif (is_word_sized(reg)) {\n"
- "+\t\t\t\tu16 tmp = w83627ehf_read_value(client, reg);\n"
- "+\t\t\t\ttmp &= 0xff;\n"
- "+\t\t\t\tw83627ehf_write_value(client, reg, (val << 8) | tmp);\n"
- "+\t\t\t} else {\n"
- "+\t\t\t\tw83627ehf_write_value(client, reg, val);\n"
- "+\t\t\t}\n"
- "+\t\t\tdata->valid = 0; /* invalidate cache */\n"
- "+\t\t}\n"
- "+\t} else {\n"
- "+\t\tprintk(\"this port %x is not emulated\\n\", port);\n"
- "+\t\treturn -EINVAL;\t\n"
- "+\t}\n"
- "+\treturn 0;\n"
- "+}\n"
- "+\n"
- "+\n"
- " /* This function assumes that the caller holds data->update_lock */\n"
- " static void w83627ehf_write_fan_div(struct i2c_client *client, int nr)\n"
- " {\n"
- "@@ -1173,11 +1245,12 @@\n"
- " \tstruct i2c_client *client;\n"
- " \tstruct w83627ehf_data *data;\n"
- " \tstruct device *dev;\n"
- "+\tstruct resource *res;\n"
- " \tu8 fan4pin, fan5pin;\n"
- " \tint i, err = 0;\n"
- " \n"
- "-\tif (!request_region(address + REGION_OFFSET, REGION_LENGTH,\n"
- "-\t                    w83627ehf_driver.driver.name)) {\n"
- "+\tif (!(res = request_region(address + REGION_OFFSET, REGION_LENGTH,\n"
- "+\t                    w83627ehf_driver.driver.name))) {\n"
- " \t\terr = -EBUSY;\n"
- " \t\tgoto exit;\n"
- " \t}\n"
- "@@ -1292,6 +1365,13 @@\n"
- " \t\tgoto exit_remove;\n"
- " \t}\n"
- " \n"
- "+\t/* there is race condition right now */\n"
- "+\t\n"
- "+\tprintk(\"RES %p res->res_ops %p client %p\\n\",res, res->res_ops, client);\n"
- "+\tdata->res_ops.write_io = &acpi_emul_write;\n"
- "+\tdata->res_ops.read_io = &acpi_emul_read;\n"
- "+\tdata->res_ops.priv_data = client;\n"
- "+\tres->res_ops=&data->res_ops;\n"
- " \treturn 0;\n"
- " \n"
- " exit_remove:\n"
- "@@ -1315,6 +1395,7 @@\n"
- " \n"
- " \tif ((err = i2c_detach_client(client)))\n"
- " \t\treturn err;\n"
- "+\n"
- " \trelease_region(client->addr + REGION_OFFSET, REGION_LENGTH);\n"
- " \tkfree(data);"
+ "Rudolf\n"
+ "\n"
+ "\n"
+ "-------------- next part --------------\n"
+ "A non-text attachment was scrubbed...\n"
+ "Name: acpi-io-sync.patch\n"
+ "Type: text/x-diff\n"
+ "Size: 7824 bytes\n"
+ "Desc: not available\n"
+ Url : http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20070304/8d85322d/attachment.bin
 
-5ab3d4677dee9d45fab9496202472ea1a4c23b188ea53376aae023262e5ee00a
+70ce4a4748c27127196165c569c308fd445d1e14d9a501694ae30871b208a520

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.