From mboxrd@z Thu Jan 1 00:00:00 1970 From: Karol Herbst Subject: [PATCH 1/3] nvbios/power_budget: Add basic power budget parsing Date: Mon, 24 Oct 2016 23:11:11 +0200 Message-ID: <20161024211113.5876-2-karolherbst@gmail.com> References: <20161024211113.5876-1-karolherbst@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161024211113.5876-1-karolherbst-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: nouveau.vger.kernel.org U2lnbmVkLW9mZi1ieTogS2Fyb2wgSGVyYnN0IDxrYXJvbGhlcmJzdEBnbWFpbC5jb20+Ci0tLQog Li4uL2luY2x1ZGUvbnZrbS9zdWJkZXYvYmlvcy9wb3dlcl9idWRnZXQuaCAgICAgICAgfCAgMjAg KysrKwogZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvYmlvcy9LYnVpbGQgICAgICAgICAgICAgICAg fCAgIDEgKwogZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvYmlvcy9wb3dlcl9idWRnZXQuYyAgICAg ICAgfCAxMDggKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDEyOSBpbnNl cnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJtL25vdXZlYXUvaW5jbHVkZS9udmttL3N1 YmRldi9iaW9zL3Bvd2VyX2J1ZGdldC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJtL25vdXZlYXUv bnZrbS9zdWJkZXYvYmlvcy9wb3dlcl9idWRnZXQuYwoKZGlmZiAtLWdpdCBhL2RybS9ub3V2ZWF1 L2luY2x1ZGUvbnZrbS9zdWJkZXYvYmlvcy9wb3dlcl9idWRnZXQuaCBiL2RybS9ub3V2ZWF1L2lu Y2x1ZGUvbnZrbS9zdWJkZXYvYmlvcy9wb3dlcl9idWRnZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5kZDY1YzA4Ci0tLSAvZGV2L251bGwKKysrIGIvZHJtL25vdXZlYXUv aW5jbHVkZS9udmttL3N1YmRldi9iaW9zL3Bvd2VyX2J1ZGdldC5oCkBAIC0wLDAgKzEsMjAgQEAK KyNpZm5kZWYgX19OVkJJT1NfUE9XRVJfQlVER0VUX0hfXworI2RlZmluZSBfX05WQklPU19QT1dF Ul9CVURHRVRfSF9fCisKKyNpbmNsdWRlIDxudmttL3N1YmRldi9iaW9zLmg+CisKK3N0cnVjdCBu dmJpb3NfcG93ZXJfYnVkZ2V0X2VudHJ5IHsKKwl1MzIgbWluX3c7CisJdTMyIGF2Z193OworCXUz MiBtYXhfdzsKK307CisKK3N0cnVjdCBudmJpb3NfcG93ZXJfYnVkZ2V0IHsKKwl1OCAgbnJfZW50 cnk7CisJdTggIGNhcF9lbnRyeTsKKwlzdHJ1Y3QgbnZiaW9zX3Bvd2VyX2J1ZGdldF9lbnRyeSAq ZW50cmllczsKK307CisKK2ludCBudmJpb3NfcG93ZXJfYnVkZ2V0X3BhcnNlKHN0cnVjdCBudmtt X2Jpb3MgKiwgc3RydWN0IG52Ymlvc19wb3dlcl9idWRnZXQgKik7CisKKyNlbmRpZgpkaWZmIC0t Z2l0IGEvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvYmlvcy9LYnVpbGQgYi9kcm0vbm91dmVhdS9u dmttL3N1YmRldi9iaW9zL0tidWlsZAppbmRleCBiZTU3MjIwLi42YjRmMWUwIDEwMDY0NAotLS0g YS9kcm0vbm91dmVhdS9udmttL3N1YmRldi9iaW9zL0tidWlsZAorKysgYi9kcm0vbm91dmVhdS9u dmttL3N1YmRldi9iaW9zL0tidWlsZApAQCAtMTksNiArMTksNyBAQCBudmttLXkgKz0gbnZrbS9z dWJkZXYvYmlvcy9wY2lyLm8KIG52a20teSArPSBudmttL3N1YmRldi9iaW9zL3BlcmYubwogbnZr bS15ICs9IG52a20vc3ViZGV2L2Jpb3MvcGxsLm8KIG52a20teSArPSBudmttL3N1YmRldi9iaW9z L3BtdS5vCitudmttLXkgKz0gbnZrbS9zdWJkZXYvYmlvcy9wb3dlcl9idWRnZXQubwogbnZrbS15 ICs9IG52a20vc3ViZGV2L2Jpb3MvcmFtY2ZnLm8KIG52a20teSArPSBudmttL3N1YmRldi9iaW9z L3JhbW1hcC5vCiBudmttLXkgKz0gbnZrbS9zdWJkZXYvYmlvcy9zaGFkb3cubwpkaWZmIC0tZ2l0 IGEvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvYmlvcy9wb3dlcl9idWRnZXQuYyBiL2RybS9ub3V2 ZWF1L252a20vc3ViZGV2L2Jpb3MvcG93ZXJfYnVkZ2V0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uNTM4NDk3YgotLS0gL2Rldi9udWxsCisrKyBiL2RybS9ub3V2ZWF1L252 a20vc3ViZGV2L2Jpb3MvcG93ZXJfYnVkZ2V0LmMKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBD b3B5cmlnaHQgMjAxNSBLYXJvbCBIZXJic3QKKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBn cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29w eSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo ZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJp Y3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNl LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAor ICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJz b25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl Y3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmln aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGlu CisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4K KyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5U WSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZF TlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFC TEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVS IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5H IEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBV U0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3Jz OiBLYXJvbCBIZXJic3QKKyAqLworI2luY2x1ZGUgPHN1YmRldi9iaW9zLmg+CisjaW5jbHVkZSA8 c3ViZGV2L2Jpb3MvYml0Lmg+CisjaW5jbHVkZSA8c3ViZGV2L2Jpb3MvcG93ZXJfYnVkZ2V0Lmg+ CisKK3N0YXRpYyB1MzIKK252Ymlvc19wb3dlcl9idWRnZXRfdGFibGUoc3RydWN0IG52a21fYmlv cyAqYmlvcywgdTggKnZlciwgdTggKmhkciwgdTggKmNudCwKKwkJCSAgdTggKmxlbikKK3sKKwlz dHJ1Y3QgYml0X2VudHJ5IGJpdF9QOworCXUzMiBwb3dlcl9idWRnZXQ7CisKKwlpZiAoYml0X2Vu dHJ5KGJpb3MsICdQJywgJmJpdF9QKSB8fCBiaXRfUC52ZXJzaW9uICE9IDIgfHwKKwkgICAgYml0 X1AubGVuZ3RoIDwgMHgyYykKKwkJcmV0dXJuIDA7CisKKwlwb3dlcl9idWRnZXQgPSBudmJpb3Nf cmQzMihiaW9zLCBiaXRfUC5vZmZzZXQgKyAweDJjKTsKKwlpZiAoIXBvd2VyX2J1ZGdldCkKKwkJ cmV0dXJuIDA7CisKKwkqdmVyID0gbnZiaW9zX3JkMDgoYmlvcywgcG93ZXJfYnVkZ2V0KTsKKwlz d2l0Y2ggKCp2ZXIpIHsKKwljYXNlIDB4MTA6CisJY2FzZSAweDIwOgorCWNhc2UgMHgzMDoKKwkJ KmhkciA9IG52Ymlvc19yZDA4KGJpb3MsIHBvd2VyX2J1ZGdldCArIDB4MSk7CisJCSpsZW4gPSBu dmJpb3NfcmQwOChiaW9zLCBwb3dlcl9idWRnZXQgKyAweDIpOworCQkqY250ID0gbnZiaW9zX3Jk MDgoYmlvcywgcG93ZXJfYnVkZ2V0ICsgMHgzKTsKKwkJcmV0dXJuIHBvd2VyX2J1ZGdldDsKKwlk ZWZhdWx0OgorCQlicmVhazsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworaW50CitudmJpb3NfcG93 ZXJfYnVkZ2V0X3BhcnNlKHN0cnVjdCBudmttX2Jpb3MgKmJpb3MsIHN0cnVjdCBudmJpb3NfcG93 ZXJfYnVkZ2V0ICpidWRnZXQpCit7CisJc3RydWN0IG52a21fc3ViZGV2ICpzdWJkZXYgPSAmYmlv cy0+c3ViZGV2OworCXU4IHZlciwgaGRyLCBjbnQsIGxlbiwgaSwgY2FwX2VudHJ5OworCXUzMiBo ZWFkZXI7CisKKwloZWFkZXIgPSBudmJpb3NfcG93ZXJfYnVkZ2V0X3RhYmxlKGJpb3MsICZ2ZXIs ICZoZHIsICZjbnQsICZsZW4pOworCWlmICghaGVhZGVyIHx8ICFjbnQpCisJCXJldHVybiAtRU5P REVWOworCisJYnVkZ2V0LT5lbnRyaWVzID0ga21hbGxvY19hcnJheShjbnQsIHNpemVvZigqYnVk Z2V0LT5lbnRyaWVzKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFidWRnZXQtPmVudHJpZXMpCisJCXJl dHVybiAtRU5PTUVNOworCisJYnVkZ2V0LT5ucl9lbnRyeSA9IGNudDsKKwlzd2l0Y2ggKHZlcikg eworCWNhc2UgMHgyMDoKKwkJY2FwX2VudHJ5ID0gbnZiaW9zX3JkMDgoYmlvcywgaGVhZGVyICsg MHg5KTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJY2FwX2VudHJ5ID0gMDsKKwl9CisKKwlpZiAo Y2FwX2VudHJ5IDwgY250KQorCQlidWRnZXQtPmNhcF9lbnRyeSA9IGNhcF9lbnRyeTsKKwllbHNl IHsKKwkJaWYgKGNhcF9lbnRyeSAhPSAweGZmKQorCQkJbnZrbV93YXJuKHN1YmRldiwKKwkJCQkg ICJpbnZhbGlkIGNhcF9lbnRyeSBpbiBwb3dlciBidWRnZXQgdGFibGUgZm91bmRcbiIpOworCQli dWRnZXQtPmNhcF9lbnRyeSA9IDB4ZmY7CisJfQorCisJZm9yIChpID0gMDsgaSA8IGNudDsgKytp KSB7CisJCXUzMiBlbnRyeV9vZmZzZXQgPSBoZWFkZXIgKyBoZHIgKyBpICogbGVuOworCQlzdHJ1 Y3QgbnZiaW9zX3Bvd2VyX2J1ZGdldF9lbnRyeSAqZW50cnkgPSAmYnVkZ2V0LT5lbnRyaWVzW2ld OworCisJCWlmIChsZW4gPj0gMHhlKSB7CisJCQllbnRyeS0+bWluX3cgPSBudmJpb3NfcmQzMihi aW9zLCBlbnRyeV9vZmZzZXQgKyAweDIpOworCQkJZW50cnktPmF2Z193ID0gbnZiaW9zX3JkMzIo YmlvcywgZW50cnlfb2Zmc2V0ICsgMHg2KTsKKwkJCWVudHJ5LT5tYXhfdyA9IG52Ymlvc19yZDMy KGJpb3MsIGVudHJ5X29mZnNldCArIDB4YSk7CisJCX0gZWxzZSB7CisJCQllbnRyeS0+bWluX3cg PSAwOworCQkJZW50cnktPm1heF93ID0gbnZiaW9zX3JkMzIoYmlvcywgZW50cnlfb2Zmc2V0ICsg MHgyKTsKKwkJCWVudHJ5LT5hdmdfdyA9IGVudHJ5LT5tYXhfdzsKKwkJfQorCX0KKworCXJldHVy biAwOworfQotLSAKMi4xMC4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpOb3V2ZWF1IG1haWxpbmcgbGlzdApOb3V2ZWF1QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL25vdXZl YXUK