Changeset 310

Show
Ignore:
Timestamp:
03/14/99 01:39:19 (14 years ago)
Author:
mds
Message:

updated block read/write code.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/trunk/kernel/busses/i2c-ali15x3.c

    r300 r310  
    8888#define MAP_ACPI 1 
    8989#undef FORCE_ALI15X3_ENABLE 
    90 #undef DEBUG 
    9190 
    9291/* ALI15X3 SMBus address offsets */ 
     
    514513      if (read_write == SMBUS_WRITE) { 
    515514        len = data->block[0]; 
    516         if (len < 0)  
     515        if (len < 0) { 
    517516          len = 0; 
    518         if (len > 32) 
     517          data->block[0] = len; 
     518        }        
     519        if (len > 32) { 
    519520          len = 32; 
     521          data->block[0] = len; 
     522        }        
    520523        outb_p(len,SMBHSTDAT0); 
    521524        outb_p(inb_p(SMBHSTCNT) | ALI15X3_BLOCK_CLR, SMBHSTCNT); /* Reset SMBBLKDAT */ 
    522         for (i = 1; i <= len; i ++) 
     525        for (i = 1; i <= len; i++) 
    523526          outb_p(data->block[i],SMBBLKDAT); 
    524527      } 
     
    547550      break; 
    548551    case ALI15X3_BLOCK_DATA: 
    549       data->block[0] = inb_p(SMBHSTDAT0); 
     552      len = inb_p(SMBHSTDAT0); 
     553      if(len > 32)       
     554        len = 32; 
     555      data->block[0] = len; 
    550556      outb_p(inb_p(SMBHSTCNT) | ALI15X3_BLOCK_CLR, SMBHSTCNT); /* Reset SMBBLKDAT */ 
    551       for (i = 1; i <= data->block[0]; i++) 
     557      for (i = 1; i <= data->block[0]; i++) { 
    552558        data->block[i] = inb_p(SMBBLKDAT); 
     559#ifdef DEBUG 
     560        printk("i2c-ali15x3.o: Blk: len=%d, i=%d, data=%02x\n", len, i, data->block[i]); 
     561#endif DEBUG 
     562      } 
    553563      break; 
    554564  }