From mboxrd@z Thu Jan 1 00:00:00 1970 From: tom.orourke@intel.com Subject: [RFC 21/22] drm/i915/slpc: Add enable/disable debugfs for slpc Date: Wed, 20 Jan 2016 18:26:23 -0800 Message-ID: <1453343184-160456-22-git-send-email-tom.orourke@intel.com> References: <1453343184-160456-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id A876A7210A for ; Wed, 20 Jan 2016 18:27:37 -0800 (PST) In-Reply-To: <1453343184-160456-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: Tom O'Rourke List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVG9tIE8nUm91cmtlIDxUb20uTydSb3Vya2VAaW50ZWwuY29tPgoKQWRkcyBkZWJ1Z2Zz IGhvb2tzIGZvciBlYWNoIHNscGMgdGFzay4KClRoZSBlbmFibGUvZGlzYWJsZSBkZWJ1Z2ZzIGZp bGVzIGFyZQppOTE1X3NscGNfZGZwcywgaTkxNV9zbHBjX3R1cmJvLCBhbmQgaTkxNV9zbHBjX2Rj Yy4KCkVhY2ggb2YgdGhlc2UgY2FuIHRha2UgdGhlIHZhbHVlczoKImRlZmF1bHQiLCAiZW5hYmxl ZCIsIG9yICJkaXNhYmxlZCIKClNpZ25lZC1vZmYtYnk6IFRvbSBPJ1JvdXJrZSA8VG9tLk8nUm91 cmtlQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyB8 IDI1MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2Vk LCAyNTEgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXgg YzI2MjYwZS4uYTYxNzFiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTEy OTMsNiArMTI5MywyNTQgQEAgc3RhdGljIGludCBpOTE1X3NscGNfaW5mbyhzdHJ1Y3Qgc2VxX2Zp bGUgKm0sIHZvaWQgKnVudXNlZCkKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgaW50IHNscGNf ZW5hYmxlX2Rpc2FibGVfZ2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHU2NCAqdmFsLAorCQkJ ICAgICAgIGVudW0gc2xwY19wYXJhbV9pZCBlbmFibGVfaWQsCisJCQkgICAgICAgZW51bSBzbHBj X3BhcmFtX2lkIGRpc2FibGVfaWQpCit7CisJaW50IHJldDEsIHJldDI7CisJaW50IG92ZXJyaWRl X2VuYWJsZSwgb3ZlcnJpZGVfZGlzYWJsZTsKKwl1MzIgdmFsdWVfZW5hYmxlLCB2YWx1ZV9kaXNh YmxlOworCisJaWYgKCFIQVNfU0xQQyhkZXYpKSB7CisJCXJldDEgPSAtRU5PREVWOworCX0gZWxz ZSBpZiAodmFsKSB7CisJCXJldDEgPSBpbnRlbF9zbHBjX2dldF9wYXJhbShkZXYsIGVuYWJsZV9p ZCwgJm92ZXJyaWRlX2VuYWJsZSwKKwkJCQkJICAgICZ2YWx1ZV9lbmFibGUpOworCQlyZXQyID0g aW50ZWxfc2xwY19nZXRfcGFyYW0oZGV2LCBkaXNhYmxlX2lkLCAmb3ZlcnJpZGVfZGlzYWJsZSwK KwkJCQkJICAgICZ2YWx1ZV9kaXNhYmxlKTsKKworCQkvKiBzZXQgdGhlIG91dHB1dCB2YWx1ZToK KwkJKiAwOiBkZWZhdWx0CisJCSogMTogZW5hYmxlZAorCQkqIDI6IGRpc2FibGVkCisJCSogMzog dW5rbm93biAoc2hvdWxkIG5vdCBoYXBwZW4pCisJCSovCisJCWlmIChvdmVycmlkZV9kaXNhYmxl ICYmICgxID09IHZhbHVlX2Rpc2FibGUpKQorCQkJKnZhbCA9IDI7CisJCWVsc2UgaWYgKG92ZXJy aWRlX2VuYWJsZSAmJiAoMSA9PSB2YWx1ZV9lbmFibGUpKQorCQkJKnZhbCA9IDE7CisJCWVsc2Ug aWYgKCFvdmVycmlkZV9lbmFibGUgJiYgIW92ZXJyaWRlX2Rpc2FibGUpCisJCQkqdmFsID0gMDsK KwkJZWxzZQorCQkJKnZhbCA9IDM7CisKKwl9IGVsc2UgeworCQlyZXQxID0gLUVJTlZBTDsKKwl9 CisKKwlyZXR1cm4gcmV0MSA/IHJldDEgOiByZXQyOworfQorCitzdGF0aWMgaW50IHNscGNfZW5h YmxlX2Rpc2FibGVfc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHU2NCB2YWwsCisJCQkgICAg ICAgZW51bSBzbHBjX3BhcmFtX2lkIGVuYWJsZV9pZCwKKwkJCSAgICAgICBlbnVtIHNscGNfcGFy YW1faWQgZGlzYWJsZV9pZCkKK3sKKwlpbnQgcmV0MSwgcmV0MjsKKworCWlmICghSEFTX1NMUEMo ZGV2KSkgeworCQlyZXQxID0gLUVOT0RFVjsKKwl9IGVsc2UgaWYgKDAgPT0gdmFsKSB7CisJCS8q IHNldCBkZWZhdWx0ICovCisJCXJldDEgPSBpbnRlbF9zbHBjX3Vuc2V0X3BhcmFtKGRldiwgZW5h YmxlX2lkKTsKKwkJcmV0MiA9IGludGVsX3NscGNfdW5zZXRfcGFyYW0oZGV2LCBkaXNhYmxlX2lk KTsKKwl9IGVsc2UgaWYgKDEgPT0gdmFsKSB7CisJCS8qIHNldCBlbmFibGUgKi8KKwkJcmV0MSA9 IGludGVsX3NscGNfc2V0X3BhcmFtKGRldiwgZW5hYmxlX2lkLCAxKTsKKwkJcmV0MiA9IGludGVs X3NscGNfdW5zZXRfcGFyYW0oZGV2LCBkaXNhYmxlX2lkKTsKKwl9IGVsc2UgaWYgKDIgPT0gdmFs KSB7CisJCS8qIHNldCBkaXNhYmxlICovCisJCXJldDIgPSBpbnRlbF9zbHBjX3NldF9wYXJhbShk ZXYsIGRpc2FibGVfaWQsIDEpOworCQlyZXQxID0gaW50ZWxfc2xwY191bnNldF9wYXJhbShkZXYs IGVuYWJsZV9pZCk7CisJfSBlbHNlIHsKKwkJcmV0MSA9IC1FSU5WQUw7CisJfQorCisJcmV0dXJu IHJldDEgPyByZXQxIDogcmV0MjsKK30KKworCitzdGF0aWMgdm9pZCBzbHBjX3BhcmFtX3Nob3co c3RydWN0IHNlcV9maWxlICptLCBlbnVtIHNscGNfcGFyYW1faWQgZW5hYmxlX2lkLAorCQkJICAg IGVudW0gc2xwY19wYXJhbV9pZCBkaXNhYmxlX2lkKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBtLT5wcml2YXRlOworCWNvbnN0IGNoYXIgKnN0YXR1czsKKwl1NjQgdmFsOworCWludCBy ZXQ7CisKKwlyZXQgPSBzbHBjX2VuYWJsZV9kaXNhYmxlX2dldChkZXYsICZ2YWwsIGVuYWJsZV9p ZCwgZGlzYWJsZV9pZCk7CisKKwlpZiAocmV0KSB7CisJCXNlcV9wcmludGYobSwgImVycm9yICVk XG4iLCByZXQpOworCX0gZWxzZSB7CisJCXN3aXRjaCAodmFsKSB7CisJCWNhc2UgMDoKKwkJCXN0 YXR1cyA9ICJkZWZhdWx0XG4iOworCQkJYnJlYWs7CisKKwkJY2FzZSAxOgorCQkJc3RhdHVzID0g ImVuYWJsZWRcbiI7CisJCQlicmVhazsKKworCQljYXNlIDI6CisJCQlzdGF0dXMgPSAiZGlzYWJs ZWRcbiI7CisJCQlicmVhazsKKworCQlkZWZhdWx0OgorCQkJc3RhdHVzID0gInVua25vd25cbiI7 CisJCQlicmVhazsKKwkJfQorCisJCXNlcV9wdXRzKG0sIHN0YXR1cyk7CisJfQorfQorCitzdGF0 aWMgaW50IHNscGNfcGFyYW1fd3JpdGUoc3RydWN0IHNlcV9maWxlICptLCBjb25zdCBjaGFyIF9f dXNlciAqdWJ1ZiwKKwkJCSAgICBzaXplX3QgbGVuLCBlbnVtIHNscGNfcGFyYW1faWQgZW5hYmxl X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gc2xwY19wYXJhbV9pZCBkaXNh YmxlX2lkKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBtLT5wcml2YXRlOworCXU2NCB2 YWw7CisJaW50IHJldCA9IDA7CisJY2hhciBidWZbMTBdOworCisJaWYgKGxlbiA+PSBzaXplb2Yo YnVmKSkKKwkJcmV0ID0gLUVJTlZBTDsKKwllbHNlIGlmIChjb3B5X2Zyb21fdXNlcihidWYsIHVi dWYsIGxlbikpCisJCXJldCA9IC1FRkFVTFQ7CisJZWxzZQorCQlidWZbbGVuXSA9ICdcMCc7CisK KwlpZiAoIXJldCkgeworCQlpZiAoIXN0cm5jbXAoYnVmLCAiZGVmYXVsdCIsIDcpKQorCQkJdmFs ID0gMDsKKwkJZWxzZSBpZiAoIXN0cm5jbXAoYnVmLCAiZW5hYmxlZCIsIDcpKQorCQkJdmFsID0g MTsKKwkJZWxzZSBpZiAoIXN0cm5jbXAoYnVmLCAiZGlzYWJsZWQiLCA4KSkKKwkJCXZhbCA9IDI7 CisJCWVsc2UKKwkJCXJldCA9IC1FSU5WQUw7CisJfQorCisJaWYgKCFyZXQpCisJCXJldCA9IHNs cGNfZW5hYmxlX2Rpc2FibGVfc2V0KGRldiwgdmFsLCBlbmFibGVfaWQsIGRpc2FibGVfaWQpOwor CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBzbHBjX2RmcHNfc2hvdyhzdHJ1Y3Qgc2Vx X2ZpbGUgKm0sIHZvaWQgKmRhdGEpCit7CisJc2xwY19wYXJhbV9zaG93KG0sIFNMUENfUEFSQU1f VEFTS19FTkFCTEVfREZQUywKKwkJCVNMUENfUEFSQU1fVEFTS19ESVNBQkxFX0RGUFMpOworCisJ cmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc2xwY19kZnBzX29wZW4oc3RydWN0IGlub2RlICpp bm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IGRybV9jb25uZWN0b3IgKmRldiA9 IGlub2RlLT5pX3ByaXZhdGU7CisKKwlyZXR1cm4gc2luZ2xlX29wZW4oZmlsZSwgc2xwY19kZnBz X3Nob3csIGRldik7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHNscGNfZGZwc193cml0ZShzdHJ1Y3Qg ZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCisJCQkgICAgICBzaXplX3QgbGVu LCBsb2ZmX3QgKm9mZnApCit7CisJc3RydWN0IHNlcV9maWxlICptID0gZmlsZS0+cHJpdmF0ZV9k YXRhOworCWludCByZXQgPSAwOworCisJcmV0ID0gc2xwY19wYXJhbV93cml0ZShtLCB1YnVmLCBs ZW4sIFNMUENfUEFSQU1fVEFTS19FTkFCTEVfREZQUywKKwkJCSAgICAgICBTTFBDX1BBUkFNX1RB U0tfRElTQUJMRV9ERlBTKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gKHNpemVfdCkgcmV0OworCisJ cmV0dXJuIGxlbjsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaTkx NV9zbHBjX2RmcHNfZm9wcyA9IHsKKwkub3duZXIJID0gVEhJU19NT0RVTEUsCisJLm9wZW4JID0g c2xwY19kZnBzX29wZW4sCisJLnJlbGVhc2UgPSBzaW5nbGVfcmVsZWFzZSwKKwkucmVhZAkgPSBz ZXFfcmVhZCwKKwkud3JpdGUJID0gc2xwY19kZnBzX3dyaXRlLAorCS5sbHNlZWsJID0gc2VxX2xz ZWVrCit9OworCitzdGF0aWMgaW50IHNscGNfdHVyYm9fc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0s IHZvaWQgKmRhdGEpCit7CisJc2xwY19wYXJhbV9zaG93KG0sIFNMUENfUEFSQU1fVEFTS19FTkFC TEVfVFVSQk8sCisJCQlTTFBDX1BBUkFNX1RBU0tfRElTQUJMRV9UVVJCTyk7CisKKwlyZXR1cm4g MDsKK30KKworc3RhdGljIGludCBzbHBjX3R1cmJvX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwg c3RydWN0IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IGRybV9jb25uZWN0b3IgKmRldiA9IGlub2Rl LT5pX3ByaXZhdGU7CisKKwlyZXR1cm4gc2luZ2xlX29wZW4oZmlsZSwgc2xwY190dXJib19zaG93 LCBkZXYpOworfQorCitzdGF0aWMgc3NpemVfdCBzbHBjX3R1cmJvX3dyaXRlKHN0cnVjdCBmaWxl ICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJCSAgICAgIHNpemVfdCBsZW4sIGxv ZmZfdCAqb2ZmcCkKK3sKKwlzdHJ1Y3Qgc2VxX2ZpbGUgKm0gPSBmaWxlLT5wcml2YXRlX2RhdGE7 CisJaW50IHJldCA9IDA7CisKKwlyZXQgPSBzbHBjX3BhcmFtX3dyaXRlKG0sIHVidWYsIGxlbiwg U0xQQ19QQVJBTV9UQVNLX0VOQUJMRV9UVVJCTywKKwkJCSAgICAgICBTTFBDX1BBUkFNX1RBU0tf RElTQUJMRV9UVVJCTyk7CisJaWYgKHJldCkKKwkJcmV0dXJuIChzaXplX3QpIHJldDsKKworCXJl dHVybiBsZW47Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGk5MTVf c2xwY190dXJib19mb3BzID0geworCS5vd25lcgkgPSBUSElTX01PRFVMRSwKKwkub3BlbgkgPSBz bHBjX3R1cmJvX29wZW4sCisJLnJlbGVhc2UgPSBzaW5nbGVfcmVsZWFzZSwKKwkucmVhZAkgPSBz ZXFfcmVhZCwKKwkud3JpdGUJID0gc2xwY190dXJib193cml0ZSwKKwkubGxzZWVrCSA9IHNlcV9s c2VlaworfTsKKworc3RhdGljIGludCBzbHBjX2RjY19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwg dm9pZCAqZGF0YSkKK3sKKwlzbHBjX3BhcmFtX3Nob3cobSwgU0xQQ19QQVJBTV9UQVNLX0VOQUJM RV9EQ0MsCisJCQlTTFBDX1BBUkFNX1RBU0tfRElTQUJMRV9EQ0MpOworCisJcmV0dXJuIDA7Cit9 CisKK3N0YXRpYyBpbnQgc2xwY19kY2Nfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3Qg ZmlsZSAqZmlsZSkKK3sKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqZGV2ID0gaW5vZGUtPmlfcHJp dmF0ZTsKKworCXJldHVybiBzaW5nbGVfb3BlbihmaWxlLCBzbHBjX2RjY19zaG93LCBkZXYpOwor fQorCitzdGF0aWMgc3NpemVfdCBzbHBjX2RjY193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29u c3QgY2hhciBfX3VzZXIgKnVidWYsCisJCQkgICAgICBzaXplX3QgbGVuLCBsb2ZmX3QgKm9mZnAp Cit7CisJc3RydWN0IHNlcV9maWxlICptID0gZmlsZS0+cHJpdmF0ZV9kYXRhOworCWludCByZXQg PSAwOworCisJcmV0ID0gc2xwY19wYXJhbV93cml0ZShtLCB1YnVmLCBsZW4sIFNMUENfUEFSQU1f VEFTS19FTkFCTEVfRENDLAorCQkJICAgICAgIFNMUENfUEFSQU1fVEFTS19ESVNBQkxFX0RDQyk7 CisJaWYgKHJldCkKKwkJcmV0dXJuIChzaXplX3QpIHJldDsKKworCXJldHVybiBsZW47Cit9CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGk5MTVfc2xwY19kY2NfZm9wcyA9 IHsKKwkub3duZXIJID0gVEhJU19NT0RVTEUsCisJLm9wZW4JID0gc2xwY19kY2Nfb3BlbiwKKwku cmVsZWFzZSA9IHNpbmdsZV9yZWxlYXNlLAorCS5yZWFkCSA9IHNlcV9yZWFkLAorCS53cml0ZQkg PSBzbHBjX2RjY193cml0ZSwKKwkubGxzZWVrCSA9IHNlcV9sc2VlaworfTsKKwogc3RhdGljIGlu dCBpOTE1X2ZyZXF1ZW5jeV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQog ewogCXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0gbS0+cHJpdmF0ZTsKQEAgLTU1NzAsNiAr NTgxOCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9kZWJ1Z2ZzX2ZpbGVzIHsKIAljb25z dCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpmb3BzOwogfSBpOTE1X2RlYnVnZnNfZmlsZXNbXSA9 IHsKIAl7Imk5MTVfd2VkZ2VkIiwgJmk5MTVfd2VkZ2VkX2ZvcHN9LAorCXsiaTkxNV9zbHBjX2Rm cHMiLCAmaTkxNV9zbHBjX2RmcHNfZm9wc30sCisJeyJpOTE1X3NscGNfdHVyYm8iLCAmaTkxNV9z bHBjX3R1cmJvX2ZvcHN9LAorCXsiaTkxNV9zbHBjX2RjYyIsICZpOTE1X3NscGNfZGNjX2ZvcHN9 LAogCXsiaTkxNV9tYXhfZnJlcSIsICZpOTE1X21heF9mcmVxX2ZvcHN9LAogCXsiaTkxNV9taW5f ZnJlcSIsICZpOTE1X21pbl9mcmVxX2ZvcHN9LAogCXsiaTkxNV9jYWNoZV9zaGFyaW5nIiwgJmk5 MTVfY2FjaGVfc2hhcmluZ19mb3BzfSwKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=