From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xiaoguang Chen Subject: [PATCH v9 2/7] drm/i915/gvt: OpRegion support for GVT-g Date: Thu, 15 Jun 2017 16:00:06 +0800 Message-ID: <1497513611-2814-3-git-send-email-xiaoguang.chen@intel.com> References: <1497513611-2814-1-git-send-email-xiaoguang.chen@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1497513611-2814-1-git-send-email-xiaoguang.chen@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: alex.williamson@redhat.com, kraxel@redhat.com, chris@chris-wilson.co.uk, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, zhenyuw@linux.intel.com, zhiyuan.lv@intel.com, intel-gvt-dev@lists.freedesktop.org, zhi.a.wang@intel.com, kevin.tian@intel.com Cc: Xiaoguang Chen List-Id: intel-gfx@lists.freedesktop.org T3BSZWdpb24gaXMgbmVlZGVkIHRvIHN1cHBvcnQgZGlzcGxheSByZWxhdGVkIG9wZXJhdGlvbiBm b3IKaW50ZWwgdmdwdS4KCkEgdmZpbyBkZXZpY2UgcmVnaW9uIGlzIGFkZGVkIHRvIGludGVsIHZn cHUgdG8gZGVsaXZlciB0aGUKaG9zdCBPcFJlZ2lvbiBpbmZvcm1hdGlvbiB0byB1c2VyIHNwYWNl IHNvIHVzZXIgc3BhY2UgY2FuCmNvbnN0cnVjdCB0aGUgT3BSZWdpb24gZm9yIHZncHUuCgpTaWdu ZWQtb2ZmLWJ5OiBCaW5nIE5pdSA8YmluZy5uaXVAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBY aWFvZ3VhbmcgQ2hlbiA8eGlhb2d1YW5nLmNoZW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2d2dC9oeXBlcmNhbGwuaCB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2 dC9rdm1ndC5jICAgICB8IDg4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L21wdC5oICAgICAgIHwgMTUgKysrKysrCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9ndnQvb3ByZWdpb24uYyAgfCAyNiArKysrKysrKy0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Z0L3ZncHUuYyAgICAgIHwgIDQgKysKIDUgZmlsZXMgY2hhbmdlZCwgMTI4 IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3Z0L2h5cGVyY2FsbC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2h5cGVy Y2FsbC5oCmluZGV4IGRmN2YzM2EuLjMyYzM0NWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d2dC9oeXBlcmNhbGwuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaHlw ZXJjYWxsLmgKQEAgLTU1LDYgKzU1LDcgQEAgc3RydWN0IGludGVsX2d2dF9tcHQgewogCQkJICAg ICAgdW5zaWduZWQgbG9uZyBtZm4sIHVuc2lnbmVkIGludCBuciwgYm9vbCBtYXApOwogCWludCAo KnNldF90cmFwX2FyZWEpKHVuc2lnbmVkIGxvbmcgaGFuZGxlLCB1NjQgc3RhcnQsIHU2NCBlbmQs CiAJCQkgICAgIGJvb2wgbWFwKTsKKwlpbnQgKCpzZXRfb3ByZWdpb24pKHZvaWQgKnZncHUpOwog fTsKIAogZXh0ZXJuIHN0cnVjdCBpbnRlbF9ndnRfbXB0IHhlbmd0X21wdDsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3Z0L2t2bWd0LmMKaW5kZXggM2M2YTAyYi4uNmI0NjUyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Z0L2t2bWd0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2t2 bWd0LmMKQEAgLTUzLDYgKzUzLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9ndnRfb3Bz ICppbnRlbF9ndnRfb3BzOwogI2RlZmluZSBWRklPX1BDSV9JTkRFWF9UT19PRkZTRVQoaW5kZXgp ICgodTY0KShpbmRleCkgPDwgVkZJT19QQ0lfT0ZGU0VUX1NISUZUKQogI2RlZmluZSBWRklPX1BD SV9PRkZTRVRfTUFTSyAgICAoKCh1NjQpKDEpIDw8IFZGSU9fUENJX09GRlNFVF9TSElGVCkgLSAx KQogCisjZGVmaW5lIE9QUkVHSU9OX1NJR05BVFVSRSAiSW50ZWxHcmFwaGljc01lbSIKKwogc3Ry dWN0IHZmaW9fcmVnaW9uOwogc3RydWN0IGludGVsX3ZncHVfcmVnb3BzIHsKIAlzaXplX3QgKCpy dykoc3RydWN0IGludGVsX3ZncHUgKnZncHUsIGNoYXIgKmJ1ZiwKQEAgLTQzNiw2ICs0MzgsOTEg QEAgc3RhdGljIHZvaWQga3ZtZ3RfcHJvdGVjdF90YWJsZV9kZWwoc3RydWN0IGt2bWd0X2d1ZXN0 X2luZm8gKmluZm8sCiAJfQogfQogCitzdGF0aWMgc2l6ZV90IGludGVsX3ZncHVfcmVnX3J3X29w cmVnaW9uKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1LCBjaGFyICpidWYsCisJCXNpemVfdCBjb3Vu dCwgbG9mZl90ICpwcG9zLCBib29sIGlzd3JpdGUpCit7CisJdW5zaWduZWQgaW50IGkgPSBWRklP X1BDSV9PRkZTRVRfVE9fSU5ERVgoKnBwb3MpIC0KKwkJCVZGSU9fUENJX05VTV9SRUdJT05TOwor CXZvaWQgKmJhc2UgPSB2Z3B1LT52ZGV2LnJlZ2lvbltpXS5kYXRhOworCWxvZmZfdCBwb3MgPSAq cHBvcyAmIFZGSU9fUENJX09GRlNFVF9NQVNLOworCisJaWYgKHBvcyA+PSB2Z3B1LT52ZGV2LnJl Z2lvbltpXS5zaXplIHx8IGlzd3JpdGUpIHsKKwkJZ3Z0X3ZncHVfZXJyKCJpbnZhbGlkIG9wIG9y IG9mZnNldCBmb3IgSW50ZWwgdmdwdSBPcFJlZ2lvblxuIik7CisJCXJldHVybiAtRUlOVkFMOwor CX0KKwljb3VudCA9IG1pbihjb3VudCwgKHNpemVfdCkodmdwdS0+dmRldi5yZWdpb25baV0uc2l6 ZSAtIHBvcykpOworCW1lbWNweShidWYsIGJhc2UgKyBwb3MsIGNvdW50KTsKKworCXJldHVybiBj b3VudDsKK30KKworc3RhdGljIHZvaWQgaW50ZWxfdmdwdV9yZWdfcmVsZWFzZV9vcHJlZ2lvbihz dHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSwKKwkJc3RydWN0IHZmaW9fcmVnaW9uICpyZWdpb24pCit7 CisJbWVtdW5tYXAocmVnaW9uLT5kYXRhKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRl bF92Z3B1X3JlZ29wcyBpbnRlbF92Z3B1X3JlZ29wc19vcHJlZ2lvbiA9IHsKKwkucncgPSBpbnRl bF92Z3B1X3JlZ19yd19vcHJlZ2lvbiwKKwkucmVsZWFzZSA9IGludGVsX3ZncHVfcmVnX3JlbGVh c2Vfb3ByZWdpb24sCit9OworCitzdGF0aWMgaW50IGludGVsX3ZncHVfcmVnaXN0ZXJfcmVnKHN0 cnVjdCBpbnRlbF92Z3B1ICp2Z3B1LAorCQl1bnNpZ25lZCBpbnQgdHlwZSwgdW5zaWduZWQgaW50 IHN1YnR5cGUsCisJCWNvbnN0IHN0cnVjdCBpbnRlbF92Z3B1X3JlZ29wcyAqb3BzLAorCQlzaXpl X3Qgc2l6ZSwgdTMyIGZsYWdzLCB2b2lkICpkYXRhKQoreworCXN0cnVjdCB2ZmlvX3JlZ2lvbiAq cmVnaW9uOworCisJcmVnaW9uID0ga3JlYWxsb2ModmdwdS0+dmRldi5yZWdpb24sCisJCQkodmdw dS0+dmRldi5udW1fcmVnaW9ucyArIDEpICogc2l6ZW9mKCpyZWdpb24pLAorCQkJR0ZQX0tFUk5F TCk7CisJaWYgKCFyZWdpb24pCisJCXJldHVybiAtRU5PTUVNOworCisJdmdwdS0+dmRldi5yZWdp b24gPSByZWdpb247CisJdmdwdS0+dmRldi5yZWdpb25bdmdwdS0+dmRldi5udW1fcmVnaW9uc10u dHlwZSA9IHR5cGU7CisJdmdwdS0+dmRldi5yZWdpb25bdmdwdS0+dmRldi5udW1fcmVnaW9uc10u c3VidHlwZSA9IHN1YnR5cGU7CisJdmdwdS0+dmRldi5yZWdpb25bdmdwdS0+dmRldi5udW1fcmVn aW9uc10ub3BzID0gb3BzOworCXZncHUtPnZkZXYucmVnaW9uW3ZncHUtPnZkZXYubnVtX3JlZ2lv bnNdLnNpemUgPSBzaXplOworCXZncHUtPnZkZXYucmVnaW9uW3ZncHUtPnZkZXYubnVtX3JlZ2lv bnNdLmZsYWdzID0gZmxhZ3M7CisJdmdwdS0+dmRldi5yZWdpb25bdmdwdS0+dmRldi5udW1fcmVn aW9uc10uZGF0YSA9IGRhdGE7CisJdmdwdS0+dmRldi5udW1fcmVnaW9ucysrOworCisJcmV0dXJu IDA7Cit9CisKK3N0YXRpYyBpbnQga3ZtZ3Rfc2V0X29wcmVnaW9uKHZvaWQgKnBfdmdwdSkKK3sK KwlzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSA9IChzdHJ1Y3QgaW50ZWxfdmdwdSAqKXBfdmdwdTsK Kwl1bnNpZ25lZCBpbnQgYWRkcjsKKwl2b2lkICpiYXNlOworCWludCByZXQ7CisKKwlhZGRyID0g dmdwdS0+Z3Z0LT5vcHJlZ2lvbi5vcHJlZ2lvbl9wYTsKKwlpZiAoIWFkZHIgfHwgISh+YWRkcikp CisJCXJldHVybiAtRU5PREVWOworCisJYmFzZSA9IG1lbXJlbWFwKGFkZHIsIE9QUkVHSU9OX1NJ WkUsIE1FTVJFTUFQX1dCKTsKKwlpZiAoIWJhc2UpCisJCXJldHVybiAtRU5PTUVNOworCisJaWYg KG1lbWNtcChiYXNlLCBPUFJFR0lPTl9TSUdOQVRVUkUsIDE2KSkgeworCQltZW11bm1hcChiYXNl KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0ID0gaW50ZWxfdmdwdV9yZWdpc3Rlcl9y ZWcodmdwdSwKKwkJCVBDSV9WRU5ET1JfSURfSU5URUwgfCBWRklPX1JFR0lPTl9UWVBFX1BDSV9W RU5ET1JfVFlQRSwKKwkJCVZGSU9fUkVHSU9OX1NVQlRZUEVfSU5URUxfSUdEX09QUkVHSU9OLAor CQkJJmludGVsX3ZncHVfcmVnb3BzX29wcmVnaW9uLCBPUFJFR0lPTl9TSVpFLAorCQkJVkZJT19S RUdJT05fSU5GT19GTEFHX1JFQUQsIGJhc2UpOworCWlmIChyZXQpCisJCW1lbXVubWFwKGJhc2Up OworCisJcmV0dXJuIHJldDsKK30KKwogc3RhdGljIGludCBpbnRlbF92Z3B1X2NyZWF0ZShzdHJ1 Y3Qga29iamVjdCAqa29iaiwgc3RydWN0IG1kZXZfZGV2aWNlICptZGV2KQogewogCXN0cnVjdCBp bnRlbF92Z3B1ICp2Z3B1ID0gTlVMTDsKQEAgLTE1MjQsNiArMTYxMSw3IEBAIHN0cnVjdCBpbnRl bF9ndnRfbXB0IGt2bWd0X21wdCA9IHsKIAkucmVhZF9ncGEgPSBrdm1ndF9yZWFkX2dwYSwKIAku d3JpdGVfZ3BhID0ga3ZtZ3Rfd3JpdGVfZ3BhLAogCS5nZm5fdG9fbWZuID0ga3ZtZ3RfZ2ZuX3Rv X3BmbiwKKwkuc2V0X29wcmVnaW9uID0ga3ZtZ3Rfc2V0X29wcmVnaW9uLAogfTsKIEVYUE9SVF9T WU1CT0xfR1BMKGt2bWd0X21wdCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d2dC9tcHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9tcHQuaAppbmRleCA0MTkzNTM2 Li5hYjcxMzAwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvbXB0LmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L21wdC5oCkBAIC0yOTMsNCArMjkzLDE5IEBAIHN0 YXRpYyBpbmxpbmUgaW50IGludGVsX2d2dF9oeXBlcnZpc29yX3NldF90cmFwX2FyZWEoCiAJcmV0 dXJuIGludGVsX2d2dF9ob3N0Lm1wdC0+c2V0X3RyYXBfYXJlYSh2Z3B1LT5oYW5kbGUsIHN0YXJ0 LCBlbmQsIG1hcCk7CiB9CiAKKy8qKgorICogaW50ZWxfZ3Z0X2h5cGVydmlzb3Jfc2V0X29wcmVn aW9uIC0gU2V0IG9wcmVnaW9uIGZvciBndWVzdAorICogQHZncHU6IGEgdkdQVQorICoKKyAqIFJl dHVybnM6CisgKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgaWYgZmFpbGVk LgorICovCitzdGF0aWMgaW5saW5lIGludCBpbnRlbF9ndnRfaHlwZXJ2aXNvcl9zZXRfb3ByZWdp b24oc3RydWN0IGludGVsX3ZncHUgKnZncHUpCit7CisJaWYgKCFpbnRlbF9ndnRfaG9zdC5tcHQt PnNldF9vcHJlZ2lvbikKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gaW50ZWxfZ3Z0X2hvc3QubXB0 LT5zZXRfb3ByZWdpb24odmdwdSk7Cit9CisKICNlbmRpZiAvKiBfR1ZUX01QVF9IXyAqLwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L29wcmVnaW9uLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndnQvb3ByZWdpb24uYwppbmRleCAzMTE3OTkxLi4wNGMwNDUyIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvb3ByZWdpb24uYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndnQvb3ByZWdpb24uYwpAQCAtMTEzLDIzICsxMTMsMzcgQEAgdm9pZCBpbnRl bF92Z3B1X2NsZWFuX29wcmVnaW9uKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1KQogICovCiBpbnQg aW50ZWxfdmdwdV9pbml0X29wcmVnaW9uKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1LCB1MzIgZ3Bh KQogewotCWludCByZXQ7CisJaW50IHJldCA9IDA7CisJdW5zaWduZWQgbG9uZyBwZm47CiAKIAln dnRfZGJnX2NvcmUoInZncHUlZDogaW5pdCB2Z3B1IG9wcmVnaW9uXG4iLCB2Z3B1LT5pZCk7CiAK LQlpZiAoaW50ZWxfZ3Z0X2hvc3QuaHlwZXJ2aXNvcl90eXBlID09IElOVEVMX0dWVF9IWVBFUlZJ U09SX1hFTikgeworCXN3aXRjaCAoaW50ZWxfZ3Z0X2hvc3QuaHlwZXJ2aXNvcl90eXBlKSB7CisJ Y2FzZSBJTlRFTF9HVlRfSFlQRVJWSVNPUl9LVk06CisJCXBmbiA9IGludGVsX2d2dF9oeXBlcnZp c29yX2dmbl90b19tZm4odmdwdSwgZ3BhID4+IFBBR0VfU0hJRlQpOworCQl2Z3B1X29wcmVnaW9u KHZncHUpLT52YSA9IG1lbXJlbWFwKHBmbiA8PCBQQUdFX1NISUZULAorCQkJCQkJSU5URUxfR1ZU X09QUkVHSU9OX1NJWkUsCisJCQkJCQlNRU1SRU1BUF9XQik7CisJCWlmICghdmdwdV9vcHJlZ2lv bih2Z3B1KS0+dmEpIHsKKwkJCWd2dF92Z3B1X2VycigiZmFpbGVkIHRvIG1hcCBndWVzdCBvcHJl Z2lvblxuIik7CisJCQlyZXQgPSAtRUZBVUxUOworCQl9CisJCWJyZWFrOworCWNhc2UgSU5URUxf R1ZUX0hZUEVSVklTT1JfWEVOOgogCQlndnRfZGJnX2NvcmUoImVtdWxhdGUgb3ByZWdpb24gZnJv bSBrZXJuZWxcbiIpOwogCiAJCXJldCA9IGluaXRfdmdwdV9vcHJlZ2lvbih2Z3B1LCBncGEpOwog CQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKKwkJCWJyZWFrOwogCiAJCXJldCA9IG1hcF92Z3B1 X29wcmVnaW9uKHZncHUsIHRydWUpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKKwkJYnJl YWs7CisJZGVmYXVsdDoKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ3Z0X3ZncHVfZXJyKCJub3Qgc3Vw cG9ydGVkIGh5cGVydmlzb3JcbiIpOwogCX0KIAotCXJldHVybiAwOworCXJldHVybiByZXQ7CiB9 CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3ZncHUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d2dC92Z3B1LmMKaW5kZXggNmUzY2JkOC4uOGUxZDUwNCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3ZncHUuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndnQvdmdwdS5jCkBAIC0zODMsNiArMzgzLDEwIEBAIHN0YXRpYyBzdHJ1Y3Qg aW50ZWxfdmdwdSAqX19pbnRlbF9ndnRfY3JlYXRlX3ZncHUoc3RydWN0IGludGVsX2d2dCAqZ3Z0 LAogCWlmIChyZXQpCiAJCWdvdG8gb3V0X2NsZWFuX3NoYWRvd19jdHg7CiAKKwlyZXQgPSBpbnRl bF9ndnRfaHlwZXJ2aXNvcl9zZXRfb3ByZWdpb24odmdwdSk7CisJaWYgKHJldCkKKwkJZ290byBv dXRfY2xlYW5fc2hhZG93X2N0eDsKKwogCW11dGV4X3VubG9jaygmZ3Z0LT5sb2NrKTsKIAogCXJl dHVybiB2Z3B1OwotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=