From mboxrd@z Thu Jan 1 00:00:00 1970 From: tom.orourke@intel.com Subject: [PATCH 19/26] drm/i915/slpc: Add enable/disable debugfs for slpc Date: Tue, 8 Mar 2016 16:34:22 -0800 Message-ID: <1457483669-155235-20-git-send-email-tom.orourke@intel.com> References: <1457483669-155235-1-git-send-email-tom.orourke@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 88D406E795 for ; Wed, 9 Mar 2016 00:35:08 +0000 (UTC) In-Reply-To: <1457483669-155235-1-git-send-email-tom.orourke@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: paulo.r.zanoni@intel.com, Tom O'Rourke List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVG9tIE8nUm91cmtlIDxUb20uTydSb3Vya2VAaW50ZWwuY29tPgoKQWRkcyBkZWJ1Z2Zz IGhvb2tzIGZvciBlYWNoIHNscGMgdGFzay4KClRoZSBlbmFibGUvZGlzYWJsZSBkZWJ1Z2ZzIGZp bGVzIGFyZQppOTE1X3NscGNfZ3RwZXJmLCBpOTE1X3NscGNfYmFsYW5jZXIsIGFuZCBpOTE1X3Ns cGNfZGNjLgoKRWFjaCBvZiB0aGVzZSBjYW4gdGFrZSB0aGUgdmFsdWVzOgoiZGVmYXVsdCIsICJl bmFibGVkIiwgb3IgImRpc2FibGVkIgoKdjI6IHVwZGF0ZSBmb3IgU0xQQyB2MjAxNS4yLjQKICAg IGRmcHMgYW5kIHR1cmJvIG1lcmdlZCBhbmQgcmVuYW1lZCAiZ3RwZXJmIgogICAgaWJjIHNwbGl0 IG91dCBhbmQgcmVuYW1lZCAiYmFsYW5jZXIiCgpTaWduZWQtb2ZmLWJ5OiBUb20gTydSb3Vya2Ug PFRvbS5PJ1JvdXJrZUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMgfCAyNTAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZp bGUgY2hhbmdlZCwgMjUwIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jCmluZGV4IDBjYzBlNzAuLjU0ZTQwZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jCkBAIC0xMTI0LDYgKzExMjQsMjUzIEBAIERFRklORV9TSU1QTEVfQVRUUklCVVRFKGk5MTVf bmV4dF9zZXFub19mb3BzLAogCQkJaTkxNV9uZXh0X3NlcW5vX2dldCwgaTkxNV9uZXh0X3NlcW5v X3NldCwKIAkJCSIweCVsbHhcbiIpOwogCitzdGF0aWMgaW50IHNscGNfZW5hYmxlX2Rpc2FibGVf Z2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHU2NCAqdmFsLAorCQkJCSAgIGVudW0gc2xwY19w YXJhbV9pZCBlbmFibGVfaWQsCisJCQkJICAgZW51bSBzbHBjX3BhcmFtX2lkIGRpc2FibGVfaWQp Cit7CisJaW50IG92ZXJyaWRlX2VuYWJsZSwgb3ZlcnJpZGVfZGlzYWJsZTsKKwl1MzIgdmFsdWVf ZW5hYmxlLCB2YWx1ZV9kaXNhYmxlOworCWludCByZXQgPSAwOworCisJaWYgKCFpbnRlbF9zbHBj X2FjdGl2ZShkZXYpKSB7CisJCXJldCA9IC1FTk9ERVY7CisJfSBlbHNlIGlmICh2YWwpIHsKKwkJ aW50ZWxfc2xwY19nZXRfcGFyYW0oZGV2LCBlbmFibGVfaWQsICZvdmVycmlkZV9lbmFibGUsCisJ CQkJICAgICAmdmFsdWVfZW5hYmxlKTsKKwkJaW50ZWxfc2xwY19nZXRfcGFyYW0oZGV2LCBkaXNh YmxlX2lkLCAmb3ZlcnJpZGVfZGlzYWJsZSwKKwkJCQkgICAgICZ2YWx1ZV9kaXNhYmxlKTsKKwor CQkvKiBzZXQgdGhlIG91dHB1dCB2YWx1ZToKKwkJKiAwOiBkZWZhdWx0CisJCSogMTogZW5hYmxl ZAorCQkqIDI6IGRpc2FibGVkCisJCSogMzogdW5rbm93biAoc2hvdWxkIG5vdCBoYXBwZW4pCisJ CSovCisJCWlmIChvdmVycmlkZV9kaXNhYmxlICYmICgxID09IHZhbHVlX2Rpc2FibGUpKQorCQkJ KnZhbCA9IDI7CisJCWVsc2UgaWYgKG92ZXJyaWRlX2VuYWJsZSAmJiAoMSA9PSB2YWx1ZV9lbmFi bGUpKQorCQkJKnZhbCA9IDE7CisJCWVsc2UgaWYgKCFvdmVycmlkZV9lbmFibGUgJiYgIW92ZXJy aWRlX2Rpc2FibGUpCisJCQkqdmFsID0gMDsKKwkJZWxzZQorCQkJKnZhbCA9IDM7CisKKwl9IGVs c2UgeworCQlyZXQgPSAtRUlOVkFMOworCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBp bnQgc2xwY19lbmFibGVfZGlzYWJsZV9zZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTY0IHZh bCwKKwkJCQkgICBlbnVtIHNscGNfcGFyYW1faWQgZW5hYmxlX2lkLAorCQkJCSAgIGVudW0gc2xw Y19wYXJhbV9pZCBkaXNhYmxlX2lkKQoreworCWludCByZXQgPSAwOworCisJaWYgKCFpbnRlbF9z bHBjX2FjdGl2ZShkZXYpKSB7CisJCXJldCA9IC1FTk9ERVY7CisJfSBlbHNlIGlmICgwID09IHZh bCkgeworCQkvKiBzZXQgZGVmYXVsdCAqLworCQlpbnRlbF9zbHBjX3Vuc2V0X3BhcmFtKGRldiwg ZW5hYmxlX2lkKTsKKwkJaW50ZWxfc2xwY191bnNldF9wYXJhbShkZXYsIGRpc2FibGVfaWQpOwor CX0gZWxzZSBpZiAoMSA9PSB2YWwpIHsKKwkJLyogc2V0IGVuYWJsZSAqLworCQlpbnRlbF9zbHBj X3NldF9wYXJhbShkZXYsIGVuYWJsZV9pZCwgMSk7CisJCWludGVsX3NscGNfdW5zZXRfcGFyYW0o ZGV2LCBkaXNhYmxlX2lkKTsKKwl9IGVsc2UgaWYgKDIgPT0gdmFsKSB7CisJCS8qIHNldCBkaXNh YmxlICovCisJCWludGVsX3NscGNfc2V0X3BhcmFtKGRldiwgZGlzYWJsZV9pZCwgMSk7CisJCWlu dGVsX3NscGNfdW5zZXRfcGFyYW0oZGV2LCBlbmFibGVfaWQpOworCX0gZWxzZSB7CisJCXJldCA9 IC1FSU5WQUw7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgc2xwY19wYXJh bV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgZW51bSBzbHBjX3BhcmFtX2lkIGVuYWJsZV9pZCwK KwkJCSAgICBlbnVtIHNscGNfcGFyYW1faWQgZGlzYWJsZV9pZCkKK3sKKwlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gbS0+cHJpdmF0ZTsKKwljb25zdCBjaGFyICpzdGF0dXM7CisJdTY0IHZhbDsK KwlpbnQgcmV0OworCisJcmV0ID0gc2xwY19lbmFibGVfZGlzYWJsZV9nZXQoZGV2LCAmdmFsLCBl bmFibGVfaWQsIGRpc2FibGVfaWQpOworCisJaWYgKHJldCkgeworCQlzZXFfcHJpbnRmKG0sICJl cnJvciAlZFxuIiwgcmV0KTsKKwl9IGVsc2UgeworCQlzd2l0Y2ggKHZhbCkgeworCQljYXNlIDA6 CisJCQlzdGF0dXMgPSAiZGVmYXVsdFxuIjsKKwkJCWJyZWFrOworCisJCWNhc2UgMToKKwkJCXN0 YXR1cyA9ICJlbmFibGVkXG4iOworCQkJYnJlYWs7CisKKwkJY2FzZSAyOgorCQkJc3RhdHVzID0g ImRpc2FibGVkXG4iOworCQkJYnJlYWs7CisKKwkJZGVmYXVsdDoKKwkJCXN0YXR1cyA9ICJ1bmtu b3duXG4iOworCQkJYnJlYWs7CisJCX0KKworCQlzZXFfcHV0cyhtLCBzdGF0dXMpOworCX0KK30K Kworc3RhdGljIGludCBzbHBjX3BhcmFtX3dyaXRlKHN0cnVjdCBzZXFfZmlsZSAqbSwgY29uc3Qg Y2hhciBfX3VzZXIgKnVidWYsCisJCQkgICAgc2l6ZV90IGxlbiwgZW51bSBzbHBjX3BhcmFtX2lk IGVuYWJsZV9pZCwKKwkJCSAgICBlbnVtIHNscGNfcGFyYW1faWQgZGlzYWJsZV9pZCkKK3sKKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbS0+cHJpdmF0ZTsKKwl1NjQgdmFsOworCWludCByZXQg PSAwOworCWNoYXIgYnVmWzEwXTsKKworCWlmIChsZW4gPj0gc2l6ZW9mKGJ1ZikpCisJCXJldCA9 IC1FSU5WQUw7CisJZWxzZSBpZiAoY29weV9mcm9tX3VzZXIoYnVmLCB1YnVmLCBsZW4pKQorCQly ZXQgPSAtRUZBVUxUOworCWVsc2UKKwkJYnVmW2xlbl0gPSAnXDAnOworCisJaWYgKCFyZXQpIHsK KwkJaWYgKCFzdHJuY21wKGJ1ZiwgImRlZmF1bHQiLCA3KSkKKwkJCXZhbCA9IDA7CisJCWVsc2Ug aWYgKCFzdHJuY21wKGJ1ZiwgImVuYWJsZWQiLCA3KSkKKwkJCXZhbCA9IDE7CisJCWVsc2UgaWYg KCFzdHJuY21wKGJ1ZiwgImRpc2FibGVkIiwgOCkpCisJCQl2YWwgPSAyOworCQllbHNlCisJCQly ZXQgPSAtRUlOVkFMOworCX0KKworCWlmICghcmV0KQorCQlyZXQgPSBzbHBjX2VuYWJsZV9kaXNh YmxlX3NldChkZXYsIHZhbCwgZW5hYmxlX2lkLCBkaXNhYmxlX2lkKTsKKworCXJldHVybiByZXQ7 Cit9CisKK3N0YXRpYyBpbnQgc2xwY19ndHBlcmZfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZv aWQgKmRhdGEpCit7CisJc2xwY19wYXJhbV9zaG93KG0sIFNMUENfUEFSQU1fVEFTS19FTkFCTEVf R1RQRVJGLAorCQkJU0xQQ19QQVJBTV9UQVNLX0RJU0FCTEVfR1RQRVJGKTsKKworCXJldHVybiAw OworfQorCitzdGF0aWMgaW50IHNscGNfZ3RwZXJmX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwg c3RydWN0IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IGRybV9jb25uZWN0b3IgKmRldiA9IGlub2Rl LT5pX3ByaXZhdGU7CisKKwlyZXR1cm4gc2luZ2xlX29wZW4oZmlsZSwgc2xwY19ndHBlcmZfc2hv dywgZGV2KTsKK30KKworc3RhdGljIHNzaXplX3Qgc2xwY19ndHBlcmZfd3JpdGUoc3RydWN0IGZp bGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICp1YnVmLAorCQkJICAgICAgc2l6ZV90IGxlbiwg bG9mZl90ICpvZmZwKQoreworCXN0cnVjdCBzZXFfZmlsZSAqbSA9IGZpbGUtPnByaXZhdGVfZGF0 YTsKKwlpbnQgcmV0ID0gMDsKKworCXJldCA9IHNscGNfcGFyYW1fd3JpdGUobSwgdWJ1ZiwgbGVu LCBTTFBDX1BBUkFNX1RBU0tfRU5BQkxFX0dUUEVSRiwKKwkJCSAgICAgICBTTFBDX1BBUkFNX1RB U0tfRElTQUJMRV9HVFBFUkYpOworCWlmIChyZXQpCisJCXJldHVybiAoc2l6ZV90KSByZXQ7CisK KwlyZXR1cm4gbGVuOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBp OTE1X3NscGNfZ3RwZXJmX2ZvcHMgPSB7CisJLm93bmVyCSA9IFRISVNfTU9EVUxFLAorCS5vcGVu CSA9IHNscGNfZ3RwZXJmX29wZW4sCisJLnJlbGVhc2UgPSBzaW5nbGVfcmVsZWFzZSwKKwkucmVh ZAkgPSBzZXFfcmVhZCwKKwkud3JpdGUJID0gc2xwY19ndHBlcmZfd3JpdGUsCisJLmxsc2Vlawkg PSBzZXFfbHNlZWsKK307CisKK3N0YXRpYyBpbnQgc2xwY19iYWxhbmNlcl9zaG93KHN0cnVjdCBz ZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKK3sKKwlzbHBjX3BhcmFtX3Nob3cobSwgU0xQQ19QQVJB TV9UQVNLX0VOQUJMRV9CQUxBTkNFUiwKKwkJCVNMUENfUEFSQU1fVEFTS19ESVNBQkxFX0JBTEFO Q0VSKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNscGNfYmFsYW5jZXJfb3Blbihz dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqZGV2ID0gaW5vZGUtPmlfcHJpdmF0ZTsKKworCXJldHVybiBzaW5nbGVfb3Blbihm aWxlLCBzbHBjX2JhbGFuY2VyX3Nob3csIGRldik7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHNscGNf YmFsYW5jZXJfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICp1YnVm LAorCQkJICAgICAgc2l6ZV90IGxlbiwgbG9mZl90ICpvZmZwKQoreworCXN0cnVjdCBzZXFfZmls ZSAqbSA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKwlpbnQgcmV0ID0gMDsKKworCXJldCA9IHNscGNf cGFyYW1fd3JpdGUobSwgdWJ1ZiwgbGVuLCBTTFBDX1BBUkFNX1RBU0tfRU5BQkxFX0JBTEFOQ0VS LAorCQkJICAgICAgIFNMUENfUEFSQU1fVEFTS19ESVNBQkxFX0JBTEFOQ0VSKTsKKwlpZiAocmV0 KQorCQlyZXR1cm4gKHNpemVfdCkgcmV0OworCisJcmV0dXJuIGxlbjsKK30KKworc3RhdGljIGNv bnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaTkxNV9zbHBjX2JhbGFuY2VyX2ZvcHMgPSB7CisJ Lm93bmVyCSA9IFRISVNfTU9EVUxFLAorCS5vcGVuCSA9IHNscGNfYmFsYW5jZXJfb3BlbiwKKwku cmVsZWFzZSA9IHNpbmdsZV9yZWxlYXNlLAorCS5yZWFkCSA9IHNlcV9yZWFkLAorCS53cml0ZQkg PSBzbHBjX2JhbGFuY2VyX3dyaXRlLAorCS5sbHNlZWsJID0gc2VxX2xzZWVrCit9OworCitzdGF0 aWMgaW50IHNscGNfZGNjX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQorewor CXNscGNfcGFyYW1fc2hvdyhtLCBTTFBDX1BBUkFNX1RBU0tfRU5BQkxFX0RDQywKKwkJCVNMUENf UEFSQU1fVEFTS19ESVNBQkxFX0RDQyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBz bHBjX2RjY19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQorewor CXN0cnVjdCBkcm1fY29ubmVjdG9yICpkZXYgPSBpbm9kZS0+aV9wcml2YXRlOworCisJcmV0dXJu IHNpbmdsZV9vcGVuKGZpbGUsIHNscGNfZGNjX3Nob3csIGRldik7Cit9CisKK3N0YXRpYyBzc2l6 ZV90IHNscGNfZGNjX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAq dWJ1ZiwKKwkJCSAgICAgIHNpemVfdCBsZW4sIGxvZmZfdCAqb2ZmcCkKK3sKKwlzdHJ1Y3Qgc2Vx X2ZpbGUgKm0gPSBmaWxlLT5wcml2YXRlX2RhdGE7CisJaW50IHJldCA9IDA7CisKKwlyZXQgPSBz bHBjX3BhcmFtX3dyaXRlKG0sIHVidWYsIGxlbiwgU0xQQ19QQVJBTV9UQVNLX0VOQUJMRV9EQ0Ms CisJCQkgICAgICAgU0xQQ19QQVJBTV9UQVNLX0RJU0FCTEVfRENDKTsKKwlpZiAocmV0KQorCQly ZXR1cm4gKHNpemVfdCkgcmV0OworCisJcmV0dXJuIGxlbjsKK30KKworc3RhdGljIGNvbnN0IHN0 cnVjdCBmaWxlX29wZXJhdGlvbnMgaTkxNV9zbHBjX2RjY19mb3BzID0geworCS5vd25lcgkgPSBU SElTX01PRFVMRSwKKwkub3BlbgkgPSBzbHBjX2RjY19vcGVuLAorCS5yZWxlYXNlID0gc2luZ2xl X3JlbGVhc2UsCisJLnJlYWQJID0gc2VxX3JlYWQsCisJLndyaXRlCSA9IHNscGNfZGNjX3dyaXRl LAorCS5sbHNlZWsJID0gc2VxX2xzZWVrCit9OworCiBzdGF0aWMgaW50IGk5MTVfZnJlcXVlbmN5 X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiB7CiAJc3RydWN0IGRybV9p bmZvX25vZGUgKm5vZGUgPSBtLT5wcml2YXRlOwpAQCAtNTQyMSw2ICs1NjY4LDkgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBpOTE1X2RlYnVnZnNfZmlsZXMgewogCWNvbnN0IHN0cnVjdCBmaWxlX29w ZXJhdGlvbnMgKmZvcHM7CiB9IGk5MTVfZGVidWdmc19maWxlc1tdID0gewogCXsiaTkxNV93ZWRn ZWQiLCAmaTkxNV93ZWRnZWRfZm9wc30sCisJeyJpOTE1X3NscGNfZ3RwZXJmIiwgJmk5MTVfc2xw Y19ndHBlcmZfZm9wc30sCisJeyJpOTE1X3NscGNfYmFsYW5jZXIiLCAmaTkxNV9zbHBjX2JhbGFu Y2VyX2ZvcHN9LAorCXsiaTkxNV9zbHBjX2RjYyIsICZpOTE1X3NscGNfZGNjX2ZvcHN9LAogCXsi aTkxNV9tYXhfZnJlcSIsICZpOTE1X21heF9mcmVxX2ZvcHN9LAogCXsiaTkxNV9taW5fZnJlcSIs ICZpOTE1X21pbl9mcmVxX2ZvcHN9LAogCXsiaTkxNV9jYWNoZV9zaGFyaW5nIiwgJmk5MTVfY2Fj aGVfc2hhcmluZ19mb3BzfSwKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK