From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Tvrtko Ursulin Date: Fri, 2 Mar 2018 09:51:39 +0000 Message-Id: <20180302095139.24140-1-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20180302092950.2cybveeu5py5hkzc@ideak-desk.fi.intel.com> References: <20180302092950.2cybveeu5py5hkzc@ideak-desk.fi.intel.com> Subject: [Intel-gfx] [PATCH i-g-t v3] lib/igt_pm: Restore runtime pm state on test exit List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org List-ID: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNvbWUgdGVz dHMgKHRoZSBvbmVzIHdoaWNoIGNhbGwgaWd0X3NldHVwX3J1bnRpbWVfcG0gYW5kCmlndF9wbV9l bmFibGVfYXVkaW9fcnVudGltZV9wbSkgY2hhbmdlIGRlZmF1bHQgc3lzdGVtIGNvbmZpZ3VyYXRp b24gYW5kCm5ldmVyIHJlc3RvcmUgaXQuCgpUaGUgY29uZmlndXJlZCBydW50aW1lIHN1c3BlbmQg aXMgYWdncmVzc2l2ZSBhbmQgbWF5IGluZmx1ZW5jZSBiZWhhdmlvdXIKb2Ygc3Vic2VxdWVudCB0 ZXN0cywgc28gaXQgaXMgYmV0dGVyIHRvIHJlc3RvcmUgdG8gcHJldmlvdXMgdmFsdWVzIG9uIHRl c3QKZXhpdC4KClRoaXMgd2F5IHN5c3RlbSBiZWhhdmlvdXIsIHdpdGggcmVnYXJkcyB0byBhIHJh bmRvbSBzZXF1ZW5jZSBvZiBleGVjdXRlZAp0ZXN0cywgd2lsbCBiZSBtb3JlIGNvbnNpc3RlbnQg ZnJvbSBvbmUgcnVuIHRvIGFub3RoZXIuCgp2MjogUmVhZCBmYWlsdXJlIG1lYW5zIG5vIHJ1bnRp bWUgcG0gc3VwcG9ydCBzbyBkb24ndCBhc3NlcnQgb24gaXQuCnYzOiBJbnN0YWxsIGV4aXQgaGFu ZGxlciBiZWZvcmUgdGhlIHdyaXRlIHRvIGNsb3NlIHRoZSBDdHJsXkMgcmFjZS4gKEltcmUpCgpT aWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpD YzogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogQ2hyaXMgV2ls c29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ICMgdjIKQWNrZWQtYnk6IEltcmUgRGVhayA8 aW1yZS5kZWFrQGludGVsLmNvbT4KLS0tCiBsaWIvaWd0X3BtLmMgfCAxMjIgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIDEgZmlsZSBj aGFuZ2VkLCAxMTcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9s aWIvaWd0X3BtLmMgYi9saWIvaWd0X3BtLmMKaW5kZXggNWJmNWIyZTIzY2RjLi44YWMxMzIyNjlk NzkgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfcG0uYworKysgYi9saWIvaWd0X3BtLmMKQEAgLTYzLDYg KzYzLDQ2IEBAIGVudW0gewogLyogUmVtZW1iZXIgdG8gZml4IHRoaXMgaWYgYWRkaW5nIGxvbmdl ciBzdHJpbmdzICovCiAjZGVmaW5lIE1BWF9QT0xJQ1lfU1RSTEVOCXN0cmxlbihNQVhfUEVSRk9S TUFOQ0VfU1RSKQogCitzdGF0aWMgY2hhciBfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3Nh dmVbNjRdOworc3RhdGljIGNoYXIgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sWzY0XTsK Kworc3RhdGljIHZvaWQgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9leGl0X2hhbmRsZXIoaW50IHNp ZykKK3sKKwlpbnQgZmQ7CisKKwlpZ3RfZGVidWcoIlJlc3RvcmluZyBhdWRpbyBwb3dlciBtYW5h Z2VtZW50IHRvICclcycgYW5kICclcydcbiIsCisJCSAgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9w b3dlcl9zYXZlLAorCQkgIF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfY29udHJvbCk7CisKKwlmZCA9 IG9wZW4oIi9zeXMvbW9kdWxlL3NuZF9oZGFfaW50ZWwvcGFyYW1ldGVycy9wb3dlcl9zYXZlIiwg T19XUk9OTFkpOworCWlmIChmZCA8IDApCisJCXJldHVybjsKKwlpZiAod3JpdGUoZmQsIF9faWd0 X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJfc2F2ZSwKKwkJICBzdHJsZW4oX19pZ3RfcG1fYXVkaW9f cnVudGltZV9wb3dlcl9zYXZlKSkgIT0KKwkgICAgc3RybGVuKF9faWd0X3BtX2F1ZGlvX3J1bnRp bWVfcG93ZXJfc2F2ZSkpCisJCWlndF93YXJuKCJGYWlsZWQgdG8gcmVzdG9yZSBhdWRpbyBwb3dl cl9zYXZlIHRvICclcydcbiIsCisJCQkgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZl KTsKKwljbG9zZShmZCk7CisKKwlmZCA9IG9wZW4oIi9zeXMvYnVzL3BjaS9kZXZpY2VzLzAwMDA6 MDA6MDMuMC9wb3dlci9jb250cm9sIiwgT19XUk9OTFkpOworCWlmIChmZCA8IDApCisJCXJldHVy bjsKKwlpZiAod3JpdGUoZmQsIF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfY29udHJvbCwKKwkJICBz dHJsZW4oX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sKSkgIT0KKwkgICAgc3RybGVuKF9f aWd0X3BtX2F1ZGlvX3J1bnRpbWVfY29udHJvbCkpCisJCWlndF93YXJuKCJGYWlsZWQgdG8gcmVz dG9yZSBhdWRpbyBjb250cm9sIHRvICclcydcbiIsCisJCQkgX19pZ3RfcG1fYXVkaW9fcnVudGlt ZV9jb250cm9sKTsKKwljbG9zZShmZCk7Cit9CisKK3N0YXRpYyB2b2lkIHN0cmNob21wKGNoYXIg KnN0cikKK3sKKwlpbnQgbGVuID0gc3RybGVuKHN0cik7CisKKwlpZiAobGVuICYmIHN0cltsZW4g LSAxXSA9PSAnXG4nKQorCQlzdHJbbGVuIC0gMV0gPSAwOworfQorCiAvKioKICAqIGlndF9wbV9l bmFibGVfYXVkaW9fcnVudGltZV9wbToKICAqCkBAIC03OCwxNiArMTE4LDMyIEBAIHZvaWQgaWd0 X3BtX2VuYWJsZV9hdWRpb19ydW50aW1lX3BtKHZvaWQpCiB7CiAJaW50IGZkOwogCi0JZmQgPSBv cGVuKCIvc3lzL21vZHVsZS9zbmRfaGRhX2ludGVsL3BhcmFtZXRlcnMvcG93ZXJfc2F2ZSIsIE9f V1JPTkxZKTsKKwkvKiBDaGVjayBpZiBhbHJlYWR5IGVuYWJsZWQuICovCisJaWYgKF9faWd0X3Bt X2F1ZGlvX3J1bnRpbWVfcG93ZXJfc2F2ZVswXSkKKwkJcmV0dXJuOworCisJZmQgPSBvcGVuKCIv c3lzL21vZHVsZS9zbmRfaGRhX2ludGVsL3BhcmFtZXRlcnMvcG93ZXJfc2F2ZSIsIE9fUkRXUik7 CiAJaWYgKGZkID49IDApIHsKKwkJaWd0X2Fzc2VydChyZWFkKGZkLCBfX2lndF9wbV9hdWRpb19y dW50aW1lX3Bvd2VyX3NhdmUsCisJCQkJc2l6ZW9mKF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93 ZXJfc2F2ZSkpID4gMCk7CisJCXN0cmNob21wKF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJf c2F2ZSk7CisJCWlndF9pbnN0YWxsX2V4aXRfaGFuZGxlcihfX2lndF9wbV9hdWRpb19ydW50aW1l X2V4aXRfaGFuZGxlcik7CiAJCWlndF9hc3NlcnRfZXEod3JpdGUoZmQsICIxXG4iLCAyKSwgMik7 CiAJCWNsb3NlKGZkKTsKIAl9Ci0JZmQgPSBvcGVuKCIvc3lzL2J1cy9wY2kvZGV2aWNlcy8wMDAw OjAwOjAzLjAvcG93ZXIvY29udHJvbCIsIE9fV1JPTkxZKTsKKwlmZCA9IG9wZW4oIi9zeXMvYnVz L3BjaS9kZXZpY2VzLzAwMDA6MDA6MDMuMC9wb3dlci9jb250cm9sIiwgT19SRFdSKTsKIAlpZiAo ZmQgPj0gMCkgeworCQlpZ3RfYXNzZXJ0KHJlYWQoZmQsIF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVf Y29udHJvbCwKKwkJCQlzaXplb2YoX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sKSkgPiAw KTsKKwkJc3RyY2hvbXAoX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sKTsKIAkJaWd0X2Fz c2VydF9lcSh3cml0ZShmZCwgImF1dG9cbiIsIDUpLCA1KTsKIAkJY2xvc2UoZmQpOwogCX0KKwor CWlndF9kZWJ1ZygiU2F2ZWQgYXVkaW8gcG93ZXIgbWFuYWdlbWVudCBhcyAnJXMnIGFuZCAnJXMn XG4iLAorCQkgIF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJfc2F2ZSwKKwkJICBfX2lndF9w bV9hdWRpb19ydW50aW1lX2NvbnRyb2wpOworCiAJLyogR2l2ZSBzb21lIHRpbWUgZm9yIGl0IHRv IHJlYWN0LiAqLwogCXNsZWVwKDEpOwogfQpAQCAtMjM4LDYgKzI5NCwzOCBAQCB2b2lkIGlndF9w bV9yZXN0b3JlX3NhdGFfbGlua19wb3dlcl9tYW5hZ2VtZW50KGludDhfdCAqcG1fZGF0YSkKIC8q IFdlIGp1c3QgbGVhayB0aGlzIG9uIGV4aXQgLi4uICovCiBpbnQgcG1fc3RhdHVzX2ZkID0gLTE7 CiAKK3N0YXRpYyBjaGFyIF9faWd0X3BtX3J1bnRpbWVfYXV0b3N1c3BlbmRbNjRdOworc3RhdGlj IGNoYXIgX19pZ3RfcG1fcnVudGltZV9jb250cm9sWzY0XTsKKworc3RhdGljIHZvaWQgX19pZ3Rf cG1fcnVudGltZV9leGl0X2hhbmRsZXIoaW50IHNpZykKK3sKKwlpbnQgZmQ7CisKKwlpZ3RfZGVi dWcoIlJlc3RvcmluZyBydW50aW1lIG1hbmFnZW1lbnQgdG8gJyVzJyBhbmQgJyVzJ1xuIiwKKwkJ ICBfX2lndF9wbV9ydW50aW1lX2F1dG9zdXNwZW5kLAorCQkgIF9faWd0X3BtX3J1bnRpbWVfY29u dHJvbCk7CisKKwlmZCA9IG9wZW4oUE9XRVJfRElSICIvYXV0b3N1c3BlbmRfZGVsYXlfbXMiLCBP X1dST05MWSk7CisJaWYgKGZkIDwgMCkKKwkJcmV0dXJuOworCWlmICh3cml0ZShmZCwgX19pZ3Rf cG1fcnVudGltZV9hdXRvc3VzcGVuZCwKKwkJICBzdHJsZW4oX19pZ3RfcG1fcnVudGltZV9hdXRv c3VzcGVuZCkpICE9CisJICAgIHN0cmxlbihfX2lndF9wbV9ydW50aW1lX2F1dG9zdXNwZW5kKSkK KwkJaWd0X3dhcm4oIkZhaWxlZCB0byByZXN0b3JlIHJ1bnRpbWUgcG0gYXV0b3N1c3BlbmQgZGVs YXkgdG8gJyVzJ1xuIiwKKwkJCSBfX2lndF9wbV9ydW50aW1lX2F1dG9zdXNwZW5kKTsKKwljbG9z ZShmZCk7CisKKwlmZCA9IG9wZW4oUE9XRVJfRElSICIvY29udHJvbCIsIE9fV1JPTkxZKTsKKwlp ZiAoZmQgPCAwKQorCQlyZXR1cm47CisJaWYgKHdyaXRlKGZkLCBfX2lndF9wbV9ydW50aW1lX2Nv bnRyb2wsCisJCSAgc3RybGVuKF9faWd0X3BtX3J1bnRpbWVfY29udHJvbCkpICE9CisJICAgIHN0 cmxlbihfX2lndF9wbV9ydW50aW1lX2NvbnRyb2wpKQorCQlpZ3Rfd2FybigiRmFpbGVkIHRvIHJl c3RvcmUgcnVudGltZSBwbSBjb250cm9sIHRvICclcydcbiIsCisJCQkgX19pZ3RfcG1fcnVudGlt ZV9jb250cm9sKTsKKwljbG9zZShmZCk7Cit9CisKIC8qKgogICogaWd0X3NldHVwX3J1bnRpbWVf cG06CiAgKgpAQCAtMjYxLDEyICszNDksMjkgQEAgYm9vbCBpZ3Rfc2V0dXBfcnVudGltZV9wbSh2 b2lkKQogCS8qIE91ciBpbXBsZW1lbnRhdGlvbiB1c2VzIGF1dG9zdXNwZW5kLiBUcnkgdG8gc2V0 IGl0IHRvIDBtcyBzbyB0aGUgdGVzdAogCSAqIHN1aXRlIGdvZXMgZmFzdGVyIGFuZCB3ZSBoYXZl IGEgaGlnaGVyIHByb2JhYmlsaXR5IG9mIHRyaWdnZXJpbmcgcmFjZQogCSAqIGNvbmRpdGlvbnMu ICovCi0JZmQgPSBvcGVuKFBPV0VSX0RJUiAiL2F1dG9zdXNwZW5kX2RlbGF5X21zIiwgT19XUk9O TFkpOworCWZkID0gb3BlbihQT1dFUl9ESVIgIi9hdXRvc3VzcGVuZF9kZWxheV9tcyIsIE9fUkRX Uik7CiAJaWd0X2Fzc2VydF9mKGZkID49IDAsCiAJCSAgICAgIkNhbid0IG9wZW4gIiBQT1dFUl9E SVIgIi9hdXRvc3VzcGVuZF9kZWxheV9tc1xuIik7CiAKLQkvKiBJZiB3ZSBmYWlsIHRvIHdyaXRl IHRvIHRoZSBmaWxlLCBpdCBtZWFucyB0aGlzIHN5c3RlbSBkb2Vzbid0IHN1cHBvcnQKLQkgKiBy dW50aW1lIFBNLiAqLworCS8qCisJICogU2F2ZSBwcmV2aW91cyB2YWx1ZXMgdG8gYmUgYWJsZSB0 byAgaW5zdGFsbCBleGl0IGhhbmRsZXIgdG8gcmVzdG9yZQorCSAqIHRoZW0gb24gdGVzdCBleGl0 LgorCSAqLworCXNpemUgPSByZWFkKGZkLCBfX2lndF9wbV9ydW50aW1lX2F1dG9zdXNwZW5kLAor CQkgICAgc2l6ZW9mKF9faWd0X3BtX3J1bnRpbWVfYXV0b3N1c3BlbmQpKTsKKworCS8qCisJICog SWYgd2UgZmFpbCB0byByZWFkIGZyb20gdGhlIGZpbGUsIGl0IG1lYW5zIHRoaXMgc3lzdGVtIGRv ZXNuJ3QKKwkgKiBzdXBwb3J0IHJ1bnRpbWUgUE0uCisJICovCisJaWYgKHNpemUgPD0gMCkgewor CQljbG9zZShmZCk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlzdHJjaG9tcChfX2lndF9wbV9y dW50aW1lX2F1dG9zdXNwZW5kKTsKKwlpZ3RfaW5zdGFsbF9leGl0X2hhbmRsZXIoX19pZ3RfcG1f cnVudGltZV9leGl0X2hhbmRsZXIpOworCiAJc2l6ZSA9IHdyaXRlKGZkLCAiMFxuIiwgMik7CiAK IAljbG9zZShmZCk7CkBAIC0yNzgsNiArMzgzLDEzIEBAIGJvb2wgaWd0X3NldHVwX3J1bnRpbWVf cG0odm9pZCkKIAlmZCA9IG9wZW4oUE9XRVJfRElSICIvY29udHJvbCIsIE9fUkRXUik7CiAJaWd0 X2Fzc2VydF9mKGZkID49IDAsICJDYW4ndCBvcGVuICIgUE9XRVJfRElSICIvY29udHJvbFxuIik7 CiAKKwlpZ3RfYXNzZXJ0KHJlYWQoZmQsIF9faWd0X3BtX3J1bnRpbWVfY29udHJvbCwKKwkJCXNp emVvZihfX2lndF9wbV9ydW50aW1lX2NvbnRyb2wpKSA+IDApOworCXN0cmNob21wKF9faWd0X3Bt X3J1bnRpbWVfY29udHJvbCk7CisKKwlpZ3RfZGVidWcoIlNhdmVkIHJ1bnRpbWUgcG93ZXIgbWFu YWdlbWVudCBhcyAnJXMnIGFuZCAnJXMnXG4iLAorCQkgIF9faWd0X3BtX3J1bnRpbWVfYXV0b3N1 c3BlbmQsIF9faWd0X3BtX3J1bnRpbWVfY29udHJvbCk7CisKIAlzaXplID0gd3JpdGUoZmQsICJh dXRvXG4iLCA1KTsKIAlpZ3RfYXNzZXJ0KHNpemUgPT0gNSk7CiAKLS0gCjIuMTQuMQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==