All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans de Goede <j.w.r.degoede@hhs.nl>
To: lm-sensors@vger.kernel.org
Subject: Re: [lm-sensors] Howto handle alarms which need to be reset?
Date: Thu, 05 Jul 2007 16:01:44 +0000	[thread overview]
Message-ID: <468D15E8.4010408@hhs.nl> (raw)
In-Reply-To: <468B4474.5070309@hhs.nl>

Hi all,

Replying to my own mails seems to become a bad habbit of mine.

Hans de Goede wrote:
> Jean Delvare wrote:
>> Hi Hans,
>>
>> On Wed, 04 Jul 2007 11:03:31 +0200, Hans de Goede wrote:
>> We have another example of the behavior you describe with the DS1621
>> chip. Here is how the alarm handling is implemented in the ds1621
>> driver, maybe you can just do the same in the fscher driver?
>>
>>         /* reset alarms if necessary */
>>         new_conf = data->conf;
>>         if (data->temp[0] > data->temp[1])    /* input > min */
>>             new_conf &= ~DS1621_ALARM_TEMP_LOW;
>>         if (data->temp[0] < data->temp[2])    /* input < max */
>>             new_conf &= ~DS1621_ALARM_TEMP_HIGH;
>>         if (data->conf != new_conf)
>>             ds1621_write_value(client, DS1621_REG_CONF,
>>                        new_conf);
>>
> 
> Unfortunately the limits for temperature are hardwired into the fscher / 
> fscpos chip and not specified, so although the above sounds feasible, I 
> don't know when to clear the alarm. For the fans this is feasible, and 
> it is already implemented in the fscpos driver, but not in the fscher 
> driver.
> 
> Notice that the fscpos driver also already has a mechanism to reset the 
> temp alarms, using an tempX_reset file, which is identical to making the 
> alarm files rw if you ask me, except that it adds yet another sysfs 
> attribute.
> 
> So summarising, I can make the fan alarms auto-reset, but temperature is 
> a problem. Suggestions ? Once we have a solution for this I'll write a 
> third revision of the fscher / fscpos patches as time permits.
> 

I think I've solved this I've done some reverse engineering on the fscher using 
i2cdump and i2cset and I've found the following undocumented registers (there 
are more undocumented ones, but for these I've now found the meaning)

0x73 temp1_auto_point1_temp (unit degrees celcius + 128, just like temp1_input)
0x75 temp1_auto_point2_temp (unit degrees celcius + 128, just like temp1_input)
0x76 temp1_max              (unit degrees celcius + 128, just like temp1_input)

This I'm close to 100% sure off.

and:
0x83 temp2_auto_point1_temp (unit degrees celcius + 128, just like temp2_input)
0x86 temp2_max              (unit degrees celcius + 128, just like temp2_input)

Notice that 0x85 is missing, its 00 and cannot be written too, perhaps this has 
todo with the fact that my system has only one fan lowering 0x83 below temp2 
does make that one fan increase its speed. I guess 0x85 being 0 and 0x83 
influencing the same fan as which is controlled by the temp1 autopoints is 
regulated through the flags in 0x84, which are different from those in 0x74, I 
have no idea what these flags mean however.

and I think:
0x93 temp3_auto_point1_temp (unit degrees celcius + 128, just like temp3_input)
0x96 temp3_max              (unit degrees celcius + 128, just like temp3_input)

I say I think as my system doesn't have a third temp sensor connected, but they 
both have pretty realistic value for a system / case temp sensor, also notice 
the regular intervals between all the addresses.

Unfortunately I do not have access to an fscpos machine and thus cannot check 
if the same is true for the fscpos.

How to move forward now?

My plan is to write an updated fscher patch which adds tempX_max rw sysfs 
attributes, and use those to automatically reset the alarm.

I'm also considering adding autopoints sysfs attributes, but only for those 
autopoints which do not read 0, as the chip seems to have the ability to 
disable the 2nd autopoint for each temp and when it is disabled it reads as 0.

What do you think of adding the autopoints (I'm certain about the ones for 
temp1, they behave 100% as expected)?

Regards,

Hans


_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

  parent reply	other threads:[~2007-07-05 16:01 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-04  6:55 [lm-sensors] Howto handle alarms which need to be reset? Hans de Goede
2007-07-04  9:03 ` Hans de Goede
2007-07-05 12:46 ` Jean Delvare
2007-07-05 14:26 ` Hans de Goede
2007-07-05 16:01 ` Hans de Goede [this message]
2007-07-08 17:08 ` Jean Delvare

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=468D15E8.4010408@hhs.nl \
    --to=j.w.r.degoede@hhs.nl \
    --cc=lm-sensors@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.