[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#298471: Therm_adt746x fails to handle latest powerbooks



Package: kernel
Version: 2.6.*

This patch lets therm_adt746x handle the latest powerbooks. In these
ones, Apple doesn't put the i2c bus number in the "reg" property of
the fan node. Instead, we can get the bus number from the fan node
path, which looks like "/proc/device-tree/.../i2c-bus@1/.../fan". 
Here's a patch that handles both old and new form. (It's been pushed to Andrew
Morton as well, so kernels > 2.6.11 probably won't need it.

Signed-off-by: Colin Leroy <colin@colino.net>
--- a/drivers/macintosh/therm_adt746x.c	2005-03-07 09:03:58.000000000 +0100
+++ b/drivers/macintosh/therm_adt746x.c	2005-03-07 09:04:35.000000000 +0100
@@ -548,7 +548,15 @@
 	prop = (u32 *)get_property(np, "reg", NULL);
 	if (!prop)
 		return -ENODEV;
-	therm_bus = ((*prop) >> 8) & 0x0f;
+	
+	/* look for bus either by path or using "reg" */
+	if (strstr(np->full_name, "/i2c-bus@") != NULL) {
+		const char *tmp_bus = (strstr(np->full_name, "/i2c-bus@") + 9);
+		therm_bus = tmp_bus[0]-'0';
+	} else {
+		therm_bus = ((*prop) >> 8) & 0x0f;
+	}
+	
 	therm_address = ((*prop) & 0xff) >> 1;
 
 	printk(KERN_INFO "adt746x: Thermostat bus: %d, address: 0x%02x, "



Reply to: