From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Rawat Subject: [PATCH 04/14] drm: add helper to implement legacy dirtyfb Date: Wed, 5 Sep 2018 16:38:51 -0700 Message-ID: <20180905233901.2321-5-drawat@vmware.com> References: <20180905233901.2321-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 96FF06E56D for ; Wed, 5 Sep 2018 23:39:31 +0000 (UTC) In-Reply-To: <20180905233901.2321-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: Deepak Rawat , lukasz.spintzyk@displaylink.com List-Id: dri-devel@lists.freedesktop.org RnJvbTogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgoKQWRkIGFuIGF0b21pYyBoZWxw ZXIgdG8gaW1wbGVtZW50IGRpcnR5ZmIgc3VwcG9ydC4gIFRoaXMgaXMgbmVlZGVkIHRvCnN1cHBv cnQgRFNJIGNvbW1hbmQtbW9kZSBwYW5lbHMgd2l0aCB4MTEgdXNlcnNwYWNlIChpZS4gd2hlbiB3 ZSBjYW4ndApyZWx5IG9uIHBhZ2VmbGlwcyB0byB0cmlnZ2VyIGEgZmx1c2ggdG8gdGhlIHBhbmVs KS4KCnYyOiBNb2RpZmllZCB0aGUgaGVscGVyIHRvIHVzZSBwbGFuZSBmYl9kYW1hZ2VfY2xpcHMg cHJvcGVydHkgYW5kCnJlbW92ZWQgcGxhbmVfc3RhdGU6OmRpcnR5IGZsYWcuCgpTaWduZWQtb2Zm LWJ5OiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERlZXBh ayBSYXdhdCA8ZHJhd2F0QHZtd2FyZS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9kYW1h Z2VfaGVscGVyLmMgfCAxMTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9k cm0vZHJtX2RhbWFnZV9oZWxwZXIuaCAgICAgfCAgIDQgKwogMiBmaWxlcyBjaGFuZ2VkLCAxMjAg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZGFtYWdlX2hl bHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmMKaW5kZXggN2Q3MGY2 MDAxODg5Li5iMDE2ZWMzNzUyOTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZGFt YWdlX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZGFtYWdlX2hlbHBlci5jCkBA IC0yNiw2ICsyNiw3IEBACiAgKgogICogQXV0aG9yczoKICAqIERlZXBhayBSYXdhdCA8ZHJhd2F0 QHZtd2FyZS5jb20+CisgKiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+CiAgKgogICoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLwogCkBAIC04MSw2ICs4MiwyMSBAQCBzdGF0aWMgaW50IGNvbnZlcnRf Zml4ZWRfdG9fMzIoaW50IGZpeGVkKQogCXJldHVybiAoKGZpeGVkID4+IDE1KSAmIDEpICsgKGZp eGVkID4+IDE2KTsKIH0KIAorc3RhdGljIHZvaWQgY29udmVydF9jbGlwX3JlY3RfdG9fcmVjdChj b25zdCBzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqc3JjLAorCQkJCSAgICAgIHN0cnVjdCBkcm1fcmVj dCAqZGVzdCwKKwkJCQkgICAgICB1aW50MzJfdCBudW1fY2xpcHMpCit7CisJd2hpbGUgKG51bV9j bGlwcyA+IDApIHsKKwkJZGVzdC0+eDEgPSBzcmMtPngxOworCQlkZXN0LT55MSA9IHNyYy0+eTE7 CisJCWRlc3QtPngyID0gc3JjLT54MjsKKwkJZGVzdC0+eTIgPSBzcmMtPnkyOworCQlzcmMrKzsK KwkJZGVzdCsrOworCQludW1fY2xpcHMtLTsKKwl9Cit9CisKIC8qKgogICogZHJtX3BsYW5lX2Vu YWJsZV9mYl9kYW1hZ2VfY2xpcHMgLSBlbmFibGVzIHBsYW5lIGZiIGRhbWFnZSBjbGlwcyBwcm9w ZXJ0eQogICogQHBsYW5lOiBwbGFuZSBvbiB3aGljaCB0byBlbmFibGUgZGFtYWdlIGNsaXBzIHBy b3BlcnR5CkBAIC0xODMsMyArMTk5LDEwMyBAQCBkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRl cl9uZXh0KHN0cnVjdCBkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlciAqaXRlciwKIAlyZXR1 cm4gcmV0OwogfQogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlcl9u ZXh0KTsKKworLyoqCisgKiBkcm1fYXRvbWljX2hlbHBlcl9kaXJ0eWZiIC0gaGVscGVyIGZvciBk aXJ0eWZiCisgKiBAZmI6IERSTSBmcmFtZWJ1ZmZlcgorICogQGZpbGVfcHJpdjogZHJtIGZpbGUg Zm9yIHRoZSBpb2N0bCBjYWxsCisgKiBAZmxhZ3M6IGRpcnR5IGZiIGFubm90YXRlIGZsYWdzCisg KiBAY29sb3I6IGNvbG9yIGZvciBhbm5vdGF0ZSBmaWxsCisgKiBAY2xpcHM6IGRpcnR5IHJlZ2lv bgorICogQG51bV9jbGlwczogY291bnQgb2YgY2xpcCBpbiBjbGlwcworICoKKyAqIEEgaGVscGVy IHRvIGltcGxlbWVudCBkcm1fZnJhbWVidWZmZXJfZnVuY3M6OmRpcnR5LiBUaGlzIGhlbHBlciB3 aWxsIGRvIGEKKyAqIGZ1bGwgdXBkYXRlIGluIGNhc2Ugb2YgYW5ub3RhdGUgZmxhZ3MuCisgKgor ICogUmV0dXJuczogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJubyBvbiBmYWlsdXJlLgor ICovCitpbnQgZHJtX2F0b21pY19oZWxwZXJfZGlydHlmYihzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYiwKKwkJCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LCB1bnNpZ25lZCBmbGFn cywKKwkJCSAgICAgIHVuc2lnbmVkIGNvbG9yLCBzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqY2xpcHMs CisJCQkgICAgICB1bnNpZ25lZCBudW1fY2xpcHMpCit7CisJc3RydWN0IGRybV9tb2Rlc2V0X2Fj cXVpcmVfY3R4IGN0eDsKKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmRhbWFnZSA9IE5VTEw7 CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOworCXN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lOworCXN0cnVjdCBkcm1fcmVjdCAqcmVjdHMgPSBOVUxMOworCWludCByZXQgPSAwOworCisJ LyoKKwkgKiBXaGVuIGNhbGxlZCBmcm9tIGlvY3RsLCB3ZSBhcmUgaW50ZXJydXB0YWJsZSwgYnV0 IG5vdCB3aGVuIGNhbGxlZAorCSAqIGludGVybmFsbHkgKGllLiBkZWZpbyB3b3JrZXIpCisJICov CisJZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0KCZjdHgsCisJCWZpbGVfcHJpdiA/IERSTV9NT0RF U0VUX0FDUVVJUkVfSU5URVJSVVBUSUJMRSA6IDApOworCisJc3RhdGUgPSBkcm1fYXRvbWljX3N0 YXRlX2FsbG9jKGZiLT5kZXYpOworCWlmICghc3RhdGUpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJ Z290byBvdXQ7CisJfQorCXN0YXRlLT5hY3F1aXJlX2N0eCA9ICZjdHg7CisKKwlXQVJOX09OQ0Uo ZmxhZ3MgJiBEUk1fTU9ERV9GQl9ESVJUWV9GTEFHUywKKwkJICAiRnVsbCB1cGRhdGUgZm9yIGRp cnR5ZmIgd2l0aCBEUk1fTU9ERV9GQl9ESVJUWV9GTEFHU1xuIik7CisKKwlpZiAoIShmbGFncyAm IERSTV9NT0RFX0ZCX0RJUlRZX0ZMQUdTKSkgeworCQlyZWN0cyA9IGtjYWxsb2MobnVtX2NsaXBz LCBzaXplb2YoKnJlY3RzKSwgR0ZQX0tFUk5FTCk7CisJCWlmICghcmVjdHMpIHsKKwkJCXJldCA9 IC1FTk9NRU07CisJCQlnb3RvIG91dDsKKwkJfQorCisJCWNvbnZlcnRfY2xpcF9yZWN0X3RvX3Jl Y3QoY2xpcHMsIHJlY3RzLCBudW1fY2xpcHMpOworCQlkYW1hZ2UgPSBkcm1fcHJvcGVydHlfY3Jl YXRlX2Jsb2IoZmItPmRldiwKKwkJCQkJCSAgbnVtX2NsaXBzICogc2l6ZW9mKCpyZWN0cyksCisJ CQkJCQkgIHJlY3RzKTsKKwkJaWYgKElTX0VSUihkYW1hZ2UpKSB7CisJCQlyZXQgPSBQVFJfRVJS KGRhbWFnZSk7CisJCQlkYW1hZ2UgPSBOVUxMOworCQkJZ290byBvdXQ7CisJCX0KKwl9CisKK3Jl dHJ5OgorCWRybV9mb3JfZWFjaF9wbGFuZShwbGFuZSwgZmItPmRldikgeworCQlzdHJ1Y3QgZHJt X3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKKworCQlpZiAocGxhbmUtPnN0YXRlLT5mYiAhPSBm YikKKwkJCWNvbnRpbnVlOworCisJCXBsYW5lX3N0YXRlID0gZHJtX2F0b21pY19nZXRfcGxhbmVf c3RhdGUoc3RhdGUsIHBsYW5lKTsKKwkJaWYgKElTX0VSUihwbGFuZV9zdGF0ZSkpIHsKKwkJCXJl dCA9IFBUUl9FUlIocGxhbmVfc3RhdGUpOworCQkJZ290byBvdXQ7CisJCX0KKworCQlkcm1fcHJv cGVydHlfcmVwbGFjZV9ibG9iKCZwbGFuZV9zdGF0ZS0+ZmJfZGFtYWdlX2NsaXBzLAorCQkJCQkg IGRhbWFnZSk7CisJfQorCisJcmV0ID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOworCitvdXQ6 CisJaWYgKHJldCA9PSAtRURFQURMSykgeworCQlkcm1fYXRvbWljX3N0YXRlX2NsZWFyKHN0YXRl KTsKKwkJcmV0ID0gZHJtX21vZGVzZXRfYmFja29mZigmY3R4KTsKKwkJaWYgKCFyZXQpCisJCQln b3RvIHJldHJ5OworCX0KKworCWRybV9wcm9wZXJ0eV9ibG9iX3B1dChkYW1hZ2UpOworCWtmcmVl KHJlY3RzKTsKKwlkcm1fYXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7CisKKwlkcm1fbW9kZXNldF9k cm9wX2xvY2tzKCZjdHgpOworCWRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaSgmY3R4KTsKKworCXJl dHVybiByZXQ7CisKK30KK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfZGlydHlmYik7 CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZGFtYWdlX2hlbHBlci5oIGIvaW5jbHVkZS9k cm0vZHJtX2RhbWFnZV9oZWxwZXIuaAppbmRleCAxZjk4OGY3ZmRkNzIuLjlkNWM5NDQ0NzYxYiAx MDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2RhbWFnZV9oZWxwZXIuaAorKysgYi9pbmNsdWRl L2RybS9kcm1fZGFtYWdlX2hlbHBlci5oCkBAIC04OSw1ICs4OSw5IEBAIGRybV9hdG9taWNfaGVs cGVyX2RhbWFnZV9pdGVyX2luaXQoc3RydWN0IGRybV9hdG9taWNfaGVscGVyX2RhbWFnZV9pdGVy ICppdGVyLAogYm9vbAogZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXJfbmV4dChzdHJ1Y3Qg ZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXIgKml0ZXIsCiAJCQkJICAgc3RydWN0IGRybV9y ZWN0ICpyZWN0KTsKK2ludCBkcm1fYXRvbWljX2hlbHBlcl9kaXJ0eWZiKHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiLAorCQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsIHVuc2ln bmVkIGZsYWdzLAorCQkJICAgICAgdW5zaWduZWQgY29sb3IsIHN0cnVjdCBkcm1fY2xpcF9yZWN0 ICpjbGlwcywKKwkJCSAgICAgIHVuc2lnbmVkIG51bV9jbGlwcyk7CiAKICNlbmRpZgotLSAKMi4x Ny4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK