* [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-20 18:10 ` Arnaud Ebalard 0 siblings, 0 replies; 27+ messages in thread From: Arnaud Ebalard @ 2013-10-20 18:10 UTC (permalink / raw) To: Eduardo Valentin, Zhang Rui, Jean Delvare, Guenter Roeck Cc: Andrew Lunn, Jason Cooper, linux-pm, lm-sensors, Gregory Clement, linux-arm-kernel, Sebastian Hesselbarth Hi, With 3.12-rc series, sysfs support for thermal susbsytem (and/or hwmon one) was modified in such a way that sensors utility (current 3.3.4 version with 3.3.4 version of libsensors from lm-sensors package on Debian unstable) does not see the temperature sensor anymore on armada 370 platforms (not tested on others). Additionally, the changes break existing configurations of fancontrol utility, which prevents the fan to be regulated correctly w/o recreating an /etc/fancontrol w/ pwmconfig. Here is what I have on my Armada 370-based system on a 3.11.5: # sensors g762-i2c-0-3e Adapter: mv64xxx_i2c adapter fan1: 2457 RPM (div = 1) armada_thermal-virtual-0 Adapter: Virtual device temp1: +45.7°C And what I get on 3.12-rc6: # sensors g762-i2c-0-3e Adapter: mv64xxx_i2c adapter fan1: 1350 RPM (div = 1) Monitoring what sensors does w/ strace, I started looking at the changes to /sys/class/hwmon/hwmon1/: On 3.11.5: # find /sys/class/hwmon/hwmon1/ /sys/class/hwmon/hwmon1/ /sys/class/hwmon/hwmon1/name /sys/class/hwmon/hwmon1/subsystem /sys/class/hwmon/hwmon1/uevent /sys/class/hwmon/hwmon1/temp1_input On 3.12-rc6: # find /sys/class/hwmon/hwmon1/ /sys/class/hwmon/hwmon1/ /sys/class/hwmon/hwmon1/name /sys/class/hwmon/hwmon1/device /sys/class/hwmon/hwmon1/subsystem /sys/class/hwmon/hwmon1/uevent /sys/class/hwmon/hwmon1/temp1_input # find /sys/class/hwmon/hwmon1/device/ /sys/class/hwmon/hwmon1/device/ /sys/class/hwmon/hwmon1/device/temp /sys/class/hwmon/hwmon1/device/type /sys/class/hwmon/hwmon1/device/hwmon1 /sys/class/hwmon/hwmon1/device/hwmon1/name /sys/class/hwmon/hwmon1/device/hwmon1/device /sys/class/hwmon/hwmon1/device/hwmon1/subsystem /sys/class/hwmon/hwmon1/device/hwmon1/uevent /sys/class/hwmon/hwmon1/device/hwmon1/temp1_input /sys/class/hwmon/hwmon1/device/subsystem /sys/class/hwmon/hwmon1/device/policy /sys/class/hwmon/hwmon1/device/uevent /sys/class/hwmon/hwmon1/device/passive Is that expected? As for sensors, it *seems* to be bothered to find a device/ folder in /sys/class/hwmon/hwmon1/ w/o no name entry in it. Cheers, a+ ps: I can test if this is the same on kirkwood if there is a need. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 27+ messages in thread
* [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-20 18:10 ` Arnaud Ebalard 0 siblings, 0 replies; 27+ messages in thread From: Arnaud Ebalard @ 2013-10-20 18:10 UTC (permalink / raw) To: linux-arm-kernel Hi, With 3.12-rc series, sysfs support for thermal susbsytem (and/or hwmon one) was modified in such a way that sensors utility (current 3.3.4 version with 3.3.4 version of libsensors from lm-sensors package on Debian unstable) does not see the temperature sensor anymore on armada 370 platforms (not tested on others). Additionally, the changes break existing configurations of fancontrol utility, which prevents the fan to be regulated correctly w/o recreating an /etc/fancontrol w/ pwmconfig. Here is what I have on my Armada 370-based system on a 3.11.5: # sensors g762-i2c-0-3e Adapter: mv64xxx_i2c adapter fan1: 2457 RPM (div = 1) armada_thermal-virtual-0 Adapter: Virtual device temp1: +45.7?C And what I get on 3.12-rc6: # sensors g762-i2c-0-3e Adapter: mv64xxx_i2c adapter fan1: 1350 RPM (div = 1) Monitoring what sensors does w/ strace, I started looking at the changes to /sys/class/hwmon/hwmon1/: On 3.11.5: # find /sys/class/hwmon/hwmon1/ /sys/class/hwmon/hwmon1/ /sys/class/hwmon/hwmon1/name /sys/class/hwmon/hwmon1/subsystem /sys/class/hwmon/hwmon1/uevent /sys/class/hwmon/hwmon1/temp1_input On 3.12-rc6: # find /sys/class/hwmon/hwmon1/ /sys/class/hwmon/hwmon1/ /sys/class/hwmon/hwmon1/name /sys/class/hwmon/hwmon1/device /sys/class/hwmon/hwmon1/subsystem /sys/class/hwmon/hwmon1/uevent /sys/class/hwmon/hwmon1/temp1_input # find /sys/class/hwmon/hwmon1/device/ /sys/class/hwmon/hwmon1/device/ /sys/class/hwmon/hwmon1/device/temp /sys/class/hwmon/hwmon1/device/type /sys/class/hwmon/hwmon1/device/hwmon1 /sys/class/hwmon/hwmon1/device/hwmon1/name /sys/class/hwmon/hwmon1/device/hwmon1/device /sys/class/hwmon/hwmon1/device/hwmon1/subsystem /sys/class/hwmon/hwmon1/device/hwmon1/uevent /sys/class/hwmon/hwmon1/device/hwmon1/temp1_input /sys/class/hwmon/hwmon1/device/subsystem /sys/class/hwmon/hwmon1/device/policy /sys/class/hwmon/hwmon1/device/uevent /sys/class/hwmon/hwmon1/device/passive Is that expected? As for sensors, it *seems* to be bothered to find a device/ folder in /sys/class/hwmon/hwmon1/ w/o no name entry in it. Cheers, a+ ps: I can test if this is the same on kirkwood if there is a need. ^ permalink raw reply [flat|nested] 27+ messages in thread
* [lm-sensors] [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-20 18:10 ` Arnaud Ebalard 0 siblings, 0 replies; 27+ messages in thread From: Arnaud Ebalard @ 2013-10-20 18:10 UTC (permalink / raw) To: Eduardo Valentin, Zhang Rui, Jean Delvare, Guenter Roeck Cc: Andrew Lunn, Jason Cooper, linux-pm, lm-sensors, Gregory Clement, linux-arm-kernel, Sebastian Hesselbarth SGksCgpXaXRoIDMuMTItcmMgc2VyaWVzLCBzeXNmcyBzdXBwb3J0IGZvciB0aGVybWFsIHN1c2Jz eXRlbSAoYW5kL29yIGh3bW9uCm9uZSkgd2FzIG1vZGlmaWVkIGluIHN1Y2ggYSB3YXkgdGhhdCBz ZW5zb3JzIHV0aWxpdHkgKGN1cnJlbnQgMy4zLjQKdmVyc2lvbiB3aXRoIDMuMy40IHZlcnNpb24g b2YgbGlic2Vuc29ycyBmcm9tIGxtLXNlbnNvcnMgcGFja2FnZSBvbgpEZWJpYW4gdW5zdGFibGUp IGRvZXMgbm90IHNlZSB0aGUgdGVtcGVyYXR1cmUgc2Vuc29yIGFueW1vcmUgb24gYXJtYWRhCjM3 MCBwbGF0Zm9ybXMgKG5vdCB0ZXN0ZWQgb24gb3RoZXJzKS4gQWRkaXRpb25hbGx5LCB0aGUgY2hh bmdlcyBicmVhawpleGlzdGluZyBjb25maWd1cmF0aW9ucyBvZiBmYW5jb250cm9sIHV0aWxpdHks IHdoaWNoIHByZXZlbnRzIHRoZSAKZmFuIHRvIGJlIHJlZ3VsYXRlZCBjb3JyZWN0bHkgdy9vIHJl Y3JlYXRpbmcgYW4gL2V0Yy9mYW5jb250cm9sIHcvCnB3bWNvbmZpZy4KCkhlcmUgaXMgd2hhdCBJ IGhhdmUgb24gbXkgQXJtYWRhIDM3MC1iYXNlZCBzeXN0ZW0gb24gYSAzLjExLjU6CgojIHNlbnNv cnMKZzc2Mi1pMmMtMC0zZQpBZGFwdGVyOiBtdjY0eHh4X2kyYyBhZGFwdGVyCmZhbjE6ICAgICAg ICAyNDU3IFJQTSAgKGRpdiA9IDEpCgphcm1hZGFfdGhlcm1hbC12aXJ0dWFsLTAKQWRhcHRlcjog VmlydHVhbCBkZXZpY2UKdGVtcDE6ICAgICAgICArNDUuN8KwQyAgCgpBbmQgd2hhdCBJIGdldCBv biAzLjEyLXJjNjoKCiMgc2Vuc29ycwpnNzYyLWkyYy0wLTNlCkFkYXB0ZXI6IG12NjR4eHhfaTJj IGFkYXB0ZXIKZmFuMTogICAgICAgIDEzNTAgUlBNICAoZGl2ID0gMSkKCgpNb25pdG9yaW5nIHdo YXQgc2Vuc29ycyBkb2VzIHcvIHN0cmFjZSwgSSBzdGFydGVkIGxvb2tpbmcgYXQgdGhlIGNoYW5n ZXMKdG8gL3N5cy9jbGFzcy9od21vbi9od21vbjEvOgoKT24gMy4xMS41OgoKIyBmaW5kIC9zeXMv Y2xhc3MvaHdtb24vaHdtb24xLwovc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS8KL3N5cy9jbGFzcy9o d21vbi9od21vbjEvbmFtZQovc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9zdWJzeXN0ZW0KL3N5cy9j bGFzcy9od21vbi9od21vbjEvdWV2ZW50Ci9zeXMvY2xhc3MvaHdtb24vaHdtb24xL3RlbXAxX2lu cHV0CgpPbiAzLjEyLXJjNjoKCiMgZmluZCAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS8KL3N5cy9j bGFzcy9od21vbi9od21vbjEvCi9zeXMvY2xhc3MvaHdtb24vaHdtb24xL25hbWUKL3N5cy9jbGFz cy9od21vbi9od21vbjEvZGV2aWNlCi9zeXMvY2xhc3MvaHdtb24vaHdtb24xL3N1YnN5c3RlbQov c3lzL2NsYXNzL2h3bW9uL2h3bW9uMS91ZXZlbnQKL3N5cy9jbGFzcy9od21vbi9od21vbjEvdGVt cDFfaW5wdXQKCiMgZmluZCAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9kZXZpY2UvCi9zeXMvY2xh c3MvaHdtb24vaHdtb24xL2RldmljZS8KL3N5cy9jbGFzcy9od21vbi9od21vbjEvZGV2aWNlL3Rl bXAKL3N5cy9jbGFzcy9od21vbi9od21vbjEvZGV2aWNlL3R5cGUKL3N5cy9jbGFzcy9od21vbi9o d21vbjEvZGV2aWNlL2h3bW9uMQovc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9kZXZpY2UvaHdtb24x L25hbWUKL3N5cy9jbGFzcy9od21vbi9od21vbjEvZGV2aWNlL2h3bW9uMS9kZXZpY2UKL3N5cy9j bGFzcy9od21vbi9od21vbjEvZGV2aWNlL2h3bW9uMS9zdWJzeXN0ZW0KL3N5cy9jbGFzcy9od21v bi9od21vbjEvZGV2aWNlL2h3bW9uMS91ZXZlbnQKL3N5cy9jbGFzcy9od21vbi9od21vbjEvZGV2 aWNlL2h3bW9uMS90ZW1wMV9pbnB1dAovc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9kZXZpY2Uvc3Vi c3lzdGVtCi9zeXMvY2xhc3MvaHdtb24vaHdtb24xL2RldmljZS9wb2xpY3kKL3N5cy9jbGFzcy9o d21vbi9od21vbjEvZGV2aWNlL3VldmVudAovc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9kZXZpY2Uv cGFzc2l2ZQoKSXMgdGhhdCBleHBlY3RlZD8gQXMgZm9yIHNlbnNvcnMsIGl0ICpzZWVtcyogdG8g YmUgYm90aGVyZWQgdG8gZmluZCBhCmRldmljZS8gZm9sZGVyIGluIC9zeXMvY2xhc3MvaHdtb24v aHdtb24xLyB3L28gbm8gbmFtZSBlbnRyeSBpbiBpdC4KCkNoZWVycywKCmErCgpwczogSSBjYW4g dGVzdCBpZiB0aGlzIGlzIHRoZSBzYW1lIG9uIGtpcmt3b29kIGlmIHRoZXJlIGlzIGEgbmVlZC4K Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxtLXNlbnNv cnMgbWFpbGluZyBsaXN0CmxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKaHR0cDovL2xpc3RzLmxt LXNlbnNvcnMub3JnL21haWxtYW4vbGlzdGluZm8vbG0tc2Vuc29ycw= ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series 2013-10-20 18:10 ` [lm-sensors] " Arnaud Ebalard (?) @ 2013-10-20 19:23 ` Guenter Roeck -1 siblings, 0 replies; 27+ messages in thread From: Guenter Roeck @ 2013-10-20 19:23 UTC (permalink / raw) To: Arnaud Ebalard, Eduardo Valentin, Zhang Rui, Jean Delvare Cc: linux-pm, lm-sensors, linux-arm-kernel, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Jason Cooper On 10/20/2013 11:10 AM, Arnaud Ebalard wrote: > Hi, > > With 3.12-rc series, sysfs support for thermal susbsytem (and/or hwmon > one) was modified in such a way that sensors utility (current 3.3.4 > version with 3.3.4 version of libsensors from lm-sensors package on > Debian unstable) does not see the temperature sensor anymore on armada > 370 platforms (not tested on others). Additionally, the changes break > existing configurations of fancontrol utility, which prevents the > fan to be regulated correctly w/o recreating an /etc/fancontrol w/ > pwmconfig. > > Here is what I have on my Armada 370-based system on a 3.11.5: > > # sensors > g762-i2c-0-3e > Adapter: mv64xxx_i2c adapter > fan1: 2457 RPM (div = 1) > > armada_thermal-virtual-0 > Adapter: Virtual device > temp1: +45.7°C > > And what I get on 3.12-rc6: > > # sensors > g762-i2c-0-3e > Adapter: mv64xxx_i2c adapter > fan1: 1350 RPM (div = 1) > > > Monitoring what sensors does w/ strace, I started looking at the changes > to /sys/class/hwmon/hwmon1/: > > On 3.11.5: > > # find /sys/class/hwmon/hwmon1/ > /sys/class/hwmon/hwmon1/ > /sys/class/hwmon/hwmon1/name > /sys/class/hwmon/hwmon1/subsystem > /sys/class/hwmon/hwmon1/uevent > /sys/class/hwmon/hwmon1/temp1_input > > On 3.12-rc6: > > # find /sys/class/hwmon/hwmon1/ > /sys/class/hwmon/hwmon1/ > /sys/class/hwmon/hwmon1/name > /sys/class/hwmon/hwmon1/device > /sys/class/hwmon/hwmon1/subsystem > /sys/class/hwmon/hwmon1/uevent > /sys/class/hwmon/hwmon1/temp1_input > > # find /sys/class/hwmon/hwmon1/device/ > /sys/class/hwmon/hwmon1/device/ > /sys/class/hwmon/hwmon1/device/temp > /sys/class/hwmon/hwmon1/device/type > /sys/class/hwmon/hwmon1/device/hwmon1 > /sys/class/hwmon/hwmon1/device/hwmon1/name > /sys/class/hwmon/hwmon1/device/hwmon1/device > /sys/class/hwmon/hwmon1/device/hwmon1/subsystem > /sys/class/hwmon/hwmon1/device/hwmon1/uevent > /sys/class/hwmon/hwmon1/device/hwmon1/temp1_input > /sys/class/hwmon/hwmon1/device/subsystem > /sys/class/hwmon/hwmon1/device/policy > /sys/class/hwmon/hwmon1/device/uevent > /sys/class/hwmon/hwmon1/device/passive > > Is that expected? As for sensors, it *seems* to be bothered to find a > device/ folder in /sys/class/hwmon/hwmon1/ w/o no name entry in it. > The 'name' attribute should not be the problem, since there is a 'name' attribute in the /sys/class/hwmon/hwmon1/ directory. Key difference is that there is now a 'device' subdirectory, which results in different handling by libsensors; the entry is no longer a virtual entry but is expected to have a real device attached to it. For this device, libsensors tries to scan the 'subsystem' entry which in turn must be well defined and known. My suspicion is that the reported subsystem may not be recognized by libsensors. One question is why there is now a device entry, even though this is still as virtual as it was before. You'll have to ask the thermal subsystem maintainers for an answer. I am also concerned about the 'hwmon1' subdirectory underneath hwmon1/device; that suggests that hwmon1 may be declared to be a child of itself, which would obviously not be a good idea. Also, note that the thermal subsystem creates (or may create) sensor attributes after registering the hwmon device, which means you can not rely on the udev event that comes with the hwmon device creation and assume that all sensor attributes exist at that time. I don't currently know how to handle this situation. This is not unique, though; the coretemp driver does the same. Just something to keep in mind. Guenter ^ permalink raw reply [flat|nested] 27+ messages in thread
* [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-20 19:23 ` Guenter Roeck 0 siblings, 0 replies; 27+ messages in thread From: Guenter Roeck @ 2013-10-20 19:23 UTC (permalink / raw) To: linux-arm-kernel On 10/20/2013 11:10 AM, Arnaud Ebalard wrote: > Hi, > > With 3.12-rc series, sysfs support for thermal susbsytem (and/or hwmon > one) was modified in such a way that sensors utility (current 3.3.4 > version with 3.3.4 version of libsensors from lm-sensors package on > Debian unstable) does not see the temperature sensor anymore on armada > 370 platforms (not tested on others). Additionally, the changes break > existing configurations of fancontrol utility, which prevents the > fan to be regulated correctly w/o recreating an /etc/fancontrol w/ > pwmconfig. > > Here is what I have on my Armada 370-based system on a 3.11.5: > > # sensors > g762-i2c-0-3e > Adapter: mv64xxx_i2c adapter > fan1: 2457 RPM (div = 1) > > armada_thermal-virtual-0 > Adapter: Virtual device > temp1: +45.7?C > > And what I get on 3.12-rc6: > > # sensors > g762-i2c-0-3e > Adapter: mv64xxx_i2c adapter > fan1: 1350 RPM (div = 1) > > > Monitoring what sensors does w/ strace, I started looking at the changes > to /sys/class/hwmon/hwmon1/: > > On 3.11.5: > > # find /sys/class/hwmon/hwmon1/ > /sys/class/hwmon/hwmon1/ > /sys/class/hwmon/hwmon1/name > /sys/class/hwmon/hwmon1/subsystem > /sys/class/hwmon/hwmon1/uevent > /sys/class/hwmon/hwmon1/temp1_input > > On 3.12-rc6: > > # find /sys/class/hwmon/hwmon1/ > /sys/class/hwmon/hwmon1/ > /sys/class/hwmon/hwmon1/name > /sys/class/hwmon/hwmon1/device > /sys/class/hwmon/hwmon1/subsystem > /sys/class/hwmon/hwmon1/uevent > /sys/class/hwmon/hwmon1/temp1_input > > # find /sys/class/hwmon/hwmon1/device/ > /sys/class/hwmon/hwmon1/device/ > /sys/class/hwmon/hwmon1/device/temp > /sys/class/hwmon/hwmon1/device/type > /sys/class/hwmon/hwmon1/device/hwmon1 > /sys/class/hwmon/hwmon1/device/hwmon1/name > /sys/class/hwmon/hwmon1/device/hwmon1/device > /sys/class/hwmon/hwmon1/device/hwmon1/subsystem > /sys/class/hwmon/hwmon1/device/hwmon1/uevent > /sys/class/hwmon/hwmon1/device/hwmon1/temp1_input > /sys/class/hwmon/hwmon1/device/subsystem > /sys/class/hwmon/hwmon1/device/policy > /sys/class/hwmon/hwmon1/device/uevent > /sys/class/hwmon/hwmon1/device/passive > > Is that expected? As for sensors, it *seems* to be bothered to find a > device/ folder in /sys/class/hwmon/hwmon1/ w/o no name entry in it. > The 'name' attribute should not be the problem, since there is a 'name' attribute in the /sys/class/hwmon/hwmon1/ directory. Key difference is that there is now a 'device' subdirectory, which results in different handling by libsensors; the entry is no longer a virtual entry but is expected to have a real device attached to it. For this device, libsensors tries to scan the 'subsystem' entry which in turn must be well defined and known. My suspicion is that the reported subsystem may not be recognized by libsensors. One question is why there is now a device entry, even though this is still as virtual as it was before. You'll have to ask the thermal subsystem maintainers for an answer. I am also concerned about the 'hwmon1' subdirectory underneath hwmon1/device; that suggests that hwmon1 may be declared to be a child of itself, which would obviously not be a good idea. Also, note that the thermal subsystem creates (or may create) sensor attributes after registering the hwmon device, which means you can not rely on the udev event that comes with the hwmon device creation and assume that all sensor attributes exist at that time. I don't currently know how to handle this situation. This is not unique, though; the coretemp driver does the same. Just something to keep in mind. Guenter ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [lm-sensors] [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-20 19:23 ` Guenter Roeck 0 siblings, 0 replies; 27+ messages in thread From: Guenter Roeck @ 2013-10-20 19:23 UTC (permalink / raw) To: Arnaud Ebalard, Eduardo Valentin, Zhang Rui, Jean Delvare Cc: linux-pm, lm-sensors, linux-arm-kernel, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Jason Cooper T24gMTAvMjAvMjAxMyAxMToxMCBBTSwgQXJuYXVkIEViYWxhcmQgd3JvdGU6Cj4gSGksCj4KPiBX aXRoIDMuMTItcmMgc2VyaWVzLCBzeXNmcyBzdXBwb3J0IGZvciB0aGVybWFsIHN1c2JzeXRlbSAo YW5kL29yIGh3bW9uCj4gb25lKSB3YXMgbW9kaWZpZWQgaW4gc3VjaCBhIHdheSB0aGF0IHNlbnNv cnMgdXRpbGl0eSAoY3VycmVudCAzLjMuNAo+IHZlcnNpb24gd2l0aCAzLjMuNCB2ZXJzaW9uIG9m IGxpYnNlbnNvcnMgZnJvbSBsbS1zZW5zb3JzIHBhY2thZ2Ugb24KPiBEZWJpYW4gdW5zdGFibGUp IGRvZXMgbm90IHNlZSB0aGUgdGVtcGVyYXR1cmUgc2Vuc29yIGFueW1vcmUgb24gYXJtYWRhCj4g MzcwIHBsYXRmb3JtcyAobm90IHRlc3RlZCBvbiBvdGhlcnMpLiBBZGRpdGlvbmFsbHksIHRoZSBj aGFuZ2VzIGJyZWFrCj4gZXhpc3RpbmcgY29uZmlndXJhdGlvbnMgb2YgZmFuY29udHJvbCB1dGls aXR5LCB3aGljaCBwcmV2ZW50cyB0aGUKPiBmYW4gdG8gYmUgcmVndWxhdGVkIGNvcnJlY3RseSB3 L28gcmVjcmVhdGluZyBhbiAvZXRjL2ZhbmNvbnRyb2wgdy8KPiBwd21jb25maWcuCj4KPiBIZXJl IGlzIHdoYXQgSSBoYXZlIG9uIG15IEFybWFkYSAzNzAtYmFzZWQgc3lzdGVtIG9uIGEgMy4xMS41 Ogo+Cj4gIyBzZW5zb3JzCj4gZzc2Mi1pMmMtMC0zZQo+IEFkYXB0ZXI6IG12NjR4eHhfaTJjIGFk YXB0ZXIKPiBmYW4xOiAgICAgICAgMjQ1NyBSUE0gIChkaXYgPSAxKQo+Cj4gYXJtYWRhX3RoZXJt YWwtdmlydHVhbC0wCj4gQWRhcHRlcjogVmlydHVhbCBkZXZpY2UKPiB0ZW1wMTogICAgICAgICs0 NS43wrBDCj4KPiBBbmQgd2hhdCBJIGdldCBvbiAzLjEyLXJjNjoKPgo+ICMgc2Vuc29ycwo+IGc3 NjItaTJjLTAtM2UKPiBBZGFwdGVyOiBtdjY0eHh4X2kyYyBhZGFwdGVyCj4gZmFuMTogICAgICAg IDEzNTAgUlBNICAoZGl2ID0gMSkKPgo+Cj4gTW9uaXRvcmluZyB3aGF0IHNlbnNvcnMgZG9lcyB3 LyBzdHJhY2UsIEkgc3RhcnRlZCBsb29raW5nIGF0IHRoZSBjaGFuZ2VzCj4gdG8gL3N5cy9jbGFz cy9od21vbi9od21vbjEvOgo+Cj4gT24gMy4xMS41Ogo+Cj4gIyBmaW5kIC9zeXMvY2xhc3MvaHdt b24vaHdtb24xLwo+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xLwo+IC9zeXMvY2xhc3MvaHdtb24v aHdtb24xL25hbWUKPiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9zdWJzeXN0ZW0KPiAvc3lzL2Ns YXNzL2h3bW9uL2h3bW9uMS91ZXZlbnQKPiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS90ZW1wMV9p bnB1dAo+Cj4gT24gMy4xMi1yYzY6Cj4KPiAjIGZpbmQgL3N5cy9jbGFzcy9od21vbi9od21vbjEv Cj4gL3N5cy9jbGFzcy9od21vbi9od21vbjEvCj4gL3N5cy9jbGFzcy9od21vbi9od21vbjEvbmFt ZQo+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL2RldmljZQo+IC9zeXMvY2xhc3MvaHdtb24vaHdt b24xL3N1YnN5c3RlbQo+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL3VldmVudAo+IC9zeXMvY2xh c3MvaHdtb24vaHdtb24xL3RlbXAxX2lucHV0Cj4KPiAjIGZpbmQgL3N5cy9jbGFzcy9od21vbi9o d21vbjEvZGV2aWNlLwo+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL2RldmljZS8KPiAvc3lzL2Ns YXNzL2h3bW9uL2h3bW9uMS9kZXZpY2UvdGVtcAo+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL2Rl dmljZS90eXBlCj4gL3N5cy9jbGFzcy9od21vbi9od21vbjEvZGV2aWNlL2h3bW9uMQo+IC9zeXMv Y2xhc3MvaHdtb24vaHdtb24xL2RldmljZS9od21vbjEvbmFtZQo+IC9zeXMvY2xhc3MvaHdtb24v aHdtb24xL2RldmljZS9od21vbjEvZGV2aWNlCj4gL3N5cy9jbGFzcy9od21vbi9od21vbjEvZGV2 aWNlL2h3bW9uMS9zdWJzeXN0ZW0KPiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9kZXZpY2UvaHdt b24xL3VldmVudAo+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL2RldmljZS9od21vbjEvdGVtcDFf aW5wdXQKPiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9kZXZpY2Uvc3Vic3lzdGVtCj4gL3N5cy9j bGFzcy9od21vbi9od21vbjEvZGV2aWNlL3BvbGljeQo+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24x L2RldmljZS91ZXZlbnQKPiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9kZXZpY2UvcGFzc2l2ZQo+ Cj4gSXMgdGhhdCBleHBlY3RlZD8gQXMgZm9yIHNlbnNvcnMsIGl0ICpzZWVtcyogdG8gYmUgYm90 aGVyZWQgdG8gZmluZCBhCj4gZGV2aWNlLyBmb2xkZXIgaW4gL3N5cy9jbGFzcy9od21vbi9od21v bjEvIHcvbyBubyBuYW1lIGVudHJ5IGluIGl0Lgo+CgpUaGUgJ25hbWUnIGF0dHJpYnV0ZSBzaG91 bGQgbm90IGJlIHRoZSBwcm9ibGVtLCBzaW5jZSB0aGVyZSBpcyBhICduYW1lJwphdHRyaWJ1dGUg aW4gdGhlIC9zeXMvY2xhc3MvaHdtb24vaHdtb24xLyBkaXJlY3RvcnkuCgpLZXkgZGlmZmVyZW5j ZSBpcyB0aGF0IHRoZXJlIGlzIG5vdyBhICdkZXZpY2UnIHN1YmRpcmVjdG9yeSwgd2hpY2ggcmVz dWx0cwppbiBkaWZmZXJlbnQgaGFuZGxpbmcgYnkgbGlic2Vuc29yczsgdGhlIGVudHJ5IGlzIG5v IGxvbmdlciBhIHZpcnR1YWwgZW50cnkKYnV0IGlzIGV4cGVjdGVkIHRvIGhhdmUgYSByZWFsIGRl dmljZSBhdHRhY2hlZCB0byBpdC4gRm9yIHRoaXMgZGV2aWNlLApsaWJzZW5zb3JzIHRyaWVzIHRv IHNjYW4gdGhlICdzdWJzeXN0ZW0nIGVudHJ5IHdoaWNoIGluIHR1cm4gbXVzdCBiZSB3ZWxsCmRl ZmluZWQgYW5kIGtub3duLiBNeSBzdXNwaWNpb24gaXMgdGhhdCB0aGUgcmVwb3J0ZWQgc3Vic3lz dGVtIG1heSBub3QgYmUKcmVjb2duaXplZCBieSBsaWJzZW5zb3JzLgoKT25lIHF1ZXN0aW9uIGlz IHdoeSB0aGVyZSBpcyBub3cgYSBkZXZpY2UgZW50cnksIGV2ZW4gdGhvdWdoIHRoaXMgaXMgc3Rp bGwgYXMKdmlydHVhbCBhcyBpdCB3YXMgYmVmb3JlLiBZb3UnbGwgaGF2ZSB0byBhc2sgdGhlIHRo ZXJtYWwgc3Vic3lzdGVtIG1haW50YWluZXJzCmZvciBhbiBhbnN3ZXIuCgpJIGFtIGFsc28gY29u Y2VybmVkIGFib3V0IHRoZSAnaHdtb24xJyBzdWJkaXJlY3RvcnkgdW5kZXJuZWF0aCBod21vbjEv ZGV2aWNlOwp0aGF0IHN1Z2dlc3RzIHRoYXQgaHdtb24xIG1heSBiZSBkZWNsYXJlZCB0byBiZSBh IGNoaWxkIG9mIGl0c2VsZiwgd2hpY2ggd291bGQKb2J2aW91c2x5IG5vdCBiZSBhIGdvb2QgaWRl YS4KCkFsc28sIG5vdGUgdGhhdCB0aGUgdGhlcm1hbCBzdWJzeXN0ZW0gY3JlYXRlcyAob3IgbWF5 IGNyZWF0ZSkgc2Vuc29yIGF0dHJpYnV0ZXMKYWZ0ZXIgcmVnaXN0ZXJpbmcgdGhlIGh3bW9uIGRl dmljZSwgd2hpY2ggbWVhbnMgeW91IGNhbiBub3QgcmVseSBvbiB0aGUgdWRldgpldmVudCB0aGF0 IGNvbWVzIHdpdGggdGhlIGh3bW9uIGRldmljZSBjcmVhdGlvbiBhbmQgYXNzdW1lIHRoYXQgYWxs IHNlbnNvcgphdHRyaWJ1dGVzIGV4aXN0IGF0IHRoYXQgdGltZS4gSSBkb24ndCBjdXJyZW50bHkg a25vdyBob3cgdG8gaGFuZGxlIHRoaXMgc2l0dWF0aW9uLgpUaGlzIGlzIG5vdCB1bmlxdWUsIHRo b3VnaDsgdGhlIGNvcmV0ZW1wIGRyaXZlciBkb2VzIHRoZSBzYW1lLiBKdXN0IHNvbWV0aGluZwp0 byBrZWVwIGluIG1pbmQuCgpHdWVudGVyCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbG0tc2Vuc29ycyBtYWlsaW5nIGxpc3QKbG0tc2Vuc29yc0BsbS1z ZW5zb3JzLm9yZwpodHRwOi8vbGlzdHMubG0tc2Vuc29ycy5vcmcvbWFpbG1hbi9saXN0aW5mby9s bS1zZW5zb3Jz ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series 2013-10-20 19:23 ` [lm-sensors] " Guenter Roeck (?) @ 2013-10-21 2:28 ` Zhang Rui -1 siblings, 0 replies; 27+ messages in thread From: Zhang Rui @ 2013-10-21 2:28 UTC (permalink / raw) To: Guenter Roeck Cc: Arnaud Ebalard, Eduardo Valentin, Jean Delvare, linux-pm, lm-sensors, linux-arm-kernel, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Jason Cooper Hi, On Sun, 2013-10-20 at 12:23 -0700, Guenter Roeck wrote: > On 10/20/2013 11:10 AM, Arnaud Ebalard wrote: > > Hi, > > > > With 3.12-rc series, sysfs support for thermal susbsytem (and/or hwmon > > one) was modified in such a way that sensors utility (current 3.3.4 > > version with 3.3.4 version of libsensors from lm-sensors package on > > Debian unstable) does not see the temperature sensor anymore on armada > > 370 platforms (not tested on others). Additionally, the changes break > > existing configurations of fancontrol utility, which prevents the > > fan to be regulated correctly w/o recreating an /etc/fancontrol w/ > > pwmconfig. > > > > Here is what I have on my Armada 370-based system on a 3.11.5: > > > > # sensors > > g762-i2c-0-3e > > Adapter: mv64xxx_i2c adapter > > fan1: 2457 RPM (div = 1) > > > > armada_thermal-virtual-0 > > Adapter: Virtual device > > temp1: +45.7°C > > > > And what I get on 3.12-rc6: > > > > # sensors > > g762-i2c-0-3e > > Adapter: mv64xxx_i2c adapter > > fan1: 1350 RPM (div = 1) > > > > > > Monitoring what sensors does w/ strace, I started looking at the changes > > to /sys/class/hwmon/hwmon1/: > > > > On 3.11.5: > > > > # find /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/name > > /sys/class/hwmon/hwmon1/subsystem > > /sys/class/hwmon/hwmon1/uevent > > /sys/class/hwmon/hwmon1/temp1_input > > > > On 3.12-rc6: > > > > # find /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/name > > /sys/class/hwmon/hwmon1/device > > /sys/class/hwmon/hwmon1/subsystem > > /sys/class/hwmon/hwmon1/uevent > > /sys/class/hwmon/hwmon1/temp1_input > > > > # find /sys/class/hwmon/hwmon1/device/ > > /sys/class/hwmon/hwmon1/device/ > > /sys/class/hwmon/hwmon1/device/temp > > /sys/class/hwmon/hwmon1/device/type > > /sys/class/hwmon/hwmon1/device/hwmon1 > > /sys/class/hwmon/hwmon1/device/hwmon1/name > > /sys/class/hwmon/hwmon1/device/hwmon1/device > > /sys/class/hwmon/hwmon1/device/hwmon1/subsystem > > /sys/class/hwmon/hwmon1/device/hwmon1/uevent > > /sys/class/hwmon/hwmon1/device/hwmon1/temp1_input > > /sys/class/hwmon/hwmon1/device/subsystem > > /sys/class/hwmon/hwmon1/device/policy > > /sys/class/hwmon/hwmon1/device/uevent > > /sys/class/hwmon/hwmon1/device/passive > > > > Is that expected? As for sensors, it *seems* to be bothered to find a > > device/ folder in /sys/class/hwmon/hwmon1/ w/o no name entry in it. > > I agree. And it should be caused by this commit. commit b82715fdd4a5407f56853b24d387d484dd9c3b5b Author: Eduardo Valentin <eduardo.valentin@ti.com> Date: Fri Aug 23 17:07:58 2013 -0400 drivers: thermal: parent virtual hwmon with thermal zone When creating virtual hwmon devices based out of thermal zone devices, the virtual devices won't have parents. This patch changes the code so that the parent of virtual hwmon devices is the thermal zone device that they are based of. Cc: Zhang Rui <rui.zhang@intel.com> Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com> > > The 'name' attribute should not be the problem, since there is a 'name' > attribute in the /sys/class/hwmon/hwmon1/ directory. > > Key difference is that there is now a 'device' subdirectory, Right. > which results > in different handling by libsensors; Oh, I'm not aware of this before. There is no such statement in the comments of hwmon_device_register(), or anywhere else. Could you show me some tutorials about how the sysfs I/F misleads libsensors? But anyway, I will revert this patch first. Thanks for reporting the problem, Arnaud! thanks, rui > the entry is no longer a virtual entry > but is expected to have a real device attached to it. For this device, > libsensors tries to scan the 'subsystem' entry which in turn must be well > defined and known. My suspicion is that the reported subsystem may not be > recognized by libsensors. > > One question is why there is now a device entry, even though this is still as > virtual as it was before. You'll have to ask the thermal subsystem maintainers > for an answer. > I am also concerned about the 'hwmon1' subdirectory underneath hwmon1/device; > that suggests that hwmon1 may be declared to be a child of itself, which would > obviously not be a good idea. > > Also, note that the thermal subsystem creates (or may create) sensor attributes > after registering the hwmon device, which means you can not rely on the udev > event that comes with the hwmon device creation and assume that all sensor > attributes exist at that time. I don't currently know how to handle this situation. > This is not unique, though; the coretemp driver does the same. Just something > to keep in mind. > > Guenter > ^ permalink raw reply [flat|nested] 27+ messages in thread
* [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-21 2:28 ` Zhang Rui 0 siblings, 0 replies; 27+ messages in thread From: Zhang Rui @ 2013-10-21 2:28 UTC (permalink / raw) To: linux-arm-kernel Hi, On Sun, 2013-10-20 at 12:23 -0700, Guenter Roeck wrote: > On 10/20/2013 11:10 AM, Arnaud Ebalard wrote: > > Hi, > > > > With 3.12-rc series, sysfs support for thermal susbsytem (and/or hwmon > > one) was modified in such a way that sensors utility (current 3.3.4 > > version with 3.3.4 version of libsensors from lm-sensors package on > > Debian unstable) does not see the temperature sensor anymore on armada > > 370 platforms (not tested on others). Additionally, the changes break > > existing configurations of fancontrol utility, which prevents the > > fan to be regulated correctly w/o recreating an /etc/fancontrol w/ > > pwmconfig. > > > > Here is what I have on my Armada 370-based system on a 3.11.5: > > > > # sensors > > g762-i2c-0-3e > > Adapter: mv64xxx_i2c adapter > > fan1: 2457 RPM (div = 1) > > > > armada_thermal-virtual-0 > > Adapter: Virtual device > > temp1: +45.7?C > > > > And what I get on 3.12-rc6: > > > > # sensors > > g762-i2c-0-3e > > Adapter: mv64xxx_i2c adapter > > fan1: 1350 RPM (div = 1) > > > > > > Monitoring what sensors does w/ strace, I started looking at the changes > > to /sys/class/hwmon/hwmon1/: > > > > On 3.11.5: > > > > # find /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/name > > /sys/class/hwmon/hwmon1/subsystem > > /sys/class/hwmon/hwmon1/uevent > > /sys/class/hwmon/hwmon1/temp1_input > > > > On 3.12-rc6: > > > > # find /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/name > > /sys/class/hwmon/hwmon1/device > > /sys/class/hwmon/hwmon1/subsystem > > /sys/class/hwmon/hwmon1/uevent > > /sys/class/hwmon/hwmon1/temp1_input > > > > # find /sys/class/hwmon/hwmon1/device/ > > /sys/class/hwmon/hwmon1/device/ > > /sys/class/hwmon/hwmon1/device/temp > > /sys/class/hwmon/hwmon1/device/type > > /sys/class/hwmon/hwmon1/device/hwmon1 > > /sys/class/hwmon/hwmon1/device/hwmon1/name > > /sys/class/hwmon/hwmon1/device/hwmon1/device > > /sys/class/hwmon/hwmon1/device/hwmon1/subsystem > > /sys/class/hwmon/hwmon1/device/hwmon1/uevent > > /sys/class/hwmon/hwmon1/device/hwmon1/temp1_input > > /sys/class/hwmon/hwmon1/device/subsystem > > /sys/class/hwmon/hwmon1/device/policy > > /sys/class/hwmon/hwmon1/device/uevent > > /sys/class/hwmon/hwmon1/device/passive > > > > Is that expected? As for sensors, it *seems* to be bothered to find a > > device/ folder in /sys/class/hwmon/hwmon1/ w/o no name entry in it. > > I agree. And it should be caused by this commit. commit b82715fdd4a5407f56853b24d387d484dd9c3b5b Author: Eduardo Valentin <eduardo.valentin@ti.com> Date: Fri Aug 23 17:07:58 2013 -0400 drivers: thermal: parent virtual hwmon with thermal zone When creating virtual hwmon devices based out of thermal zone devices, the virtual devices won't have parents. This patch changes the code so that the parent of virtual hwmon devices is the thermal zone device that they are based of. Cc: Zhang Rui <rui.zhang@intel.com> Cc: linux-pm at vger.kernel.org Cc: linux-kernel at vger.kernel.org Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com> > > The 'name' attribute should not be the problem, since there is a 'name' > attribute in the /sys/class/hwmon/hwmon1/ directory. > > Key difference is that there is now a 'device' subdirectory, Right. > which results > in different handling by libsensors; Oh, I'm not aware of this before. There is no such statement in the comments of hwmon_device_register(), or anywhere else. Could you show me some tutorials about how the sysfs I/F misleads libsensors? But anyway, I will revert this patch first. Thanks for reporting the problem, Arnaud! thanks, rui > the entry is no longer a virtual entry > but is expected to have a real device attached to it. For this device, > libsensors tries to scan the 'subsystem' entry which in turn must be well > defined and known. My suspicion is that the reported subsystem may not be > recognized by libsensors. > > One question is why there is now a device entry, even though this is still as > virtual as it was before. You'll have to ask the thermal subsystem maintainers > for an answer. > I am also concerned about the 'hwmon1' subdirectory underneath hwmon1/device; > that suggests that hwmon1 may be declared to be a child of itself, which would > obviously not be a good idea. > > Also, note that the thermal subsystem creates (or may create) sensor attributes > after registering the hwmon device, which means you can not rely on the udev > event that comes with the hwmon device creation and assume that all sensor > attributes exist at that time. I don't currently know how to handle this situation. > This is not unique, though; the coretemp driver does the same. Just something > to keep in mind. > > Guenter > ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [lm-sensors] [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-21 2:28 ` Zhang Rui 0 siblings, 0 replies; 27+ messages in thread From: Zhang Rui @ 2013-10-21 2:28 UTC (permalink / raw) To: Guenter Roeck Cc: Arnaud Ebalard, Eduardo Valentin, Jean Delvare, linux-pm, lm-sensors, linux-arm-kernel, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Jason Cooper SGksCgpPbiBTdW4sIDIwMTMtMTAtMjAgYXQgMTI6MjMgLTA3MDAsIEd1ZW50ZXIgUm9lY2sgd3Jv dGU6Cj4gT24gMTAvMjAvMjAxMyAxMToxMCBBTSwgQXJuYXVkIEViYWxhcmQgd3JvdGU6Cj4gPiBI aSwKPiA+Cj4gPiBXaXRoIDMuMTItcmMgc2VyaWVzLCBzeXNmcyBzdXBwb3J0IGZvciB0aGVybWFs IHN1c2JzeXRlbSAoYW5kL29yIGh3bW9uCj4gPiBvbmUpIHdhcyBtb2RpZmllZCBpbiBzdWNoIGEg d2F5IHRoYXQgc2Vuc29ycyB1dGlsaXR5IChjdXJyZW50IDMuMy40Cj4gPiB2ZXJzaW9uIHdpdGgg My4zLjQgdmVyc2lvbiBvZiBsaWJzZW5zb3JzIGZyb20gbG0tc2Vuc29ycyBwYWNrYWdlIG9uCj4g PiBEZWJpYW4gdW5zdGFibGUpIGRvZXMgbm90IHNlZSB0aGUgdGVtcGVyYXR1cmUgc2Vuc29yIGFu eW1vcmUgb24gYXJtYWRhCj4gPiAzNzAgcGxhdGZvcm1zIChub3QgdGVzdGVkIG9uIG90aGVycyku IEFkZGl0aW9uYWxseSwgdGhlIGNoYW5nZXMgYnJlYWsKPiA+IGV4aXN0aW5nIGNvbmZpZ3VyYXRp b25zIG9mIGZhbmNvbnRyb2wgdXRpbGl0eSwgd2hpY2ggcHJldmVudHMgdGhlCj4gPiBmYW4gdG8g YmUgcmVndWxhdGVkIGNvcnJlY3RseSB3L28gcmVjcmVhdGluZyBhbiAvZXRjL2ZhbmNvbnRyb2wg dy8KPiA+IHB3bWNvbmZpZy4KPiA+Cj4gPiBIZXJlIGlzIHdoYXQgSSBoYXZlIG9uIG15IEFybWFk YSAzNzAtYmFzZWQgc3lzdGVtIG9uIGEgMy4xMS41Ogo+ID4KPiA+ICMgc2Vuc29ycwo+ID4gZzc2 Mi1pMmMtMC0zZQo+ID4gQWRhcHRlcjogbXY2NHh4eF9pMmMgYWRhcHRlcgo+ID4gZmFuMTogICAg ICAgIDI0NTcgUlBNICAoZGl2ID0gMSkKPiA+Cj4gPiBhcm1hZGFfdGhlcm1hbC12aXJ0dWFsLTAK PiA+IEFkYXB0ZXI6IFZpcnR1YWwgZGV2aWNlCj4gPiB0ZW1wMTogICAgICAgICs0NS43wrBDCj4g Pgo+ID4gQW5kIHdoYXQgSSBnZXQgb24gMy4xMi1yYzY6Cj4gPgo+ID4gIyBzZW5zb3JzCj4gPiBn NzYyLWkyYy0wLTNlCj4gPiBBZGFwdGVyOiBtdjY0eHh4X2kyYyBhZGFwdGVyCj4gPiBmYW4xOiAg ICAgICAgMTM1MCBSUE0gIChkaXYgPSAxKQo+ID4KPiA+Cj4gPiBNb25pdG9yaW5nIHdoYXQgc2Vu c29ycyBkb2VzIHcvIHN0cmFjZSwgSSBzdGFydGVkIGxvb2tpbmcgYXQgdGhlIGNoYW5nZXMKPiA+ IHRvIC9zeXMvY2xhc3MvaHdtb24vaHdtb24xLzoKPiA+Cj4gPiBPbiAzLjExLjU6Cj4gPgo+ID4g IyBmaW5kIC9zeXMvY2xhc3MvaHdtb24vaHdtb24xLwo+ID4gL3N5cy9jbGFzcy9od21vbi9od21v bjEvCj4gPiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9uYW1lCj4gPiAvc3lzL2NsYXNzL2h3bW9u L2h3bW9uMS9zdWJzeXN0ZW0KPiA+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL3VldmVudAo+ID4g L3N5cy9jbGFzcy9od21vbi9od21vbjEvdGVtcDFfaW5wdXQKPiA+Cj4gPiBPbiAzLjEyLXJjNjoK PiA+Cj4gPiAjIGZpbmQgL3N5cy9jbGFzcy9od21vbi9od21vbjEvCj4gPiAvc3lzL2NsYXNzL2h3 bW9uL2h3bW9uMS8KPiA+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL25hbWUKPiA+IC9zeXMvY2xh c3MvaHdtb24vaHdtb24xL2RldmljZQo+ID4gL3N5cy9jbGFzcy9od21vbi9od21vbjEvc3Vic3lz dGVtCj4gPiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS91ZXZlbnQKPiA+IC9zeXMvY2xhc3MvaHdt b24vaHdtb24xL3RlbXAxX2lucHV0Cj4gPgo+ID4gIyBmaW5kIC9zeXMvY2xhc3MvaHdtb24vaHdt b24xL2RldmljZS8KPiA+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL2RldmljZS8KPiA+IC9zeXMv Y2xhc3MvaHdtb24vaHdtb24xL2RldmljZS90ZW1wCj4gPiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9u MS9kZXZpY2UvdHlwZQo+ID4gL3N5cy9jbGFzcy9od21vbi9od21vbjEvZGV2aWNlL2h3bW9uMQo+ ID4gL3N5cy9jbGFzcy9od21vbi9od21vbjEvZGV2aWNlL2h3bW9uMS9uYW1lCj4gPiAvc3lzL2Ns YXNzL2h3bW9uL2h3bW9uMS9kZXZpY2UvaHdtb24xL2RldmljZQo+ID4gL3N5cy9jbGFzcy9od21v bi9od21vbjEvZGV2aWNlL2h3bW9uMS9zdWJzeXN0ZW0KPiA+IC9zeXMvY2xhc3MvaHdtb24vaHdt b24xL2RldmljZS9od21vbjEvdWV2ZW50Cj4gPiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9kZXZp Y2UvaHdtb24xL3RlbXAxX2lucHV0Cj4gPiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9kZXZpY2Uv c3Vic3lzdGVtCj4gPiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9kZXZpY2UvcG9saWN5Cj4gPiAv c3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9kZXZpY2UvdWV2ZW50Cj4gPiAvc3lzL2NsYXNzL2h3bW9u L2h3bW9uMS9kZXZpY2UvcGFzc2l2ZQo+ID4KPiA+IElzIHRoYXQgZXhwZWN0ZWQ/IEFzIGZvciBz ZW5zb3JzLCBpdCAqc2VlbXMqIHRvIGJlIGJvdGhlcmVkIHRvIGZpbmQgYQo+ID4gZGV2aWNlLyBm b2xkZXIgaW4gL3N5cy9jbGFzcy9od21vbi9od21vbjEvIHcvbyBubyBuYW1lIGVudHJ5IGluIGl0 Lgo+ID4KCkkgYWdyZWUuIEFuZCBpdCBzaG91bGQgYmUgY2F1c2VkIGJ5IHRoaXMgY29tbWl0LgoK Y29tbWl0IGI4MjcxNWZkZDRhNTQwN2Y1Njg1M2IyNGQzODdkNDg0ZGQ5YzNiNWIKQXV0aG9yOiBF ZHVhcmRvIFZhbGVudGluIDxlZHVhcmRvLnZhbGVudGluQHRpLmNvbT4KRGF0ZTogICBGcmkgQXVn IDIzIDE3OjA3OjU4IDIwMTMgLTA0MDAKCiAgICBkcml2ZXJzOiB0aGVybWFsOiBwYXJlbnQgdmly dHVhbCBod21vbiB3aXRoIHRoZXJtYWwgem9uZQogICAgCiAgICBXaGVuICBjcmVhdGluZyB2aXJ0 dWFsIGh3bW9uIGRldmljZXMgYmFzZWQgb3V0IG9mIHRoZXJtYWwKICAgIHpvbmUgZGV2aWNlcywg dGhlIHZpcnR1YWwgZGV2aWNlcyB3b24ndCBoYXZlIHBhcmVudHMuCiAgICAKICAgIFRoaXMgcGF0 Y2ggY2hhbmdlcyB0aGUgY29kZSBzbyB0aGF0IHRoZSBwYXJlbnQgb2YgdmlydHVhbAogICAgaHdt b24gZGV2aWNlcyBpcyB0aGUgdGhlcm1hbCB6b25lIGRldmljZSB0aGF0IHRoZXkgYXJlCiAgICBi YXNlZCBvZi4KICAgIAogICAgQ2M6IFpoYW5nIFJ1aSA8cnVpLnpoYW5nQGludGVsLmNvbT4KICAg IENjOiBsaW51eC1wbUB2Z2VyLmtlcm5lbC5vcmcKICAgIENjOiBsaW51eC1rZXJuZWxAdmdlci5r ZXJuZWwub3JnCiAgICBTaWduZWQtb2ZmLWJ5OiBFZHVhcmRvIFZhbGVudGluIDxlZHVhcmRvLnZh bGVudGluQHRpLmNvbT4KCj4gCj4gVGhlICduYW1lJyBhdHRyaWJ1dGUgc2hvdWxkIG5vdCBiZSB0 aGUgcHJvYmxlbSwgc2luY2UgdGhlcmUgaXMgYSAnbmFtZScKPiBhdHRyaWJ1dGUgaW4gdGhlIC9z eXMvY2xhc3MvaHdtb24vaHdtb24xLyBkaXJlY3RvcnkuCj4gCj4gS2V5IGRpZmZlcmVuY2UgaXMg dGhhdCB0aGVyZSBpcyBub3cgYSAnZGV2aWNlJyBzdWJkaXJlY3RvcnksCgpSaWdodC4KCj4gIHdo aWNoIHJlc3VsdHMKPiBpbiBkaWZmZXJlbnQgaGFuZGxpbmcgYnkgbGlic2Vuc29yczsKT2gsIEkn bSBub3QgYXdhcmUgb2YgdGhpcyBiZWZvcmUuClRoZXJlIGlzIG5vIHN1Y2ggc3RhdGVtZW50IGlu IHRoZSBjb21tZW50cyBvZiBod21vbl9kZXZpY2VfcmVnaXN0ZXIoKSwKb3IgYW55d2hlcmUgZWxz ZS4KQ291bGQgeW91IHNob3cgbWUgc29tZSB0dXRvcmlhbHMgYWJvdXQgaG93IHRoZSBzeXNmcyBJ L0YgbWlzbGVhZHMKbGlic2Vuc29ycz8KCkJ1dCBhbnl3YXksIEkgd2lsbCByZXZlcnQgdGhpcyBw YXRjaCBmaXJzdC4KVGhhbmtzIGZvciByZXBvcnRpbmcgdGhlIHByb2JsZW0sIEFybmF1ZCEKCnRo YW5rcywKcnVpCj4gIHRoZSBlbnRyeSBpcyBubyBsb25nZXIgYSB2aXJ0dWFsIGVudHJ5Cj4gYnV0 IGlzIGV4cGVjdGVkIHRvIGhhdmUgYSByZWFsIGRldmljZSBhdHRhY2hlZCB0byBpdC4gRm9yIHRo aXMgZGV2aWNlLAo+IGxpYnNlbnNvcnMgdHJpZXMgdG8gc2NhbiB0aGUgJ3N1YnN5c3RlbScgZW50 cnkgd2hpY2ggaW4gdHVybiBtdXN0IGJlIHdlbGwKPiBkZWZpbmVkIGFuZCBrbm93bi4gTXkgc3Vz cGljaW9uIGlzIHRoYXQgdGhlIHJlcG9ydGVkIHN1YnN5c3RlbSBtYXkgbm90IGJlCj4gcmVjb2du aXplZCBieSBsaWJzZW5zb3JzLgoKPiAKPiBPbmUgcXVlc3Rpb24gaXMgd2h5IHRoZXJlIGlzIG5v dyBhIGRldmljZSBlbnRyeSwgZXZlbiB0aG91Z2ggdGhpcyBpcyBzdGlsbCBhcwo+IHZpcnR1YWwg YXMgaXQgd2FzIGJlZm9yZS4gWW91J2xsIGhhdmUgdG8gYXNrIHRoZSB0aGVybWFsIHN1YnN5c3Rl bSBtYWludGFpbmVycwo+IGZvciBhbiBhbnN3ZXIuCgo+IEkgYW0gYWxzbyBjb25jZXJuZWQgYWJv dXQgdGhlICdod21vbjEnIHN1YmRpcmVjdG9yeSB1bmRlcm5lYXRoIGh3bW9uMS9kZXZpY2U7Cj4g dGhhdCBzdWdnZXN0cyB0aGF0IGh3bW9uMSBtYXkgYmUgZGVjbGFyZWQgdG8gYmUgYSBjaGlsZCBv ZiBpdHNlbGYsIHdoaWNoIHdvdWxkCj4gb2J2aW91c2x5IG5vdCBiZSBhIGdvb2QgaWRlYS4KPiAK PiBBbHNvLCBub3RlIHRoYXQgdGhlIHRoZXJtYWwgc3Vic3lzdGVtIGNyZWF0ZXMgKG9yIG1heSBj cmVhdGUpIHNlbnNvciBhdHRyaWJ1dGVzCj4gYWZ0ZXIgcmVnaXN0ZXJpbmcgdGhlIGh3bW9uIGRl dmljZSwgd2hpY2ggbWVhbnMgeW91IGNhbiBub3QgcmVseSBvbiB0aGUgdWRldgo+IGV2ZW50IHRo YXQgY29tZXMgd2l0aCB0aGUgaHdtb24gZGV2aWNlIGNyZWF0aW9uIGFuZCBhc3N1bWUgdGhhdCBh bGwgc2Vuc29yCj4gYXR0cmlidXRlcyBleGlzdCBhdCB0aGF0IHRpbWUuIEkgZG9uJ3QgY3VycmVu dGx5IGtub3cgaG93IHRvIGhhbmRsZSB0aGlzIHNpdHVhdGlvbi4KPiBUaGlzIGlzIG5vdCB1bmlx dWUsIHRob3VnaDsgdGhlIGNvcmV0ZW1wIGRyaXZlciBkb2VzIHRoZSBzYW1lLiBKdXN0IHNvbWV0 aGluZwo+IHRvIGtlZXAgaW4gbWluZC4KPiAKPiBHdWVudGVyCj4gCgoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxtLXNlbnNvcnMgbWFpbGluZyBsaXN0 CmxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKaHR0cDovL2xpc3RzLmxtLXNlbnNvcnMub3JnL21h aWxtYW4vbGlzdGluZm8vbG0tc2Vuc29ycw= ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series 2013-10-21 2:28 ` [lm-sensors] " Zhang Rui (?) @ 2013-10-21 5:19 ` Guenter Roeck -1 siblings, 0 replies; 27+ messages in thread From: Guenter Roeck @ 2013-10-21 5:19 UTC (permalink / raw) To: Zhang Rui Cc: Arnaud Ebalard, Eduardo Valentin, Jean Delvare, linux-pm, lm-sensors, linux-arm-kernel, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Jason Cooper On 10/20/2013 07:28 PM, Zhang Rui wrote: > Hi, > > On Sun, 2013-10-20 at 12:23 -0700, Guenter Roeck wrote: >> On 10/20/2013 11:10 AM, Arnaud Ebalard wrote: >>> Hi, >>> >>> With 3.12-rc series, sysfs support for thermal susbsytem (and/or hwmon >>> one) was modified in such a way that sensors utility (current 3.3.4 >>> version with 3.3.4 version of libsensors from lm-sensors package on >>> Debian unstable) does not see the temperature sensor anymore on armada >>> 370 platforms (not tested on others). Additionally, the changes break >>> existing configurations of fancontrol utility, which prevents the >>> fan to be regulated correctly w/o recreating an /etc/fancontrol w/ >>> pwmconfig. >>> >>> Here is what I have on my Armada 370-based system on a 3.11.5: >>> >>> # sensors >>> g762-i2c-0-3e >>> Adapter: mv64xxx_i2c adapter >>> fan1: 2457 RPM (div = 1) >>> >>> armada_thermal-virtual-0 >>> Adapter: Virtual device >>> temp1: +45.7°C >>> >>> And what I get on 3.12-rc6: >>> >>> # sensors >>> g762-i2c-0-3e >>> Adapter: mv64xxx_i2c adapter >>> fan1: 1350 RPM (div = 1) >>> >>> >>> Monitoring what sensors does w/ strace, I started looking at the changes >>> to /sys/class/hwmon/hwmon1/: >>> >>> On 3.11.5: >>> >>> # find /sys/class/hwmon/hwmon1/ >>> /sys/class/hwmon/hwmon1/ >>> /sys/class/hwmon/hwmon1/name >>> /sys/class/hwmon/hwmon1/subsystem >>> /sys/class/hwmon/hwmon1/uevent >>> /sys/class/hwmon/hwmon1/temp1_input >>> >>> On 3.12-rc6: >>> >>> # find /sys/class/hwmon/hwmon1/ >>> /sys/class/hwmon/hwmon1/ >>> /sys/class/hwmon/hwmon1/name >>> /sys/class/hwmon/hwmon1/device >>> /sys/class/hwmon/hwmon1/subsystem >>> /sys/class/hwmon/hwmon1/uevent >>> /sys/class/hwmon/hwmon1/temp1_input >>> >>> # find /sys/class/hwmon/hwmon1/device/ >>> /sys/class/hwmon/hwmon1/device/ >>> /sys/class/hwmon/hwmon1/device/temp >>> /sys/class/hwmon/hwmon1/device/type >>> /sys/class/hwmon/hwmon1/device/hwmon1 >>> /sys/class/hwmon/hwmon1/device/hwmon1/name >>> /sys/class/hwmon/hwmon1/device/hwmon1/device >>> /sys/class/hwmon/hwmon1/device/hwmon1/subsystem >>> /sys/class/hwmon/hwmon1/device/hwmon1/uevent >>> /sys/class/hwmon/hwmon1/device/hwmon1/temp1_input >>> /sys/class/hwmon/hwmon1/device/subsystem >>> /sys/class/hwmon/hwmon1/device/policy >>> /sys/class/hwmon/hwmon1/device/uevent >>> /sys/class/hwmon/hwmon1/device/passive >>> >>> Is that expected? As for sensors, it *seems* to be bothered to find a >>> device/ folder in /sys/class/hwmon/hwmon1/ w/o no name entry in it. >>> > > I agree. And it should be caused by this commit. > > commit b82715fdd4a5407f56853b24d387d484dd9c3b5b > Author: Eduardo Valentin <eduardo.valentin@ti.com> > Date: Fri Aug 23 17:07:58 2013 -0400 > > drivers: thermal: parent virtual hwmon with thermal zone > > When creating virtual hwmon devices based out of thermal > zone devices, the virtual devices won't have parents. > > This patch changes the code so that the parent of virtual > hwmon devices is the thermal zone device that they are > based of. > > Cc: Zhang Rui <rui.zhang@intel.com> > Cc: linux-pm@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com> > >> >> The 'name' attribute should not be the problem, since there is a 'name' >> attribute in the /sys/class/hwmon/hwmon1/ directory. >> >> Key difference is that there is now a 'device' subdirectory, > > Right. > >> which results >> in different handling by libsensors; > Oh, I'm not aware of this before. > There is no such statement in the comments of hwmon_device_register(), > or anywhere else. > Could you show me some tutorials about how the sysfs I/F misleads > libsensors? > I looked into the libsensors source code. I don't think there is a tutorial, or at least I am not aware of one. Still, I don't entirely understand how the above commit results in what seems to be recursive parents (or, from looking into the code, how that happens in the first place). Guenter > But anyway, I will revert this patch first. > Thanks for reporting the problem, Arnaud! > > thanks, > rui >> the entry is no longer a virtual entry >> but is expected to have a real device attached to it. For this device, >> libsensors tries to scan the 'subsystem' entry which in turn must be well >> defined and known. My suspicion is that the reported subsystem may not be >> recognized by libsensors. > >> >> One question is why there is now a device entry, even though this is still as >> virtual as it was before. You'll have to ask the thermal subsystem maintainers >> for an answer. > >> I am also concerned about the 'hwmon1' subdirectory underneath hwmon1/device; >> that suggests that hwmon1 may be declared to be a child of itself, which would >> obviously not be a good idea. >> >> Also, note that the thermal subsystem creates (or may create) sensor attributes >> after registering the hwmon device, which means you can not rely on the udev >> event that comes with the hwmon device creation and assume that all sensor >> attributes exist at that time. I don't currently know how to handle this situation. >> This is not unique, though; the coretemp driver does the same. Just something >> to keep in mind. >> >> Guenter >> > > > > ^ permalink raw reply [flat|nested] 27+ messages in thread
* [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-21 5:19 ` Guenter Roeck 0 siblings, 0 replies; 27+ messages in thread From: Guenter Roeck @ 2013-10-21 5:19 UTC (permalink / raw) To: linux-arm-kernel On 10/20/2013 07:28 PM, Zhang Rui wrote: > Hi, > > On Sun, 2013-10-20 at 12:23 -0700, Guenter Roeck wrote: >> On 10/20/2013 11:10 AM, Arnaud Ebalard wrote: >>> Hi, >>> >>> With 3.12-rc series, sysfs support for thermal susbsytem (and/or hwmon >>> one) was modified in such a way that sensors utility (current 3.3.4 >>> version with 3.3.4 version of libsensors from lm-sensors package on >>> Debian unstable) does not see the temperature sensor anymore on armada >>> 370 platforms (not tested on others). Additionally, the changes break >>> existing configurations of fancontrol utility, which prevents the >>> fan to be regulated correctly w/o recreating an /etc/fancontrol w/ >>> pwmconfig. >>> >>> Here is what I have on my Armada 370-based system on a 3.11.5: >>> >>> # sensors >>> g762-i2c-0-3e >>> Adapter: mv64xxx_i2c adapter >>> fan1: 2457 RPM (div = 1) >>> >>> armada_thermal-virtual-0 >>> Adapter: Virtual device >>> temp1: +45.7?C >>> >>> And what I get on 3.12-rc6: >>> >>> # sensors >>> g762-i2c-0-3e >>> Adapter: mv64xxx_i2c adapter >>> fan1: 1350 RPM (div = 1) >>> >>> >>> Monitoring what sensors does w/ strace, I started looking at the changes >>> to /sys/class/hwmon/hwmon1/: >>> >>> On 3.11.5: >>> >>> # find /sys/class/hwmon/hwmon1/ >>> /sys/class/hwmon/hwmon1/ >>> /sys/class/hwmon/hwmon1/name >>> /sys/class/hwmon/hwmon1/subsystem >>> /sys/class/hwmon/hwmon1/uevent >>> /sys/class/hwmon/hwmon1/temp1_input >>> >>> On 3.12-rc6: >>> >>> # find /sys/class/hwmon/hwmon1/ >>> /sys/class/hwmon/hwmon1/ >>> /sys/class/hwmon/hwmon1/name >>> /sys/class/hwmon/hwmon1/device >>> /sys/class/hwmon/hwmon1/subsystem >>> /sys/class/hwmon/hwmon1/uevent >>> /sys/class/hwmon/hwmon1/temp1_input >>> >>> # find /sys/class/hwmon/hwmon1/device/ >>> /sys/class/hwmon/hwmon1/device/ >>> /sys/class/hwmon/hwmon1/device/temp >>> /sys/class/hwmon/hwmon1/device/type >>> /sys/class/hwmon/hwmon1/device/hwmon1 >>> /sys/class/hwmon/hwmon1/device/hwmon1/name >>> /sys/class/hwmon/hwmon1/device/hwmon1/device >>> /sys/class/hwmon/hwmon1/device/hwmon1/subsystem >>> /sys/class/hwmon/hwmon1/device/hwmon1/uevent >>> /sys/class/hwmon/hwmon1/device/hwmon1/temp1_input >>> /sys/class/hwmon/hwmon1/device/subsystem >>> /sys/class/hwmon/hwmon1/device/policy >>> /sys/class/hwmon/hwmon1/device/uevent >>> /sys/class/hwmon/hwmon1/device/passive >>> >>> Is that expected? As for sensors, it *seems* to be bothered to find a >>> device/ folder in /sys/class/hwmon/hwmon1/ w/o no name entry in it. >>> > > I agree. And it should be caused by this commit. > > commit b82715fdd4a5407f56853b24d387d484dd9c3b5b > Author: Eduardo Valentin <eduardo.valentin@ti.com> > Date: Fri Aug 23 17:07:58 2013 -0400 > > drivers: thermal: parent virtual hwmon with thermal zone > > When creating virtual hwmon devices based out of thermal > zone devices, the virtual devices won't have parents. > > This patch changes the code so that the parent of virtual > hwmon devices is the thermal zone device that they are > based of. > > Cc: Zhang Rui <rui.zhang@intel.com> > Cc: linux-pm at vger.kernel.org > Cc: linux-kernel at vger.kernel.org > Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com> > >> >> The 'name' attribute should not be the problem, since there is a 'name' >> attribute in the /sys/class/hwmon/hwmon1/ directory. >> >> Key difference is that there is now a 'device' subdirectory, > > Right. > >> which results >> in different handling by libsensors; > Oh, I'm not aware of this before. > There is no such statement in the comments of hwmon_device_register(), > or anywhere else. > Could you show me some tutorials about how the sysfs I/F misleads > libsensors? > I looked into the libsensors source code. I don't think there is a tutorial, or at least I am not aware of one. Still, I don't entirely understand how the above commit results in what seems to be recursive parents (or, from looking into the code, how that happens in the first place). Guenter > But anyway, I will revert this patch first. > Thanks for reporting the problem, Arnaud! > > thanks, > rui >> the entry is no longer a virtual entry >> but is expected to have a real device attached to it. For this device, >> libsensors tries to scan the 'subsystem' entry which in turn must be well >> defined and known. My suspicion is that the reported subsystem may not be >> recognized by libsensors. > >> >> One question is why there is now a device entry, even though this is still as >> virtual as it was before. You'll have to ask the thermal subsystem maintainers >> for an answer. > >> I am also concerned about the 'hwmon1' subdirectory underneath hwmon1/device; >> that suggests that hwmon1 may be declared to be a child of itself, which would >> obviously not be a good idea. >> >> Also, note that the thermal subsystem creates (or may create) sensor attributes >> after registering the hwmon device, which means you can not rely on the udev >> event that comes with the hwmon device creation and assume that all sensor >> attributes exist at that time. I don't currently know how to handle this situation. >> This is not unique, though; the coretemp driver does the same. Just something >> to keep in mind. >> >> Guenter >> > > > > ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [lm-sensors] [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-21 5:19 ` Guenter Roeck 0 siblings, 0 replies; 27+ messages in thread From: Guenter Roeck @ 2013-10-21 5:19 UTC (permalink / raw) To: Zhang Rui Cc: Arnaud Ebalard, Eduardo Valentin, Jean Delvare, linux-pm, lm-sensors, linux-arm-kernel, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Jason Cooper T24gMTAvMjAvMjAxMyAwNzoyOCBQTSwgWmhhbmcgUnVpIHdyb3RlOgo+IEhpLAo+Cj4gT24gU3Vu LCAyMDEzLTEwLTIwIGF0IDEyOjIzIC0wNzAwLCBHdWVudGVyIFJvZWNrIHdyb3RlOgo+PiBPbiAx MC8yMC8yMDEzIDExOjEwIEFNLCBBcm5hdWQgRWJhbGFyZCB3cm90ZToKPj4+IEhpLAo+Pj4KPj4+ IFdpdGggMy4xMi1yYyBzZXJpZXMsIHN5c2ZzIHN1cHBvcnQgZm9yIHRoZXJtYWwgc3VzYnN5dGVt IChhbmQvb3IgaHdtb24KPj4+IG9uZSkgd2FzIG1vZGlmaWVkIGluIHN1Y2ggYSB3YXkgdGhhdCBz ZW5zb3JzIHV0aWxpdHkgKGN1cnJlbnQgMy4zLjQKPj4+IHZlcnNpb24gd2l0aCAzLjMuNCB2ZXJz aW9uIG9mIGxpYnNlbnNvcnMgZnJvbSBsbS1zZW5zb3JzIHBhY2thZ2Ugb24KPj4+IERlYmlhbiB1 bnN0YWJsZSkgZG9lcyBub3Qgc2VlIHRoZSB0ZW1wZXJhdHVyZSBzZW5zb3IgYW55bW9yZSBvbiBh cm1hZGEKPj4+IDM3MCBwbGF0Zm9ybXMgKG5vdCB0ZXN0ZWQgb24gb3RoZXJzKS4gQWRkaXRpb25h bGx5LCB0aGUgY2hhbmdlcyBicmVhawo+Pj4gZXhpc3RpbmcgY29uZmlndXJhdGlvbnMgb2YgZmFu Y29udHJvbCB1dGlsaXR5LCB3aGljaCBwcmV2ZW50cyB0aGUKPj4+IGZhbiB0byBiZSByZWd1bGF0 ZWQgY29ycmVjdGx5IHcvbyByZWNyZWF0aW5nIGFuIC9ldGMvZmFuY29udHJvbCB3Lwo+Pj4gcHdt Y29uZmlnLgo+Pj4KPj4+IEhlcmUgaXMgd2hhdCBJIGhhdmUgb24gbXkgQXJtYWRhIDM3MC1iYXNl ZCBzeXN0ZW0gb24gYSAzLjExLjU6Cj4+Pgo+Pj4gIyBzZW5zb3JzCj4+PiBnNzYyLWkyYy0wLTNl Cj4+PiBBZGFwdGVyOiBtdjY0eHh4X2kyYyBhZGFwdGVyCj4+PiBmYW4xOiAgICAgICAgMjQ1NyBS UE0gIChkaXYgPSAxKQo+Pj4KPj4+IGFybWFkYV90aGVybWFsLXZpcnR1YWwtMAo+Pj4gQWRhcHRl cjogVmlydHVhbCBkZXZpY2UKPj4+IHRlbXAxOiAgICAgICAgKzQ1LjfCsEMKPj4+Cj4+PiBBbmQg d2hhdCBJIGdldCBvbiAzLjEyLXJjNjoKPj4+Cj4+PiAjIHNlbnNvcnMKPj4+IGc3NjItaTJjLTAt M2UKPj4+IEFkYXB0ZXI6IG12NjR4eHhfaTJjIGFkYXB0ZXIKPj4+IGZhbjE6ICAgICAgICAxMzUw IFJQTSAgKGRpdiA9IDEpCj4+Pgo+Pj4KPj4+IE1vbml0b3Jpbmcgd2hhdCBzZW5zb3JzIGRvZXMg dy8gc3RyYWNlLCBJIHN0YXJ0ZWQgbG9va2luZyBhdCB0aGUgY2hhbmdlcwo+Pj4gdG8gL3N5cy9j bGFzcy9od21vbi9od21vbjEvOgo+Pj4KPj4+IE9uIDMuMTEuNToKPj4+Cj4+PiAjIGZpbmQgL3N5 cy9jbGFzcy9od21vbi9od21vbjEvCj4+PiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS8KPj4+IC9z eXMvY2xhc3MvaHdtb24vaHdtb24xL25hbWUKPj4+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL3N1 YnN5c3RlbQo+Pj4gL3N5cy9jbGFzcy9od21vbi9od21vbjEvdWV2ZW50Cj4+PiAvc3lzL2NsYXNz L2h3bW9uL2h3bW9uMS90ZW1wMV9pbnB1dAo+Pj4KPj4+IE9uIDMuMTItcmM2Ogo+Pj4KPj4+ICMg ZmluZCAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS8KPj4+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24x Lwo+Pj4gL3N5cy9jbGFzcy9od21vbi9od21vbjEvbmFtZQo+Pj4gL3N5cy9jbGFzcy9od21vbi9o d21vbjEvZGV2aWNlCj4+PiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9zdWJzeXN0ZW0KPj4+IC9z eXMvY2xhc3MvaHdtb24vaHdtb24xL3VldmVudAo+Pj4gL3N5cy9jbGFzcy9od21vbi9od21vbjEv dGVtcDFfaW5wdXQKPj4+Cj4+PiAjIGZpbmQgL3N5cy9jbGFzcy9od21vbi9od21vbjEvZGV2aWNl Lwo+Pj4gL3N5cy9jbGFzcy9od21vbi9od21vbjEvZGV2aWNlLwo+Pj4gL3N5cy9jbGFzcy9od21v bi9od21vbjEvZGV2aWNlL3RlbXAKPj4+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL2RldmljZS90 eXBlCj4+PiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9kZXZpY2UvaHdtb24xCj4+PiAvc3lzL2Ns YXNzL2h3bW9uL2h3bW9uMS9kZXZpY2UvaHdtb24xL25hbWUKPj4+IC9zeXMvY2xhc3MvaHdtb24v aHdtb24xL2RldmljZS9od21vbjEvZGV2aWNlCj4+PiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9k ZXZpY2UvaHdtb24xL3N1YnN5c3RlbQo+Pj4gL3N5cy9jbGFzcy9od21vbi9od21vbjEvZGV2aWNl L2h3bW9uMS91ZXZlbnQKPj4+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL2RldmljZS9od21vbjEv dGVtcDFfaW5wdXQKPj4+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL2RldmljZS9zdWJzeXN0ZW0K Pj4+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL2RldmljZS9wb2xpY3kKPj4+IC9zeXMvY2xhc3Mv aHdtb24vaHdtb24xL2RldmljZS91ZXZlbnQKPj4+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL2Rl dmljZS9wYXNzaXZlCj4+Pgo+Pj4gSXMgdGhhdCBleHBlY3RlZD8gQXMgZm9yIHNlbnNvcnMsIGl0 ICpzZWVtcyogdG8gYmUgYm90aGVyZWQgdG8gZmluZCBhCj4+PiBkZXZpY2UvIGZvbGRlciBpbiAv c3lzL2NsYXNzL2h3bW9uL2h3bW9uMS8gdy9vIG5vIG5hbWUgZW50cnkgaW4gaXQuCj4+Pgo+Cj4g SSBhZ3JlZS4gQW5kIGl0IHNob3VsZCBiZSBjYXVzZWQgYnkgdGhpcyBjb21taXQuCj4KPiBjb21t aXQgYjgyNzE1ZmRkNGE1NDA3ZjU2ODUzYjI0ZDM4N2Q0ODRkZDljM2I1Ygo+IEF1dGhvcjogRWR1 YXJkbyBWYWxlbnRpbiA8ZWR1YXJkby52YWxlbnRpbkB0aS5jb20+Cj4gRGF0ZTogICBGcmkgQXVn IDIzIDE3OjA3OjU4IDIwMTMgLTA0MDAKPgo+ICAgICAgZHJpdmVyczogdGhlcm1hbDogcGFyZW50 IHZpcnR1YWwgaHdtb24gd2l0aCB0aGVybWFsIHpvbmUKPgo+ICAgICAgV2hlbiAgY3JlYXRpbmcg dmlydHVhbCBod21vbiBkZXZpY2VzIGJhc2VkIG91dCBvZiB0aGVybWFsCj4gICAgICB6b25lIGRl dmljZXMsIHRoZSB2aXJ0dWFsIGRldmljZXMgd29uJ3QgaGF2ZSBwYXJlbnRzLgo+Cj4gICAgICBU aGlzIHBhdGNoIGNoYW5nZXMgdGhlIGNvZGUgc28gdGhhdCB0aGUgcGFyZW50IG9mIHZpcnR1YWwK PiAgICAgIGh3bW9uIGRldmljZXMgaXMgdGhlIHRoZXJtYWwgem9uZSBkZXZpY2UgdGhhdCB0aGV5 IGFyZQo+ICAgICAgYmFzZWQgb2YuCj4KPiAgICAgIENjOiBaaGFuZyBSdWkgPHJ1aS56aGFuZ0Bp bnRlbC5jb20+Cj4gICAgICBDYzogbGludXgtcG1Admdlci5rZXJuZWwub3JnCj4gICAgICBDYzog bGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwo+ICAgICAgU2lnbmVkLW9mZi1ieTogRWR1YXJk byBWYWxlbnRpbiA8ZWR1YXJkby52YWxlbnRpbkB0aS5jb20+Cj4KPj4KPj4gVGhlICduYW1lJyBh dHRyaWJ1dGUgc2hvdWxkIG5vdCBiZSB0aGUgcHJvYmxlbSwgc2luY2UgdGhlcmUgaXMgYSAnbmFt ZScKPj4gYXR0cmlidXRlIGluIHRoZSAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS8gZGlyZWN0b3J5 Lgo+Pgo+PiBLZXkgZGlmZmVyZW5jZSBpcyB0aGF0IHRoZXJlIGlzIG5vdyBhICdkZXZpY2UnIHN1 YmRpcmVjdG9yeSwKPgo+IFJpZ2h0Lgo+Cj4+ICAgd2hpY2ggcmVzdWx0cwo+PiBpbiBkaWZmZXJl bnQgaGFuZGxpbmcgYnkgbGlic2Vuc29yczsKPiBPaCwgSSdtIG5vdCBhd2FyZSBvZiB0aGlzIGJl Zm9yZS4KPiBUaGVyZSBpcyBubyBzdWNoIHN0YXRlbWVudCBpbiB0aGUgY29tbWVudHMgb2YgaHdt b25fZGV2aWNlX3JlZ2lzdGVyKCksCj4gb3IgYW55d2hlcmUgZWxzZS4KPiBDb3VsZCB5b3Ugc2hv dyBtZSBzb21lIHR1dG9yaWFscyBhYm91dCBob3cgdGhlIHN5c2ZzIEkvRiBtaXNsZWFkcwo+IGxp YnNlbnNvcnM/Cj4KCkkgbG9va2VkIGludG8gdGhlIGxpYnNlbnNvcnMgc291cmNlIGNvZGUuIEkg ZG9uJ3QgdGhpbmsgdGhlcmUgaXMgYSB0dXRvcmlhbCwKb3IgYXQgbGVhc3QgSSBhbSBub3QgYXdh cmUgb2Ygb25lLgoKU3RpbGwsIEkgZG9uJ3QgZW50aXJlbHkgdW5kZXJzdGFuZCBob3cgdGhlIGFi b3ZlIGNvbW1pdCByZXN1bHRzIGluIHdoYXQgc2VlbXMKdG8gYmUgcmVjdXJzaXZlIHBhcmVudHMg KG9yLCBmcm9tIGxvb2tpbmcgaW50byB0aGUgY29kZSwgaG93IHRoYXQgaGFwcGVucyBpbgp0aGUg Zmlyc3QgcGxhY2UpLgoKR3VlbnRlcgoKPiBCdXQgYW55d2F5LCBJIHdpbGwgcmV2ZXJ0IHRoaXMg cGF0Y2ggZmlyc3QuCj4gVGhhbmtzIGZvciByZXBvcnRpbmcgdGhlIHByb2JsZW0sIEFybmF1ZCEK Pgo+IHRoYW5rcywKPiBydWkKPj4gICB0aGUgZW50cnkgaXMgbm8gbG9uZ2VyIGEgdmlydHVhbCBl bnRyeQo+PiBidXQgaXMgZXhwZWN0ZWQgdG8gaGF2ZSBhIHJlYWwgZGV2aWNlIGF0dGFjaGVkIHRv IGl0LiBGb3IgdGhpcyBkZXZpY2UsCj4+IGxpYnNlbnNvcnMgdHJpZXMgdG8gc2NhbiB0aGUgJ3N1 YnN5c3RlbScgZW50cnkgd2hpY2ggaW4gdHVybiBtdXN0IGJlIHdlbGwKPj4gZGVmaW5lZCBhbmQg a25vd24uIE15IHN1c3BpY2lvbiBpcyB0aGF0IHRoZSByZXBvcnRlZCBzdWJzeXN0ZW0gbWF5IG5v dCBiZQo+PiByZWNvZ25pemVkIGJ5IGxpYnNlbnNvcnMuCj4KPj4KPj4gT25lIHF1ZXN0aW9uIGlz IHdoeSB0aGVyZSBpcyBub3cgYSBkZXZpY2UgZW50cnksIGV2ZW4gdGhvdWdoIHRoaXMgaXMgc3Rp bGwgYXMKPj4gdmlydHVhbCBhcyBpdCB3YXMgYmVmb3JlLiBZb3UnbGwgaGF2ZSB0byBhc2sgdGhl IHRoZXJtYWwgc3Vic3lzdGVtIG1haW50YWluZXJzCj4+IGZvciBhbiBhbnN3ZXIuCj4KPj4gSSBh bSBhbHNvIGNvbmNlcm5lZCBhYm91dCB0aGUgJ2h3bW9uMScgc3ViZGlyZWN0b3J5IHVuZGVybmVh dGggaHdtb24xL2RldmljZTsKPj4gdGhhdCBzdWdnZXN0cyB0aGF0IGh3bW9uMSBtYXkgYmUgZGVj bGFyZWQgdG8gYmUgYSBjaGlsZCBvZiBpdHNlbGYsIHdoaWNoIHdvdWxkCj4+IG9idmlvdXNseSBu b3QgYmUgYSBnb29kIGlkZWEuCj4+Cj4+IEFsc28sIG5vdGUgdGhhdCB0aGUgdGhlcm1hbCBzdWJz eXN0ZW0gY3JlYXRlcyAob3IgbWF5IGNyZWF0ZSkgc2Vuc29yIGF0dHJpYnV0ZXMKPj4gYWZ0ZXIg cmVnaXN0ZXJpbmcgdGhlIGh3bW9uIGRldmljZSwgd2hpY2ggbWVhbnMgeW91IGNhbiBub3QgcmVs eSBvbiB0aGUgdWRldgo+PiBldmVudCB0aGF0IGNvbWVzIHdpdGggdGhlIGh3bW9uIGRldmljZSBj cmVhdGlvbiBhbmQgYXNzdW1lIHRoYXQgYWxsIHNlbnNvcgo+PiBhdHRyaWJ1dGVzIGV4aXN0IGF0 IHRoYXQgdGltZS4gSSBkb24ndCBjdXJyZW50bHkga25vdyBob3cgdG8gaGFuZGxlIHRoaXMgc2l0 dWF0aW9uLgo+PiBUaGlzIGlzIG5vdCB1bmlxdWUsIHRob3VnaDsgdGhlIGNvcmV0ZW1wIGRyaXZl ciBkb2VzIHRoZSBzYW1lLiBKdXN0IHNvbWV0aGluZwo+PiB0byBrZWVwIGluIG1pbmQuCj4+Cj4+ IEd1ZW50ZXIKPj4KPgo+Cj4KPgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmxtLXNlbnNvcnMgbWFpbGluZyBsaXN0CmxtLXNlbnNvcnNAbG0tc2Vuc29y cy5vcmcKaHR0cDovL2xpc3RzLmxtLXNlbnNvcnMub3JnL21haWxtYW4vbGlzdGluZm8vbG0tc2Vu c29ycw= ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series 2013-10-21 2:28 ` [lm-sensors] " Zhang Rui (?) @ 2013-10-21 18:49 ` Arnaud Ebalard -1 siblings, 0 replies; 27+ messages in thread From: Arnaud Ebalard @ 2013-10-21 18:49 UTC (permalink / raw) To: Zhang Rui Cc: Guenter Roeck, Eduardo Valentin, Jean Delvare, linux-pm, lm-sensors, linux-arm-kernel, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Jason Cooper Hi, Zhang Rui <rui.zhang@intel.com> writes: >> > Is that expected? As for sensors, it *seems* to be bothered to find a >> > device/ folder in /sys/class/hwmon/hwmon1/ w/o no name entry in it. >> > > > I agree. And it should be caused by this commit. > > commit b82715fdd4a5407f56853b24d387d484dd9c3b5b > Author: Eduardo Valentin <eduardo.valentin@ti.com> > Date: Fri Aug 23 17:07:58 2013 -0400 > > drivers: thermal: parent virtual hwmon with thermal zone FWIW, the one-liner reverting this commit in your tree (6ddcb7e635 Revert "drivers: thermal: parent virtual hwmon with thermal zone") does indeed makes sensors and fancontrol happy again. Cheers, a+ ^ permalink raw reply [flat|nested] 27+ messages in thread
* [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-21 18:49 ` Arnaud Ebalard 0 siblings, 0 replies; 27+ messages in thread From: Arnaud Ebalard @ 2013-10-21 18:49 UTC (permalink / raw) To: linux-arm-kernel Hi, Zhang Rui <rui.zhang@intel.com> writes: >> > Is that expected? As for sensors, it *seems* to be bothered to find a >> > device/ folder in /sys/class/hwmon/hwmon1/ w/o no name entry in it. >> > > > I agree. And it should be caused by this commit. > > commit b82715fdd4a5407f56853b24d387d484dd9c3b5b > Author: Eduardo Valentin <eduardo.valentin@ti.com> > Date: Fri Aug 23 17:07:58 2013 -0400 > > drivers: thermal: parent virtual hwmon with thermal zone FWIW, the one-liner reverting this commit in your tree (6ddcb7e635 Revert "drivers: thermal: parent virtual hwmon with thermal zone") does indeed makes sensors and fancontrol happy again. Cheers, a+ ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [lm-sensors] [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-21 18:49 ` Arnaud Ebalard 0 siblings, 0 replies; 27+ messages in thread From: Arnaud Ebalard @ 2013-10-21 18:49 UTC (permalink / raw) To: Zhang Rui Cc: Guenter Roeck, Eduardo Valentin, Jean Delvare, linux-pm, lm-sensors, linux-arm-kernel, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Jason Cooper Hi, Zhang Rui <rui.zhang@intel.com> writes: >> > Is that expected? As for sensors, it *seems* to be bothered to find a >> > device/ folder in /sys/class/hwmon/hwmon1/ w/o no name entry in it. >> > > > I agree. And it should be caused by this commit. > > commit b82715fdd4a5407f56853b24d387d484dd9c3b5b > Author: Eduardo Valentin <eduardo.valentin@ti.com> > Date: Fri Aug 23 17:07:58 2013 -0400 > > drivers: thermal: parent virtual hwmon with thermal zone FWIW, the one-liner reverting this commit in your tree (6ddcb7e635 Revert "drivers: thermal: parent virtual hwmon with thermal zone") does indeed makes sensors and fancontrol happy again. Cheers, a+ _______________________________________________ lm-sensors mailing list lm-sensors@lm-sensors.org http://lists.lm-sensors.org/mailman/listinfo/lm-sensors ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series 2013-10-20 18:10 ` [lm-sensors] " Arnaud Ebalard (?) @ 2013-10-21 7:17 ` Jean Delvare -1 siblings, 0 replies; 27+ messages in thread From: Jean Delvare @ 2013-10-21 7:17 UTC (permalink / raw) To: Arnaud Ebalard Cc: Eduardo Valentin, Zhang Rui, Guenter Roeck, linux-pm, lm-sensors, linux-arm-kernel, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Jason Cooper Hi Arnaud, On Sun, 20 Oct 2013 20:10:41 +0200, Arnaud Ebalard wrote: > With 3.12-rc series, sysfs support for thermal susbsytem (and/or hwmon > one) was modified in such a way that sensors utility (current 3.3.4 > version with 3.3.4 version of libsensors from lm-sensors package on > Debian unstable) does not see the temperature sensor anymore on armada > 370 platforms (not tested on others). Additionally, the changes break > existing configurations of fancontrol utility, which prevents the > fan to be regulated correctly w/o recreating an /etc/fancontrol w/ > pwmconfig. > > Here is what I have on my Armada 370-based system on a 3.11.5: > > # sensors > g762-i2c-0-3e > Adapter: mv64xxx_i2c adapter > fan1: 2457 RPM (div = 1) > > armada_thermal-virtual-0 > Adapter: Virtual device > temp1: +45.7°C > > And what I get on 3.12-rc6: > > # sensors > g762-i2c-0-3e > Adapter: mv64xxx_i2c adapter > fan1: 1350 RPM (div = 1) > > > Monitoring what sensors does w/ strace, I started looking at the changes > to /sys/class/hwmon/hwmon1/: > > On 3.11.5: > > # find /sys/class/hwmon/hwmon1/ > /sys/class/hwmon/hwmon1/ > /sys/class/hwmon/hwmon1/name > /sys/class/hwmon/hwmon1/subsystem > /sys/class/hwmon/hwmon1/uevent > /sys/class/hwmon/hwmon1/temp1_input > > On 3.12-rc6: > > # find /sys/class/hwmon/hwmon1/ > /sys/class/hwmon/hwmon1/ > /sys/class/hwmon/hwmon1/name > /sys/class/hwmon/hwmon1/device > /sys/class/hwmon/hwmon1/subsystem > /sys/class/hwmon/hwmon1/uevent > /sys/class/hwmon/hwmon1/temp1_input > > # find /sys/class/hwmon/hwmon1/device/ > /sys/class/hwmon/hwmon1/device/ > /sys/class/hwmon/hwmon1/device/temp > /sys/class/hwmon/hwmon1/device/type > /sys/class/hwmon/hwmon1/device/hwmon1 > /sys/class/hwmon/hwmon1/device/hwmon1/name > /sys/class/hwmon/hwmon1/device/hwmon1/device > /sys/class/hwmon/hwmon1/device/hwmon1/subsystem > /sys/class/hwmon/hwmon1/device/hwmon1/uevent > /sys/class/hwmon/hwmon1/device/hwmon1/temp1_input > /sys/class/hwmon/hwmon1/device/subsystem > /sys/class/hwmon/hwmon1/device/policy > /sys/class/hwmon/hwmon1/device/uevent > /sys/class/hwmon/hwmon1/device/passive Can you please share the full output of "strace sensors"? This will help me understand which exact code paths are taken in libsensors. > Is that expected? As for sensors, it *seems* to be bothered to find a > device/ folder in /sys/class/hwmon/hwmon1/ w/o no name entry in it. It should be able to cope with this just fine. The radeon driver does exactly this and libsensors has no problem with it. -- Jean Delvare ^ permalink raw reply [flat|nested] 27+ messages in thread
* [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-21 7:17 ` Jean Delvare 0 siblings, 0 replies; 27+ messages in thread From: Jean Delvare @ 2013-10-21 7:17 UTC (permalink / raw) To: linux-arm-kernel Hi Arnaud, On Sun, 20 Oct 2013 20:10:41 +0200, Arnaud Ebalard wrote: > With 3.12-rc series, sysfs support for thermal susbsytem (and/or hwmon > one) was modified in such a way that sensors utility (current 3.3.4 > version with 3.3.4 version of libsensors from lm-sensors package on > Debian unstable) does not see the temperature sensor anymore on armada > 370 platforms (not tested on others). Additionally, the changes break > existing configurations of fancontrol utility, which prevents the > fan to be regulated correctly w/o recreating an /etc/fancontrol w/ > pwmconfig. > > Here is what I have on my Armada 370-based system on a 3.11.5: > > # sensors > g762-i2c-0-3e > Adapter: mv64xxx_i2c adapter > fan1: 2457 RPM (div = 1) > > armada_thermal-virtual-0 > Adapter: Virtual device > temp1: +45.7?C > > And what I get on 3.12-rc6: > > # sensors > g762-i2c-0-3e > Adapter: mv64xxx_i2c adapter > fan1: 1350 RPM (div = 1) > > > Monitoring what sensors does w/ strace, I started looking at the changes > to /sys/class/hwmon/hwmon1/: > > On 3.11.5: > > # find /sys/class/hwmon/hwmon1/ > /sys/class/hwmon/hwmon1/ > /sys/class/hwmon/hwmon1/name > /sys/class/hwmon/hwmon1/subsystem > /sys/class/hwmon/hwmon1/uevent > /sys/class/hwmon/hwmon1/temp1_input > > On 3.12-rc6: > > # find /sys/class/hwmon/hwmon1/ > /sys/class/hwmon/hwmon1/ > /sys/class/hwmon/hwmon1/name > /sys/class/hwmon/hwmon1/device > /sys/class/hwmon/hwmon1/subsystem > /sys/class/hwmon/hwmon1/uevent > /sys/class/hwmon/hwmon1/temp1_input > > # find /sys/class/hwmon/hwmon1/device/ > /sys/class/hwmon/hwmon1/device/ > /sys/class/hwmon/hwmon1/device/temp > /sys/class/hwmon/hwmon1/device/type > /sys/class/hwmon/hwmon1/device/hwmon1 > /sys/class/hwmon/hwmon1/device/hwmon1/name > /sys/class/hwmon/hwmon1/device/hwmon1/device > /sys/class/hwmon/hwmon1/device/hwmon1/subsystem > /sys/class/hwmon/hwmon1/device/hwmon1/uevent > /sys/class/hwmon/hwmon1/device/hwmon1/temp1_input > /sys/class/hwmon/hwmon1/device/subsystem > /sys/class/hwmon/hwmon1/device/policy > /sys/class/hwmon/hwmon1/device/uevent > /sys/class/hwmon/hwmon1/device/passive Can you please share the full output of "strace sensors"? This will help me understand which exact code paths are taken in libsensors. > Is that expected? As for sensors, it *seems* to be bothered to find a > device/ folder in /sys/class/hwmon/hwmon1/ w/o no name entry in it. It should be able to cope with this just fine. The radeon driver does exactly this and libsensors has no problem with it. -- Jean Delvare ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [lm-sensors] [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-21 7:17 ` Jean Delvare 0 siblings, 0 replies; 27+ messages in thread From: Jean Delvare @ 2013-10-21 7:17 UTC (permalink / raw) To: Arnaud Ebalard Cc: Eduardo Valentin, Zhang Rui, Guenter Roeck, linux-pm, lm-sensors, linux-arm-kernel, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Jason Cooper SGkgQXJuYXVkLAoKT24gU3VuLCAyMCBPY3QgMjAxMyAyMDoxMDo0MSArMDIwMCwgQXJuYXVkIEVi YWxhcmQgd3JvdGU6Cj4gV2l0aCAzLjEyLXJjIHNlcmllcywgc3lzZnMgc3VwcG9ydCBmb3IgdGhl cm1hbCBzdXNic3l0ZW0gKGFuZC9vciBod21vbgo+IG9uZSkgd2FzIG1vZGlmaWVkIGluIHN1Y2gg YSB3YXkgdGhhdCBzZW5zb3JzIHV0aWxpdHkgKGN1cnJlbnQgMy4zLjQKPiB2ZXJzaW9uIHdpdGgg My4zLjQgdmVyc2lvbiBvZiBsaWJzZW5zb3JzIGZyb20gbG0tc2Vuc29ycyBwYWNrYWdlIG9uCj4g RGViaWFuIHVuc3RhYmxlKSBkb2VzIG5vdCBzZWUgdGhlIHRlbXBlcmF0dXJlIHNlbnNvciBhbnlt b3JlIG9uIGFybWFkYQo+IDM3MCBwbGF0Zm9ybXMgKG5vdCB0ZXN0ZWQgb24gb3RoZXJzKS4gQWRk aXRpb25hbGx5LCB0aGUgY2hhbmdlcyBicmVhawo+IGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zIG9m IGZhbmNvbnRyb2wgdXRpbGl0eSwgd2hpY2ggcHJldmVudHMgdGhlIAo+IGZhbiB0byBiZSByZWd1 bGF0ZWQgY29ycmVjdGx5IHcvbyByZWNyZWF0aW5nIGFuIC9ldGMvZmFuY29udHJvbCB3Lwo+IHB3 bWNvbmZpZy4KPiAKPiBIZXJlIGlzIHdoYXQgSSBoYXZlIG9uIG15IEFybWFkYSAzNzAtYmFzZWQg c3lzdGVtIG9uIGEgMy4xMS41Ogo+IAo+ICMgc2Vuc29ycwo+IGc3NjItaTJjLTAtM2UKPiBBZGFw dGVyOiBtdjY0eHh4X2kyYyBhZGFwdGVyCj4gZmFuMTogICAgICAgIDI0NTcgUlBNICAoZGl2ID0g MSkKPiAKPiBhcm1hZGFfdGhlcm1hbC12aXJ0dWFsLTAKPiBBZGFwdGVyOiBWaXJ0dWFsIGRldmlj ZQo+IHRlbXAxOiAgICAgICAgKzQ1LjfCsEMgIAo+IAo+IEFuZCB3aGF0IEkgZ2V0IG9uIDMuMTIt cmM2Ogo+IAo+ICMgc2Vuc29ycwo+IGc3NjItaTJjLTAtM2UKPiBBZGFwdGVyOiBtdjY0eHh4X2ky YyBhZGFwdGVyCj4gZmFuMTogICAgICAgIDEzNTAgUlBNICAoZGl2ID0gMSkKPiAKPiAKPiBNb25p dG9yaW5nIHdoYXQgc2Vuc29ycyBkb2VzIHcvIHN0cmFjZSwgSSBzdGFydGVkIGxvb2tpbmcgYXQg dGhlIGNoYW5nZXMKPiB0byAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS86Cj4gCj4gT24gMy4xMS41 Ogo+IAo+ICMgZmluZCAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS8KPiAvc3lzL2NsYXNzL2h3bW9u L2h3bW9uMS8KPiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9uYW1lCj4gL3N5cy9jbGFzcy9od21v bi9od21vbjEvc3Vic3lzdGVtCj4gL3N5cy9jbGFzcy9od21vbi9od21vbjEvdWV2ZW50Cj4gL3N5 cy9jbGFzcy9od21vbi9od21vbjEvdGVtcDFfaW5wdXQKPiAKPiBPbiAzLjEyLXJjNjoKPiAKPiAj IGZpbmQgL3N5cy9jbGFzcy9od21vbi9od21vbjEvCj4gL3N5cy9jbGFzcy9od21vbi9od21vbjEv Cj4gL3N5cy9jbGFzcy9od21vbi9od21vbjEvbmFtZQo+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24x L2RldmljZQo+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL3N1YnN5c3RlbQo+IC9zeXMvY2xhc3Mv aHdtb24vaHdtb24xL3VldmVudAo+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL3RlbXAxX2lucHV0 Cj4gCj4gIyBmaW5kIC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL2RldmljZS8KPiAvc3lzL2NsYXNz L2h3bW9uL2h3bW9uMS9kZXZpY2UvCj4gL3N5cy9jbGFzcy9od21vbi9od21vbjEvZGV2aWNlL3Rl bXAKPiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9kZXZpY2UvdHlwZQo+IC9zeXMvY2xhc3MvaHdt b24vaHdtb24xL2RldmljZS9od21vbjEKPiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9kZXZpY2Uv aHdtb24xL25hbWUKPiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9kZXZpY2UvaHdtb24xL2Rldmlj ZQo+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL2RldmljZS9od21vbjEvc3Vic3lzdGVtCj4gL3N5 cy9jbGFzcy9od21vbi9od21vbjEvZGV2aWNlL2h3bW9uMS91ZXZlbnQKPiAvc3lzL2NsYXNzL2h3 bW9uL2h3bW9uMS9kZXZpY2UvaHdtb24xL3RlbXAxX2lucHV0Cj4gL3N5cy9jbGFzcy9od21vbi9o d21vbjEvZGV2aWNlL3N1YnN5c3RlbQo+IC9zeXMvY2xhc3MvaHdtb24vaHdtb24xL2RldmljZS9w b2xpY3kKPiAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9kZXZpY2UvdWV2ZW50Cj4gL3N5cy9jbGFz cy9od21vbi9od21vbjEvZGV2aWNlL3Bhc3NpdmUKCkNhbiB5b3UgcGxlYXNlIHNoYXJlIHRoZSBm dWxsIG91dHB1dCBvZiAic3RyYWNlIHNlbnNvcnMiPyBUaGlzIHdpbGwKaGVscCBtZSB1bmRlcnN0 YW5kIHdoaWNoIGV4YWN0IGNvZGUgcGF0aHMgYXJlIHRha2VuIGluIGxpYnNlbnNvcnMuCgo+IElz IHRoYXQgZXhwZWN0ZWQ/IEFzIGZvciBzZW5zb3JzLCBpdCAqc2VlbXMqIHRvIGJlIGJvdGhlcmVk IHRvIGZpbmQgYQo+IGRldmljZS8gZm9sZGVyIGluIC9zeXMvY2xhc3MvaHdtb24vaHdtb24xLyB3 L28gbm8gbmFtZSBlbnRyeSBpbiBpdC4KCkl0IHNob3VsZCBiZSBhYmxlIHRvIGNvcGUgd2l0aCB0 aGlzIGp1c3QgZmluZS4gVGhlIHJhZGVvbiBkcml2ZXIgZG9lcwpleGFjdGx5IHRoaXMgYW5kIGxp YnNlbnNvcnMgaGFzIG5vIHByb2JsZW0gd2l0aCBpdC4gCgotLSAKSmVhbiBEZWx2YXJlCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsbS1zZW5zb3JzIG1h aWxpbmcgbGlzdApsbS1zZW5zb3JzQGxtLXNlbnNvcnMub3JnCmh0dHA6Ly9saXN0cy5sbS1zZW5z b3JzLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xtLXNlbnNvcnM ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series 2013-10-21 7:17 ` [lm-sensors] " Jean Delvare (?) @ 2013-10-21 15:16 ` Guenter Roeck -1 siblings, 0 replies; 27+ messages in thread From: Guenter Roeck @ 2013-10-21 15:16 UTC (permalink / raw) To: Jean Delvare Cc: Arnaud Ebalard, Eduardo Valentin, Zhang Rui, linux-pm, lm-sensors, linux-arm-kernel, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Jason Cooper On Mon, Oct 21, 2013 at 09:17:39AM +0200, Jean Delvare wrote: > Hi Arnaud, > > On Sun, 20 Oct 2013 20:10:41 +0200, Arnaud Ebalard wrote: > > With 3.12-rc series, sysfs support for thermal susbsytem (and/or hwmon > > one) was modified in such a way that sensors utility (current 3.3.4 > > version with 3.3.4 version of libsensors from lm-sensors package on > > Debian unstable) does not see the temperature sensor anymore on armada > > 370 platforms (not tested on others). Additionally, the changes break > > existing configurations of fancontrol utility, which prevents the > > fan to be regulated correctly w/o recreating an /etc/fancontrol w/ > > pwmconfig. > > > > Here is what I have on my Armada 370-based system on a 3.11.5: > > > > # sensors > > g762-i2c-0-3e > > Adapter: mv64xxx_i2c adapter > > fan1: 2457 RPM (div = 1) > > > > armada_thermal-virtual-0 > > Adapter: Virtual device > > temp1: +45.7°C > > > > And what I get on 3.12-rc6: > > > > # sensors > > g762-i2c-0-3e > > Adapter: mv64xxx_i2c adapter > > fan1: 1350 RPM (div = 1) > > > > > > Monitoring what sensors does w/ strace, I started looking at the changes > > to /sys/class/hwmon/hwmon1/: > > > > On 3.11.5: > > > > # find /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/name > > /sys/class/hwmon/hwmon1/subsystem > > /sys/class/hwmon/hwmon1/uevent > > /sys/class/hwmon/hwmon1/temp1_input > > > > On 3.12-rc6: > > > > # find /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/name > > /sys/class/hwmon/hwmon1/device > > /sys/class/hwmon/hwmon1/subsystem > > /sys/class/hwmon/hwmon1/uevent > > /sys/class/hwmon/hwmon1/temp1_input > > > > # find /sys/class/hwmon/hwmon1/device/ > > /sys/class/hwmon/hwmon1/device/ > > /sys/class/hwmon/hwmon1/device/temp > > /sys/class/hwmon/hwmon1/device/type > > /sys/class/hwmon/hwmon1/device/hwmon1 > > /sys/class/hwmon/hwmon1/device/hwmon1/name > > /sys/class/hwmon/hwmon1/device/hwmon1/device > > /sys/class/hwmon/hwmon1/device/hwmon1/subsystem > > /sys/class/hwmon/hwmon1/device/hwmon1/uevent > > /sys/class/hwmon/hwmon1/device/hwmon1/temp1_input > > /sys/class/hwmon/hwmon1/device/subsystem > > /sys/class/hwmon/hwmon1/device/policy > > /sys/class/hwmon/hwmon1/device/uevent > > /sys/class/hwmon/hwmon1/device/passive > > Can you please share the full output of "strace sensors"? This will > help me understand which exact code paths are taken in libsensors. > > > Is that expected? As for sensors, it *seems* to be bothered to find a > > device/ folder in /sys/class/hwmon/hwmon1/ w/o no name entry in it. > > It should be able to cope with this just fine. The radeon driver does > exactly this and libsensors has no problem with it. > Hi Jean, I think it is more likely that the problem is related to parsing the 'subsystem' link. If I understand the code in lib/sysfs.c correctly, it doesn't recognize 'thermal' (which I think is the subsystem name, but I may be wrong) and ignores the device as unknown. Question is if we can come up with some more generic code to handle that case. Define SENSORS_BUS_TYPE_OTHER and treat it similar to virtual, maybe ? But then there can be more than one of those, so you would need some means for enumerating bus and chip numbers, so I don't know if that is feasible. Guenter ^ permalink raw reply [flat|nested] 27+ messages in thread
* [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-21 15:16 ` Guenter Roeck 0 siblings, 0 replies; 27+ messages in thread From: Guenter Roeck @ 2013-10-21 15:16 UTC (permalink / raw) To: linux-arm-kernel On Mon, Oct 21, 2013 at 09:17:39AM +0200, Jean Delvare wrote: > Hi Arnaud, > > On Sun, 20 Oct 2013 20:10:41 +0200, Arnaud Ebalard wrote: > > With 3.12-rc series, sysfs support for thermal susbsytem (and/or hwmon > > one) was modified in such a way that sensors utility (current 3.3.4 > > version with 3.3.4 version of libsensors from lm-sensors package on > > Debian unstable) does not see the temperature sensor anymore on armada > > 370 platforms (not tested on others). Additionally, the changes break > > existing configurations of fancontrol utility, which prevents the > > fan to be regulated correctly w/o recreating an /etc/fancontrol w/ > > pwmconfig. > > > > Here is what I have on my Armada 370-based system on a 3.11.5: > > > > # sensors > > g762-i2c-0-3e > > Adapter: mv64xxx_i2c adapter > > fan1: 2457 RPM (div = 1) > > > > armada_thermal-virtual-0 > > Adapter: Virtual device > > temp1: +45.7?C > > > > And what I get on 3.12-rc6: > > > > # sensors > > g762-i2c-0-3e > > Adapter: mv64xxx_i2c adapter > > fan1: 1350 RPM (div = 1) > > > > > > Monitoring what sensors does w/ strace, I started looking at the changes > > to /sys/class/hwmon/hwmon1/: > > > > On 3.11.5: > > > > # find /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/name > > /sys/class/hwmon/hwmon1/subsystem > > /sys/class/hwmon/hwmon1/uevent > > /sys/class/hwmon/hwmon1/temp1_input > > > > On 3.12-rc6: > > > > # find /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/name > > /sys/class/hwmon/hwmon1/device > > /sys/class/hwmon/hwmon1/subsystem > > /sys/class/hwmon/hwmon1/uevent > > /sys/class/hwmon/hwmon1/temp1_input > > > > # find /sys/class/hwmon/hwmon1/device/ > > /sys/class/hwmon/hwmon1/device/ > > /sys/class/hwmon/hwmon1/device/temp > > /sys/class/hwmon/hwmon1/device/type > > /sys/class/hwmon/hwmon1/device/hwmon1 > > /sys/class/hwmon/hwmon1/device/hwmon1/name > > /sys/class/hwmon/hwmon1/device/hwmon1/device > > /sys/class/hwmon/hwmon1/device/hwmon1/subsystem > > /sys/class/hwmon/hwmon1/device/hwmon1/uevent > > /sys/class/hwmon/hwmon1/device/hwmon1/temp1_input > > /sys/class/hwmon/hwmon1/device/subsystem > > /sys/class/hwmon/hwmon1/device/policy > > /sys/class/hwmon/hwmon1/device/uevent > > /sys/class/hwmon/hwmon1/device/passive > > Can you please share the full output of "strace sensors"? This will > help me understand which exact code paths are taken in libsensors. > > > Is that expected? As for sensors, it *seems* to be bothered to find a > > device/ folder in /sys/class/hwmon/hwmon1/ w/o no name entry in it. > > It should be able to cope with this just fine. The radeon driver does > exactly this and libsensors has no problem with it. > Hi Jean, I think it is more likely that the problem is related to parsing the 'subsystem' link. If I understand the code in lib/sysfs.c correctly, it doesn't recognize 'thermal' (which I think is the subsystem name, but I may be wrong) and ignores the device as unknown. Question is if we can come up with some more generic code to handle that case. Define SENSORS_BUS_TYPE_OTHER and treat it similar to virtual, maybe ? But then there can be more than one of those, so you would need some means for enumerating bus and chip numbers, so I don't know if that is feasible. Guenter ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [lm-sensors] [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-21 15:16 ` Guenter Roeck 0 siblings, 0 replies; 27+ messages in thread From: Guenter Roeck @ 2013-10-21 15:16 UTC (permalink / raw) To: Jean Delvare Cc: Arnaud Ebalard, Eduardo Valentin, Zhang Rui, linux-pm, lm-sensors, linux-arm-kernel, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Jason Cooper On Mon, Oct 21, 2013 at 09:17:39AM +0200, Jean Delvare wrote: > Hi Arnaud, > > On Sun, 20 Oct 2013 20:10:41 +0200, Arnaud Ebalard wrote: > > With 3.12-rc series, sysfs support for thermal susbsytem (and/or hwmon > > one) was modified in such a way that sensors utility (current 3.3.4 > > version with 3.3.4 version of libsensors from lm-sensors package on > > Debian unstable) does not see the temperature sensor anymore on armada > > 370 platforms (not tested on others). Additionally, the changes break > > existing configurations of fancontrol utility, which prevents the > > fan to be regulated correctly w/o recreating an /etc/fancontrol w/ > > pwmconfig. > > > > Here is what I have on my Armada 370-based system on a 3.11.5: > > > > # sensors > > g762-i2c-0-3e > > Adapter: mv64xxx_i2c adapter > > fan1: 2457 RPM (div = 1) > > > > armada_thermal-virtual-0 > > Adapter: Virtual device > > temp1: +45.7°C > > > > And what I get on 3.12-rc6: > > > > # sensors > > g762-i2c-0-3e > > Adapter: mv64xxx_i2c adapter > > fan1: 1350 RPM (div = 1) > > > > > > Monitoring what sensors does w/ strace, I started looking at the changes > > to /sys/class/hwmon/hwmon1/: > > > > On 3.11.5: > > > > # find /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/name > > /sys/class/hwmon/hwmon1/subsystem > > /sys/class/hwmon/hwmon1/uevent > > /sys/class/hwmon/hwmon1/temp1_input > > > > On 3.12-rc6: > > > > # find /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/ > > /sys/class/hwmon/hwmon1/name > > /sys/class/hwmon/hwmon1/device > > /sys/class/hwmon/hwmon1/subsystem > > /sys/class/hwmon/hwmon1/uevent > > /sys/class/hwmon/hwmon1/temp1_input > > > > # find /sys/class/hwmon/hwmon1/device/ > > /sys/class/hwmon/hwmon1/device/ > > /sys/class/hwmon/hwmon1/device/temp > > /sys/class/hwmon/hwmon1/device/type > > /sys/class/hwmon/hwmon1/device/hwmon1 > > /sys/class/hwmon/hwmon1/device/hwmon1/name > > /sys/class/hwmon/hwmon1/device/hwmon1/device > > /sys/class/hwmon/hwmon1/device/hwmon1/subsystem > > /sys/class/hwmon/hwmon1/device/hwmon1/uevent > > /sys/class/hwmon/hwmon1/device/hwmon1/temp1_input > > /sys/class/hwmon/hwmon1/device/subsystem > > /sys/class/hwmon/hwmon1/device/policy > > /sys/class/hwmon/hwmon1/device/uevent > > /sys/class/hwmon/hwmon1/device/passive > > Can you please share the full output of "strace sensors"? This will > help me understand which exact code paths are taken in libsensors. > > > Is that expected? As for sensors, it *seems* to be bothered to find a > > device/ folder in /sys/class/hwmon/hwmon1/ w/o no name entry in it. > > It should be able to cope with this just fine. The radeon driver does > exactly this and libsensors has no problem with it. > Hi Jean, I think it is more likely that the problem is related to parsing the 'subsystem' link. If I understand the code in lib/sysfs.c correctly, it doesn't recognize 'thermal' (which I think is the subsystem name, but I may be wrong) and ignores the device as unknown. Question is if we can come up with some more generic code to handle that case. Define SENSORS_BUS_TYPE_OTHER and treat it similar to virtual, maybe ? But then there can be more than one of those, so you would need some means for enumerating bus and chip numbers, so I don't know if that is feasible. Guenter _______________________________________________ lm-sensors mailing list lm-sensors@lm-sensors.org http://lists.lm-sensors.org/mailman/listinfo/lm-sensors ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series 2013-10-21 15:16 ` [lm-sensors] " Guenter Roeck (?) @ 2013-10-22 12:04 ` Jean Delvare -1 siblings, 0 replies; 27+ messages in thread From: Jean Delvare @ 2013-10-22 12:04 UTC (permalink / raw) To: Guenter Roeck Cc: Arnaud Ebalard, Eduardo Valentin, Zhang Rui, linux-pm, lm-sensors, linux-arm-kernel, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Jason Cooper Hi Guenter, On Mon, 21 Oct 2013 08:16:16 -0700, Guenter Roeck wrote: > I think it is more likely that the problem is related to parsing the 'subsystem' > link. If I understand the code in lib/sysfs.c correctly, it doesn't recognize > 'thermal' (which I think is the subsystem name, but I may be wrong) and ignores > the device as unknown. Yes, you are right, that's exactly what is happening here. > Question is if we can come up with some more generic code to handle that case. > Define SENSORS_BUS_TYPE_OTHER and treat it similar to virtual, maybe ? > But then there can be more than one of those, so you would need some means > for enumerating bus and chip numbers, so I don't know if that is feasible. The whole point of identifying the subsystem is because we want to assign a unique, stable identifier to each chip, and the naming scheme depends on the subsystem. If we start treating all unsupported subsystems as "other", we simply won't be able to give these devices unique names. Developers and users are unlikely to care and report the problem to us if libsensors shows them their "foo-other-0" device. This is why libsensors ignores these devices: developers and users will report about the missing device and we can add proper support to libsensors. That way we can get the naming scheme right immediately instead of later when this will break running configurations. Commit b82715fdd4a5407f56853b24d387d484dd9c3b5b is simply wrong, so it should be reverted. It assumes that there's a 1:1 mapping between thermal zones and hwmon devices, which is not the case. See this comment near the top of thermal_hwmon.c: /* thermal zone devices with the same type share one hwmon device */ So associating the hwmon device with the first registered thermal zone of its kind is arbitrary and asymmetric and makes no sense. I don't know what the goal of that change was, but that will have to be achieved in a different way. Note that merging all thermal zones of one kind into a single hwmon device is exactly what makes it possible to treat it as a virtual device and still guarantee uniqueness of the identifier (e.g. acpitz-virtual-0.) It has the drawback of leaving the input ordering stability up to the kernel, but back then it was not considered an issue. If we now want to have one hwmon device per thermal zone, then the kernel must provide a way for libsensors to give each of them a unique and stable identifier. Naming scheme is relatively free. Note that I am not necessarily in favor of such a change, as 1* it could lead to a huge number of hwmon devices, making the output of "sensors" harder to read, and 2* the change could break existing configurations. So if anyone wants to change this, a really really good reason must be provided, i.e. you will have to demonstrate that the benefits outweigh the pain. Hope it helps, -- Jean Delvare ^ permalink raw reply [flat|nested] 27+ messages in thread
* [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-22 12:04 ` Jean Delvare 0 siblings, 0 replies; 27+ messages in thread From: Jean Delvare @ 2013-10-22 12:04 UTC (permalink / raw) To: linux-arm-kernel Hi Guenter, On Mon, 21 Oct 2013 08:16:16 -0700, Guenter Roeck wrote: > I think it is more likely that the problem is related to parsing the 'subsystem' > link. If I understand the code in lib/sysfs.c correctly, it doesn't recognize > 'thermal' (which I think is the subsystem name, but I may be wrong) and ignores > the device as unknown. Yes, you are right, that's exactly what is happening here. > Question is if we can come up with some more generic code to handle that case. > Define SENSORS_BUS_TYPE_OTHER and treat it similar to virtual, maybe ? > But then there can be more than one of those, so you would need some means > for enumerating bus and chip numbers, so I don't know if that is feasible. The whole point of identifying the subsystem is because we want to assign a unique, stable identifier to each chip, and the naming scheme depends on the subsystem. If we start treating all unsupported subsystems as "other", we simply won't be able to give these devices unique names. Developers and users are unlikely to care and report the problem to us if libsensors shows them their "foo-other-0" device. This is why libsensors ignores these devices: developers and users will report about the missing device and we can add proper support to libsensors. That way we can get the naming scheme right immediately instead of later when this will break running configurations. Commit b82715fdd4a5407f56853b24d387d484dd9c3b5b is simply wrong, so it should be reverted. It assumes that there's a 1:1 mapping between thermal zones and hwmon devices, which is not the case. See this comment near the top of thermal_hwmon.c: /* thermal zone devices with the same type share one hwmon device */ So associating the hwmon device with the first registered thermal zone of its kind is arbitrary and asymmetric and makes no sense. I don't know what the goal of that change was, but that will have to be achieved in a different way. Note that merging all thermal zones of one kind into a single hwmon device is exactly what makes it possible to treat it as a virtual device and still guarantee uniqueness of the identifier (e.g. acpitz-virtual-0.) It has the drawback of leaving the input ordering stability up to the kernel, but back then it was not considered an issue. If we now want to have one hwmon device per thermal zone, then the kernel must provide a way for libsensors to give each of them a unique and stable identifier. Naming scheme is relatively free. Note that I am not necessarily in favor of such a change, as 1* it could lead to a huge number of hwmon devices, making the output of "sensors" harder to read, and 2* the change could break existing configurations. So if anyone wants to change this, a really really good reason must be provided, i.e. you will have to demonstrate that the benefits outweigh the pain. Hope it helps, -- Jean Delvare ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [lm-sensors] [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-22 12:04 ` Jean Delvare 0 siblings, 0 replies; 27+ messages in thread From: Jean Delvare @ 2013-10-22 12:04 UTC (permalink / raw) To: Guenter Roeck Cc: Arnaud Ebalard, Eduardo Valentin, Zhang Rui, linux-pm, lm-sensors, linux-arm-kernel, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Jason Cooper Hi Guenter, On Mon, 21 Oct 2013 08:16:16 -0700, Guenter Roeck wrote: > I think it is more likely that the problem is related to parsing the 'subsystem' > link. If I understand the code in lib/sysfs.c correctly, it doesn't recognize > 'thermal' (which I think is the subsystem name, but I may be wrong) and ignores > the device as unknown. Yes, you are right, that's exactly what is happening here. > Question is if we can come up with some more generic code to handle that case. > Define SENSORS_BUS_TYPE_OTHER and treat it similar to virtual, maybe ? > But then there can be more than one of those, so you would need some means > for enumerating bus and chip numbers, so I don't know if that is feasible. The whole point of identifying the subsystem is because we want to assign a unique, stable identifier to each chip, and the naming scheme depends on the subsystem. If we start treating all unsupported subsystems as "other", we simply won't be able to give these devices unique names. Developers and users are unlikely to care and report the problem to us if libsensors shows them their "foo-other-0" device. This is why libsensors ignores these devices: developers and users will report about the missing device and we can add proper support to libsensors. That way we can get the naming scheme right immediately instead of later when this will break running configurations. Commit b82715fdd4a5407f56853b24d387d484dd9c3b5b is simply wrong, so it should be reverted. It assumes that there's a 1:1 mapping between thermal zones and hwmon devices, which is not the case. See this comment near the top of thermal_hwmon.c: /* thermal zone devices with the same type share one hwmon device */ So associating the hwmon device with the first registered thermal zone of its kind is arbitrary and asymmetric and makes no sense. I don't know what the goal of that change was, but that will have to be achieved in a different way. Note that merging all thermal zones of one kind into a single hwmon device is exactly what makes it possible to treat it as a virtual device and still guarantee uniqueness of the identifier (e.g. acpitz-virtual-0.) It has the drawback of leaving the input ordering stability up to the kernel, but back then it was not considered an issue. If we now want to have one hwmon device per thermal zone, then the kernel must provide a way for libsensors to give each of them a unique and stable identifier. Naming scheme is relatively free. Note that I am not necessarily in favor of such a change, as 1* it could lead to a huge number of hwmon devices, making the output of "sensors" harder to read, and 2* the change could break existing configurations. So if anyone wants to change this, a really really good reason must be provided, i.e. you will have to demonstrate that the benefits outweigh the pain. Hope it helps, -- 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] 27+ messages in thread
* Re: [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series 2013-10-21 7:17 ` [lm-sensors] " Jean Delvare (?) @ 2013-10-21 18:14 ` Arnaud Ebalard -1 siblings, 0 replies; 27+ messages in thread From: Arnaud Ebalard @ 2013-10-21 18:14 UTC (permalink / raw) To: Jean Delvare Cc: Andrew Lunn, Jason Cooper, linux-pm, lm-sensors, Eduardo Valentin, Guenter Roeck, Gregory Clement, Zhang Rui, linux-arm-kernel, Sebastian Hesselbarth Hi Jean, Jean Delvare <khali@linux-fr.org> writes: > Can you please share the full output of "strace sensors"? This will > help me understand which exact code paths are taken in libsensors. The 'strace sensors' output on a 3.12-rc6 is below, followed by the output of the same command on a 3.11.6. -3.12-rc6--8<-------------------------------------------------------- execve("/usr/bin/sensors", ["sensors"], [/* 13 vars */]) = 0 brk(0) = 0xf63000 uname({sys="Linux", node="mood", ...}) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f15000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=24842, ...}) = 0 mmap2(NULL, 24842, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6ee9000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/usr/lib/arm-linux-gnueabi/libsensors.so.4", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\210\27\0\0004\0\0\0"..., 512) = 512 lseek(3, 53908, SEEK_SET) = 53908 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040 lseek(3, 53644, SEEK_SET) = 53644 read(3, "A)\0\0\0aeabi\0\1\37\0\0\0\0054T\0\6\2\10\1\t\1\22\4\24\1\25\1"..., 42) = 42 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f14000 fstat64(3, {st_mode=S_IFREG|0644, st_size=54948, ...}) = 0 mmap2(NULL, 86952, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6ed3000 mprotect(0xb6ee0000, 28672, PROT_NONE) = 0 mmap2(0xb6ee7000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xc) = 0xb6ee7000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/arm-linux-gnueabi/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0h\202\1\0004\0\0\0"..., 512) = 512 lseek(3, 1240084, SEEK_SET) = 1240084 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2840) = 2840 lseek(3, 1236484, SEEK_SET) = 1236484 read(3, "A)\0\0\0aeabi\0\1\37\0\0\0\0054T\0\6\2\10\1\t\1\22\4\23\1\24\1"..., 42) = 42 fstat64(3, {st_mode=S_IFREG|0755, st_size=1242924, ...}) = 0 mmap2(NULL, 1279368, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6d9a000 mprotect(0xb6ec5000, 32768, PROT_NONE) = 0 mmap2(0xb6ecd000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12b) = 0xb6ecd000 mmap2(0xb6ed0000, 9608, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6ed0000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/arm-linux-gnueabi/libm.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0000<\0\0004\0\0\0"..., 512) = 512 lseek(3, 659912, SEEK_SET) = 659912 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1160) = 1160 lseek(3, 659588, SEEK_SET) = 659588 read(3, "A)\0\0\0aeabi\0\1\37\0\0\0\0054T\0\6\2\10\1\t\1\22\4\23\1\24\1"..., 42) = 42 fstat64(3, {st_mode=S_IFREG|0644, st_size=661072, ...}) = 0 mmap2(NULL, 692364, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6cf0000 mprotect(0xb6d91000, 28672, PROT_NONE) = 0 mmap2(0xb6d98000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa0) = 0xb6d98000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f13000 set_tls(0xb6f134c0, 0xb6f13b98, 0xb6f18050, 0xb6f134c0, 0xb6f18050) = 0 mprotect(0xb6ecd000, 8192, PROT_READ) = 0 mprotect(0xb6d98000, 4096, PROT_READ) = 0 mprotect(0xb6ee7000, 4096, PROT_READ) = 0 mprotect(0x14000, 4096, PROT_READ) = 0 mprotect(0xb6f17000, 4096, PROT_READ) = 0 munmap(0xb6ee9000, 24842) = 0 brk(0) = 0xf63000 brk(0xf84000) = 0xf84000 open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=1607632, ...}) = 0 mmap2(NULL, 1607632, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6b67000 close(3) = 0 statfs("/sys", {f_type="SYSFS_MAGIC", f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0 openat(AT_FDCWD, "/sys/class/i2c-adapter", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 fcntl64(3, F_GETFD) = 0x1 (flags FD_CLOEXEC) getdents(3, /* 3 entries */, 32768) = 52 open("/sys/class/i2c-adapter/i2c-0/name", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f12000 read(4, "mv64xxx_i2c adapter\n", 4096) = 20 close(4) = 0 munmap(0xb6f12000, 4096) = 0 getdents(3, /* 0 entries */, 32768) = 0 close(3) = 0 openat(AT_FDCWD, "/sys/class/hwmon", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 getdents(3, /* 4 entries */, 32768) = 72 readlink("/sys/class/hwmon/hwmon0/device", "../../../0-003e"..., 254) = 15 open("/sys/class/hwmon/hwmon0/name", O_RDONLY) = -1 ENOENT (No such file or directory) open("/sys/class/hwmon/hwmon0/device/name", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f12000 read(4, "g762\n", 4096) = 5 close(4) = 0 munmap(0xb6f12000, 4096) = 0 readlink("/sys/class/hwmon/hwmon0/device/subsystem", "../../../../../../bus/i2c", 254) = 25 open("/sys/class/i2c-adapter/i2c-0/device/name", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/class/hwmon/hwmon0/device", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 4 brk(0xfab000) = 0xfab000 getdents(4, /* 17 entries */, 32768) = 356 stat64("/sys/class/hwmon/hwmon0/device/fan1_pulses", {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0 stat64("/sys/class/hwmon/hwmon0/device/fan1_div", {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0 stat64("/sys/class/hwmon/hwmon0/device/fan1_alarm", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 stat64("/sys/class/hwmon/hwmon0/device/fan1_fault", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 stat64("/sys/class/hwmon/hwmon0/device/fan1_input", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 getdents(4, /* 0 entries */, 32768) = 0 close(4) = 0 readlink("/sys/class/hwmon/hwmon1/device", "../../thermal_zone0"..., 254) = 19 open("/sys/class/hwmon/hwmon1/name", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f12000 read(4, "armada_thermal\n", 4096) = 15 close(4) = 0 munmap(0xb6f12000, 4096) = 0 readlink("/sys/class/hwmon/hwmon1/device/subsystem", "../../../../class/thermal", 254) = 25 open("/sys/class/hwmon/hwmon1/device/name", O_RDONLY) = -1 ENOENT (No such file or directory) getdents(3, /* 0 entries */, 32768) = 0 close(3) = 0 open("/etc/sensors3.conf", O_RDONLY) = 3 ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbebc4af4) = -1 ENOTTY (Inappropriate ioctl for device) fstat64(3, {st_mode=S_IFREG|0644, st_size=10344, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f12000 read(3, "# libsensors configuration file\n"..., 8192) = 8192 read(3, " label in4 \"+12V\"\n label in5 "..., 8192) = 2152 read(3, "", 4096) = 0 read(3, "", 8192) = 0 ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbebc3b04) = -1 ENOTTY (Inappropriate ioctl for device) close(3) = 0 munmap(0xb6f12000, 4096) = 0 openat(AT_FDCWD, "/etc/sensors.d", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 getdents(3, /* 3 entries */, 32768) = 56 getdents(3, /* 0 entries */, 32768) = 0 close(3) = 0 open("/usr/lib/arm-linux-gnueabi/gconv/gconv-modules.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=26260, ...}) = 0 mmap2(NULL, 26260, PROT_READ, MAP_SHARED, 3, 0) = 0xb6ee9000 close(3) = 0 open("/usr/lib/arm-linux-gnueabi/gconv/ISO8859-1.so", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\354\3\0\0004\0\0\0"..., 512) = 512 lseek(3, 8548, SEEK_SET) = 8548 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080 lseek(3, 8248, SEEK_SET) = 8248 read(3, "A)\0\0\0aeabi\0\1\37\0\0\0\0054T\0\6\2\10\1\t\1\22\4\23\1\24\1"..., 42) = 42 fstat64(3, {st_mode=S_IFREG|0644, st_size=9628, ...}) = 0 mmap2(NULL, 41020, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6b5c000 mprotect(0xb6b5e000, 28672, PROT_NONE) = 0 mmap2(0xb6b65000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb6b65000 close(3) = 0 mprotect(0xb6b65000, 4096, PROT_READ) = 0 fstat64(1, {st_mode=S_IFREG|0644, st_size=9216, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f12000 open("/sys/class/hwmon/hwmon0/device/fan1_label", O_RDONLY) = -1 ENOENT (No such file or directory) open("/sys/class/hwmon/hwmon0/device/fan1_label", O_RDONLY) = -1 ENOENT (No such file or directory) open("/sys/class/hwmon/hwmon0/device/fan1_fault", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f11000 read(3, "0\n", 4096) = 2 close(3) = 0 munmap(0xb6f11000, 4096) = 0 open("/sys/class/hwmon/hwmon0/device/fan1_input", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f11000 read(3, "1536\n", 4096) = 5 close(3) = 0 munmap(0xb6f11000, 4096) = 0 open("/sys/class/hwmon/hwmon0/device/fan1_div", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f11000 read(3, "1\n", 4096) = 2 close(3) = 0 munmap(0xb6f11000, 4096) = 0 open("/sys/class/hwmon/hwmon0/device/fan1_alarm", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f11000 read(3, "0\n", 4096) = 2 close(3) = 0 munmap(0xb6f11000, 4096) = 0 write(1, "g762-i2c-0-3e\nAdapter: mv64xxx_i"..., 77g762-i2c-0-3e Adapter: mv64xxx_i2c adapter fan1: 1536 RPM (div = 1) ) = 77 exit_group(0) = ? -3.11.6--8<-------------------------------------------------------- execve("/usr/bin/sensors", ["sensors"], [/* 13 vars */]) = 0 brk(0) = 0x1ae9000 uname({sys="Linux", node="mood", ...}) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe7000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=24842, ...}) = 0 mmap2(NULL, 24842, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6fbb000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/usr/lib/arm-linux-gnueabi/libsensors.so.4", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\210\27\0\0004\0\0\0"..., 512) = 512 lseek(3, 53908, SEEK_SET) = 53908 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040 lseek(3, 53644, SEEK_SET) = 53644 read(3, "A)\0\0\0aeabi\0\1\37\0\0\0\0054T\0\6\2\10\1\t\1\22\4\24\1\25\1"..., 42) = 42 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe6000 fstat64(3, {st_mode=S_IFREG|0644, st_size=54948, ...}) = 0 mmap2(NULL, 86952, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6fa5000 mprotect(0xb6fb2000, 28672, PROT_NONE) = 0 mmap2(0xb6fb9000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xc) = 0xb6fb9000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/arm-linux-gnueabi/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0h\202\1\0004\0\0\0"..., 512) = 512 lseek(3, 1240084, SEEK_SET) = 1240084 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2840) = 2840 lseek(3, 1236484, SEEK_SET) = 1236484 read(3, "A)\0\0\0aeabi\0\1\37\0\0\0\0054T\0\6\2\10\1\t\1\22\4\23\1\24\1"..., 42) = 42 fstat64(3, {st_mode=S_IFREG|0755, st_size=1242924, ...}) = 0 mmap2(NULL, 1279368, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6e6c000 mprotect(0xb6f97000, 32768, PROT_NONE) = 0 mmap2(0xb6f9f000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12b) = 0xb6f9f000 mmap2(0xb6fa2000, 9608, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6fa2000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/arm-linux-gnueabi/libm.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0000<\0\0004\0\0\0"..., 512) = 512 lseek(3, 659912, SEEK_SET) = 659912 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1160) = 1160 lseek(3, 659588, SEEK_SET) = 659588 read(3, "A)\0\0\0aeabi\0\1\37\0\0\0\0054T\0\6\2\10\1\t\1\22\4\23\1\24\1"..., 42) = 42 fstat64(3, {st_mode=S_IFREG|0644, st_size=661072, ...}) = 0 mmap2(NULL, 692364, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6dc2000 mprotect(0xb6e63000, 28672, PROT_NONE) = 0 mmap2(0xb6e6a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa0) = 0xb6e6a000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe5000 set_tls(0xb6fe54c0, 0xb6fe5b98, 0xb6fea050, 0xb6fe54c0, 0xb6fea050) = 0 mprotect(0xb6f9f000, 8192, PROT_READ) = 0 mprotect(0xb6e6a000, 4096, PROT_READ) = 0 mprotect(0xb6fb9000, 4096, PROT_READ) = 0 mprotect(0x14000, 4096, PROT_READ) = 0 mprotect(0xb6fe9000, 4096, PROT_READ) = 0 munmap(0xb6fbb000, 24842) = 0 brk(0) = 0x1ae9000 brk(0x1b0a000) = 0x1b0a000 open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=1607632, ...}) = 0 mmap2(NULL, 1607632, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6c39000 close(3) = 0 statfs("/sys", {f_type="SYSFS_MAGIC", f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0 openat(AT_FDCWD, "/sys/class/i2c-adapter", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 fcntl64(3, F_GETFD) = 0x1 (flags FD_CLOEXEC) getdents(3, /* 3 entries */, 32768) = 52 open("/sys/class/i2c-adapter/i2c-0/name", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe4000 read(4, "mv64xxx_i2c adapter\n", 4096) = 20 close(4) = 0 munmap(0xb6fe4000, 4096) = 0 getdents(3, /* 0 entries */, 32768) = 0 close(3) = 0 openat(AT_FDCWD, "/sys/class/hwmon", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 getdents(3, /* 4 entries */, 32768) = 72 readlink("/sys/class/hwmon/hwmon0/device", "../../../0-003e"..., 254) = 15 open("/sys/class/hwmon/hwmon0/name", O_RDONLY) = -1 ENOENT (No such file or directory) open("/sys/class/hwmon/hwmon0/device/name", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe4000 read(4, "g762\n", 4096) = 5 close(4) = 0 munmap(0xb6fe4000, 4096) = 0 readlink("/sys/class/hwmon/hwmon0/device/subsystem", "../../../../../../bus/i2c", 254) = 25 open("/sys/class/i2c-adapter/i2c-0/device/name", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/class/hwmon/hwmon0/device", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 4 brk(0x1b31000) = 0x1b31000 getdents(4, /* 17 entries */, 32768) = 356 stat64("/sys/class/hwmon/hwmon0/device/fan1_pulses", {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0 stat64("/sys/class/hwmon/hwmon0/device/fan1_div", {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0 stat64("/sys/class/hwmon/hwmon0/device/fan1_alarm", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 stat64("/sys/class/hwmon/hwmon0/device/fan1_fault", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 stat64("/sys/class/hwmon/hwmon0/device/fan1_input", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 getdents(4, /* 0 entries */, 32768) = 0 close(4) = 0 readlink("/sys/class/hwmon/hwmon1/device", 0xbeb3596c, 254) = -1 ENOENT (No such file or directory) open("/sys/class/hwmon/hwmon1/name", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe4000 read(4, "armada_thermal\n", 4096) = 15 close(4) = 0 munmap(0xb6fe4000, 4096) = 0 openat(AT_FDCWD, "/sys/class/hwmon/hwmon1", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 4 getdents(4, /* 6 entries */, 32768) = 116 stat64("/sys/class/hwmon/hwmon1/temp1_input", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 getdents(4, /* 0 entries */, 32768) = 0 close(4) = 0 getdents(3, /* 0 entries */, 32768) = 0 close(3) = 0 open("/etc/sensors3.conf", O_RDONLY) = 3 ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbeb35af4) = -1 ENOTTY (Inappropriate ioctl for device) fstat64(3, {st_mode=S_IFREG|0644, st_size=10344, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe4000 read(3, "# libsensors configuration file\n"..., 8192) = 8192 read(3, " label in4 \"+12V\"\n label in5 "..., 8192) = 2152 read(3, "", 4096) = 0 read(3, "", 8192) = 0 ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbeb34b04) = -1 ENOTTY (Inappropriate ioctl for device) close(3) = 0 munmap(0xb6fe4000, 4096) = 0 openat(AT_FDCWD, "/etc/sensors.d", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 getdents(3, /* 3 entries */, 32768) = 56 getdents(3, /* 0 entries */, 32768) = 0 close(3) = 0 open("/usr/lib/arm-linux-gnueabi/gconv/gconv-modules.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=26260, ...}) = 0 mmap2(NULL, 26260, PROT_READ, MAP_SHARED, 3, 0) = 0xb6fbb000 close(3) = 0 open("/usr/lib/arm-linux-gnueabi/gconv/ISO8859-1.so", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\354\3\0\0004\0\0\0"..., 512) = 512 lseek(3, 8548, SEEK_SET) = 8548 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080 lseek(3, 8248, SEEK_SET) = 8248 read(3, "A)\0\0\0aeabi\0\1\37\0\0\0\0054T\0\6\2\10\1\t\1\22\4\23\1\24\1"..., 42) = 42 fstat64(3, {st_mode=S_IFREG|0644, st_size=9628, ...}) = 0 mmap2(NULL, 41020, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6c2e000 mprotect(0xb6c30000, 28672, PROT_NONE) = 0 mmap2(0xb6c37000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb6c37000 close(3) = 0 mprotect(0xb6c37000, 4096, PROT_READ) = 0 fstat64(1, {st_mode=S_IFREG|0644, st_size=9385, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe4000 open("/sys/class/hwmon/hwmon0/device/fan1_label", O_RDONLY) = -1 ENOENT (No such file or directory) open("/sys/class/hwmon/hwmon0/device/fan1_label", O_RDONLY) = -1 ENOENT (No such file or directory) open("/sys/class/hwmon/hwmon0/device/fan1_fault", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe3000 read(3, "0\n", 4096) = 2 close(3) = 0 munmap(0xb6fe3000, 4096) = 0 open("/sys/class/hwmon/hwmon0/device/fan1_input", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe3000 read(3, "3510\n", 4096) = 5 close(3) = 0 munmap(0xb6fe3000, 4096) = 0 open("/sys/class/hwmon/hwmon0/device/fan1_div", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe3000 read(3, "1\n", 4096) = 2 close(3) = 0 munmap(0xb6fe3000, 4096) = 0 open("/sys/class/hwmon/hwmon0/device/fan1_alarm", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe3000 read(3, "0\n", 4096) = 2 close(3) = 0 munmap(0xb6fe3000, 4096) = 0 open("/sys/class/hwmon/hwmon1/temp1_label", O_RDONLY) = -1 ENOENT (No such file or directory) open("/sys/class/hwmon/hwmon1/temp1_label", O_RDONLY) = -1 ENOENT (No such file or directory) open("/sys/class/hwmon/hwmon1/temp1_input", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe3000 read(3, "42893\n", 4096) = 6 close(3) = 0 munmap(0xb6fe3000, 4096) = 0 open("/sys/class/hwmon/hwmon1/temp1_input", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe3000 read(3, "42893\n", 4096) = 6 close(3) = 0 munmap(0xb6fe3000, 4096) = 0 brk(0x1b13000) = 0x1b13000 write(1, "g762-i2c-0-3e\nAdapter: mv64xxx_i"..., 152g762-i2c-0-3e Adapter: mv64xxx_i2c adapter fan1: 3510 RPM (div = 1) armada_thermal-virtual-0 Adapter: Virtual device temp1: +42.9°C ) = 152 exit_group(0) = ? _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 27+ messages in thread
* [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-21 18:14 ` Arnaud Ebalard 0 siblings, 0 replies; 27+ messages in thread From: Arnaud Ebalard @ 2013-10-21 18:14 UTC (permalink / raw) To: linux-arm-kernel Hi Jean, Jean Delvare <khali@linux-fr.org> writes: > Can you please share the full output of "strace sensors"? This will > help me understand which exact code paths are taken in libsensors. The 'strace sensors' output on a 3.12-rc6 is below, followed by the output of the same command on a 3.11.6. -3.12-rc6--8<-------------------------------------------------------- execve("/usr/bin/sensors", ["sensors"], [/* 13 vars */]) = 0 brk(0) = 0xf63000 uname({sys="Linux", node="mood", ...}) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f15000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=24842, ...}) = 0 mmap2(NULL, 24842, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6ee9000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/usr/lib/arm-linux-gnueabi/libsensors.so.4", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\210\27\0\0004\0\0\0"..., 512) = 512 lseek(3, 53908, SEEK_SET) = 53908 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040 lseek(3, 53644, SEEK_SET) = 53644 read(3, "A)\0\0\0aeabi\0\1\37\0\0\0\0054T\0\6\2\10\1\t\1\22\4\24\1\25\1"..., 42) = 42 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f14000 fstat64(3, {st_mode=S_IFREG|0644, st_size=54948, ...}) = 0 mmap2(NULL, 86952, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6ed3000 mprotect(0xb6ee0000, 28672, PROT_NONE) = 0 mmap2(0xb6ee7000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xc) = 0xb6ee7000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/arm-linux-gnueabi/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0h\202\1\0004\0\0\0"..., 512) = 512 lseek(3, 1240084, SEEK_SET) = 1240084 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2840) = 2840 lseek(3, 1236484, SEEK_SET) = 1236484 read(3, "A)\0\0\0aeabi\0\1\37\0\0\0\0054T\0\6\2\10\1\t\1\22\4\23\1\24\1"..., 42) = 42 fstat64(3, {st_mode=S_IFREG|0755, st_size=1242924, ...}) = 0 mmap2(NULL, 1279368, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6d9a000 mprotect(0xb6ec5000, 32768, PROT_NONE) = 0 mmap2(0xb6ecd000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12b) = 0xb6ecd000 mmap2(0xb6ed0000, 9608, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6ed0000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/arm-linux-gnueabi/libm.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0000<\0\0004\0\0\0"..., 512) = 512 lseek(3, 659912, SEEK_SET) = 659912 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1160) = 1160 lseek(3, 659588, SEEK_SET) = 659588 read(3, "A)\0\0\0aeabi\0\1\37\0\0\0\0054T\0\6\2\10\1\t\1\22\4\23\1\24\1"..., 42) = 42 fstat64(3, {st_mode=S_IFREG|0644, st_size=661072, ...}) = 0 mmap2(NULL, 692364, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6cf0000 mprotect(0xb6d91000, 28672, PROT_NONE) = 0 mmap2(0xb6d98000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa0) = 0xb6d98000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f13000 set_tls(0xb6f134c0, 0xb6f13b98, 0xb6f18050, 0xb6f134c0, 0xb6f18050) = 0 mprotect(0xb6ecd000, 8192, PROT_READ) = 0 mprotect(0xb6d98000, 4096, PROT_READ) = 0 mprotect(0xb6ee7000, 4096, PROT_READ) = 0 mprotect(0x14000, 4096, PROT_READ) = 0 mprotect(0xb6f17000, 4096, PROT_READ) = 0 munmap(0xb6ee9000, 24842) = 0 brk(0) = 0xf63000 brk(0xf84000) = 0xf84000 open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=1607632, ...}) = 0 mmap2(NULL, 1607632, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6b67000 close(3) = 0 statfs("/sys", {f_type="SYSFS_MAGIC", f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0 openat(AT_FDCWD, "/sys/class/i2c-adapter", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 fcntl64(3, F_GETFD) = 0x1 (flags FD_CLOEXEC) getdents(3, /* 3 entries */, 32768) = 52 open("/sys/class/i2c-adapter/i2c-0/name", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f12000 read(4, "mv64xxx_i2c adapter\n", 4096) = 20 close(4) = 0 munmap(0xb6f12000, 4096) = 0 getdents(3, /* 0 entries */, 32768) = 0 close(3) = 0 openat(AT_FDCWD, "/sys/class/hwmon", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 getdents(3, /* 4 entries */, 32768) = 72 readlink("/sys/class/hwmon/hwmon0/device", "../../../0-003e"..., 254) = 15 open("/sys/class/hwmon/hwmon0/name", O_RDONLY) = -1 ENOENT (No such file or directory) open("/sys/class/hwmon/hwmon0/device/name", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f12000 read(4, "g762\n", 4096) = 5 close(4) = 0 munmap(0xb6f12000, 4096) = 0 readlink("/sys/class/hwmon/hwmon0/device/subsystem", "../../../../../../bus/i2c", 254) = 25 open("/sys/class/i2c-adapter/i2c-0/device/name", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/class/hwmon/hwmon0/device", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 4 brk(0xfab000) = 0xfab000 getdents(4, /* 17 entries */, 32768) = 356 stat64("/sys/class/hwmon/hwmon0/device/fan1_pulses", {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0 stat64("/sys/class/hwmon/hwmon0/device/fan1_div", {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0 stat64("/sys/class/hwmon/hwmon0/device/fan1_alarm", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 stat64("/sys/class/hwmon/hwmon0/device/fan1_fault", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 stat64("/sys/class/hwmon/hwmon0/device/fan1_input", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 getdents(4, /* 0 entries */, 32768) = 0 close(4) = 0 readlink("/sys/class/hwmon/hwmon1/device", "../../thermal_zone0"..., 254) = 19 open("/sys/class/hwmon/hwmon1/name", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f12000 read(4, "armada_thermal\n", 4096) = 15 close(4) = 0 munmap(0xb6f12000, 4096) = 0 readlink("/sys/class/hwmon/hwmon1/device/subsystem", "../../../../class/thermal", 254) = 25 open("/sys/class/hwmon/hwmon1/device/name", O_RDONLY) = -1 ENOENT (No such file or directory) getdents(3, /* 0 entries */, 32768) = 0 close(3) = 0 open("/etc/sensors3.conf", O_RDONLY) = 3 ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbebc4af4) = -1 ENOTTY (Inappropriate ioctl for device) fstat64(3, {st_mode=S_IFREG|0644, st_size=10344, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f12000 read(3, "# libsensors configuration file\n"..., 8192) = 8192 read(3, " label in4 \"+12V\"\n label in5 "..., 8192) = 2152 read(3, "", 4096) = 0 read(3, "", 8192) = 0 ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbebc3b04) = -1 ENOTTY (Inappropriate ioctl for device) close(3) = 0 munmap(0xb6f12000, 4096) = 0 openat(AT_FDCWD, "/etc/sensors.d", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 getdents(3, /* 3 entries */, 32768) = 56 getdents(3, /* 0 entries */, 32768) = 0 close(3) = 0 open("/usr/lib/arm-linux-gnueabi/gconv/gconv-modules.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=26260, ...}) = 0 mmap2(NULL, 26260, PROT_READ, MAP_SHARED, 3, 0) = 0xb6ee9000 close(3) = 0 open("/usr/lib/arm-linux-gnueabi/gconv/ISO8859-1.so", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\354\3\0\0004\0\0\0"..., 512) = 512 lseek(3, 8548, SEEK_SET) = 8548 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080 lseek(3, 8248, SEEK_SET) = 8248 read(3, "A)\0\0\0aeabi\0\1\37\0\0\0\0054T\0\6\2\10\1\t\1\22\4\23\1\24\1"..., 42) = 42 fstat64(3, {st_mode=S_IFREG|0644, st_size=9628, ...}) = 0 mmap2(NULL, 41020, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6b5c000 mprotect(0xb6b5e000, 28672, PROT_NONE) = 0 mmap2(0xb6b65000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb6b65000 close(3) = 0 mprotect(0xb6b65000, 4096, PROT_READ) = 0 fstat64(1, {st_mode=S_IFREG|0644, st_size=9216, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f12000 open("/sys/class/hwmon/hwmon0/device/fan1_label", O_RDONLY) = -1 ENOENT (No such file or directory) open("/sys/class/hwmon/hwmon0/device/fan1_label", O_RDONLY) = -1 ENOENT (No such file or directory) open("/sys/class/hwmon/hwmon0/device/fan1_fault", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f11000 read(3, "0\n", 4096) = 2 close(3) = 0 munmap(0xb6f11000, 4096) = 0 open("/sys/class/hwmon/hwmon0/device/fan1_input", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f11000 read(3, "1536\n", 4096) = 5 close(3) = 0 munmap(0xb6f11000, 4096) = 0 open("/sys/class/hwmon/hwmon0/device/fan1_div", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f11000 read(3, "1\n", 4096) = 2 close(3) = 0 munmap(0xb6f11000, 4096) = 0 open("/sys/class/hwmon/hwmon0/device/fan1_alarm", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f11000 read(3, "0\n", 4096) = 2 close(3) = 0 munmap(0xb6f11000, 4096) = 0 write(1, "g762-i2c-0-3e\nAdapter: mv64xxx_i"..., 77g762-i2c-0-3e Adapter: mv64xxx_i2c adapter fan1: 1536 RPM (div = 1) ) = 77 exit_group(0) = ? -3.11.6--8<-------------------------------------------------------- execve("/usr/bin/sensors", ["sensors"], [/* 13 vars */]) = 0 brk(0) = 0x1ae9000 uname({sys="Linux", node="mood", ...}) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe7000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=24842, ...}) = 0 mmap2(NULL, 24842, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6fbb000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/usr/lib/arm-linux-gnueabi/libsensors.so.4", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\210\27\0\0004\0\0\0"..., 512) = 512 lseek(3, 53908, SEEK_SET) = 53908 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040 lseek(3, 53644, SEEK_SET) = 53644 read(3, "A)\0\0\0aeabi\0\1\37\0\0\0\0054T\0\6\2\10\1\t\1\22\4\24\1\25\1"..., 42) = 42 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe6000 fstat64(3, {st_mode=S_IFREG|0644, st_size=54948, ...}) = 0 mmap2(NULL, 86952, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6fa5000 mprotect(0xb6fb2000, 28672, PROT_NONE) = 0 mmap2(0xb6fb9000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xc) = 0xb6fb9000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/arm-linux-gnueabi/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0h\202\1\0004\0\0\0"..., 512) = 512 lseek(3, 1240084, SEEK_SET) = 1240084 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2840) = 2840 lseek(3, 1236484, SEEK_SET) = 1236484 read(3, "A)\0\0\0aeabi\0\1\37\0\0\0\0054T\0\6\2\10\1\t\1\22\4\23\1\24\1"..., 42) = 42 fstat64(3, {st_mode=S_IFREG|0755, st_size=1242924, ...}) = 0 mmap2(NULL, 1279368, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6e6c000 mprotect(0xb6f97000, 32768, PROT_NONE) = 0 mmap2(0xb6f9f000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12b) = 0xb6f9f000 mmap2(0xb6fa2000, 9608, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6fa2000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/arm-linux-gnueabi/libm.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0000<\0\0004\0\0\0"..., 512) = 512 lseek(3, 659912, SEEK_SET) = 659912 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1160) = 1160 lseek(3, 659588, SEEK_SET) = 659588 read(3, "A)\0\0\0aeabi\0\1\37\0\0\0\0054T\0\6\2\10\1\t\1\22\4\23\1\24\1"..., 42) = 42 fstat64(3, {st_mode=S_IFREG|0644, st_size=661072, ...}) = 0 mmap2(NULL, 692364, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6dc2000 mprotect(0xb6e63000, 28672, PROT_NONE) = 0 mmap2(0xb6e6a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa0) = 0xb6e6a000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe5000 set_tls(0xb6fe54c0, 0xb6fe5b98, 0xb6fea050, 0xb6fe54c0, 0xb6fea050) = 0 mprotect(0xb6f9f000, 8192, PROT_READ) = 0 mprotect(0xb6e6a000, 4096, PROT_READ) = 0 mprotect(0xb6fb9000, 4096, PROT_READ) = 0 mprotect(0x14000, 4096, PROT_READ) = 0 mprotect(0xb6fe9000, 4096, PROT_READ) = 0 munmap(0xb6fbb000, 24842) = 0 brk(0) = 0x1ae9000 brk(0x1b0a000) = 0x1b0a000 open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=1607632, ...}) = 0 mmap2(NULL, 1607632, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6c39000 close(3) = 0 statfs("/sys", {f_type="SYSFS_MAGIC", f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0 openat(AT_FDCWD, "/sys/class/i2c-adapter", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 fcntl64(3, F_GETFD) = 0x1 (flags FD_CLOEXEC) getdents(3, /* 3 entries */, 32768) = 52 open("/sys/class/i2c-adapter/i2c-0/name", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe4000 read(4, "mv64xxx_i2c adapter\n", 4096) = 20 close(4) = 0 munmap(0xb6fe4000, 4096) = 0 getdents(3, /* 0 entries */, 32768) = 0 close(3) = 0 openat(AT_FDCWD, "/sys/class/hwmon", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 getdents(3, /* 4 entries */, 32768) = 72 readlink("/sys/class/hwmon/hwmon0/device", "../../../0-003e"..., 254) = 15 open("/sys/class/hwmon/hwmon0/name", O_RDONLY) = -1 ENOENT (No such file or directory) open("/sys/class/hwmon/hwmon0/device/name", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe4000 read(4, "g762\n", 4096) = 5 close(4) = 0 munmap(0xb6fe4000, 4096) = 0 readlink("/sys/class/hwmon/hwmon0/device/subsystem", "../../../../../../bus/i2c", 254) = 25 open("/sys/class/i2c-adapter/i2c-0/device/name", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/class/hwmon/hwmon0/device", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 4 brk(0x1b31000) = 0x1b31000 getdents(4, /* 17 entries */, 32768) = 356 stat64("/sys/class/hwmon/hwmon0/device/fan1_pulses", {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0 stat64("/sys/class/hwmon/hwmon0/device/fan1_div", {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0 stat64("/sys/class/hwmon/hwmon0/device/fan1_alarm", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 stat64("/sys/class/hwmon/hwmon0/device/fan1_fault", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 stat64("/sys/class/hwmon/hwmon0/device/fan1_input", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 getdents(4, /* 0 entries */, 32768) = 0 close(4) = 0 readlink("/sys/class/hwmon/hwmon1/device", 0xbeb3596c, 254) = -1 ENOENT (No such file or directory) open("/sys/class/hwmon/hwmon1/name", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe4000 read(4, "armada_thermal\n", 4096) = 15 close(4) = 0 munmap(0xb6fe4000, 4096) = 0 openat(AT_FDCWD, "/sys/class/hwmon/hwmon1", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 4 getdents(4, /* 6 entries */, 32768) = 116 stat64("/sys/class/hwmon/hwmon1/temp1_input", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 getdents(4, /* 0 entries */, 32768) = 0 close(4) = 0 getdents(3, /* 0 entries */, 32768) = 0 close(3) = 0 open("/etc/sensors3.conf", O_RDONLY) = 3 ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbeb35af4) = -1 ENOTTY (Inappropriate ioctl for device) fstat64(3, {st_mode=S_IFREG|0644, st_size=10344, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe4000 read(3, "# libsensors configuration file\n"..., 8192) = 8192 read(3, " label in4 \"+12V\"\n label in5 "..., 8192) = 2152 read(3, "", 4096) = 0 read(3, "", 8192) = 0 ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbeb34b04) = -1 ENOTTY (Inappropriate ioctl for device) close(3) = 0 munmap(0xb6fe4000, 4096) = 0 openat(AT_FDCWD, "/etc/sensors.d", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 getdents(3, /* 3 entries */, 32768) = 56 getdents(3, /* 0 entries */, 32768) = 0 close(3) = 0 open("/usr/lib/arm-linux-gnueabi/gconv/gconv-modules.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=26260, ...}) = 0 mmap2(NULL, 26260, PROT_READ, MAP_SHARED, 3, 0) = 0xb6fbb000 close(3) = 0 open("/usr/lib/arm-linux-gnueabi/gconv/ISO8859-1.so", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\354\3\0\0004\0\0\0"..., 512) = 512 lseek(3, 8548, SEEK_SET) = 8548 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080 lseek(3, 8248, SEEK_SET) = 8248 read(3, "A)\0\0\0aeabi\0\1\37\0\0\0\0054T\0\6\2\10\1\t\1\22\4\23\1\24\1"..., 42) = 42 fstat64(3, {st_mode=S_IFREG|0644, st_size=9628, ...}) = 0 mmap2(NULL, 41020, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6c2e000 mprotect(0xb6c30000, 28672, PROT_NONE) = 0 mmap2(0xb6c37000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb6c37000 close(3) = 0 mprotect(0xb6c37000, 4096, PROT_READ) = 0 fstat64(1, {st_mode=S_IFREG|0644, st_size=9385, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe4000 open("/sys/class/hwmon/hwmon0/device/fan1_label", O_RDONLY) = -1 ENOENT (No such file or directory) open("/sys/class/hwmon/hwmon0/device/fan1_label", O_RDONLY) = -1 ENOENT (No such file or directory) open("/sys/class/hwmon/hwmon0/device/fan1_fault", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe3000 read(3, "0\n", 4096) = 2 close(3) = 0 munmap(0xb6fe3000, 4096) = 0 open("/sys/class/hwmon/hwmon0/device/fan1_input", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe3000 read(3, "3510\n", 4096) = 5 close(3) = 0 munmap(0xb6fe3000, 4096) = 0 open("/sys/class/hwmon/hwmon0/device/fan1_div", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe3000 read(3, "1\n", 4096) = 2 close(3) = 0 munmap(0xb6fe3000, 4096) = 0 open("/sys/class/hwmon/hwmon0/device/fan1_alarm", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe3000 read(3, "0\n", 4096) = 2 close(3) = 0 munmap(0xb6fe3000, 4096) = 0 open("/sys/class/hwmon/hwmon1/temp1_label", O_RDONLY) = -1 ENOENT (No such file or directory) open("/sys/class/hwmon/hwmon1/temp1_label", O_RDONLY) = -1 ENOENT (No such file or directory) open("/sys/class/hwmon/hwmon1/temp1_input", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe3000 read(3, "42893\n", 4096) = 6 close(3) = 0 munmap(0xb6fe3000, 4096) = 0 open("/sys/class/hwmon/hwmon1/temp1_input", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fe3000 read(3, "42893\n", 4096) = 6 close(3) = 0 munmap(0xb6fe3000, 4096) = 0 brk(0x1b13000) = 0x1b13000 write(1, "g762-i2c-0-3e\nAdapter: mv64xxx_i"..., 152g762-i2c-0-3e Adapter: mv64xxx_i2c adapter fan1: 3510 RPM (div = 1) armada_thermal-virtual-0 Adapter: Virtual device temp1: +42.9?C ) = 152 exit_group(0) = ? ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [lm-sensors] [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series @ 2013-10-21 18:14 ` Arnaud Ebalard 0 siblings, 0 replies; 27+ messages in thread From: Arnaud Ebalard @ 2013-10-21 18:14 UTC (permalink / raw) To: Jean Delvare Cc: Andrew Lunn, Jason Cooper, linux-pm, lm-sensors, Eduardo Valentin, Guenter Roeck, Gregory Clement, Zhang Rui, linux-arm-kernel, Sebastian Hesselbarth SGkgSmVhbiwKCkplYW4gRGVsdmFyZSA8a2hhbGlAbGludXgtZnIub3JnPiB3cml0ZXM6Cgo+IENh biB5b3UgcGxlYXNlIHNoYXJlIHRoZSBmdWxsIG91dHB1dCBvZiAic3RyYWNlIHNlbnNvcnMiPyBU aGlzIHdpbGwKPiBoZWxwIG1lIHVuZGVyc3RhbmQgd2hpY2ggZXhhY3QgY29kZSBwYXRocyBhcmUg dGFrZW4gaW4gbGlic2Vuc29ycy4KClRoZSAnc3RyYWNlIHNlbnNvcnMnIG91dHB1dCBvbiBhIDMu MTItcmM2IGlzIGJlbG93LCBmb2xsb3dlZCBieSB0aGUKb3V0cHV0IG9mIHRoZSBzYW1lIGNvbW1h bmQgb24gYSAzLjExLjYuCgotMy4xMi1yYzYtLTg8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmV4ZWN2ZSgiL3Vzci9iaW4vc2Vuc29ycyIs IFsic2Vuc29ycyJdLCBbLyogMTMgdmFycyAqL10pID0gMApicmsoMCkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPSAweGY2MzAwMAp1bmFtZSh7c3lzPSJMaW51eCIsIG5vZGU9Im1v b2QiLCAuLi59KSAgPSAwCmFjY2VzcygiL2V0Yy9sZC5zby5ub2h3Y2FwIiwgRl9PSykgICAgICA9 IC0xIEVOT0VOVCAoTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSkKbW1hcDIoTlVMTCwgNDA5Niwg UFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9QUklWQVRFfE1BUF9BTk9OWU1PVVMsIC0xLCAwKSA9 IDB4YjZmMTUwMDAKYWNjZXNzKCIvZXRjL2xkLnNvLnByZWxvYWQiLCBSX09LKSAgICAgID0gLTEg RU5PRU5UIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KQpvcGVuKCIvZXRjL2xkLnNvLmNhY2hl IiwgT19SRE9OTFl8T19DTE9FWEVDKSA9IDMKZnN0YXQ2NCgzLCB7c3RfbW9kZT1TX0lGUkVHfDA2 NDQsIHN0X3NpemU9MjQ4NDIsIC4uLn0pID0gMAptbWFwMihOVUxMLCAyNDg0MiwgUFJPVF9SRUFE LCBNQVBfUFJJVkFURSwgMywgMCkgPSAweGI2ZWU5MDAwCmNsb3NlKDMpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA9IDAKYWNjZXNzKCIvZXRjL2xkLnNvLm5vaHdjYXAiLCBGX09LKSAg ICAgID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KQpvcGVuKCIvdXNyL2xp Yi9hcm0tbGludXgtZ251ZWFiaS9saWJzZW5zb3JzLnNvLjQiLCBPX1JET05MWXxPX0NMT0VYRUMp ID0gMwpyZWFkKDMsICJcMTc3RUxGXDFcMVwxXDBcMFwwXDBcMFwwXDBcMFwwXDNcMChcMFwxXDBc MFwwXDIxMFwyN1wwXDAwMDRcMFwwXDAiLi4uLCA1MTIpID0gNTEyCmxzZWVrKDMsIDUzOTA4LCBT RUVLX1NFVCkgICAgICAgICAgICAgICA9IDUzOTA4CnJlYWQoMywgIlwwXDBcMFwwXDBcMFwwXDBc MFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiLi4uLCAxMDQw KSA9IDEwNDAKbHNlZWsoMywgNTM2NDQsIFNFRUtfU0VUKSAgICAgICAgICAgICAgID0gNTM2NDQK cmVhZCgzLCAiQSlcMFwwXDBhZWFiaVwwXDFcMzdcMFwwXDBcMDA1NFRcMFw2XDJcMTBcMVx0XDFc MjJcNFwyNFwxXDI1XDEiLi4uLCA0MikgPSA0MgptbWFwMihOVUxMLCA0MDk2LCBQUk9UX1JFQUR8 UFJPVF9XUklURSwgTUFQX1BSSVZBVEV8TUFQX0FOT05ZTU9VUywgLTEsIDApID0gMHhiNmYxNDAw MApmc3RhdDY0KDMsIHtzdF9tb2RlPVNfSUZSRUd8MDY0NCwgc3Rfc2l6ZT01NDk0OCwgLi4ufSkg PSAwCm1tYXAyKE5VTEwsIDg2OTUyLCBQUk9UX1JFQUR8UFJPVF9FWEVDLCBNQVBfUFJJVkFURXxN QVBfREVOWVdSSVRFLCAzLCAwKSA9IDB4YjZlZDMwMDAKbXByb3RlY3QoMHhiNmVlMDAwMCwgMjg2 NzIsIFBST1RfTk9ORSkgID0gMAptbWFwMigweGI2ZWU3MDAwLCA4MTkyLCBQUk9UX1JFQUR8UFJP VF9XUklURSwgTUFQX1BSSVZBVEV8TUFQX0ZJWEVEfE1BUF9ERU5ZV1JJVEUsIDMsIDB4YykgPSAw eGI2ZWU3MDAwCmNsb3NlKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAKYWNj ZXNzKCIvZXRjL2xkLnNvLm5vaHdjYXAiLCBGX09LKSAgICAgID0gLTEgRU5PRU5UIChObyBzdWNo IGZpbGUgb3IgZGlyZWN0b3J5KQpvcGVuKCIvbGliL2FybS1saW51eC1nbnVlYWJpL2xpYmMuc28u NiIsIE9fUkRPTkxZfE9fQ0xPRVhFQykgPSAzCnJlYWQoMywgIlwxNzdFTEZcMVwxXDFcMFwwXDBc MFwwXDBcMFwwXDBcM1wwKFwwXDFcMFwwXDBoXDIwMlwxXDAwMDRcMFwwXDAiLi4uLCA1MTIpID0g NTEyCmxzZWVrKDMsIDEyNDAwODQsIFNFRUtfU0VUKSAgICAgICAgICAgICA9IDEyNDAwODQKcmVh ZCgzLCAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBc MFwwXDBcMFwwXDBcMCIuLi4sIDI4NDApID0gMjg0MApsc2VlaygzLCAxMjM2NDg0LCBTRUVLX1NF VCkgICAgICAgICAgICAgPSAxMjM2NDg0CnJlYWQoMywgIkEpXDBcMFwwYWVhYmlcMFwxXDM3XDBc MFwwXDAwNTRUXDBcNlwyXDEwXDFcdFwxXDIyXDRcMjNcMVwyNFwxIi4uLiwgNDIpID0gNDIKZnN0 YXQ2NCgzLCB7c3RfbW9kZT1TX0lGUkVHfDA3NTUsIHN0X3NpemU9MTI0MjkyNCwgLi4ufSkgPSAw Cm1tYXAyKE5VTEwsIDEyNzkzNjgsIFBST1RfUkVBRHxQUk9UX0VYRUMsIE1BUF9QUklWQVRFfE1B UF9ERU5ZV1JJVEUsIDMsIDApID0gMHhiNmQ5YTAwMAptcHJvdGVjdCgweGI2ZWM1MDAwLCAzMjc2 OCwgUFJPVF9OT05FKSAgPSAwCm1tYXAyKDB4YjZlY2QwMDAsIDEyMjg4LCBQUk9UX1JFQUR8UFJP VF9XUklURSwgTUFQX1BSSVZBVEV8TUFQX0ZJWEVEfE1BUF9ERU5ZV1JJVEUsIDMsIDB4MTJiKSA9 IDB4YjZlY2QwMDAKbW1hcDIoMHhiNmVkMDAwMCwgOTYwOCwgUFJPVF9SRUFEfFBST1RfV1JJVEUs IE1BUF9QUklWQVRFfE1BUF9GSVhFRHxNQVBfQU5PTllNT1VTLCAtMSwgMCkgPSAweGI2ZWQwMDAw CmNsb3NlKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAKYWNjZXNzKCIvZXRj L2xkLnNvLm5vaHdjYXAiLCBGX09LKSAgICAgID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3Ig ZGlyZWN0b3J5KQpvcGVuKCIvbGliL2FybS1saW51eC1nbnVlYWJpL2xpYm0uc28uNiIsIE9fUkRP TkxZfE9fQ0xPRVhFQykgPSAzCnJlYWQoMywgIlwxNzdFTEZcMVwxXDFcMFwwXDBcMFwwXDBcMFww XDBcM1wwKFwwXDFcMFwwXDAwMDA8XDBcMDAwNFwwXDBcMCIuLi4sIDUxMikgPSA1MTIKbHNlZWso MywgNjU5OTEyLCBTRUVLX1NFVCkgICAgICAgICAgICAgID0gNjU5OTEyCnJlYWQoMywgIlwwXDBc MFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFww XDAiLi4uLCAxMTYwKSA9IDExNjAKbHNlZWsoMywgNjU5NTg4LCBTRUVLX1NFVCkgICAgICAgICAg ICAgID0gNjU5NTg4CnJlYWQoMywgIkEpXDBcMFwwYWVhYmlcMFwxXDM3XDBcMFwwXDAwNTRUXDBc NlwyXDEwXDFcdFwxXDIyXDRcMjNcMVwyNFwxIi4uLiwgNDIpID0gNDIKZnN0YXQ2NCgzLCB7c3Rf bW9kZT1TX0lGUkVHfDA2NDQsIHN0X3NpemU9NjYxMDcyLCAuLi59KSA9IDAKbW1hcDIoTlVMTCwg NjkyMzY0LCBQUk9UX1JFQUR8UFJPVF9FWEVDLCBNQVBfUFJJVkFURXxNQVBfREVOWVdSSVRFLCAz LCAwKSA9IDB4YjZjZjAwMDAKbXByb3RlY3QoMHhiNmQ5MTAwMCwgMjg2NzIsIFBST1RfTk9ORSkg ID0gMAptbWFwMigweGI2ZDk4MDAwLCA4MTkyLCBQUk9UX1JFQUR8UFJPVF9XUklURSwgTUFQX1BS SVZBVEV8TUFQX0ZJWEVEfE1BUF9ERU5ZV1JJVEUsIDMsIDB4YTApID0gMHhiNmQ5ODAwMApjbG9z ZSgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwCm1tYXAyKE5VTEwsIDQwOTYs IFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURXxNQVBfQU5PTllNT1VTLCAtMSwgMCkg PSAweGI2ZjEzMDAwCnNldF90bHMoMHhiNmYxMzRjMCwgMHhiNmYxM2I5OCwgMHhiNmYxODA1MCwg MHhiNmYxMzRjMCwgMHhiNmYxODA1MCkgPSAwCm1wcm90ZWN0KDB4YjZlY2QwMDAsIDgxOTIsIFBS T1RfUkVBRCkgICA9IDAKbXByb3RlY3QoMHhiNmQ5ODAwMCwgNDA5NiwgUFJPVF9SRUFEKSAgID0g MAptcHJvdGVjdCgweGI2ZWU3MDAwLCA0MDk2LCBQUk9UX1JFQUQpICAgPSAwCm1wcm90ZWN0KDB4 MTQwMDAsIDQwOTYsIFBST1RfUkVBRCkgICAgICA9IDAKbXByb3RlY3QoMHhiNmYxNzAwMCwgNDA5 NiwgUFJPVF9SRUFEKSAgID0gMAptdW5tYXAoMHhiNmVlOTAwMCwgMjQ4NDIpICAgICAgICAgICAg ICAgPSAwCmJyaygwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4ZjYzMDAw CmJyaygweGY4NDAwMCkgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4Zjg0MDAwCm9wZW4o Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsIE9fUkRPTkxZfE9fTEFSR0VGSUxFfE9f Q0xPRVhFQykgPSAzCmZzdGF0NjQoMywge3N0X21vZGU9U19JRlJFR3wwNjQ0LCBzdF9zaXplPTE2 MDc2MzIsIC4uLn0pID0gMAptbWFwMihOVUxMLCAxNjA3NjMyLCBQUk9UX1JFQUQsIE1BUF9QUklW QVRFLCAzLCAwKSA9IDB4YjZiNjcwMDAKY2xvc2UoMykgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgID0gMApzdGF0ZnMoIi9zeXMiLCB7Zl90eXBlPSJTWVNGU19NQUdJQyIsIGZfYnNpemU9 NDA5NiwgZl9ibG9ja3M9MCwgZl9iZnJlZT0wLCBmX2JhdmFpbD0wLCBmX2ZpbGVzPTAsIGZfZmZy ZWU9MCwgZl9mc2lkPXswLCAwfSwgZl9uYW1lbGVuPTI1NSwgZl9mcnNpemU9NDA5Nn0pID0gMApv cGVuYXQoQVRfRkRDV0QsICIvc3lzL2NsYXNzL2kyYy1hZGFwdGVyIiwgT19SRE9OTFl8T19OT05C TE9DS3xPX0xBUkdFRklMRXxPX0RJUkVDVE9SWXxPX0NMT0VYRUMpID0gMwpmY250bDY0KDMsIEZf R0VURkQpICAgICAgICAgICAgICAgICAgICAgPSAweDEgKGZsYWdzIEZEX0NMT0VYRUMpCmdldGRl bnRzKDMsIC8qIDMgZW50cmllcyAqLywgMzI3NjgpICAgICA9IDUyCm9wZW4oIi9zeXMvY2xhc3Mv aTJjLWFkYXB0ZXIvaTJjLTAvbmFtZSIsIE9fUkRPTkxZKSA9IDQKZnN0YXQ2NCg0LCB7c3RfbW9k ZT1TX0lGUkVHfDA0NDQsIHN0X3NpemU9NDA5NiwgLi4ufSkgPSAwCm1tYXAyKE5VTEwsIDQwOTYs IFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURXxNQVBfQU5PTllNT1VTLCAtMSwgMCkg PSAweGI2ZjEyMDAwCnJlYWQoNCwgIm12NjR4eHhfaTJjIGFkYXB0ZXJcbiIsIDQwOTYpICA9IDIw CmNsb3NlKDQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAKbXVubWFwKDB4YjZm MTIwMDAsIDQwOTYpICAgICAgICAgICAgICAgID0gMApnZXRkZW50cygzLCAvKiAwIGVudHJpZXMg Ki8sIDMyNzY4KSAgICAgPSAwCmNsb3NlKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA9IDAKb3BlbmF0KEFUX0ZEQ1dELCAiL3N5cy9jbGFzcy9od21vbiIsIE9fUkRPTkxZfE9fTk9O QkxPQ0t8T19MQVJHRUZJTEV8T19ESVJFQ1RPUll8T19DTE9FWEVDKSA9IDMKZ2V0ZGVudHMoMywg LyogNCBlbnRyaWVzICovLCAzMjc2OCkgICAgID0gNzIKcmVhZGxpbmsoIi9zeXMvY2xhc3MvaHdt b24vaHdtb24wL2RldmljZSIsICIuLi8uLi8uLi8wLTAwM2UiLi4uLCAyNTQpID0gMTUKb3Blbigi L3N5cy9jbGFzcy9od21vbi9od21vbjAvbmFtZSIsIE9fUkRPTkxZKSA9IC0xIEVOT0VOVCAoTm8g c3VjaCBmaWxlIG9yIGRpcmVjdG9yeSkKb3BlbigiL3N5cy9jbGFzcy9od21vbi9od21vbjAvZGV2 aWNlL25hbWUiLCBPX1JET05MWSkgPSA0CmZzdGF0NjQoNCwge3N0X21vZGU9U19JRlJFR3wwNDQ0 LCBzdF9zaXplPTQwOTYsIC4uLn0pID0gMAptbWFwMihOVUxMLCA0MDk2LCBQUk9UX1JFQUR8UFJP VF9XUklURSwgTUFQX1BSSVZBVEV8TUFQX0FOT05ZTU9VUywgLTEsIDApID0gMHhiNmYxMjAwMApy ZWFkKDQsICJnNzYyXG4iLCA0MDk2KSAgICAgICAgICAgICAgICAgPSA1CmNsb3NlKDQpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAKbXVubWFwKDB4YjZmMTIwMDAsIDQwOTYpICAg ICAgICAgICAgICAgID0gMApyZWFkbGluaygiL3N5cy9jbGFzcy9od21vbi9od21vbjAvZGV2aWNl L3N1YnN5c3RlbSIsICIuLi8uLi8uLi8uLi8uLi8uLi9idXMvaTJjIiwgMjU0KSA9IDI1Cm9wZW4o Ii9zeXMvY2xhc3MvaTJjLWFkYXB0ZXIvaTJjLTAvZGV2aWNlL25hbWUiLCBPX1JET05MWSkgPSAt MSBFTk9FTlQgKE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkpCm9wZW5hdChBVF9GRENXRCwgIi9z eXMvY2xhc3MvaHdtb24vaHdtb24wL2RldmljZSIsIE9fUkRPTkxZfE9fTk9OQkxPQ0t8T19MQVJH RUZJTEV8T19ESVJFQ1RPUll8T19DTE9FWEVDKSA9IDQKYnJrKDB4ZmFiMDAwKSAgICAgICAgICAg ICAgICAgICAgICAgICAgID0gMHhmYWIwMDAKZ2V0ZGVudHMoNCwgLyogMTcgZW50cmllcyAqLywg MzI3NjgpICAgID0gMzU2CnN0YXQ2NCgiL3N5cy9jbGFzcy9od21vbi9od21vbjAvZGV2aWNlL2Zh bjFfcHVsc2VzIiwge3N0X21vZGU9U19JRlJFR3wwNjQ0LCBzdF9zaXplPTQwOTYsIC4uLn0pID0g MApzdGF0NjQoIi9zeXMvY2xhc3MvaHdtb24vaHdtb24wL2RldmljZS9mYW4xX2RpdiIsIHtzdF9t b2RlPVNfSUZSRUd8MDY0NCwgc3Rfc2l6ZT00MDk2LCAuLi59KSA9IDAKc3RhdDY0KCIvc3lzL2Ns YXNzL2h3bW9uL2h3bW9uMC9kZXZpY2UvZmFuMV9hbGFybSIsIHtzdF9tb2RlPVNfSUZSRUd8MDQ0 NCwgc3Rfc2l6ZT00MDk2LCAuLi59KSA9IDAKc3RhdDY0KCIvc3lzL2NsYXNzL2h3bW9uL2h3bW9u MC9kZXZpY2UvZmFuMV9mYXVsdCIsIHtzdF9tb2RlPVNfSUZSRUd8MDQ0NCwgc3Rfc2l6ZT00MDk2 LCAuLi59KSA9IDAKc3RhdDY0KCIvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMC9kZXZpY2UvZmFuMV9p bnB1dCIsIHtzdF9tb2RlPVNfSUZSRUd8MDQ0NCwgc3Rfc2l6ZT00MDk2LCAuLi59KSA9IDAKZ2V0 ZGVudHMoNCwgLyogMCBlbnRyaWVzICovLCAzMjc2OCkgICAgID0gMApjbG9zZSg0KSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPSAwCnJlYWRsaW5rKCIvc3lzL2NsYXNzL2h3bW9uL2h3 bW9uMS9kZXZpY2UiLCAiLi4vLi4vdGhlcm1hbF96b25lMCIuLi4sIDI1NCkgPSAxOQpvcGVuKCIv c3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9uYW1lIiwgT19SRE9OTFkpID0gNApmc3RhdDY0KDQsIHtz dF9tb2RlPVNfSUZSRUd8MDQ0NCwgc3Rfc2l6ZT00MDk2LCAuLi59KSA9IDAKbW1hcDIoTlVMTCwg NDA5NiwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9QUklWQVRFfE1BUF9BTk9OWU1PVVMsIC0x LCAwKSA9IDB4YjZmMTIwMDAKcmVhZCg0LCAiYXJtYWRhX3RoZXJtYWxcbiIsIDQwOTYpICAgICAg ID0gMTUKY2xvc2UoNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMAptdW5tYXAo MHhiNmYxMjAwMCwgNDA5NikgICAgICAgICAgICAgICAgPSAwCnJlYWRsaW5rKCIvc3lzL2NsYXNz L2h3bW9uL2h3bW9uMS9kZXZpY2Uvc3Vic3lzdGVtIiwgIi4uLy4uLy4uLy4uL2NsYXNzL3RoZXJt YWwiLCAyNTQpID0gMjUKb3BlbigiL3N5cy9jbGFzcy9od21vbi9od21vbjEvZGV2aWNlL25hbWUi LCBPX1JET05MWSkgPSAtMSBFTk9FTlQgKE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkpCmdldGRl bnRzKDMsIC8qIDAgZW50cmllcyAqLywgMzI3NjgpICAgICA9IDAKY2xvc2UoMykgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgID0gMApvcGVuKCIvZXRjL3NlbnNvcnMzLmNvbmYiLCBPX1JE T05MWSkgICAgPSAzCmlvY3RsKDMsIFNORENUTF9UTVJfVElNRUJBU0Ugb3IgVENHRVRTLCAweGJl YmM0YWY0KSA9IC0xIEVOT1RUWSAoSW5hcHByb3ByaWF0ZSBpb2N0bCBmb3IgZGV2aWNlKQpmc3Rh dDY0KDMsIHtzdF9tb2RlPVNfSUZSRUd8MDY0NCwgc3Rfc2l6ZT0xMDM0NCwgLi4ufSkgPSAwCm1t YXAyKE5VTEwsIDQwOTYsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURXxNQVBfQU5P TllNT1VTLCAtMSwgMCkgPSAweGI2ZjEyMDAwCnJlYWQoMywgIiMgbGlic2Vuc29ycyBjb25maWd1 cmF0aW9uIGZpbGVcbiIuLi4sIDgxOTIpID0gODE5MgpyZWFkKDMsICIgbGFiZWwgaW40IFwiKzEy VlwiXG4gICAgbGFiZWwgaW41ICIuLi4sIDgxOTIpID0gMjE1MgpyZWFkKDMsICIiLCA0MDk2KSAg ICAgICAgICAgICAgICAgICAgICAgPSAwCnJlYWQoMywgIiIsIDgxOTIpICAgICAgICAgICAgICAg ICAgICAgICA9IDAKaW9jdGwoMywgU05EQ1RMX1RNUl9USU1FQkFTRSBvciBUQ0dFVFMsIDB4YmVi YzNiMDQpID0gLTEgRU5PVFRZIChJbmFwcHJvcHJpYXRlIGlvY3RsIGZvciBkZXZpY2UpCmNsb3Nl KDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAKbXVubWFwKDB4YjZmMTIwMDAs IDQwOTYpICAgICAgICAgICAgICAgID0gMApvcGVuYXQoQVRfRkRDV0QsICIvZXRjL3NlbnNvcnMu ZCIsIE9fUkRPTkxZfE9fTk9OQkxPQ0t8T19MQVJHRUZJTEV8T19ESVJFQ1RPUll8T19DTE9FWEVD KSA9IDMKZ2V0ZGVudHMoMywgLyogMyBlbnRyaWVzICovLCAzMjc2OCkgICAgID0gNTYKZ2V0ZGVu dHMoMywgLyogMCBlbnRyaWVzICovLCAzMjc2OCkgICAgID0gMApjbG9zZSgzKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPSAwCm9wZW4oIi91c3IvbGliL2FybS1saW51eC1nbnVlYWJp L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCBPX1JET05MWSkgPSAzCmZzdGF0NjQoMywge3N0 X21vZGU9U19JRlJFR3wwNjQ0LCBzdF9zaXplPTI2MjYwLCAuLi59KSA9IDAKbW1hcDIoTlVMTCwg MjYyNjAsIFBST1RfUkVBRCwgTUFQX1NIQVJFRCwgMywgMCkgPSAweGI2ZWU5MDAwCmNsb3NlKDMp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAKb3BlbigiL3Vzci9saWIvYXJtLWxp bnV4LWdudWVhYmkvZ2NvbnYvSVNPODg1OS0xLnNvIiwgT19SRE9OTFl8T19DTE9FWEVDKSA9IDMK cmVhZCgzLCAiXDE3N0VMRlwxXDFcMVwwXDBcMFwwXDBcMFwwXDBcMFwzXDAoXDBcMVwwXDBcMFwz NTRcM1wwXDAwMDRcMFwwXDAiLi4uLCA1MTIpID0gNTEyCmxzZWVrKDMsIDg1NDgsIFNFRUtfU0VU KSAgICAgICAgICAgICAgICA9IDg1NDgKcmVhZCgzLCAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFww XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIuLi4sIDEwODApID0gMTA4 MApsc2VlaygzLCA4MjQ4LCBTRUVLX1NFVCkgICAgICAgICAgICAgICAgPSA4MjQ4CnJlYWQoMywg IkEpXDBcMFwwYWVhYmlcMFwxXDM3XDBcMFwwXDAwNTRUXDBcNlwyXDEwXDFcdFwxXDIyXDRcMjNc MVwyNFwxIi4uLiwgNDIpID0gNDIKZnN0YXQ2NCgzLCB7c3RfbW9kZT1TX0lGUkVHfDA2NDQsIHN0 X3NpemU9OTYyOCwgLi4ufSkgPSAwCm1tYXAyKE5VTEwsIDQxMDIwLCBQUk9UX1JFQUR8UFJPVF9F WEVDLCBNQVBfUFJJVkFURXxNQVBfREVOWVdSSVRFLCAzLCAwKSA9IDB4YjZiNWMwMDAKbXByb3Rl Y3QoMHhiNmI1ZTAwMCwgMjg2NzIsIFBST1RfTk9ORSkgID0gMAptbWFwMigweGI2YjY1MDAwLCA4 MTkyLCBQUk9UX1JFQUR8UFJPVF9XUklURSwgTUFQX1BSSVZBVEV8TUFQX0ZJWEVEfE1BUF9ERU5Z V1JJVEUsIDMsIDB4MSkgPSAweGI2YjY1MDAwCmNsb3NlKDMpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA9IDAKbXByb3RlY3QoMHhiNmI2NTAwMCwgNDA5NiwgUFJPVF9SRUFEKSAgID0g MApmc3RhdDY0KDEsIHtzdF9tb2RlPVNfSUZSRUd8MDY0NCwgc3Rfc2l6ZT05MjE2LCAuLi59KSA9 IDAKbW1hcDIoTlVMTCwgNDA5NiwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9QUklWQVRFfE1B UF9BTk9OWU1PVVMsIC0xLCAwKSA9IDB4YjZmMTIwMDAKb3BlbigiL3N5cy9jbGFzcy9od21vbi9o d21vbjAvZGV2aWNlL2ZhbjFfbGFiZWwiLCBPX1JET05MWSkgPSAtMSBFTk9FTlQgKE5vIHN1Y2gg ZmlsZSBvciBkaXJlY3RvcnkpCm9wZW4oIi9zeXMvY2xhc3MvaHdtb24vaHdtb24wL2RldmljZS9m YW4xX2xhYmVsIiwgT19SRE9OTFkpID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5KQpvcGVuKCIvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMC9kZXZpY2UvZmFuMV9mYXVsdCIsIE9f UkRPTkxZKSA9IDMKZnN0YXQ2NCgzLCB7c3RfbW9kZT1TX0lGUkVHfDA0NDQsIHN0X3NpemU9NDA5 NiwgLi4ufSkgPSAwCm1tYXAyKE5VTEwsIDQwOTYsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBf UFJJVkFURXxNQVBfQU5PTllNT1VTLCAtMSwgMCkgPSAweGI2ZjExMDAwCnJlYWQoMywgIjBcbiIs IDQwOTYpICAgICAgICAgICAgICAgICAgICA9IDIKY2xvc2UoMykgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgID0gMAptdW5tYXAoMHhiNmYxMTAwMCwgNDA5NikgICAgICAgICAgICAgICAg PSAwCm9wZW4oIi9zeXMvY2xhc3MvaHdtb24vaHdtb24wL2RldmljZS9mYW4xX2lucHV0IiwgT19S RE9OTFkpID0gMwpmc3RhdDY0KDMsIHtzdF9tb2RlPVNfSUZSRUd8MDQ0NCwgc3Rfc2l6ZT00MDk2 LCAuLi59KSA9IDAKbW1hcDIoTlVMTCwgNDA5NiwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9Q UklWQVRFfE1BUF9BTk9OWU1PVVMsIC0xLCAwKSA9IDB4YjZmMTEwMDAKcmVhZCgzLCAiMTUzNlxu IiwgNDA5NikgICAgICAgICAgICAgICAgID0gNQpjbG9zZSgzKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPSAwCm11bm1hcCgweGI2ZjExMDAwLCA0MDk2KSAgICAgICAgICAgICAgICA9 IDAKb3BlbigiL3N5cy9jbGFzcy9od21vbi9od21vbjAvZGV2aWNlL2ZhbjFfZGl2IiwgT19SRE9O TFkpID0gMwpmc3RhdDY0KDMsIHtzdF9tb2RlPVNfSUZSRUd8MDY0NCwgc3Rfc2l6ZT00MDk2LCAu Li59KSA9IDAKbW1hcDIoTlVMTCwgNDA5NiwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9QUklW QVRFfE1BUF9BTk9OWU1PVVMsIC0xLCAwKSA9IDB4YjZmMTEwMDAKcmVhZCgzLCAiMVxuIiwgNDA5 NikgICAgICAgICAgICAgICAgICAgID0gMgpjbG9zZSgzKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPSAwCm11bm1hcCgweGI2ZjExMDAwLCA0MDk2KSAgICAgICAgICAgICAgICA9IDAK b3BlbigiL3N5cy9jbGFzcy9od21vbi9od21vbjAvZGV2aWNlL2ZhbjFfYWxhcm0iLCBPX1JET05M WSkgPSAzCmZzdGF0NjQoMywge3N0X21vZGU9U19JRlJFR3wwNDQ0LCBzdF9zaXplPTQwOTYsIC4u Ln0pID0gMAptbWFwMihOVUxMLCA0MDk2LCBQUk9UX1JFQUR8UFJPVF9XUklURSwgTUFQX1BSSVZB VEV8TUFQX0FOT05ZTU9VUywgLTEsIDApID0gMHhiNmYxMTAwMApyZWFkKDMsICIwXG4iLCA0MDk2 KSAgICAgICAgICAgICAgICAgICAgPSAyCmNsb3NlKDMpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA9IDAKbXVubWFwKDB4YjZmMTEwMDAsIDQwOTYpICAgICAgICAgICAgICAgID0gMAp3 cml0ZSgxLCAiZzc2Mi1pMmMtMC0zZVxuQWRhcHRlcjogbXY2NHh4eF9pIi4uLiwgNzdnNzYyLWky Yy0wLTNlCkFkYXB0ZXI6IG12NjR4eHhfaTJjIGFkYXB0ZXIKZmFuMTogICAgICAgIDE1MzYgUlBN ICAoZGl2ID0gMSkKCikgPSA3NwpleGl0X2dyb3VwKDApICAgICAgICAgICAgICAgICAgICAgICAg ICAgPSA/CgoKCgoKLTMuMTEuNi0tODwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZXhlY3ZlKCIvdXNyL2Jpbi9zZW5zb3JzIiwgWyJzZW5z b3JzIl0sIFsvKiAxMyB2YXJzICovXSkgPSAwCmJyaygwKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA9IDB4MWFlOTAwMAp1bmFtZSh7c3lzPSJMaW51eCIsIG5vZGU9Im1vb2QiLCAu Li59KSAgPSAwCmFjY2VzcygiL2V0Yy9sZC5zby5ub2h3Y2FwIiwgRl9PSykgICAgICA9IC0xIEVO T0VOVCAoTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSkKbW1hcDIoTlVMTCwgNDA5NiwgUFJPVF9S RUFEfFBST1RfV1JJVEUsIE1BUF9QUklWQVRFfE1BUF9BTk9OWU1PVVMsIC0xLCAwKSA9IDB4YjZm ZTcwMDAKYWNjZXNzKCIvZXRjL2xkLnNvLnByZWxvYWQiLCBSX09LKSAgICAgID0gLTEgRU5PRU5U IChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KQpvcGVuKCIvZXRjL2xkLnNvLmNhY2hlIiwgT19S RE9OTFl8T19DTE9FWEVDKSA9IDMKZnN0YXQ2NCgzLCB7c3RfbW9kZT1TX0lGUkVHfDA2NDQsIHN0 X3NpemU9MjQ4NDIsIC4uLn0pID0gMAptbWFwMihOVUxMLCAyNDg0MiwgUFJPVF9SRUFELCBNQVBf UFJJVkFURSwgMywgMCkgPSAweGI2ZmJiMDAwCmNsb3NlKDMpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA9IDAKYWNjZXNzKCIvZXRjL2xkLnNvLm5vaHdjYXAiLCBGX09LKSAgICAgID0g LTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KQpvcGVuKCIvdXNyL2xpYi9hcm0t bGludXgtZ251ZWFiaS9saWJzZW5zb3JzLnNvLjQiLCBPX1JET05MWXxPX0NMT0VYRUMpID0gMwpy ZWFkKDMsICJcMTc3RUxGXDFcMVwxXDBcMFwwXDBcMFwwXDBcMFwwXDNcMChcMFwxXDBcMFwwXDIx MFwyN1wwXDAwMDRcMFwwXDAiLi4uLCA1MTIpID0gNTEyCmxzZWVrKDMsIDUzOTA4LCBTRUVLX1NF VCkgICAgICAgICAgICAgICA9IDUzOTA4CnJlYWQoMywgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBc MFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiLi4uLCAxMDQwKSA9IDEw NDAKbHNlZWsoMywgNTM2NDQsIFNFRUtfU0VUKSAgICAgICAgICAgICAgID0gNTM2NDQKcmVhZCgz LCAiQSlcMFwwXDBhZWFiaVwwXDFcMzdcMFwwXDBcMDA1NFRcMFw2XDJcMTBcMVx0XDFcMjJcNFwy NFwxXDI1XDEiLi4uLCA0MikgPSA0MgptbWFwMihOVUxMLCA0MDk2LCBQUk9UX1JFQUR8UFJPVF9X UklURSwgTUFQX1BSSVZBVEV8TUFQX0FOT05ZTU9VUywgLTEsIDApID0gMHhiNmZlNjAwMApmc3Rh dDY0KDMsIHtzdF9tb2RlPVNfSUZSRUd8MDY0NCwgc3Rfc2l6ZT01NDk0OCwgLi4ufSkgPSAwCm1t YXAyKE5VTEwsIDg2OTUyLCBQUk9UX1JFQUR8UFJPVF9FWEVDLCBNQVBfUFJJVkFURXxNQVBfREVO WVdSSVRFLCAzLCAwKSA9IDB4YjZmYTUwMDAKbXByb3RlY3QoMHhiNmZiMjAwMCwgMjg2NzIsIFBS T1RfTk9ORSkgID0gMAptbWFwMigweGI2ZmI5MDAwLCA4MTkyLCBQUk9UX1JFQUR8UFJPVF9XUklU RSwgTUFQX1BSSVZBVEV8TUFQX0ZJWEVEfE1BUF9ERU5ZV1JJVEUsIDMsIDB4YykgPSAweGI2ZmI5 MDAwCmNsb3NlKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAKYWNjZXNzKCIv ZXRjL2xkLnNvLm5vaHdjYXAiLCBGX09LKSAgICAgID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUg b3IgZGlyZWN0b3J5KQpvcGVuKCIvbGliL2FybS1saW51eC1nbnVlYWJpL2xpYmMuc28uNiIsIE9f UkRPTkxZfE9fQ0xPRVhFQykgPSAzCnJlYWQoMywgIlwxNzdFTEZcMVwxXDFcMFwwXDBcMFwwXDBc MFwwXDBcM1wwKFwwXDFcMFwwXDBoXDIwMlwxXDAwMDRcMFwwXDAiLi4uLCA1MTIpID0gNTEyCmxz ZWVrKDMsIDEyNDAwODQsIFNFRUtfU0VUKSAgICAgICAgICAgICA9IDEyNDAwODQKcmVhZCgzLCAi XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBc MFwwXDBcMCIuLi4sIDI4NDApID0gMjg0MApsc2VlaygzLCAxMjM2NDg0LCBTRUVLX1NFVCkgICAg ICAgICAgICAgPSAxMjM2NDg0CnJlYWQoMywgIkEpXDBcMFwwYWVhYmlcMFwxXDM3XDBcMFwwXDAw NTRUXDBcNlwyXDEwXDFcdFwxXDIyXDRcMjNcMVwyNFwxIi4uLiwgNDIpID0gNDIKZnN0YXQ2NCgz LCB7c3RfbW9kZT1TX0lGUkVHfDA3NTUsIHN0X3NpemU9MTI0MjkyNCwgLi4ufSkgPSAwCm1tYXAy KE5VTEwsIDEyNzkzNjgsIFBST1RfUkVBRHxQUk9UX0VYRUMsIE1BUF9QUklWQVRFfE1BUF9ERU5Z V1JJVEUsIDMsIDApID0gMHhiNmU2YzAwMAptcHJvdGVjdCgweGI2Zjk3MDAwLCAzMjc2OCwgUFJP VF9OT05FKSAgPSAwCm1tYXAyKDB4YjZmOWYwMDAsIDEyMjg4LCBQUk9UX1JFQUR8UFJPVF9XUklU RSwgTUFQX1BSSVZBVEV8TUFQX0ZJWEVEfE1BUF9ERU5ZV1JJVEUsIDMsIDB4MTJiKSA9IDB4YjZm OWYwMDAKbW1hcDIoMHhiNmZhMjAwMCwgOTYwOCwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9Q UklWQVRFfE1BUF9GSVhFRHxNQVBfQU5PTllNT1VTLCAtMSwgMCkgPSAweGI2ZmEyMDAwCmNsb3Nl KDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAKYWNjZXNzKCIvZXRjL2xkLnNv Lm5vaHdjYXAiLCBGX09LKSAgICAgID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5KQpvcGVuKCIvbGliL2FybS1saW51eC1nbnVlYWJpL2xpYm0uc28uNiIsIE9fUkRPTkxZfE9f Q0xPRVhFQykgPSAzCnJlYWQoMywgIlwxNzdFTEZcMVwxXDFcMFwwXDBcMFwwXDBcMFwwXDBcM1ww KFwwXDFcMFwwXDAwMDA8XDBcMDAwNFwwXDBcMCIuLi4sIDUxMikgPSA1MTIKbHNlZWsoMywgNjU5 OTEyLCBTRUVLX1NFVCkgICAgICAgICAgICAgID0gNjU5OTEyCnJlYWQoMywgIlwwXDBcMFwwXDBc MFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiLi4u LCAxMTYwKSA9IDExNjAKbHNlZWsoMywgNjU5NTg4LCBTRUVLX1NFVCkgICAgICAgICAgICAgID0g NjU5NTg4CnJlYWQoMywgIkEpXDBcMFwwYWVhYmlcMFwxXDM3XDBcMFwwXDAwNTRUXDBcNlwyXDEw XDFcdFwxXDIyXDRcMjNcMVwyNFwxIi4uLiwgNDIpID0gNDIKZnN0YXQ2NCgzLCB7c3RfbW9kZT1T X0lGUkVHfDA2NDQsIHN0X3NpemU9NjYxMDcyLCAuLi59KSA9IDAKbW1hcDIoTlVMTCwgNjkyMzY0 LCBQUk9UX1JFQUR8UFJPVF9FWEVDLCBNQVBfUFJJVkFURXxNQVBfREVOWVdSSVRFLCAzLCAwKSA9 IDB4YjZkYzIwMDAKbXByb3RlY3QoMHhiNmU2MzAwMCwgMjg2NzIsIFBST1RfTk9ORSkgID0gMApt bWFwMigweGI2ZTZhMDAwLCA4MTkyLCBQUk9UX1JFQUR8UFJPVF9XUklURSwgTUFQX1BSSVZBVEV8 TUFQX0ZJWEVEfE1BUF9ERU5ZV1JJVEUsIDMsIDB4YTApID0gMHhiNmU2YTAwMApjbG9zZSgzKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwCm1tYXAyKE5VTEwsIDQwOTYsIFBST1Rf UkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURXxNQVBfQU5PTllNT1VTLCAtMSwgMCkgPSAweGI2 ZmU1MDAwCnNldF90bHMoMHhiNmZlNTRjMCwgMHhiNmZlNWI5OCwgMHhiNmZlYTA1MCwgMHhiNmZl NTRjMCwgMHhiNmZlYTA1MCkgPSAwCm1wcm90ZWN0KDB4YjZmOWYwMDAsIDgxOTIsIFBST1RfUkVB RCkgICA9IDAKbXByb3RlY3QoMHhiNmU2YTAwMCwgNDA5NiwgUFJPVF9SRUFEKSAgID0gMAptcHJv dGVjdCgweGI2ZmI5MDAwLCA0MDk2LCBQUk9UX1JFQUQpICAgPSAwCm1wcm90ZWN0KDB4MTQwMDAs IDQwOTYsIFBST1RfUkVBRCkgICAgICA9IDAKbXByb3RlY3QoMHhiNmZlOTAwMCwgNDA5NiwgUFJP VF9SRUFEKSAgID0gMAptdW5tYXAoMHhiNmZiYjAwMCwgMjQ4NDIpICAgICAgICAgICAgICAgPSAw CmJyaygwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MWFlOTAwMApicmso MHgxYjBhMDAwKSAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDFiMGEwMDAKb3BlbigiL3Vz ci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwgT19SRE9OTFl8T19MQVJHRUZJTEV8T19DTE9F WEVDKSA9IDMKZnN0YXQ2NCgzLCB7c3RfbW9kZT1TX0lGUkVHfDA2NDQsIHN0X3NpemU9MTYwNzYz MiwgLi4ufSkgPSAwCm1tYXAyKE5VTEwsIDE2MDc2MzIsIFBST1RfUkVBRCwgTUFQX1BSSVZBVEUs IDMsIDApID0gMHhiNmMzOTAwMApjbG9zZSgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPSAwCnN0YXRmcygiL3N5cyIsIHtmX3R5cGU9IlNZU0ZTX01BR0lDIiwgZl9ic2l6ZT00MDk2 LCBmX2Jsb2Nrcz0wLCBmX2JmcmVlPTAsIGZfYmF2YWlsPTAsIGZfZmlsZXM9MCwgZl9mZnJlZT0w LCBmX2ZzaWQ9ezAsIDB9LCBmX25hbWVsZW49MjU1LCBmX2Zyc2l6ZT00MDk2fSkgPSAwCm9wZW5h dChBVF9GRENXRCwgIi9zeXMvY2xhc3MvaTJjLWFkYXB0ZXIiLCBPX1JET05MWXxPX05PTkJMT0NL fE9fTEFSR0VGSUxFfE9fRElSRUNUT1JZfE9fQ0xPRVhFQykgPSAzCmZjbnRsNjQoMywgRl9HRVRG RCkgICAgICAgICAgICAgICAgICAgICA9IDB4MSAoZmxhZ3MgRkRfQ0xPRVhFQykKZ2V0ZGVudHMo MywgLyogMyBlbnRyaWVzICovLCAzMjc2OCkgICAgID0gNTIKb3BlbigiL3N5cy9jbGFzcy9pMmMt YWRhcHRlci9pMmMtMC9uYW1lIiwgT19SRE9OTFkpID0gNApmc3RhdDY0KDQsIHtzdF9tb2RlPVNf SUZSRUd8MDQ0NCwgc3Rfc2l6ZT00MDk2LCAuLi59KSA9IDAKbW1hcDIoTlVMTCwgNDA5NiwgUFJP VF9SRUFEfFBST1RfV1JJVEUsIE1BUF9QUklWQVRFfE1BUF9BTk9OWU1PVVMsIC0xLCAwKSA9IDB4 YjZmZTQwMDAKcmVhZCg0LCAibXY2NHh4eF9pMmMgYWRhcHRlclxuIiwgNDA5NikgID0gMjAKY2xv c2UoNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMAptdW5tYXAoMHhiNmZlNDAw MCwgNDA5NikgICAgICAgICAgICAgICAgPSAwCmdldGRlbnRzKDMsIC8qIDAgZW50cmllcyAqLywg MzI3NjgpICAgICA9IDAKY2xvc2UoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g MApvcGVuYXQoQVRfRkRDV0QsICIvc3lzL2NsYXNzL2h3bW9uIiwgT19SRE9OTFl8T19OT05CTE9D S3xPX0xBUkdFRklMRXxPX0RJUkVDVE9SWXxPX0NMT0VYRUMpID0gMwpnZXRkZW50cygzLCAvKiA0 IGVudHJpZXMgKi8sIDMyNzY4KSAgICAgPSA3MgpyZWFkbGluaygiL3N5cy9jbGFzcy9od21vbi9o d21vbjAvZGV2aWNlIiwgIi4uLy4uLy4uLzAtMDAzZSIuLi4sIDI1NCkgPSAxNQpvcGVuKCIvc3lz L2NsYXNzL2h3bW9uL2h3bW9uMC9uYW1lIiwgT19SRE9OTFkpID0gLTEgRU5PRU5UIChObyBzdWNo IGZpbGUgb3IgZGlyZWN0b3J5KQpvcGVuKCIvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMC9kZXZpY2Uv bmFtZSIsIE9fUkRPTkxZKSA9IDQKZnN0YXQ2NCg0LCB7c3RfbW9kZT1TX0lGUkVHfDA0NDQsIHN0 X3NpemU9NDA5NiwgLi4ufSkgPSAwCm1tYXAyKE5VTEwsIDQwOTYsIFBST1RfUkVBRHxQUk9UX1dS SVRFLCBNQVBfUFJJVkFURXxNQVBfQU5PTllNT1VTLCAtMSwgMCkgPSAweGI2ZmU0MDAwCnJlYWQo NCwgImc3NjJcbiIsIDQwOTYpICAgICAgICAgICAgICAgICA9IDUKY2xvc2UoNCkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgID0gMAptdW5tYXAoMHhiNmZlNDAwMCwgNDA5NikgICAgICAg ICAgICAgICAgPSAwCnJlYWRsaW5rKCIvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMC9kZXZpY2Uvc3Vi c3lzdGVtIiwgIi4uLy4uLy4uLy4uLy4uLy4uL2J1cy9pMmMiLCAyNTQpID0gMjUKb3BlbigiL3N5 cy9jbGFzcy9pMmMtYWRhcHRlci9pMmMtMC9kZXZpY2UvbmFtZSIsIE9fUkRPTkxZKSA9IC0xIEVO T0VOVCAoTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSkKb3BlbmF0KEFUX0ZEQ1dELCAiL3N5cy9j bGFzcy9od21vbi9od21vbjAvZGV2aWNlIiwgT19SRE9OTFl8T19OT05CTE9DS3xPX0xBUkdFRklM RXxPX0RJUkVDVE9SWXxPX0NMT0VYRUMpID0gNApicmsoMHgxYjMxMDAwKSAgICAgICAgICAgICAg ICAgICAgICAgICAgPSAweDFiMzEwMDAKZ2V0ZGVudHMoNCwgLyogMTcgZW50cmllcyAqLywgMzI3 NjgpICAgID0gMzU2CnN0YXQ2NCgiL3N5cy9jbGFzcy9od21vbi9od21vbjAvZGV2aWNlL2ZhbjFf cHVsc2VzIiwge3N0X21vZGU9U19JRlJFR3wwNjQ0LCBzdF9zaXplPTQwOTYsIC4uLn0pID0gMApz dGF0NjQoIi9zeXMvY2xhc3MvaHdtb24vaHdtb24wL2RldmljZS9mYW4xX2RpdiIsIHtzdF9tb2Rl PVNfSUZSRUd8MDY0NCwgc3Rfc2l6ZT00MDk2LCAuLi59KSA9IDAKc3RhdDY0KCIvc3lzL2NsYXNz L2h3bW9uL2h3bW9uMC9kZXZpY2UvZmFuMV9hbGFybSIsIHtzdF9tb2RlPVNfSUZSRUd8MDQ0NCwg c3Rfc2l6ZT00MDk2LCAuLi59KSA9IDAKc3RhdDY0KCIvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMC9k ZXZpY2UvZmFuMV9mYXVsdCIsIHtzdF9tb2RlPVNfSUZSRUd8MDQ0NCwgc3Rfc2l6ZT00MDk2LCAu Li59KSA9IDAKc3RhdDY0KCIvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMC9kZXZpY2UvZmFuMV9pbnB1 dCIsIHtzdF9tb2RlPVNfSUZSRUd8MDQ0NCwgc3Rfc2l6ZT00MDk2LCAuLi59KSA9IDAKZ2V0ZGVu dHMoNCwgLyogMCBlbnRyaWVzICovLCAzMjc2OCkgICAgID0gMApjbG9zZSg0KSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPSAwCnJlYWRsaW5rKCIvc3lzL2NsYXNzL2h3bW9uL2h3bW9u MS9kZXZpY2UiLCAweGJlYjM1OTZjLCAyNTQpID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3Ig ZGlyZWN0b3J5KQpvcGVuKCIvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMS9uYW1lIiwgT19SRE9OTFkp ID0gNApmc3RhdDY0KDQsIHtzdF9tb2RlPVNfSUZSRUd8MDQ0NCwgc3Rfc2l6ZT00MDk2LCAuLi59 KSA9IDAKbW1hcDIoTlVMTCwgNDA5NiwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9QUklWQVRF fE1BUF9BTk9OWU1PVVMsIC0xLCAwKSA9IDB4YjZmZTQwMDAKcmVhZCg0LCAiYXJtYWRhX3RoZXJt YWxcbiIsIDQwOTYpICAgICAgID0gMTUKY2xvc2UoNCkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgID0gMAptdW5tYXAoMHhiNmZlNDAwMCwgNDA5NikgICAgICAgICAgICAgICAgPSAwCm9w ZW5hdChBVF9GRENXRCwgIi9zeXMvY2xhc3MvaHdtb24vaHdtb24xIiwgT19SRE9OTFl8T19OT05C TE9DS3xPX0xBUkdFRklMRXxPX0RJUkVDVE9SWXxPX0NMT0VYRUMpID0gNApnZXRkZW50cyg0LCAv KiA2IGVudHJpZXMgKi8sIDMyNzY4KSAgICAgPSAxMTYKc3RhdDY0KCIvc3lzL2NsYXNzL2h3bW9u L2h3bW9uMS90ZW1wMV9pbnB1dCIsIHtzdF9tb2RlPVNfSUZSRUd8MDQ0NCwgc3Rfc2l6ZT00MDk2 LCAuLi59KSA9IDAKZ2V0ZGVudHMoNCwgLyogMCBlbnRyaWVzICovLCAzMjc2OCkgICAgID0gMApj bG9zZSg0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwCmdldGRlbnRzKDMsIC8q IDAgZW50cmllcyAqLywgMzI3NjgpICAgICA9IDAKY2xvc2UoMykgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgID0gMApvcGVuKCIvZXRjL3NlbnNvcnMzLmNvbmYiLCBPX1JET05MWSkgICAg PSAzCmlvY3RsKDMsIFNORENUTF9UTVJfVElNRUJBU0Ugb3IgVENHRVRTLCAweGJlYjM1YWY0KSA9 IC0xIEVOT1RUWSAoSW5hcHByb3ByaWF0ZSBpb2N0bCBmb3IgZGV2aWNlKQpmc3RhdDY0KDMsIHtz dF9tb2RlPVNfSUZSRUd8MDY0NCwgc3Rfc2l6ZT0xMDM0NCwgLi4ufSkgPSAwCm1tYXAyKE5VTEws IDQwOTYsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURXxNQVBfQU5PTllNT1VTLCAt MSwgMCkgPSAweGI2ZmU0MDAwCnJlYWQoMywgIiMgbGlic2Vuc29ycyBjb25maWd1cmF0aW9uIGZp bGVcbiIuLi4sIDgxOTIpID0gODE5MgpyZWFkKDMsICIgbGFiZWwgaW40IFwiKzEyVlwiXG4gICAg bGFiZWwgaW41ICIuLi4sIDgxOTIpID0gMjE1MgpyZWFkKDMsICIiLCA0MDk2KSAgICAgICAgICAg ICAgICAgICAgICAgPSAwCnJlYWQoMywgIiIsIDgxOTIpICAgICAgICAgICAgICAgICAgICAgICA9 IDAKaW9jdGwoMywgU05EQ1RMX1RNUl9USU1FQkFTRSBvciBUQ0dFVFMsIDB4YmViMzRiMDQpID0g LTEgRU5PVFRZIChJbmFwcHJvcHJpYXRlIGlvY3RsIGZvciBkZXZpY2UpCmNsb3NlKDMpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAKbXVubWFwKDB4YjZmZTQwMDAsIDQwOTYpICAg ICAgICAgICAgICAgID0gMApvcGVuYXQoQVRfRkRDV0QsICIvZXRjL3NlbnNvcnMuZCIsIE9fUkRP TkxZfE9fTk9OQkxPQ0t8T19MQVJHRUZJTEV8T19ESVJFQ1RPUll8T19DTE9FWEVDKSA9IDMKZ2V0 ZGVudHMoMywgLyogMyBlbnRyaWVzICovLCAzMjc2OCkgICAgID0gNTYKZ2V0ZGVudHMoMywgLyog MCBlbnRyaWVzICovLCAzMjc2OCkgICAgID0gMApjbG9zZSgzKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPSAwCm9wZW4oIi91c3IvbGliL2FybS1saW51eC1nbnVlYWJpL2djb252L2dj b252LW1vZHVsZXMuY2FjaGUiLCBPX1JET05MWSkgPSAzCmZzdGF0NjQoMywge3N0X21vZGU9U19J RlJFR3wwNjQ0LCBzdF9zaXplPTI2MjYwLCAuLi59KSA9IDAKbW1hcDIoTlVMTCwgMjYyNjAsIFBS T1RfUkVBRCwgTUFQX1NIQVJFRCwgMywgMCkgPSAweGI2ZmJiMDAwCmNsb3NlKDMpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA9IDAKb3BlbigiL3Vzci9saWIvYXJtLWxpbnV4LWdudWVh YmkvZ2NvbnYvSVNPODg1OS0xLnNvIiwgT19SRE9OTFl8T19DTE9FWEVDKSA9IDMKcmVhZCgzLCAi XDE3N0VMRlwxXDFcMVwwXDBcMFwwXDBcMFwwXDBcMFwzXDAoXDBcMVwwXDBcMFwzNTRcM1wwXDAw MDRcMFwwXDAiLi4uLCA1MTIpID0gNTEyCmxzZWVrKDMsIDg1NDgsIFNFRUtfU0VUKSAgICAgICAg ICAgICAgICA9IDg1NDgKcmVhZCgzLCAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBc MFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIuLi4sIDEwODApID0gMTA4MApsc2Vlaygz LCA4MjQ4LCBTRUVLX1NFVCkgICAgICAgICAgICAgICAgPSA4MjQ4CnJlYWQoMywgIkEpXDBcMFww YWVhYmlcMFwxXDM3XDBcMFwwXDAwNTRUXDBcNlwyXDEwXDFcdFwxXDIyXDRcMjNcMVwyNFwxIi4u LiwgNDIpID0gNDIKZnN0YXQ2NCgzLCB7c3RfbW9kZT1TX0lGUkVHfDA2NDQsIHN0X3NpemU9OTYy OCwgLi4ufSkgPSAwCm1tYXAyKE5VTEwsIDQxMDIwLCBQUk9UX1JFQUR8UFJPVF9FWEVDLCBNQVBf UFJJVkFURXxNQVBfREVOWVdSSVRFLCAzLCAwKSA9IDB4YjZjMmUwMDAKbXByb3RlY3QoMHhiNmMz MDAwMCwgMjg2NzIsIFBST1RfTk9ORSkgID0gMAptbWFwMigweGI2YzM3MDAwLCA4MTkyLCBQUk9U X1JFQUR8UFJPVF9XUklURSwgTUFQX1BSSVZBVEV8TUFQX0ZJWEVEfE1BUF9ERU5ZV1JJVEUsIDMs IDB4MSkgPSAweGI2YzM3MDAwCmNsb3NlKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA9IDAKbXByb3RlY3QoMHhiNmMzNzAwMCwgNDA5NiwgUFJPVF9SRUFEKSAgID0gMApmc3RhdDY0 KDEsIHtzdF9tb2RlPVNfSUZSRUd8MDY0NCwgc3Rfc2l6ZT05Mzg1LCAuLi59KSA9IDAKbW1hcDIo TlVMTCwgNDA5NiwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9QUklWQVRFfE1BUF9BTk9OWU1P VVMsIC0xLCAwKSA9IDB4YjZmZTQwMDAKb3BlbigiL3N5cy9jbGFzcy9od21vbi9od21vbjAvZGV2 aWNlL2ZhbjFfbGFiZWwiLCBPX1JET05MWSkgPSAtMSBFTk9FTlQgKE5vIHN1Y2ggZmlsZSBvciBk aXJlY3RvcnkpCm9wZW4oIi9zeXMvY2xhc3MvaHdtb24vaHdtb24wL2RldmljZS9mYW4xX2xhYmVs IiwgT19SRE9OTFkpID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KQpvcGVu KCIvc3lzL2NsYXNzL2h3bW9uL2h3bW9uMC9kZXZpY2UvZmFuMV9mYXVsdCIsIE9fUkRPTkxZKSA9 IDMKZnN0YXQ2NCgzLCB7c3RfbW9kZT1TX0lGUkVHfDA0NDQsIHN0X3NpemU9NDA5NiwgLi4ufSkg PSAwCm1tYXAyKE5VTEwsIDQwOTYsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURXxN QVBfQU5PTllNT1VTLCAtMSwgMCkgPSAweGI2ZmUzMDAwCnJlYWQoMywgIjBcbiIsIDQwOTYpICAg ICAgICAgICAgICAgICAgICA9IDIKY2xvc2UoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgID0gMAptdW5tYXAoMHhiNmZlMzAwMCwgNDA5NikgICAgICAgICAgICAgICAgPSAwCm9wZW4o Ii9zeXMvY2xhc3MvaHdtb24vaHdtb24wL2RldmljZS9mYW4xX2lucHV0IiwgT19SRE9OTFkpID0g Mwpmc3RhdDY0KDMsIHtzdF9tb2RlPVNfSUZSRUd8MDQ0NCwgc3Rfc2l6ZT00MDk2LCAuLi59KSA9 IDAKbW1hcDIoTlVMTCwgNDA5NiwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9QUklWQVRFfE1B UF9BTk9OWU1PVVMsIC0xLCAwKSA9IDB4YjZmZTMwMDAKcmVhZCgzLCAiMzUxMFxuIiwgNDA5Nikg ICAgICAgICAgICAgICAgID0gNQpjbG9zZSgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPSAwCm11bm1hcCgweGI2ZmUzMDAwLCA0MDk2KSAgICAgICAgICAgICAgICA9IDAKb3Blbigi L3N5cy9jbGFzcy9od21vbi9od21vbjAvZGV2aWNlL2ZhbjFfZGl2IiwgT19SRE9OTFkpID0gMwpm c3RhdDY0KDMsIHtzdF9tb2RlPVNfSUZSRUd8MDY0NCwgc3Rfc2l6ZT00MDk2LCAuLi59KSA9IDAK bW1hcDIoTlVMTCwgNDA5NiwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9QUklWQVRFfE1BUF9B Tk9OWU1PVVMsIC0xLCAwKSA9IDB4YjZmZTMwMDAKcmVhZCgzLCAiMVxuIiwgNDA5NikgICAgICAg ICAgICAgICAgICAgID0gMgpjbG9zZSgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PSAwCm11bm1hcCgweGI2ZmUzMDAwLCA0MDk2KSAgICAgICAgICAgICAgICA9IDAKb3BlbigiL3N5 cy9jbGFzcy9od21vbi9od21vbjAvZGV2aWNlL2ZhbjFfYWxhcm0iLCBPX1JET05MWSkgPSAzCmZz dGF0NjQoMywge3N0X21vZGU9U19JRlJFR3wwNDQ0LCBzdF9zaXplPTQwOTYsIC4uLn0pID0gMApt bWFwMihOVUxMLCA0MDk2LCBQUk9UX1JFQUR8UFJPVF9XUklURSwgTUFQX1BSSVZBVEV8TUFQX0FO T05ZTU9VUywgLTEsIDApID0gMHhiNmZlMzAwMApyZWFkKDMsICIwXG4iLCA0MDk2KSAgICAgICAg ICAgICAgICAgICAgPSAyCmNsb3NlKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9 IDAKbXVubWFwKDB4YjZmZTMwMDAsIDQwOTYpICAgICAgICAgICAgICAgID0gMApvcGVuKCIvc3lz L2NsYXNzL2h3bW9uL2h3bW9uMS90ZW1wMV9sYWJlbCIsIE9fUkRPTkxZKSA9IC0xIEVOT0VOVCAo Tm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSkKb3BlbigiL3N5cy9jbGFzcy9od21vbi9od21vbjEv dGVtcDFfbGFiZWwiLCBPX1JET05MWSkgPSAtMSBFTk9FTlQgKE5vIHN1Y2ggZmlsZSBvciBkaXJl Y3RvcnkpCm9wZW4oIi9zeXMvY2xhc3MvaHdtb24vaHdtb24xL3RlbXAxX2lucHV0IiwgT19SRE9O TFkpID0gMwpmc3RhdDY0KDMsIHtzdF9tb2RlPVNfSUZSRUd8MDQ0NCwgc3Rfc2l6ZT00MDk2LCAu Li59KSA9IDAKbW1hcDIoTlVMTCwgNDA5NiwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9QUklW QVRFfE1BUF9BTk9OWU1PVVMsIC0xLCAwKSA9IDB4YjZmZTMwMDAKcmVhZCgzLCAiNDI4OTNcbiIs IDQwOTYpICAgICAgICAgICAgICAgID0gNgpjbG9zZSgzKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPSAwCm11bm1hcCgweGI2ZmUzMDAwLCA0MDk2KSAgICAgICAgICAgICAgICA9IDAK b3BlbigiL3N5cy9jbGFzcy9od21vbi9od21vbjEvdGVtcDFfaW5wdXQiLCBPX1JET05MWSkgPSAz CmZzdGF0NjQoMywge3N0X21vZGU9U19JRlJFR3wwNDQ0LCBzdF9zaXplPTQwOTYsIC4uLn0pID0g MAptbWFwMihOVUxMLCA0MDk2LCBQUk9UX1JFQUR8UFJPVF9XUklURSwgTUFQX1BSSVZBVEV8TUFQ X0FOT05ZTU9VUywgLTEsIDApID0gMHhiNmZlMzAwMApyZWFkKDMsICI0Mjg5M1xuIiwgNDA5Nikg ICAgICAgICAgICAgICAgPSA2CmNsb3NlKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA9IDAKbXVubWFwKDB4YjZmZTMwMDAsIDQwOTYpICAgICAgICAgICAgICAgID0gMApicmsoMHgx YjEzMDAwKSAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDFiMTMwMDAKd3JpdGUoMSwgImc3 NjItaTJjLTAtM2VcbkFkYXB0ZXI6IG12NjR4eHhfaSIuLi4sIDE1Mmc3NjItaTJjLTAtM2UKQWRh cHRlcjogbXY2NHh4eF9pMmMgYWRhcHRlcgpmYW4xOiAgICAgICAgMzUxMCBSUE0gIChkaXYgPSAx KQoKYXJtYWRhX3RoZXJtYWwtdmlydHVhbC0wCkFkYXB0ZXI6IFZpcnR1YWwgZGV2aWNlCnRlbXAx OiAgICAgICAgKzQyLjnCsEMgIAoKKSA9IDE1MgpleGl0X2dyb3VwKDApICAgICAgICAgICAgICAg ICAgICAgICAgICAgPSA/CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpsbS1zZW5zb3JzIG1haWxpbmcgbGlzdApsbS1zZW5zb3JzQGxtLXNlbnNvcnMub3Jn Cmh0dHA6Ly9saXN0cy5sbS1zZW5zb3JzLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xtLXNlbnNvcnM ^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2013-10-22 12:04 UTC | newest] Thread overview: 27+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-10-20 18:10 [REGRESSION?] sensors and fancontrol not seeing armada_thermal on 3.12-rc series Arnaud Ebalard 2013-10-20 18:10 ` Arnaud Ebalard 2013-10-20 18:10 ` [lm-sensors] " Arnaud Ebalard 2013-10-20 19:23 ` Guenter Roeck 2013-10-20 19:23 ` Guenter Roeck 2013-10-20 19:23 ` [lm-sensors] " Guenter Roeck 2013-10-21 2:28 ` Zhang Rui 2013-10-21 2:28 ` Zhang Rui 2013-10-21 2:28 ` [lm-sensors] " Zhang Rui 2013-10-21 5:19 ` Guenter Roeck 2013-10-21 5:19 ` Guenter Roeck 2013-10-21 5:19 ` [lm-sensors] " Guenter Roeck 2013-10-21 18:49 ` Arnaud Ebalard 2013-10-21 18:49 ` Arnaud Ebalard 2013-10-21 18:49 ` [lm-sensors] " Arnaud Ebalard 2013-10-21 7:17 ` Jean Delvare 2013-10-21 7:17 ` Jean Delvare 2013-10-21 7:17 ` [lm-sensors] " Jean Delvare 2013-10-21 15:16 ` Guenter Roeck 2013-10-21 15:16 ` Guenter Roeck 2013-10-21 15:16 ` [lm-sensors] " Guenter Roeck 2013-10-22 12:04 ` Jean Delvare 2013-10-22 12:04 ` Jean Delvare 2013-10-22 12:04 ` [lm-sensors] " Jean Delvare 2013-10-21 18:14 ` Arnaud Ebalard 2013-10-21 18:14 ` Arnaud Ebalard 2013-10-21 18:14 ` [lm-sensors] " Arnaud Ebalard
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.