All of lore.kernel.org
 help / color / mirror / Atom feed
* [lm-sensors] [PATCH 01/15] hwmon: (it87) Fix pwm frequency display for chips with newer pwm control
@ 2015-03-30  6:33 Guenter Roeck
  2015-03-30 11:07 ` [lm-sensors] [PATCH 01/15] hwmon: (it87) Fix pwm frequency display for chips with newer pwm cont Jean Delvare
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Guenter Roeck @ 2015-03-30  6:33 UTC (permalink / raw)
  To: lm-sensors

On chips with newer pwm control, the pwm frequency divider is 256
instead of 128. Since the base pwm frequency remained the same, the actual
pwm frequency is half of what it used to be with the older pwm control
mechanism.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
 drivers/hwmon/it87.c | 34 +++++++++++++++++++++++++---------
 1 file changed, 25 insertions(+), 9 deletions(-)

diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
index ab12dc2eb896..7ab5bd026e91 100644
--- a/drivers/hwmon/it87.c
+++ b/drivers/hwmon/it87.c
@@ -502,15 +502,25 @@ static int DIV_TO_REG(int val)
 }
 #define DIV_FROM_REG(val) (1 << (val))
 
+/*
+ * pwm base frequencies. The frequency has to be divided by either 128 or 256,
+ * depending on the chip type, to calculate the actual pwm frequency.
+ *
+ * Some of the chip datasheets suggest a base frequency of 51kHz instead
+ * of 750kHz for the slowest base frequency, resulting in a pwm frequency
+ * of 200Hz. Sometimes both pwm frequency select registers are affected,
+ * sometimes just one. It is unknown if this is a datasheet error or real,
+ * so this is ignored for now.
+ */
 static const unsigned int pwm_freq[8] = {
-	48000000 / 128,
-	24000000 / 128,
-	12000000 / 128,
-	8000000 / 128,
-	6000000 / 128,
-	3000000 / 128,
-	1500000 / 128,
-	750000 / 128,
+	48000000,
+	24000000,
+	12000000,
+	8000000,
+	6000000,
+	3000000,
+	1500000,
+	750000,
 };
 
 static int it87_probe(struct platform_device *pdev);
@@ -828,8 +838,11 @@ static ssize_t show_pwm_freq(struct device *dev, struct device_attribute *attr,
 {
 	struct it87_data *data = it87_update_device(dev);
 	int index = (data->fan_ctl >> 4) & 0x07;
+	unsigned int freq;
 
-	return sprintf(buf, "%u\n", pwm_freq[index]);
+	freq = pwm_freq[index] / has_newer_autopwm(data) ? 256 : 128;
+
+	return sprintf(buf, "%u\n", freq);
 }
 
 static ssize_t set_fan(struct device *dev, struct device_attribute *attr,
@@ -1051,6 +1064,9 @@ static ssize_t set_pwm_freq(struct device *dev,
 	if (kstrtoul(buf, 10, &val) < 0)
 		return -EINVAL;
 
+	val = clamp_val(val, 0, 1000000);
+	val *= has_newer_autopwm(data) ? 256 : 128;
+
 	/* Search for the nearest available frequency */
 	for (i = 0; i < 7; i++) {
 		if (val > (pwm_freq[i] + pwm_freq[i+1]) / 2)
-- 
2.1.0


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

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [lm-sensors] [PATCH 01/15] hwmon: (it87) Fix pwm frequency display for chips with newer pwm cont
  2015-03-30  6:33 [lm-sensors] [PATCH 01/15] hwmon: (it87) Fix pwm frequency display for chips with newer pwm control Guenter Roeck
@ 2015-03-30 11:07 ` Jean Delvare
  2015-03-30 15:10 ` Guenter Roeck
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Jean Delvare @ 2015-03-30 11:07 UTC (permalink / raw)
  To: lm-sensors

Hi Guenter,

On Sun, 29 Mar 2015 23:33:41 -0700, Guenter Roeck wrote:
> On chips with newer pwm control, the pwm frequency divider is 256
> instead of 128. Since the base pwm frequency remained the same, the actual
> pwm frequency is half of what it used to be with the older pwm control
> mechanism.
> 
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
>  drivers/hwmon/it87.c | 34 +++++++++++++++++++++++++---------
>  1 file changed, 25 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
> index ab12dc2eb896..7ab5bd026e91 100644
> --- a/drivers/hwmon/it87.c
> +++ b/drivers/hwmon/it87.c
> @@ -502,15 +502,25 @@ static int DIV_TO_REG(int val)
>  }
>  #define DIV_FROM_REG(val) (1 << (val))
>  
> +/*
> + * pwm base frequencies. The frequency has to be divided by either 128 or 256,
> + * depending on the chip type, to calculate the actual pwm frequency.
> + *
> + * Some of the chip datasheets suggest a base frequency of 51kHz instead
> + * of 750kHz for the slowest base frequency, resulting in a pwm frequency
> + * of 200Hz. Sometimes both pwm frequency select registers are affected,
> + * sometimes just one. It is unknown if this is a datasheet error or real,
> + * so this is ignored for now.

Leaving a space between the number and kHz or Hz makes it easier to
read IMHO. I would also capitalize PWM everywhere.

Other than these minor suggestions, this looks good, good catch! I never
noticed this difference between the various chips.

Jean

-- 
Jean Delvare
SUSE L3 Support

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [lm-sensors] [PATCH 01/15] hwmon: (it87) Fix pwm frequency display for chips with newer pwm cont
  2015-03-30  6:33 [lm-sensors] [PATCH 01/15] hwmon: (it87) Fix pwm frequency display for chips with newer pwm control Guenter Roeck
  2015-03-30 11:07 ` [lm-sensors] [PATCH 01/15] hwmon: (it87) Fix pwm frequency display for chips with newer pwm cont Jean Delvare
@ 2015-03-30 15:10 ` Guenter Roeck
  2015-03-30 16:35 ` Jean Delvare
  2015-03-30 18:22 ` Guenter Roeck
  3 siblings, 0 replies; 5+ messages in thread
From: Guenter Roeck @ 2015-03-30 15:10 UTC (permalink / raw)
  To: lm-sensors

On 03/30/2015 04:07 AM, Jean Delvare wrote:
> Hi Guenter,
>
> On Sun, 29 Mar 2015 23:33:41 -0700, Guenter Roeck wrote:
>> On chips with newer pwm control, the pwm frequency divider is 256
>> instead of 128. Since the base pwm frequency remained the same, the actual
>> pwm frequency is half of what it used to be with the older pwm control
>> mechanism.
>>
>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>> ---
>>   drivers/hwmon/it87.c | 34 +++++++++++++++++++++++++---------
>>   1 file changed, 25 insertions(+), 9 deletions(-)
>>
>> diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
>> index ab12dc2eb896..7ab5bd026e91 100644
>> --- a/drivers/hwmon/it87.c
>> +++ b/drivers/hwmon/it87.c
>> @@ -502,15 +502,25 @@ static int DIV_TO_REG(int val)
>>   }
>>   #define DIV_FROM_REG(val) (1 << (val))
>>
>> +/*
>> + * pwm base frequencies. The frequency has to be divided by either 128 or 256,
>> + * depending on the chip type, to calculate the actual pwm frequency.
>> + *
>> + * Some of the chip datasheets suggest a base frequency of 51kHz instead
>> + * of 750kHz for the slowest base frequency, resulting in a pwm frequency
>> + * of 200Hz. Sometimes both pwm frequency select registers are affected,
>> + * sometimes just one. It is unknown if this is a datasheet error or real,
>> + * so this is ignored for now.
>
> Leaving a space between the number and kHz or Hz makes it easier to
> read IMHO. I would also capitalize PWM everywhere.
>
> Other than these minor suggestions, this looks good, good catch! I never
> noticed this difference between the various chips.
>

Hi Jean,

I made those changes. Should I resubmit, or do I have your Reviewed-by: ?

Thanks,
Guenter



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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [lm-sensors] [PATCH 01/15] hwmon: (it87) Fix pwm frequency display for chips with newer pwm cont
  2015-03-30  6:33 [lm-sensors] [PATCH 01/15] hwmon: (it87) Fix pwm frequency display for chips with newer pwm control Guenter Roeck
  2015-03-30 11:07 ` [lm-sensors] [PATCH 01/15] hwmon: (it87) Fix pwm frequency display for chips with newer pwm cont Jean Delvare
  2015-03-30 15:10 ` Guenter Roeck
@ 2015-03-30 16:35 ` Jean Delvare
  2015-03-30 18:22 ` Guenter Roeck
  3 siblings, 0 replies; 5+ messages in thread
From: Jean Delvare @ 2015-03-30 16:35 UTC (permalink / raw)
  To: lm-sensors

TGUgTW9uZGF5IDMwIE1hcmNoIDIwMTUgw6AgMDg6MTAgLTA3MDAsIEd1ZW50ZXIgUm9lY2sgYSDD
qWNyaXQgOgo+IE9uIDAzLzMwLzIwMTUgMDQ6MDcgQU0sIEplYW4gRGVsdmFyZSB3cm90ZToKPiA+
IEhpIEd1ZW50ZXIsCj4gPgo+ID4gT24gU3VuLCAyOSBNYXIgMjAxNSAyMzozMzo0MSAtMDcwMCwg
R3VlbnRlciBSb2VjayB3cm90ZToKPiA+PiBPbiBjaGlwcyB3aXRoIG5ld2VyIHB3bSBjb250cm9s
LCB0aGUgcHdtIGZyZXF1ZW5jeSBkaXZpZGVyIGlzIDI1Ngo+ID4+IGluc3RlYWQgb2YgMTI4LiBT
aW5jZSB0aGUgYmFzZSBwd20gZnJlcXVlbmN5IHJlbWFpbmVkIHRoZSBzYW1lLCB0aGUgYWN0dWFs
Cj4gPj4gcHdtIGZyZXF1ZW5jeSBpcyBoYWxmIG9mIHdoYXQgaXQgdXNlZCB0byBiZSB3aXRoIHRo
ZSBvbGRlciBwd20gY29udHJvbAo+ID4+IG1lY2hhbmlzbS4KPiA+Pgo+ID4+IFNpZ25lZC1vZmYt
Ynk6IEd1ZW50ZXIgUm9lY2sgPGxpbnV4QHJvZWNrLXVzLm5ldD4KPiA+PiAtLS0KPiA+PiAgIGRy
aXZlcnMvaHdtb24vaXQ4Ny5jIHwgMzQgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t
LQo+ID4+ICAgMSBmaWxlIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0p
Cj4gPj4KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9pdDg3LmMgYi9kcml2ZXJzL2h3
bW9uL2l0ODcuYwo+ID4+IGluZGV4IGFiMTJkYzJlYjg5Ni4uN2FiNWJkMDI2ZTkxIDEwMDY0NAo+
ID4+IC0tLSBhL2RyaXZlcnMvaHdtb24vaXQ4Ny5jCj4gPj4gKysrIGIvZHJpdmVycy9od21vbi9p
dDg3LmMKPiA+PiBAQCAtNTAyLDE1ICs1MDIsMjUgQEAgc3RhdGljIGludCBESVZfVE9fUkVHKGlu
dCB2YWwpCj4gPj4gICB9Cj4gPj4gICAjZGVmaW5lIERJVl9GUk9NX1JFRyh2YWwpICgxIDw8ICh2
YWwpKQo+ID4+Cj4gPj4gKy8qCj4gPj4gKyAqIHB3bSBiYXNlIGZyZXF1ZW5jaWVzLiBUaGUgZnJl
cXVlbmN5IGhhcyB0byBiZSBkaXZpZGVkIGJ5IGVpdGhlciAxMjggb3IgMjU2LAo+ID4+ICsgKiBk
ZXBlbmRpbmcgb24gdGhlIGNoaXAgdHlwZSwgdG8gY2FsY3VsYXRlIHRoZSBhY3R1YWwgcHdtIGZy
ZXF1ZW5jeS4KPiA+PiArICoKPiA+PiArICogU29tZSBvZiB0aGUgY2hpcCBkYXRhc2hlZXRzIHN1
Z2dlc3QgYSBiYXNlIGZyZXF1ZW5jeSBvZiA1MWtIeiBpbnN0ZWFkCj4gPj4gKyAqIG9mIDc1MGtI
eiBmb3IgdGhlIHNsb3dlc3QgYmFzZSBmcmVxdWVuY3ksIHJlc3VsdGluZyBpbiBhIHB3bSBmcmVx
dWVuY3kKPiA+PiArICogb2YgMjAwSHouIFNvbWV0aW1lcyBib3RoIHB3bSBmcmVxdWVuY3kgc2Vs
ZWN0IHJlZ2lzdGVycyBhcmUgYWZmZWN0ZWQsCj4gPj4gKyAqIHNvbWV0aW1lcyBqdXN0IG9uZS4g
SXQgaXMgdW5rbm93biBpZiB0aGlzIGlzIGEgZGF0YXNoZWV0IGVycm9yIG9yIHJlYWwsCj4gPj4g
KyAqIHNvIHRoaXMgaXMgaWdub3JlZCBmb3Igbm93Lgo+ID4KPiA+IExlYXZpbmcgYSBzcGFjZSBi
ZXR3ZWVuIHRoZSBudW1iZXIgYW5kIGtIeiBvciBIeiBtYWtlcyBpdCBlYXNpZXIgdG8KPiA+IHJl
YWQgSU1ITy4gSSB3b3VsZCBhbHNvIGNhcGl0YWxpemUgUFdNIGV2ZXJ5d2hlcmUuCj4gPgo+ID4g
T3RoZXIgdGhhbiB0aGVzZSBtaW5vciBzdWdnZXN0aW9ucywgdGhpcyBsb29rcyBnb29kLCBnb29k
IGNhdGNoISBJIG5ldmVyCj4gPiBub3RpY2VkIHRoaXMgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB2
YXJpb3VzIGNoaXBzLgo+ID4KPiAKPiBIaSBKZWFuLAo+IAo+IEkgbWFkZSB0aG9zZSBjaGFuZ2Vz
LiBTaG91bGQgSSByZXN1Ym1pdCwgb3IgZG8gSSBoYXZlIHlvdXIgUmV2aWV3ZWQtYnk6ID8KCllv
dSBoYXZlIGl0IG9mIGNvdXJzZSwgc29ycnkgSSB0aG91Z2h0IEkgaGFkIHB1dCBpdCBhbHJlYWR5
IGJ1dCBpdCBzZWVtcwpub3QuCgpSZXZpZXdlZC1ieTogSmVhbiBEZWx2YXJlIDxqZGVsdmFyZUBz
dXNlLmRlPgoKCi0tIApKZWFuIERlbHZhcmUKU1VTRSBMMyBTdXBwb3J0CgoKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbG0tc2Vuc29ycyBtYWlsaW5nIGxp
c3QKbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZwpodHRwOi8vbGlzdHMubG0tc2Vuc29ycy5vcmcv
bWFpbG1hbi9saXN0aW5mby9sbS1zZW5zb3Jz

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [lm-sensors] [PATCH 01/15] hwmon: (it87) Fix pwm frequency display for chips with newer pwm cont
  2015-03-30  6:33 [lm-sensors] [PATCH 01/15] hwmon: (it87) Fix pwm frequency display for chips with newer pwm control Guenter Roeck
                   ` (2 preceding siblings ...)
  2015-03-30 16:35 ` Jean Delvare
@ 2015-03-30 18:22 ` Guenter Roeck
  3 siblings, 0 replies; 5+ messages in thread
From: Guenter Roeck @ 2015-03-30 18:22 UTC (permalink / raw)
  To: lm-sensors

T24gMDMvMzAvMjAxNSAwOTozNSBBTSwgSmVhbiBEZWx2YXJlIHdyb3RlOgo+IExlIE1vbmRheSAz
MCBNYXJjaCAyMDE1IMOgIDA4OjEwIC0wNzAwLCBHdWVudGVyIFJvZWNrIGEgw6ljcml0IDoKClsg
Li4uIF0KPj4+Pgo+Pj4+ICsvKgo+Pj4+ICsgKiBwd20gYmFzZSBmcmVxdWVuY2llcy4gVGhlIGZy
ZXF1ZW5jeSBoYXMgdG8gYmUgZGl2aWRlZCBieSBlaXRoZXIgMTI4IG9yIDI1NiwKPj4+PiArICog
ZGVwZW5kaW5nIG9uIHRoZSBjaGlwIHR5cGUsIHRvIGNhbGN1bGF0ZSB0aGUgYWN0dWFsIHB3bSBm
cmVxdWVuY3kuCj4+Pj4gKyAqCj4+Pj4gKyAqIFNvbWUgb2YgdGhlIGNoaXAgZGF0YXNoZWV0cyBz
dWdnZXN0IGEgYmFzZSBmcmVxdWVuY3kgb2YgNTFrSHogaW5zdGVhZAo+Pj4+ICsgKiBvZiA3NTBr
SHogZm9yIHRoZSBzbG93ZXN0IGJhc2UgZnJlcXVlbmN5LCByZXN1bHRpbmcgaW4gYSBwd20gZnJl
cXVlbmN5Cj4+Pj4gKyAqIG9mIDIwMEh6LiBTb21ldGltZXMgYm90aCBwd20gZnJlcXVlbmN5IHNl
bGVjdCByZWdpc3RlcnMgYXJlIGFmZmVjdGVkLAo+Pj4+ICsgKiBzb21ldGltZXMganVzdCBvbmUu
IEl0IGlzIHVua25vd24gaWYgdGhpcyBpcyBhIGRhdGFzaGVldCBlcnJvciBvciByZWFsLAo+Pj4+
ICsgKiBzbyB0aGlzIGlzIGlnbm9yZWQgZm9yIG5vdy4KPj4+Cj4+PiBMZWF2aW5nIGEgc3BhY2Ug
YmV0d2VlbiB0aGUgbnVtYmVyIGFuZCBrSHogb3IgSHogbWFrZXMgaXQgZWFzaWVyIHRvCj4+PiBy
ZWFkIElNSE8uIEkgd291bGQgYWxzbyBjYXBpdGFsaXplIFBXTSBldmVyeXdoZXJlLgo+Pj4KPj4+
IE90aGVyIHRoYW4gdGhlc2UgbWlub3Igc3VnZ2VzdGlvbnMsIHRoaXMgbG9va3MgZ29vZCwgZ29v
ZCBjYXRjaCEgSSBuZXZlcgo+Pj4gbm90aWNlZCB0aGlzIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUg
dmFyaW91cyBjaGlwcy4KPj4+Cj4+Cj4+IEhpIEplYW4sCj4+Cj4+IEkgbWFkZSB0aG9zZSBjaGFu
Z2VzLiBTaG91bGQgSSByZXN1Ym1pdCwgb3IgZG8gSSBoYXZlIHlvdXIgUmV2aWV3ZWQtYnk6ID8K
Pgo+IFlvdSBoYXZlIGl0IG9mIGNvdXJzZSwgc29ycnkgSSB0aG91Z2h0IEkgaGFkIHB1dCBpdCBh
bHJlYWR5IGJ1dCBpdCBzZWVtcwo+IG5vdC4KPgo+IFJldmlld2VkLWJ5OiBKZWFuIERlbHZhcmUg
PGpkZWx2YXJlQHN1c2UuZGU+Cj4KClRoYW5rcyEKCkd1ZW50ZXIKCgpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsbS1zZW5zb3JzIG1haWxpbmcgbGlzdAps
bS1zZW5zb3JzQGxtLXNlbnNvcnMub3JnCmh0dHA6Ly9saXN0cy5sbS1zZW5zb3JzLm9yZy9tYWls
bWFuL2xpc3RpbmZvL2xtLXNlbnNvcnM

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-03-30 18:22 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-30  6:33 [lm-sensors] [PATCH 01/15] hwmon: (it87) Fix pwm frequency display for chips with newer pwm control Guenter Roeck
2015-03-30 11:07 ` [lm-sensors] [PATCH 01/15] hwmon: (it87) Fix pwm frequency display for chips with newer pwm cont Jean Delvare
2015-03-30 15:10 ` Guenter Roeck
2015-03-30 16:35 ` Jean Delvare
2015-03-30 18:22 ` Guenter Roeck

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.