From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhi Wang Subject: [RFC 23/29] drm/i915: gvt: Introduce GVT control interface Date: Thu, 28 Jan 2016 18:21:45 +0800 Message-ID: <1453976511-27322-24-git-send-email-zhi.a.wang@intel.com> References: <1453976511-27322-1-git-send-email-zhi.a.wang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 8AA0F6E7F8 for ; Thu, 28 Jan 2016 02:24:59 -0800 (PST) In-Reply-To: <1453976511-27322-1-git-send-email-zhi.a.wang@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, igvt-g@lists.01.org Cc: daniel.vetter@ffwll.ch, david.j.cowperthwaite@intel.com List-Id: intel-gfx@lists.freedesktop.org RnJvbTogWWkgU3VuIDx5aS5zdW5AaW50ZWwuY29tPgoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRo ZSBjb250cm9sIGludGVyZmFjZSBmb3IgY3JlYXRpbmcvZGVzdHJveWluZyB2R1BVcy4KClNpZ25l ZC1vZmYtYnk6IFlpIFN1biA8eWkuc3VuQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogWmhpIFdh bmcgPHpoaS5hLndhbmdAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9N YWtlZmlsZSAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9jb250cm9sLmMgfCAx ODEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3Z0L2d2dC5jICAgICB8ICAgNCArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0 LmggICAgIHwgICA4ICsrCiA0IGZpbGVzIGNoYW5nZWQsIDE5NCBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2Nv bnRyb2wuYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9NYWtlZmlsZSBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9NYWtlZmlsZQppbmRleCBjMTQ2YzU3Li44ODc0ZmUw IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvTWFrZWZpbGUKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Z0L01ha2VmaWxlCkBAIC0xLDYgKzEsNiBAQAogR1ZUX1NPVVJD RSA6PSBndnQubyBwYXJhbXMubyBhcGVydHVyZV9nbS5vIG1taW8ubyBoYW5kbGVycy5vIGluc3Rh bmNlLm8gXAogCQl0cmFjZV9wb2ludHMubyBpbnRlcnJ1cHQubyBndHQubyBjZmdfc3BhY2UubyBv cHJlZ2lvbi5vIHV0aWxpdHkubyBcCi0JCWZiX2RlY29kZXIubyBkaXNwbGF5Lm8gZWRpZC5vCisJ CWZiX2RlY29kZXIubyBkaXNwbGF5Lm8gZWRpZC5vIGNvbnRyb2wubwogCiBjY2ZsYWdzLXkJCQkr PSAtSSQoc3JjKSAtSSQoc3JjKS8uLiAtV2FsbCAtV2Vycm9yIC1Xbm8tdW51c2VkLWZ1bmN0aW9u CiBpOTE1X2d2dC15CQkJOj0gJChHVlRfU09VUkNFKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3Z0L2NvbnRyb2wuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9jb250cm9s LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjI1ZDIxMwotLS0gL2Rldi9u dWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9jb250cm9sLmMKQEAgLTAsMCArMSwx ODEgQEAKKy8qCisgKiBDb3B5cmlnaHQoYykgMjAxMS0yMDE2IEludGVsIENvcnBvcmF0aW9uLiBB bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRo aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0 d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg aW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHks IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQv b3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g d2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0 aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFy YWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv cnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJ REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAq IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E IE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBD T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhF UgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBP UiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKKyAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ VEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCisgKiBT T0ZUV0FSRS4KKyAqLworCisjaW5jbHVkZSAiZ3Z0LmgiCisKKyNkZWZpbmUgR1ZUX1RZUEUgKCc7 JykKKyNkZWZpbmUgR1ZUX0JBU0UgMHhBMAorCisjZGVmaW5lIEdWVF9DUkVBVEVfSU5TVEFOQ0Ug X0lPVyhHVlRfVFlQRSwgR1ZUX0JBU0UgKyAwLCBzdHJ1Y3QgZ3Z0X2luc3RhbmNlX2luZm8pCisj ZGVmaW5lIEdWVF9ERVNUUk9ZX0lOU1RBTkNFIF9JT1coR1ZUX1RZUEUsIEdWVF9CQVNFICsgMSwg czMyKQorCitzdHJ1Y3QgbWlzY19kZXZpY2VfY2xpZW50X2luZm8geworCXN0cnVjdCBwZ3RfZGV2 aWNlICpwZGV2OworCXN0cnVjdCB2Z3RfZGV2aWNlICp2Z3Q7CisJc3RydWN0IG11dGV4IGxvY2s7 Cit9OworCitzdGF0aWMgaW50IG1pc2NfZGV2aWNlX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwg c3RydWN0IGZpbGUgKmZpbHApCit7CisJc3RydWN0IG1pc2NkZXZpY2UgKmRldiA9IGZpbHAtPnBy aXZhdGVfZGF0YTsKKwlzdHJ1Y3QgcGd0X2RldmljZSAqcGRldiA9IGNvbnRhaW5lcl9vZihkZXYs IHN0cnVjdCBwZ3RfZGV2aWNlLCBjb250cm9sLm1pc2NfZGV2aWNlKTsKKwlzdHJ1Y3QgbWlzY19k ZXZpY2VfY2xpZW50X2luZm8gKmluZm8gPSBOVUxMOworCisJaW5mbyA9IGt6YWxsb2Moc2l6ZW9m KCppbmZvKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFpbmZvKSB7CisJCWd2dF9lcnIoImZhaWwgdG8g YWxsb2NhdGUgbWVtb3J5Iik7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCWluZm8tPnBkZXYg PSBwZGV2OworCW11dGV4X2luaXQoJmluZm8tPmxvY2spOworCisJZmlscC0+cHJpdmF0ZV9kYXRh ID0gaW5mbzsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IG1pc2NfZGV2aWNlX2Nsb3Nl KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCXN0cnVjdCBtaXNj X2RldmljZV9jbGllbnRfaW5mbyAqaW5mbyA9IGZpbHAtPnByaXZhdGVfZGF0YTsKKworCWlmIChp bmZvLT52Z3QpCisJCWd2dF9kZXN0cm95X2luc3RhbmNlKGluZm8tPnZndCk7CisKKwlrZnJlZShp bmZvKTsKKwlmaWxwLT5wcml2YXRlX2RhdGEgPSBOVUxMOworCXJldHVybiAwOworfQorCitzdGF0 aWMgbG9uZyBtaXNjX2RldmljZV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwKKwkJdW5zaWduZWQg aW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCit7CisJc3RydWN0IG1pc2NfZGV2aWNlX2NsaWVu dF9pbmZvICppbmZvID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBndnRfaW5zdGFuY2Vf aW5mbyBwYXJhbTsKKwlpbnQgciA9IDA7CisKKwlpZiAoY29weV9mcm9tX3VzZXIoJnBhcmFtLCAo dm9pZCAqKWFyZywgc2l6ZW9mKHBhcmFtKSkpCisJCXJldHVybiAtRUZBVUxUOworCisJbXV0ZXhf bG9jaygmaW5mby0+bG9jayk7CisJc3dpdGNoKGNtZCkgeworCQljYXNlIEdWVF9DUkVBVEVfSU5T VEFOQ0U6CisJCQlpZiAoaW5mby0+dmd0KSB7CisJCQkJZ3Z0X2VycigiaW5zdGFuY2UgaGFzIGFs cmVhZHkgYmVlbiBjcmVhdGVkIik7CisJCQkJciA9IC1FRVhJU1Q7CisJCQkJZ290byBvdXQ7CisJ CQl9CisKKwkJCWluZm8tPnZndCA9IGd2dF9jcmVhdGVfaW5zdGFuY2UoaW5mby0+cGRldiwgJnBh cmFtKTsKKworCQkJaWYgKCFpbmZvLT52Z3QpIHsKKwkJCQlndnRfZXJyKCJmYWlsIHRvIGNyZWF0 ZSBpbnN0YW5jZSIpOworCQkJCXIgPSAtRU5PTUVNOworCQkJCWdvdG8gb3V0OworCQkJfQorCQkJ YnJlYWs7CisJCWNhc2UgR1ZUX0RFU1RST1lfSU5TVEFOQ0U6CisJCQlpZiAoIWluZm8tPnZndCkg eworCQkJCXIgPSAtRU5PREVWOworCQkJCWdvdG8gb3V0OworCQkJfQorCQkJZ3Z0X2Rlc3Ryb3lf aW5zdGFuY2UoaW5mby0+dmd0KTsKKwkJCWluZm8tPnZndCA9IE5VTEw7CisJCQlicmVhazsKKwkJ ZGVmYXVsdDoKKwkJCXIgPSAtRUlOVkFMOworCQkJZ290byBvdXQ7CisJfQorb3V0OgorCW11dGV4 X3VubG9jaygmaW5mby0+bG9jayk7CisJcmV0dXJuIHI7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZmls ZV9vcGVyYXRpb25zIG1pc2NfZGV2aWNlX2ZvcHMgPQoreworCS5vcGVuID0gbWlzY19kZXZpY2Vf b3BlbiwKKwkucmVsZWFzZSA9IG1pc2NfZGV2aWNlX2Nsb3NlLAorCS51bmxvY2tlZF9pb2N0bCA9 IG1pc2NfZGV2aWNlX2lvY3RsLAorCS5jb21wYXRfaW9jdGwgPSBtaXNjX2RldmljZV9pb2N0bCwK K307CisKK3ZvaWQgY2xlYW5fbWlzY19kZXZpY2Uoc3RydWN0IHBndF9kZXZpY2UgKnBkZXYpCit7 CisJc3RydWN0IG1pc2NkZXZpY2UgKmRldiA9ICZwZGV2LT5jb250cm9sLm1pc2NfZGV2aWNlOwor CisJaWYgKCFsaXN0X2VtcHR5KCZkZXYtPmxpc3QpKQorCQltaXNjX2RlcmVnaXN0ZXIoZGV2KTsK KworCWlmIChkZXYtPm5hbWUpIHsKKwkJa2ZyZWUoZGV2LT5uYW1lKTsKKwkJZGV2LT5uYW1lID0g TlVMTDsKKwl9Cit9CisKK2Jvb2wgc2V0dXBfbWlzY19kZXZpY2Uoc3RydWN0IHBndF9kZXZpY2Ug KnBkZXYpCit7CisJc3RydWN0IG1pc2NkZXZpY2UgKmRldiA9ICZwZGV2LT5jb250cm9sLm1pc2Nf ZGV2aWNlOworCXVuc2lnbmVkIGxvbmcgbGVuOworCWNoYXIgbmFtZVszMl07CisKKwlsZW4gPSBz bnByaW50ZihuYW1lLCAzMiwgImRyaS9ndnQlZCIsIHBkZXYtPmlkKTsKKwlkZXYtPm5hbWUgPSBr emFsbG9jKGxlbiArIDEsIEdGUF9LRVJORUwpOworCWlmICghZGV2LT5uYW1lKSB7CisJCWd2dF9l cnIoImZhaWwgdG8gYWxsb2NhdGUgbWVtb3J5Iik7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlk ZXYtPm5hbWUgPSBuYW1lOworCWRldi0+bWlub3IgPSBNSVNDX0RZTkFNSUNfTUlOT1I7CisJZGV2 LT5mb3BzID0gJm1pc2NfZGV2aWNlX2ZvcHM7CisKKwlJTklUX0xJU1RfSEVBRCgmZGV2LT5saXN0 KTsKKworCWlmIChtaXNjX3JlZ2lzdGVyKGRldikgPCAwKSB7CisJCWd2dF9lcnIoImZhaWwgdG8g cmVnaXN0ZXIgbWlzY2RldmljZSIpOworCQlnb3RvIGVycjsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsK K2VycjoKKwljbGVhbl9taXNjX2RldmljZShwZGV2KTsKKwlyZXR1cm4gZmFsc2U7Cit9CisKK2Jv b2wgZ3Z0X3NldHVwX2NvbnRyb2xfaW50ZXJmYWNlKHN0cnVjdCBwZ3RfZGV2aWNlICpwZGV2KQor eworCWJvb2wgcjsKKworCXIgPSBzZXR1cF9taXNjX2RldmljZShwZGV2KTsKKwlpZiAoIXIpIHsK KwkJZ3Z0X2VycigiZmFpbCB0byBzZXR1cCBtaXNjIGRldmljZSBub2RlXG4iKTsKKwkJcmV0dXJu IGZhbHNlOworCX0KKworCXJldHVybiB0cnVlOworfQorCit2b2lkIGd2dF9jbGVhbl9jb250cm9s X2ludGVyZmFjZShzdHJ1Y3QgcGd0X2RldmljZSAqcGRldikKK3sKKwljbGVhbl9taXNjX2Rldmlj ZShwZGV2KTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuYwppbmRleCBlYTg3MWNkLi43N2ZlNWQzOSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d2dC9ndnQuYwpAQCAtMjgzLDYgKzI4Myw3IEBAIHN0YXRpYyBib29sIGlu aXRfc2VydmljZV90aHJlYWQoc3RydWN0IHBndF9kZXZpY2UgKnBkZXYpCiBzdGF0aWMgdm9pZCBj bGVhbl9wZ3RfZGV2aWNlKHN0cnVjdCBwZ3RfZGV2aWNlICpwZGV2KQogewogCWNsZWFuX3NlcnZp Y2VfdGhyZWFkKHBkZXYpOworCWd2dF9jbGVhbl9jb250cm9sX2ludGVyZmFjZShwZGV2KTsKIAln dnRfY2xlYW5fZ3R0KHBkZXYpOwogCWd2dF9pcnFfZXhpdChwZGV2KTsKIAlndnRfY2xlYW5fbW1p b19lbXVsYXRpb25fc3RhdGUocGRldik7CkBAIC0zMTUsNiArMzE2LDkgQEAgc3RhdGljIGJvb2wg aW5pdF9wZ3RfZGV2aWNlKHN0cnVjdCBwZ3RfZGV2aWNlICpwZGV2LCBzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGUKIAlpZiAoIWd2dF9pbml0X2d0dChwZGV2KSkKIAkJZ290byBlcnI7CiAKKwlp ZiAoIWd2dF9zZXR1cF9jb250cm9sX2ludGVyZmFjZShwZGV2KSkKKwkJZ290byBlcnI7CisKIAlp ZiAoIWluaXRfc2VydmljZV90aHJlYWQocGRldikpCiAJCWdvdG8gZXJyOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dnQvZ3Z0LmgKaW5kZXggYjQ0YjViNS4uMWQ1YzE1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3Z0L2d2dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuaApA QCAtMTYzLDYgKzE2MywxMCBAQCBzdHJ1Y3QgZ3Z0X2dtX2FsbG9jYXRvciB7CiAJc3RydWN0IGRy bV9tbSBoaWdoX2dtOwogfTsKIAorc3RydWN0IGd2dF9kZXZpY2VfY29udHJvbCB7CisJc3RydWN0 IG1pc2NkZXZpY2UgbWlzY19kZXZpY2U7Cit9OworCiBzdHJ1Y3QgcGd0X2RldmljZSB7CiAJc3Ry dWN0IG11dGV4IGxvY2s7CiAJaW50IGlkOwpAQCAtMjE0LDYgKzIxOCw3IEBAIHN0cnVjdCBwZ3Rf ZGV2aWNlIHsKIAlzdHJ1Y3QgcGd0X3N0YXRpc3RpY3Mgc3RhdDsKIAogCXN0cnVjdCBndnRfZ3R0 X2luZm8gZ3R0OworCXN0cnVjdCBndnRfZGV2aWNlX2NvbnRyb2wgY29udHJvbDsKIH07CiAKIC8q IHJlcXVlc3QgdHlwZXMgdG8gd2FrZSB1cCBtYWluIHRocmVhZCAqLwpAQCAtNjg4LDYgKzY5Myw5 IEBAIGJvb2wgcmVnaXN0ZXJfbW1pb19oYW5kbGVyKHN0cnVjdCBwZ3RfZGV2aWNlICpwZGV2LCB1 bnNpZ25lZCBpbnQgc3RhcnQsIGludCBieXRlCiBib29sIGd2dF91cGRhdGVfZGlzcGxheV9ldmVu dHNfZW11bGF0aW9uKHN0cnVjdCBwZ3RfZGV2aWNlICpwZGV2KTsKIHZvaWQgZ3Z0X2VtdWxhdGVf ZGlzcGxheV9ldmVudHMoc3RydWN0IHBndF9kZXZpY2UgKnBkZXYpOwogCitib29sIGd2dF9zZXR1 cF9jb250cm9sX2ludGVyZmFjZShzdHJ1Y3QgcGd0X2RldmljZSAqcGRldik7Cit2b2lkIGd2dF9j bGVhbl9jb250cm9sX2ludGVyZmFjZShzdHJ1Y3QgcGd0X2RldmljZSAqcGRldik7CisKICNpbmNs dWRlICJtcHQuaCIKIAogI2VuZGlmCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK