W83792D & Overtemperature LED on Supermicro

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

 



Hello,

Something in our driver triggers the whole chip reset. We are not touching the reset bit so it must be
something else. You have revision 13 of the chip and we have datasheet of 12 revision.

I would suggest following:

static int
w83792d_write_value(struct i2c_client *client, u8 reg, u8 value)
{
        i2c_smbus_write_byte_data(client, reg,  value);
        return 0;
}

remove this funcs and replace with this one:

static int
wrt(struct i2c_client *client, u8 reg, u8 value)
{
        i2c_smbus_write_byte_data(client, reg,  value);
	if (i2c_smbus_read_byte_data(client, 0x40)!=3) {
	printk("Chip RESET occured when written %x to %x reg\n",value,reg);
	}

        return 0;
}

And add to top of this file:

#define w83792d_write_value(a,b,c)  { printk("write called from line %d\n",__LINE__); wrt(a,b,c) }

So we can track what call it was.

Proposed funcs were not tested but I think you get the idea. Register 0x40 is master config reg. After reset it defaults to value 0x1 and it is before 0x3.
Lets hope the chip will reset when writing into it and not reading by some odd reason.

Regards

Rudolf




[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux