From 6e542916491e24c4f77313f08e112bf9ab8863a2 Mon Sep 17 00:00:00 2001 From: "Mark D. Studebaker" Date: Wed, 20 Nov 2002 17:40:35 +0000 Subject: [PATCH] up cancellation limit, fix hysteresis values git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@1633 7894878c-1315-0410-8ee3-d5d059ff63e0 --- kernel/chips/bmcsensors.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/kernel/chips/bmcsensors.c b/kernel/chips/bmcsensors.c index a8771ca9..aeb3f571 100644 --- a/kernel/chips/bmcsensors.c +++ b/kernel/chips/bmcsensors.c @@ -406,6 +406,7 @@ static void bmcsensors_build_proc_table() bmc_data.sysctl_id = i; bmcsensors_init_client(&bmc_client); + printk(KERN_INFO "bmcsensors.o: %d reservations cancelled\n", errorcount); printk(KERN_INFO "bmcsensors.o: registered %d temp, %d volt, %d current, %d fan sensors\n", temps, volts, currs, fans); bmcsensors_update_client(&bmc_client); @@ -650,11 +651,15 @@ static void bmcsensors_msg_handler(struct ipmi_recv_msg *msg, { if(state == STATE_SDR && msg->msg.data[0] == 0xc5) { /* )(*&@(*&#@$ reservation cancelled, get new resid */ - if(errorcount++ > 200) { + if(++errorcount > 1000) { printk(KERN_ERR "bmcsensors.o: Too many reservations cancelled, giving up\n"); state = STATE_DONE; } else { +#ifdef DEBUG + printk(KERN_ERR + "bmcsensors.o: resid 0x%04x cancelled, getting new one\n", resid); +#endif bmcsensors_reserve_sdr(); state = STATE_UNCANCEL; } @@ -922,7 +927,7 @@ void bmcsensors_all(struct i2c_client *client, int operation, int ctl_name, if(sdrd[i].lim2 >= 0) { results[1] = convert_value(sdrd[i].limits[sdrd[i].lim2], i); if(sdrd[i].lim2 == 6) /* pos. threshold */ - results[1] = results[2] - results[1]; + results[1] = results[0] - results[1]; } else results[1] = 0; *nrels_mag = 3;