[lm-sensors] [PATCH v4 4/6] hwmon: (fam15h_power) Introduce a cpu accumulated power reporting algori
Huang Rui <[email protected]> Fri, 11 Mar 2016 02:17:48 +0000
| Newsgroups | org.kernel.vger.lm-sensors,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGFuIGFsZ29yaXRobSB0aGF0IGNvbXB1dGVzIHRoZSBhdmVy YWdlIHBvd2VyIGJ5CnJlYWRpbmcgYSBkZWx0YSB2YWx1ZSBvZiDigJxjb3JlIHBvd2VyIGFjY3Vt dWxhdG9y4oCdIHJlZ2lzdGVyIGR1cmluZwptZWFzdXJlbWVudCBpbnRlcnZhbCwgYW5kIHRoZW4g ZGl2aWRpbmcgZGVsdGEgdmFsdWUgYnkgdGhlIGxlbmd0aCBvZgp0aGUgdGltZSBpbnRlcnZhbC4K ClVzZXIgaXMgYWJsZSB0byB1c2UgcG93ZXIxX2F2ZXJhZ2UgZW50cnkgdG8gbWVhc3VyZSB0aGUg cHJvY2Vzc29yIHBvd2VyCmNvbnN1bXB0aW9uIGFuZCBwb3dlcjFfYXZlcmFnZV9pbnRlcnZhbCBl bnRyeSB0byBzZXQgdGhlIGludGVydmFsLgoKQSBzaW1wbGUgZXhhbXBsZToKCnJheUBoci11Yjp+ L3RpcCQgc2Vuc29ycwpmYW0xNWhfcG93ZXItcGNpLTAwYzQKQWRhcHRlcjogUENJIGFkYXB0ZXIK cG93ZXIxOiAgICAgICAxOS41OCBtVyAoYXZnID0gICAyLjU1IG1XLCBpbnRlcnZhbCA9ICAgMC4w MSBzKQogICAgICAgICAgICAgICAgICAgICAgIChjcml0ID0gIDE1LjAwIFcpCgouLi4KClRoZSBy ZXN1bHQgaXMgY3VycmVudCBhdmVyYWdlIHByb2Nlc3NvciBwb3dlciBjb25zdW1wdGlvbiBpbiAx MAptaWxsaXNlY29uZC4gVGhlIHVuaXQgb2YgdGhlIHJlc3VsdCBpcyB1V2F0dC4KClN1Z2dlc3Rl ZC1ieTogR3VlbnRlciBSb2VjayA8bGludXhAcm9lY2stdXMubmV0PgpTaWduZWQtb2ZmLWJ5OiBI dWFuZyBSdWkgPHJheS5odWFuZ0BhbWQuY29tPgpDYzogQm9yaXNsYXYgUGV0a292IDxicEBhbGll bjguZGU+Ci0tLQogZHJpdmVycy9od21vbi9mYW0xNWhfcG93ZXIuYyB8IDExNSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTE1IGlu c2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2ZhbTE1aF9wb3dlci5jIGIv ZHJpdmVycy9od21vbi9mYW0xNWhfcG93ZXIuYwppbmRleCA3MmFlZjQ3Li40NmNiY2EwIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2h3bW9uL2ZhbTE1aF9wb3dlci5jCisrKyBiL2RyaXZlcnMvaHdtb24v ZmFtMTVoX3Bvd2VyLmMKQEAgLTI3LDYgKzI3LDggQEAKICNpbmNsdWRlIDxsaW51eC9iaXRvcHMu aD4KICNpbmNsdWRlIDxsaW51eC9jcHUuaD4KICNpbmNsdWRlIDxsaW51eC9jcHVtYXNrLmg+Cisj aW5jbHVkZSA8bGludXgvdGltZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAjaW5jbHVk ZSA8YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPGFzbS9tc3IuaD4KIApAQCAtNDgsNiArNTAs OSBAQCBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiAjZGVmaW5lIEZBTTE1SF9OVU1fR1JPVVBTCQky CiAjZGVmaW5lIE1BWF9DVVMJCQkJOAogCisvKiBzZXQgbWF4aW11bSBpbnRlcnZhbCBhcyAxIHNl Y29uZCAqLworI2RlZmluZSBNQVhfSU5URVJWQUwJCQkxMDAwCisKICNkZWZpbmUgTVNSX0YxNUhf Q1VfUFdSX0FDQ1VNVUxBVE9SCTB4YzAwMTAwN2EKICNkZWZpbmUgTVNSX0YxNUhfQ1VfTUFYX1BX Ul9BQ0NVTVVMQVRPUgkweGMwMDEwMDdiCiAjZGVmaW5lIE1TUl9GMTVIX1BUU0MJCQkweGMwMDEw MjgwCkBAIC02OCw2ICs3Myw5IEBAIHN0cnVjdCBmYW0xNWhfcG93ZXJfZGF0YSB7CiAJdTY0IGN1 X2FjY19wb3dlcltNQVhfQ1VTXTsKIAkvKiBwZXJmb3JtYW5jZSB0aW1lc3RhbXAgY291bnRlciAq LwogCXU2NCBjcHVfc3dfcHdyX3B0c2NbTUFYX0NVU107CisJLyogb25saW5lL29mZmxpbmUgc3Rh dHVzIG9mIGN1cnJlbnQgY29tcHV0ZSB1bml0ICovCisJaW50IGN1X29uW01BWF9DVVNdOworCXVu c2lnbmVkIGxvbmcgcG93ZXJfcGVyaW9kOwogfTsKIAogc3RhdGljIHNzaXplX3Qgc2hvd19wb3dl cihzdHJ1Y3QgZGV2aWNlICpkZXYsCkBAIC0xNDUsNiArMTUzLDggQEAgc3RhdGljIHZvaWQgZG9f cmVhZF9yZWdpc3RlcnNfb25fY3Uodm9pZCAqX2RhdGEpCiAKIAlyZG1zcmxfc2FmZShNU1JfRjE1 SF9DVV9QV1JfQUNDVU1VTEFUT1IsICZkYXRhLT5jdV9hY2NfcG93ZXJbY3VdKTsKIAlyZG1zcmxf c2FmZShNU1JfRjE1SF9QVFNDLCAmZGF0YS0+Y3B1X3N3X3B3cl9wdHNjW2N1XSk7CisKKwlkYXRh LT5jdV9vbltjdV0gPSAxOwogfQogCiAvKgpAQCAtMTYxLDYgKzE3MSw4IEBAIHN0YXRpYyBpbnQg cmVhZF9yZWdpc3RlcnMoc3RydWN0IGZhbTE1aF9wb3dlcl9kYXRhICpkYXRhKQogCWlmICghcmV0 KQogCQlyZXR1cm4gLUVOT01FTTsKIAorCW1lbXNldChkYXRhLT5jdV9vbiwgMCwgc2l6ZW9mKGlu dCkgKiBNQVhfQ1VTKTsKKwogCWdldF9vbmxpbmVfY3B1cygpOwogCXRoaXNfY3B1ID0gZ2V0X2Nw dSgpOwogCkBAIC0xODgsMTggKzIwMCwxMTMgQEAgc3RhdGljIGludCByZWFkX3JlZ2lzdGVycyhz dHJ1Y3QgZmFtMTVoX3Bvd2VyX2RhdGEgKmRhdGEpCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBz c2l6ZV90IGFjY19zaG93X3Bvd2VyKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCSAgICAgIHN0cnVj dCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJICAgICAgY2hhciAqYnVmKQoreworCXN0cnVj dCBmYW0xNWhfcG93ZXJfZGF0YSAqZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXU2NCBw cmV2X2N1X2FjY19wb3dlcltNQVhfQ1VTXSwgcHJldl9wdHNjW01BWF9DVVNdLAorCSAgICBqZGVs dGFbTUFYX0NVU107CisJdTY0IHRkZWx0YSwgYXZnX2FjYzsKKwlpbnQgY3UsIGN1X251bSwgcmV0 OworCXNpZ25lZCBsb25nIGxlZnRvdmVyOworCisJY3VfbnVtID0gYm9vdF9jcHVfZGF0YS54ODZf bWF4X2NvcmVzIC8gc21wX251bV9zaWJsaW5nczsKKworCXJldCA9IHJlYWRfcmVnaXN0ZXJzKGRh dGEpOworCWlmIChyZXQpCisJCXJldHVybiAwOworCisJZm9yIChjdSA9IDA7IGN1IDwgY3VfbnVt OyBjdSsrKSB7CisJCXByZXZfY3VfYWNjX3Bvd2VyW2N1XSA9IGRhdGEtPmN1X2FjY19wb3dlcltj dV07CisJCXByZXZfcHRzY1tjdV0gPSBkYXRhLT5jcHVfc3dfcHdyX3B0c2NbY3VdOworCX0KKwor CWxlZnRvdmVyID0gc2NoZWR1bGVfdGltZW91dF9pbnRlcnJ1cHRpYmxlKG1zZWNzX3RvX2ppZmZp ZXMoZGF0YS0+cG93ZXJfcGVyaW9kKSk7CisJaWYgKGxlZnRvdmVyKQorCQlyZXR1cm4gMDsKKwor CXJldCA9IHJlYWRfcmVnaXN0ZXJzKGRhdGEpOworCWlmIChyZXQpCisJCXJldHVybiAwOworCisJ Zm9yIChjdSA9IDAsIGF2Z19hY2MgPSAwOyBjdSA8IGN1X251bTsgY3UrKykgeworCQkvKiBjaGVj ayBpZiBjdXJyZW50IGNvbXB1dGUgdW5pdCBpcyBvbmxpbmUgKi8KKwkJaWYgKGRhdGEtPmN1X29u W2N1XSA9PSAwKQorCQkJY29udGludWU7CisKKwkJaWYgKGRhdGEtPmN1X2FjY19wb3dlcltjdV0g PCBwcmV2X2N1X2FjY19wb3dlcltjdV0pIHsKKwkJCWpkZWx0YVtjdV0gPSBkYXRhLT5tYXhfY3Vf YWNjX3Bvd2VyICsgZGF0YS0+Y3VfYWNjX3Bvd2VyW2N1XTsKKwkJCWpkZWx0YVtjdV0gLT0gcHJl dl9jdV9hY2NfcG93ZXJbY3VdOworCQl9IGVsc2UgeworCQkJamRlbHRhW2N1XSA9IGRhdGEtPmN1 X2FjY19wb3dlcltjdV0gLSBwcmV2X2N1X2FjY19wb3dlcltjdV07CisJCX0KKwkJdGRlbHRhID0g ZGF0YS0+Y3B1X3N3X3B3cl9wdHNjW2N1XSAtIHByZXZfcHRzY1tjdV07CisJCWpkZWx0YVtjdV0g Kj0gZGF0YS0+Y3B1X3B3cl9zYW1wbGVfcmF0aW8gKiAxMDAwOworCQlkb19kaXYoamRlbHRhW2N1 XSwgdGRlbHRhKTsKKworCQkvKiB0aGUgdW5pdCBpcyBtaWNyb1dhdHQgKi8KKwkJYXZnX2FjYyAr PSBqZGVsdGFbY3VdOworCX0KKworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVsbHVcbiIsICh1bnNp Z25lZCBsb25nIGxvbmcpYXZnX2FjYyk7Cit9CitzdGF0aWMgREVWSUNFX0FUVFIocG93ZXIxX2F2 ZXJhZ2UsIFNfSVJVR08sIGFjY19zaG93X3Bvd2VyLCBOVUxMKTsKKworc3RhdGljIHNzaXplX3Qg YWNjX3Nob3dfcG93ZXJfcGVyaW9kKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgICAgIHN0cnVj dCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJCSAgICAgY2hhciAqYnVmKQoreworCXN0cnVj dCBmYW0xNWhfcG93ZXJfZGF0YSAqZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCisJcmV0 dXJuIHNwcmludGYoYnVmLCAiJWx1XG4iLCBkYXRhLT5wb3dlcl9wZXJpb2QpOworfQorCitzdGF0 aWMgc3NpemVfdCBhY2Nfc2V0X3Bvd2VyX3BlcmlvZChzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJ ICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJCSAgICBjb25zdCBjaGFyICpi dWYsIHNpemVfdCBjb3VudCkKK3sKKwlzdHJ1Y3QgZmFtMTVoX3Bvd2VyX2RhdGEgKmRhdGEgPSBk ZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwl1bnNpZ25lZCBsb25nIHRlbXA7CisJaW50IHJldDsKKwor CXJldCA9IGtzdHJ0b3VsKGJ1ZiwgMTAsICZ0ZW1wKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0 OworCisJaWYgKHRlbXAgPiBNQVhfSU5URVJWQUwpCisJCXJldHVybiAtRUlOVkFMOworCisJLyog dGhlIGludGVydmFsIHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMCAqLworCWlmICh0ZW1w IDw9IDApCisJCXJldHVybiAtRUlOVkFMOworCisJZGF0YS0+cG93ZXJfcGVyaW9kID0gdGVtcDsK KworCXJldHVybiBjb3VudDsKK30KK3N0YXRpYyBERVZJQ0VfQVRUUihwb3dlcjFfYXZlcmFnZV9p bnRlcnZhbCwgU19JUlVHTyB8IFNfSVdVU1IsCisJCSAgIGFjY19zaG93X3Bvd2VyX3BlcmlvZCwg YWNjX3NldF9wb3dlcl9wZXJpb2QpOworCiBzdGF0aWMgaW50IGZhbTE1aF9wb3dlcl9pbml0X2F0 dHJzKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCQkJCSAgIHN0cnVjdCBmYW0xNWhfcG93ZXJfZGF0 YSAqZGF0YSkKIHsKIAlpbnQgbiA9IEZBTTE1SF9NSU5fTlVNX0FUVFJTOwogCXN0cnVjdCBhdHRy aWJ1dGUgKipmYW0xNWhfcG93ZXJfYXR0cnM7CiAJc3RydWN0IGNwdWluZm9feDg2ICpjID0gJmJv b3RfY3B1X2RhdGE7CisJdTMyIGNwdWlkOwogCiAJaWYgKGMtPng4NiA9PSAweDE1ICYmCiAJICAg IChjLT54ODZfbW9kZWwgPD0gMHhmIHx8CiAJICAgICAoYy0+eDg2X21vZGVsID49IDB4NjAgJiYg Yy0+eDg2X21vZGVsIDw9IDB4N2YpKSkKIAkJbiArPSAxOwogCisJY3B1aWQgPSBjcHVpZF9lZHgo MHg4MDAwMDAwNyk7CisKKwkvKiBjaGVjayBpZiBwcm9jZXNzb3Igc3VwcG9ydHMgYWNjdW11bGF0 ZWQgcG93ZXIgKi8KKwlpZiAoY3B1aWQgJiBCSVQoMTIpKQorCQluICs9IDI7CisKIAlmYW0xNWhf cG93ZXJfYXR0cnMgPSBkZXZtX2tjYWxsb2MoJnBkZXYtPmRldiwgbiwKIAkJCQkJICBzaXplb2Yo KmZhbTE1aF9wb3dlcl9hdHRycyksCiAJCQkJCSAgR0ZQX0tFUk5FTCk7CkBAIC0yMTQsNiArMzIx LDExIEBAIHN0YXRpYyBpbnQgZmFtMTVoX3Bvd2VyX2luaXRfYXR0cnMoc3RydWN0IHBjaV9kZXYg KnBkZXYsCiAJICAgICAoYy0+eDg2X21vZGVsID49IDB4NjAgJiYgYy0+eDg2X21vZGVsIDw9IDB4 N2YpKSkKIAkJZmFtMTVoX3Bvd2VyX2F0dHJzW24rK10gPSAmZGV2X2F0dHJfcG93ZXIxX2lucHV0 LmF0dHI7CiAKKwlpZiAoY3B1aWQgJiBCSVQoMTIpKSB7CisJCWZhbTE1aF9wb3dlcl9hdHRyc1tu KytdID0gJmRldl9hdHRyX3Bvd2VyMV9hdmVyYWdlLmF0dHI7CisJCWZhbTE1aF9wb3dlcl9hdHRy c1tuKytdID0gJmRldl9hdHRyX3Bvd2VyMV9hdmVyYWdlX2ludGVydmFsLmF0dHI7CisJfQorCiAJ ZGF0YS0+Z3JvdXAuYXR0cnMgPSBmYW0xNWhfcG93ZXJfYXR0cnM7CiAKIAlyZXR1cm4gMDsKQEAg LTMyNiw2ICs0MzgsOSBAQCBzdGF0aWMgaW50IGZhbTE1aF9wb3dlcl9pbml0X2RhdGEoc3RydWN0 IHBjaV9kZXYgKmY0LAogCiAJZGF0YS0+bWF4X2N1X2FjY19wb3dlciA9IHRtcDsKIAorCS8qIHNl dCBkZWZhdWx0IGludGVydmFsIGFzIDEwIG1zICovCisJZGF0YS0+cG93ZXJfcGVyaW9kID0gMTA7 CisKIAlyZXR1cm4gcmVhZF9yZWdpc3RlcnMoZGF0YSk7CiB9CiAKLS0gCjEuOS4xCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbG0tc2Vuc29ycyBtYWls aW5nIGxpc3QKbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZwpodHRwOi8vbGlzdHMubG0tc2Vuc29y cy5vcmcvbWFpbG1hbi9saXN0aW5mby9sbS1zZW5zb3Jz