Originally:
[...]
if (is_isa) {
data = (struct w83781d_data *) (((struct isa_client *) new_client)+1);
new_client->addr = 0;
((struct isa_client *) new_client)->isa_addr = address;
data->lock = MUTEX;
} else {
data = (struct w83781d_data *) (((struct i2c_client *) new_client)+1);
new_client->addr = address;
}
[...]
changed to this:
[...]
if (is_isa) {
data = (struct w83781d_data *) (((struct isa_client *) new_client)+1);
new_client->addr = 0;
((struct isa_client *) new_client)->isa_addr = address;
} else {
data = (struct w83781d_data *) (((struct i2c_client *) new_client)+1);
new_client->addr = address;
}
data->lock = MUTEX;
[...]
So, now the MUTEX is properly initialized for I2C chips, too. If the
mutex was knowly ignored for I2C devices (because the piix4 locks its
self), then the mutex should be ignored everywhere else in the code, but
it is not.
This seems to have solved my reproducable 'hanging' problem. But, other
drivers should be checked, too, just in case.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@433 7894878c-1315-0410-8ee3-d5d059ff63e0
it proves to be noxious. Added writes for rt table. Use at own risk.
Fixed 782d fan3 bug hopefully.
Added 16,32,64,128 fan_div values for 782d/783s.
Reformatted some > 80 col. lines.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@397 7894878c-1315-0410-8ee3-d5d059ff63e0
Like the LM78 before, all chips now handle strange values written to /proc/...
with grace - that is, they convert them to the most sane value considering
the circumstances, instead of reacting with strange resulting values
(note that they were already crash-free).
I also removed a factor '2' in the computation of the fan speeds in the
gl518sm module. This is conforming with the sheet; if your fan gives two
'ticks' for each rotation, just modify sensors.conf.
I tried to introduce rounding and limit checking to the maxilife module.
The VID computation is not yet rounded - I need the real formula for that.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@382 7894878c-1315-0410-8ee3-d5d059ff63e0
is used but ignored (because the driver could not determine what
specific chip was there).
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@342 7894878c-1315-0410-8ee3-d5d059ff63e0
Also fixed a small lm78 problem and synchronised the detect script with
the Winbond detection.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@341 7894878c-1315-0410-8ee3-d5d059ff63e0
Added RT table read to 781d but then #undef'ed it since it was just
all 1's. Changed max entries in sensor.c to 32 bytes to handle RT table.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@335 7894878c-1315-0410-8ee3-d5d059ff63e0
Improved bounds checking for FAN_TO_REG in all files.
For lm78-compatible drivers, minimum speed is 2657 RPM when the
divisor is 2. Attempts to set lower than that now are set to 0.
Before was set to a random number.
Thanks Jeff Dairiki.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@330 7894878c-1315-0410-8ee3-d5d059ff63e0
removed in1 and added in6 for 783s to keep compatibility
with 781d/782d. So 783s has no in1. sorry.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@313 7894878c-1315-0410-8ee3-d5d059ff63e0
Added limit defaults for in7/in8 and added separate
782d/783s limit defaults for in5/in6.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@304 7894878c-1315-0410-8ee3-d5d059ff63e0
Recognize chips, adjust /proc entries.
Added registers for Vbat/V5sb for 782d.
Did quick test that 781d isn't broken.
782d/783s untested, I'll send mail to the guy that volunteered.
No PWM fan support yet.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@297 7894878c-1315-0410-8ee3-d5d059ff63e0
When computing the fan rotation speed, the register value of the dividers
was used, instead of the value it represents. I'ev fixed this ages ago
for the LM80 driver, but it seems I had forgotten to fix it at other places.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@149 7894878c-1315-0410-8ee3-d5d059ff63e0
readings. (changed a u8 to a u16 in the data struct.) Now the temp
readings seem to work perfectly!
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@136 7894878c-1315-0410-8ee3-d5d059ff63e0
* Force the Winbond into bank 0 before anything else is done
* Copied fan_div patch from lm78.c
* Copied IN_{FROM,TO}_REG patch from lm78.c
* Copied alarms computation bug fix from lm78.c
* Nicer way of managing banks: the bank number to access is now the high
byte of the (as u16 declared) register number. Only
w38781d_{read,write}_value needs now to be aware of banks. Also, the
w38781d_{read,write}_value functions now know that sensors 2 and temp, hyst
and over registers are word-sized.
* Introduced fan_div for FAN3 and 9-bit temperature readings.
* Made beep file work like the gl518sm one
* Corrected small VID problem (bit 4 was read from the wrong register)
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@121 7894878c-1315-0410-8ee3-d5d059ff63e0
doesn't seem to have any sensors (I guess?), or the Windbond PDF is so
convoluted that I haven't understood it enough to get it working (another
good possibility). Oh, well. It builds and inserts, anyway.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@85 7894878c-1315-0410-8ee3-d5d059ff63e0
has no Winbond specific features implemented yet. Proper testing for
a Winbond also needs to be implemented. src/Module.mk and src/sensors.h
were modified slightly to support the new driver.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@83 7894878c-1315-0410-8ee3-d5d059ff63e0