* [lm-sensors] [PATCH 3/3] hwmon (dme1737): fix voltage scaling
@ 2008-03-26 4:49 Juerg Haefliger
2008-03-26 11:18 ` Jean Delvare
2008-05-26 15:55 ` Mark M. Hoffman
0 siblings, 2 replies; 3+ messages in thread
From: Juerg Haefliger @ 2008-03-26 4:49 UTC (permalink / raw)
To: lm-sensors
[-- Attachment #1: Type: text/plain, Size: 119 bytes --]
This patch fixes a voltage scaling issue for the sch311x device.
Signed-Off-By: Juerg Haefliger <juergh at gmail.com>
[-- Attachment #2: dme1737-fix-voltage-scaling.patch --]
[-- Type: text/plain, Size: 3113 bytes --]
This patch fixes a voltage scaling issue for the sch311x device.
Signed-Off-By: Juerg Haefliger <juergh at gmail.com>
Index: linux/drivers/hwmon/dme1737.c
===================================================================
--- linux.orig/drivers/hwmon/dme1737.c 2008-03-15 22:25:06.000000000 -0700
+++ linux/drivers/hwmon/dme1737.c 2008-03-15 23:01:21.000000000 -0700
@@ -181,6 +181,7 @@
int valid; /* !=0 if following fields are valid */
unsigned long last_update; /* in jiffies */
unsigned long last_vbat; /* in jiffies */
+ enum chips type;
u8 vid;
u8 pwm_rr_en;
@@ -215,20 +216,27 @@
};
/* Nominal voltage values */
-static const int IN_NOMINAL[] = {5000, 2250, 3300, 5000, 12000, 3300, 3300};
+static const int IN_NOMINAL_DME1737[] = {5000, 2250, 3300, 5000, 12000, 3300,
+ 3300};
+static const int IN_NOMINAL_SCH311x[] = {2500, 1500, 3300, 5000, 12000, 3300,
+ 3300};
+#define IN_NOMINAL(ix, type) (((type) == dme1737) ? \
+ IN_NOMINAL_DME1737[(ix)] : \
+ IN_NOMINAL_SCH311x[(ix)])
/* Voltage input
* Voltage inputs have 16 bits resolution, limit values have 8 bits
* resolution. */
-static inline int IN_FROM_REG(int reg, int ix, int res)
+static inline int IN_FROM_REG(int reg, int ix, int res, int type)
{
- return (reg * IN_NOMINAL[ix] + (3 << (res - 3))) / (3 << (res - 2));
+ return (reg * IN_NOMINAL(ix, type) + (3 << (res - 3))) /
+ (3 << (res - 2));
}
-static inline int IN_TO_REG(int val, int ix)
+static inline int IN_TO_REG(int val, int ix, int type)
{
- return SENSORS_LIMIT((val * 192 + IN_NOMINAL[ix] / 2) /
- IN_NOMINAL[ix], 0, 255);
+ return SENSORS_LIMIT((val * 192 + IN_NOMINAL(ix, type) / 2) /
+ IN_NOMINAL(ix, type), 0, 255);
}
/* Temperature input
@@ -727,13 +735,13 @@
switch (fn) {
case SYS_IN_INPUT:
- res = IN_FROM_REG(data->in[ix], ix, 16);
+ res = IN_FROM_REG(data->in[ix], ix, 16, data->type);
break;
case SYS_IN_MIN:
- res = IN_FROM_REG(data->in_min[ix], ix, 8);
+ res = IN_FROM_REG(data->in_min[ix], ix, 8, data->type);
break;
case SYS_IN_MAX:
- res = IN_FROM_REG(data->in_max[ix], ix, 8);
+ res = IN_FROM_REG(data->in_max[ix], ix, 8, data->type);
break;
case SYS_IN_ALARM:
res = (data->alarms >> DME1737_BIT_ALARM_IN[ix]) & 0x01;
@@ -760,12 +768,12 @@
mutex_lock(&data->update_lock);
switch (fn) {
case SYS_IN_MIN:
- data->in_min[ix] = IN_TO_REG(val, ix);
+ data->in_min[ix] = IN_TO_REG(val, ix, data->type);
dme1737_write(client, DME1737_REG_IN_MIN(ix),
data->in_min[ix]);
break;
case SYS_IN_MAX:
- data->in_max[ix] = IN_TO_REG(val, ix);
+ data->in_max[ix] = IN_TO_REG(val, ix, data->type);
dme1737_write(client, DME1737_REG_IN_MAX(ix),
data->in_max[ix]);
break;
@@ -2167,6 +2175,7 @@
kind = dme1737;
name = "dme1737";
+ data->type = kind;
/* Fill in the remaining client fields and put it into the global
* list */
@@ -2359,6 +2368,7 @@
err = -ENODEV;
goto exit_kfree;
}
+ data->type = -1;
/* Fill in the remaining client fields and initialize the mutex */
strlcpy(client->name, "sch311x", I2C_NAME_SIZE);
[-- Attachment #3: Type: text/plain, Size: 153 bytes --]
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [lm-sensors] [PATCH 3/3] hwmon (dme1737): fix voltage scaling
2008-03-26 4:49 [lm-sensors] [PATCH 3/3] hwmon (dme1737): fix voltage scaling Juerg Haefliger
@ 2008-03-26 11:18 ` Jean Delvare
2008-05-26 15:55 ` Mark M. Hoffman
1 sibling, 0 replies; 3+ messages in thread
From: Jean Delvare @ 2008-03-26 11:18 UTC (permalink / raw)
To: lm-sensors
Hi Juerg,
On Tue, 25 Mar 2008 21:49:15 -0700, Juerg Haefliger wrote:
> This patch fixes a voltage scaling issue for the sch311x device.
>
> Signed-Off-By: Juerg Haefliger <juergh at gmail.com>
Reviewed, looks OK to me.
Acked-by: Jean Delvare <khali@linux-fr.org>
--
Jean Delvare
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [lm-sensors] [PATCH 3/3] hwmon (dme1737): fix voltage scaling
2008-03-26 4:49 [lm-sensors] [PATCH 3/3] hwmon (dme1737): fix voltage scaling Juerg Haefliger
2008-03-26 11:18 ` Jean Delvare
@ 2008-05-26 15:55 ` Mark M. Hoffman
1 sibling, 0 replies; 3+ messages in thread
From: Mark M. Hoffman @ 2008-05-26 15:55 UTC (permalink / raw)
To: lm-sensors
Hi:
* Jean Delvare <khali@linux-fr.org> [2008-03-26 12:18:08 +0100]:
> Hi Juerg,
>
> On Tue, 25 Mar 2008 21:49:15 -0700, Juerg Haefliger wrote:
> > This patch fixes a voltage scaling issue for the sch311x device.
> >
> > Signed-Off-By: Juerg Haefliger <juergh at gmail.com>
>
> Reviewed, looks OK to me.
>
> Acked-by: Jean Delvare <khali@linux-fr.org>
Applied to hwmon-2.6.git/testing, thanks.
--
Mark M. Hoffman
mhoffman@lightlink.com
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-05-26 15:55 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-26 4:49 [lm-sensors] [PATCH 3/3] hwmon (dme1737): fix voltage scaling Juerg Haefliger
2008-03-26 11:18 ` Jean Delvare
2008-05-26 15:55 ` Mark M. Hoffman
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.