From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Rawat Subject: [PATCH 05/18] drm: Add helper to implement legacy dirtyfb Date: Thu, 27 Sep 2018 17:30:07 -0700 Message-ID: <20180928003020.1737-5-drawat@vmware.com> References: <20180928003020.1737-1-drawat@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EX13-EDG-OU-002.vmware.com (ex13-edg-ou-002.vmware.com [208.91.0.190]) by gabe.freedesktop.org (Postfix) with ESMTPS id 67E056E635 for ; Fri, 28 Sep 2018 00:30:54 +0000 (UTC) In-Reply-To: <20180928003020.1737-1-drawat@vmware.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, linux-graphics-maintainer@vmware.com, thellstrom@vmware.com, syeh@vmware.com Cc: Daniel Vetter , Deepak Rawat List-Id: dri-devel@lists.freedesktop.org RnJvbTogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgoKQWRkIGFuIGF0b21pYyBoZWxw ZXIgdG8gaW1wbGVtZW50IGRpcnR5ZmIgc3VwcG9ydC4gIFRoaXMgaXMgbmVlZGVkIHRvCnN1cHBv cnQgRFNJIGNvbW1hbmQtbW9kZSBwYW5lbHMgd2l0aCB4MTEgdXNlcnNwYWNlIChpZS4gd2hlbiB3 ZSBjYW4ndApyZWx5IG9uIHBhZ2VmbGlwcyB0byB0cmlnZ2VyIGEgZmx1c2ggdG8gdGhlIHBhbmVs KS4KCnYyOiBNb2RpZmllZCB0aGUgaGVscGVyIHRvIHVzZSBwbGFuZSBmYl9kYW1hZ2VfY2xpcHMg cHJvcGVydHkgYW5kCnJlbW92ZWQgcGxhbmVfc3RhdGU6OmRpcnR5IGZsYWcuCgp2MzoKLSBVc2Ug dWFwaSBkcm1fbW9kZV9yZWN0LgotIFN1cHBvcnQgYW5ub3RhdGUgZmxhZ3MuCgpDYzogdmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20KQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJA ZmZ3bGwuY2g+CkNjOiBQZWtrYSBQYWFsYW5lbiA8cHBhYWxhbmVuQGdtYWlsLmNvbT4KU2lnbmVk LW9mZi1ieTogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBE ZWVwYWsgUmF3YXQgPGRyYXdhdEB2bXdhcmUuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1f ZGFtYWdlX2hlbHBlci5jIHwgMTIxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1 ZGUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmggICAgIHwgICA0ICsKIDIgZmlsZXMgY2hhbmdlZCwg MTI1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RhbWFn ZV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZGFtYWdlX2hlbHBlci5jCmluZGV4IGJj NzM0ZGRhZjE4MC4uZWNmMjYyNzU1NDNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2RhbWFnZV9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RhbWFnZV9oZWxwZXIu YwpAQCAtMjYsNiArMjYsNyBAQAogICoKICAqIEF1dGhvcnM6CiAgKiBEZWVwYWsgUmF3YXQgPGRy YXdhdEB2bXdhcmUuY29tPgorICogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgogICoK ICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KIApAQCAtNzAsNiArNzEsMjEgQEAKICAqIHJlY3RhbmdsZXMg Y2xpcHBlZCB0byAmZHJtX3BsYW5lX3N0YXRlLnNyYy4KICAqLwogCitzdGF0aWMgdm9pZCBjb252 ZXJ0X2NsaXBfcmVjdF90b19yZWN0KGNvbnN0IHN0cnVjdCBkcm1fY2xpcF9yZWN0ICpzcmMsCisJ CQkJICAgICAgc3RydWN0IGRybV9tb2RlX3JlY3QgKmRlc3QsCisJCQkJICAgICAgdWludDMyX3Qg bnVtX2NsaXBzLCB1aW50MzJfdCBzcmNfaW5jKQoreworCXdoaWxlIChudW1fY2xpcHMgPiAwKSB7 CisJCWRlc3QtPngxID0gc3JjLT54MTsKKwkJZGVzdC0+eTEgPSBzcmMtPnkxOworCQlkZXN0LT54 MiA9IHNyYy0+eDI7CisJCWRlc3QtPnkyID0gc3JjLT55MjsKKwkJc3JjICs9IHNyY19pbmM7CisJ CWRlc3QrKzsKKwkJbnVtX2NsaXBzLS07CisJfQorfQorCiAvKioKICAqIGRybV9wbGFuZV9lbmFi bGVfZmJfZGFtYWdlX2NsaXBzIC0gRW5hYmxlcyBwbGFuZSBmYiBkYW1hZ2UgY2xpcHMgcHJvcGVy dHkuCiAgKiBAcGxhbmU6IFBsYW5lIG9uIHdoaWNoIHRvIGVuYWJsZSBkYW1hZ2UgY2xpcHMgcHJv cGVydHkuCkBAIC0xMjMsNiArMTM5LDExMSBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX2NoZWNr X3BsYW5lX2RhbWFnZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiB9CiBFWFBPUlRf U1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lX2RhbWFnZSk7CiAKKy8qKgorICog ZHJtX2F0b21pY19oZWxwZXJfZGlydHlmYiAtIEhlbHBlciBmb3IgZGlydHlmYi4KKyAqIEBmYjog RFJNIGZyYW1lYnVmZmVyLgorICogQGZpbGVfcHJpdjogRHJtIGZpbGUgZm9yIHRoZSBpb2N0bCBj YWxsLgorICogQGZsYWdzOiBEaXJ0eSBmYiBhbm5vdGF0ZSBmbGFncy4KKyAqIEBjb2xvcjogQ29s b3IgZm9yIGFubm90YXRlIGZpbGwuCisgKiBAY2xpcHM6IERpcnR5IHJlZ2lvbi4KKyAqIEBudW1f Y2xpcHM6IENvdW50IG9mIGNsaXAgaW4gY2xpcHMuCisgKgorICogQSBoZWxwZXIgdG8gaW1wbGVt ZW50ICZkcm1fZnJhbWVidWZmZXJfZnVuY3M6OmRpcnR5IHVzaW5nIGRhbWFnZSBpbnRlcmZhY2UK KyAqIGR1cmluZyBwbGFuZSB1cGRhdGUuIFNpbWlsYXIgdG8gaW9jdGwsIHRoaXMgaGVscGVyIGRv IGEgZnVsbCBwbGFuZSB1cGRhdGUKKyAqIHdoZW4gbm8gY2xpcHMgYXJlIHByb3ZpZGVkLgorICoK KyAqIFJldHVybnM6IFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJybm8gb24gZmFpbHVyZS4K KyAqLworaW50IGRybV9hdG9taWNfaGVscGVyX2RpcnR5ZmIoc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIsCisJCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgdW5zaWduZWQgZmxh Z3MsCisJCQkgICAgICB1bnNpZ25lZCBjb2xvciwgc3RydWN0IGRybV9jbGlwX3JlY3QgKmNsaXBz LAorCQkJICAgICAgdW5zaWduZWQgbnVtX2NsaXBzKQoreworCXN0cnVjdCBkcm1fbW9kZXNldF9h Y3F1aXJlX2N0eCBjdHg7CisJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkYW1hZ2UgPSBOVUxM OworCXN0cnVjdCBkcm1fbW9kZV9yZWN0ICpyZWN0cyA9IE5VTEw7CisJc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlOworCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOworCWludCByZXQgPSAw OworCisJLyoKKwkgKiBXaGVuIGNhbGxlZCBmcm9tIGlvY3RsLCB3ZSBhcmUgaW50ZXJydXB0YWJs ZSwgYnV0IG5vdCB3aGVuIGNhbGxlZAorCSAqIGludGVybmFsbHkgKGllLiBkZWZpbyB3b3JrZXIp CisJICovCisJZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0KCZjdHgsCisJCWZpbGVfcHJpdiA/IERS TV9NT0RFU0VUX0FDUVVJUkVfSU5URVJSVVBUSUJMRSA6IDApOworCisJc3RhdGUgPSBkcm1fYXRv bWljX3N0YXRlX2FsbG9jKGZiLT5kZXYpOworCWlmICghc3RhdGUpIHsKKwkJcmV0ID0gLUVOT01F TTsKKwkJZ290byBvdXQ7CisJfQorCXN0YXRlLT5hY3F1aXJlX2N0eCA9ICZjdHg7CisKKwlpZiAo Y2xpcHMpIHsKKwkJdWludDMyX3QgaW5jID0gMTsKKworCQlpZiAoZmxhZ3MgJiBEUk1fTU9ERV9G Ql9ESVJUWV9BTk5PVEFURV9DT1BZKSB7CisJCQlpbmMgPSAyOworCQkJbnVtX2NsaXBzIC89IDI7 CisJCX0KKworCQlyZWN0cyA9IGtjYWxsb2MobnVtX2NsaXBzLCBzaXplb2YoKnJlY3RzKSwgR0ZQ X0tFUk5FTCk7CisJCWlmICghcmVjdHMpIHsKKwkJCXJldCA9IC1FTk9NRU07CisJCQlnb3RvIG91 dDsKKwkJfQorCisJCWNvbnZlcnRfY2xpcF9yZWN0X3RvX3JlY3QoY2xpcHMsIHJlY3RzLCBudW1f Y2xpcHMsIGluYyk7CisJCWRhbWFnZSA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfYmxvYihmYi0+ZGV2 LAorCQkJCQkJICBudW1fY2xpcHMgKiBzaXplb2YoKnJlY3RzKSwKKwkJCQkJCSAgcmVjdHMpOwor CQlpZiAoSVNfRVJSKGRhbWFnZSkpIHsKKwkJCXJldCA9IFBUUl9FUlIoZGFtYWdlKTsKKwkJCWRh bWFnZSA9IE5VTEw7CisJCQlnb3RvIG91dDsKKwkJfQorCX0KKworcmV0cnk6CisJZHJtX2Zvcl9l YWNoX3BsYW5lKHBsYW5lLCBmYi0+ZGV2KSB7CisJCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBs YW5lX3N0YXRlOworCisJCWlmIChwbGFuZS0+c3RhdGUtPmZiICE9IGZiKQorCQkJY29udGludWU7 CisKKwkJcGxhbmVfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgcGxh bmUpOworCQlpZiAoSVNfRVJSKHBsYW5lX3N0YXRlKSkgeworCQkJcmV0ID0gUFRSX0VSUihwbGFu ZV9zdGF0ZSk7CisJCQlnb3RvIG91dDsKKwkJfQorCisJCWRybV9wcm9wZXJ0eV9yZXBsYWNlX2Js b2IoJnBsYW5lX3N0YXRlLT5mYl9kYW1hZ2VfY2xpcHMsCisJCQkJCSAgZGFtYWdlKTsKKwl9CisK KwlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7CisKK291dDoKKwlpZiAocmV0ID09IC1F REVBRExLKSB7CisJCWRybV9hdG9taWNfc3RhdGVfY2xlYXIoc3RhdGUpOworCQlyZXQgPSBkcm1f bW9kZXNldF9iYWNrb2ZmKCZjdHgpOworCQlpZiAoIXJldCkKKwkJCWdvdG8gcmV0cnk7CisJfQor CisJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KGRhbWFnZSk7CisJa2ZyZWUocmVjdHMpOworCWRybV9h dG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKKworCWRybV9tb2Rlc2V0X2Ryb3BfbG9ja3MoJmN0eCk7 CisJZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgpOworCisJcmV0dXJuIHJldDsKKworfQor RVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9kaXJ0eWZiKTsKKwogLyoqCiAgKiBkcm1f YXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlcl9pbml0IC0gSW5pdGlhbGl6ZSB0aGUgZGFtYWdlIGl0 ZXJhdG9yLgogICogQGl0ZXI6IFRoZSBpdGVyYXRvciB0byBpbml0aWFsaXplLgpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9kcm0vZHJtX2RhbWFnZV9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9kYW1h Z2VfaGVscGVyLmgKaW5kZXggYWYxODg3OTk4MjBmLi5lNGZlNzAzNmNhYjIgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Rh bWFnZV9oZWxwZXIuaApAQCAtNjcsNiArNjcsMTAgQEAgc3RydWN0IGRybV9hdG9taWNfaGVscGVy X2RhbWFnZV9pdGVyIHsKIHZvaWQgZHJtX3BsYW5lX2VuYWJsZV9mYl9kYW1hZ2VfY2xpcHMoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUpOwogdm9pZCBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFu ZV9kYW1hZ2Uoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJCQkgIHN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKK2ludCBkcm1fYXRvbWljX2hlbHBlcl9kaXJ0 eWZiKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAorCQkJICAgICAgc3RydWN0IGRybV9maWxl ICpmaWxlX3ByaXYsIHVuc2lnbmVkIGZsYWdzLAorCQkJICAgICAgdW5zaWduZWQgY29sb3IsIHN0 cnVjdCBkcm1fY2xpcF9yZWN0ICpjbGlwcywKKwkJCSAgICAgIHVuc2lnbmVkIG51bV9jbGlwcyk7 CiB2b2lkCiBkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlcl9pbml0KHN0cnVjdCBkcm1fYXRv bWljX2hlbHBlcl9kYW1hZ2VfaXRlciAqaXRlciwKIAkJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX3Bs YW5lX3N0YXRlICpvbGRfc3RhdGUsCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=