Hi,
        I've been recently trying to get my lmsensors working under
2.6.9, and i've found this:

http://seclists.org/lists/linux-kernel/2005/Feb/2856.html
http://lkml.org/lkml/2005/2/11/90

kernel patch for gl520 chip, but after applying it kernel refused to
compile. So I've fixed it using gl518sm module source code and I want to
share the results of my work with you. I hope that it will be useful.

I've tested this on my machine and it works fine.

Bye

PS: I hope i'm writting to good list.

-- 
      .$           .,_       .$   [ Adam 'dredzik' Kuczynski ]
 gP""Y:$ g. ,gP ,P" _,P gP""Y:$   [ http://dredzik.ekg2.org/ ]
 Y.  ,Y: `$,P   Y$      Y.  ,Y:   [ mailto: [EMAIL PROTECTED] ]
  `""  `b.`Y'    `"--    `""  `b. [ JID:  [EMAIL PROTECTED] ]
--- linux-2.6.9/drivers/i2c/chips/gl520sm.c.orig        2005-02-20 
15:20:38.000000000 +0100
+++ linux-2.6.9/drivers/i2c/chips/gl520sm.c     2005-02-20 15:41:25.000000000 
+0100
@@ -37,6 +37,9 @@
 static unsigned short normal_i2c[] = { 0x2c, 0x2d, I2C_CLIENT_END };
 static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
 
+static unsigned short normal_i2c_range[] = { I2C_CLIENT_END };
+static unsigned int normal_isa_range[] = { I2C_CLIENT_ISA_END };
+
 /* Insmod parameters */
 SENSORS_INSMOD_1(gl520sm);
 
@@ -500,13 +503,25 @@
 
 static int gl520_attach_adapter(struct i2c_adapter *adapter)
 {
- if (!(adapter->clRD_DATA))
- goto exit;
+ if (!(adapter->class & I2C_CLASS_HWMON))
+ return 0;
+ return i2c_detect(adapter, &addr_data, gl520_detect);
+}
 
+static int gl520_detect(struct i2c_adapter *adapter, int address, int kind)
+{
+ struct i2c_client *new_client;
+ struct gl520_data *data;
+ int err = 0;
+ 
+ if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA |
+ I2C_FUNC_SMBUS_WORD_DATA))
+ goto exit;
+                                                            
  /* OK. For now, we presume we have a valid client. We now create the
  client structure, even though we cannot fill it completely yet.
  But it allows us to access gl520_{read,write}_value. */
-
+ 
  if (!(data = kmalloc(sizeof(struct gl520_data), GFP_KERNEL))) {
  err = -ENOMEM;
  goto exit;

Attachment: signature.asc
Description: Digital signature

Reply via email to