From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Rawat Subject: [PATCH v3 05/18] drm: Add helper to implement legacy dirtyfb Date: Wed, 10 Oct 2018 17:16:44 -0700 Message-ID: <20181011001657.1715-5-drawat@vmware.com> References: <20181011001657.1715-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 2E7336E371 for ; Thu, 11 Oct 2018 00:17:17 +0000 (UTC) In-Reply-To: <20181011001657.1715-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 dWFwaSBkcm1fbW9kZV9yZWN0LgotIFN1cHBvcnQgYW5ub3RhdGUgZmxhZ3MuCgp2NDogQ29ycmVj dCBrZXJuZWwgZG9jLgoKQ2M6IHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tCkNjOiBEYW5p ZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgpDYzogUGVra2EgUGFhbGFuZW4gPHBw YWFsYW5lbkBnbWFpbC5jb20+CkNjOiBEYW5pZWwgU3RvbmUgPGRhbmllbEBmb29pc2hiYXIub3Jn PgpTaWduZWQtb2ZmLWJ5OiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+ClNpZ25lZC1v ZmYtYnk6IERlZXBhayBSYXdhdCA8ZHJhd2F0QHZtd2FyZS5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2RybV9kYW1hZ2VfaGVscGVyLmMgfCAxMjQgKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogaW5jbHVkZS9kcm0vZHJtX2RhbWFnZV9oZWxwZXIuaCAgICAgfCAgIDQgKwogMiBmaWxlcyBj aGFuZ2VkLCAxMjggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fZGFtYWdlX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmMK aW5kZXggZTgwZmE2ZTA4YTk5Li5mZGI1YTA3MmQ3ZTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZGFtYWdlX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZGFtYWdl X2hlbHBlci5jCkBAIC0yNiw2ICsyNiw3IEBACiAgKgogICogQXV0aG9yczoKICAqIERlZXBhayBS YXdhdCA8ZHJhd2F0QHZtd2FyZS5jb20+CisgKiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5j b20+CiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC03MCw2ICs3MSwyMSBAQAogICogcmVj dGFuZ2xlcyBjbGlwcGVkIHRvICZkcm1fcGxhbmVfc3RhdGUuc3JjLgogICovCiAKK3N0YXRpYyB2 b2lkIGNvbnZlcnRfY2xpcF9yZWN0X3RvX3JlY3QoY29uc3Qgc3RydWN0IGRybV9jbGlwX3JlY3Qg KnNyYywKKwkJCQkgICAgICBzdHJ1Y3QgZHJtX21vZGVfcmVjdCAqZGVzdCwKKwkJCQkgICAgICB1 aW50MzJfdCBudW1fY2xpcHMsIHVpbnQzMl90IHNyY19pbmMpCit7CisJd2hpbGUgKG51bV9jbGlw cyA+IDApIHsKKwkJZGVzdC0+eDEgPSBzcmMtPngxOworCQlkZXN0LT55MSA9IHNyYy0+eTE7CisJ CWRlc3QtPngyID0gc3JjLT54MjsKKwkJZGVzdC0+eTIgPSBzcmMtPnkyOworCQlzcmMgKz0gc3Jj X2luYzsKKwkJZGVzdCsrOworCQludW1fY2xpcHMtLTsKKwl9Cit9CisKIC8qKgogICogZHJtX3Bs YW5lX2VuYWJsZV9mYl9kYW1hZ2VfY2xpcHMgLSBFbmFibGVzIHBsYW5lIGZiIGRhbWFnZSBjbGlw cyBwcm9wZXJ0eS4KICAqIEBwbGFuZTogUGxhbmUgb24gd2hpY2ggdG8gZW5hYmxlIGRhbWFnZSBj bGlwcyBwcm9wZXJ0eS4KQEAgLTEyMyw2ICsxMzksMTE0IEBAIHZvaWQgZHJtX2F0b21pY19oZWxw ZXJfY2hlY2tfcGxhbmVfZGFtYWdlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIH0K IEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfZGFtYWdlKTsKIAor LyoqCisgKiBkcm1fYXRvbWljX2hlbHBlcl9kaXJ0eWZiIC0gSGVscGVyIGZvciBkaXJ0eWZiLgor ICogQGZiOiBEUk0gZnJhbWVidWZmZXIuCisgKiBAZmlsZV9wcml2OiBEcm0gZmlsZSBmb3IgdGhl IGlvY3RsIGNhbGwuCisgKiBAZmxhZ3M6IERpcnR5IGZiIGFubm90YXRlIGZsYWdzLgorICogQGNv bG9yOiBDb2xvciBmb3IgYW5ub3RhdGUgZmlsbC4KKyAqIEBjbGlwczogRGlydHkgcmVnaW9uLgor ICogQG51bV9jbGlwczogQ291bnQgb2YgY2xpcCBpbiBjbGlwcy4KKyAqCisgKiBBIGhlbHBlciB0 byBpbXBsZW1lbnQgJmRybV9mcmFtZWJ1ZmZlcl9mdW5jczo6ZGlydHkgdXNpbmcgZGFtYWdlIGlu dGVyZmFjZQorICogZHVyaW5nIHBsYW5lIHVwZGF0ZS4gSWYgbnVtX2NsaXBzIGlzIDAgdGhlbiB0 aGlzIGhlbHBlciB3aWxsIGRvIGEgZnVsbCBwbGFuZQorICogdXBkYXRlLiBUaGlzIGlzIHRoZSBz YW1lIGJlaGF2aW91ciBleHBlY3RlZCBieSBkaXJ0eWZiIGlvY3RsKCkuCisgKgorICogTm90ZSB0 aGF0IHRoaXMgaGVscGVyIGlzIGJsb2NraW5nIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIGJlY2F1 c2UgY3VycmVudAorICogdXNlciBvZiB0aGlzIGhlbHBlciBpcyB2bXdnZnggd2hpY2ggbmVlZHMg YmxvY2tpbmcuCisgKgorICogUmV0dXJuOiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm5v IG9uIGZhaWx1cmUuCisgKi8KK2ludCBkcm1fYXRvbWljX2hlbHBlcl9kaXJ0eWZiKHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiLAorCQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYs IHVuc2lnbmVkIGZsYWdzLAorCQkJICAgICAgdW5zaWduZWQgY29sb3IsIHN0cnVjdCBkcm1fY2xp cF9yZWN0ICpjbGlwcywKKwkJCSAgICAgIHVuc2lnbmVkIG51bV9jbGlwcykKK3sKKwlzdHJ1Y3Qg ZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggY3R4OworCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAq ZGFtYWdlID0gTlVMTDsKKwlzdHJ1Y3QgZHJtX21vZGVfcmVjdCAqcmVjdHMgPSBOVUxMOworCXN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsK KwlpbnQgcmV0ID0gMDsKKworCS8qCisJICogV2hlbiBjYWxsZWQgZnJvbSBpb2N0bCwgd2UgYXJl IGludGVycnVwdGFibGUsIGJ1dCBub3Qgd2hlbiBjYWxsZWQKKwkgKiBpbnRlcm5hbGx5IChpZS4g ZGVmaW8gd29ya2VyKQorCSAqLworCWRybV9tb2Rlc2V0X2FjcXVpcmVfaW5pdCgmY3R4LAorCQlm aWxlX3ByaXYgPyBEUk1fTU9ERVNFVF9BQ1FVSVJFX0lOVEVSUlVQVElCTEUgOiAwKTsKKworCXN0 YXRlID0gZHJtX2F0b21pY19zdGF0ZV9hbGxvYyhmYi0+ZGV2KTsKKwlpZiAoIXN0YXRlKSB7CisJ CXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0OworCX0KKwlzdGF0ZS0+YWNxdWlyZV9jdHggPSAm Y3R4OworCisJaWYgKGNsaXBzKSB7CisJCXVpbnQzMl90IGluYyA9IDE7CisKKwkJaWYgKGZsYWdz ICYgRFJNX01PREVfRkJfRElSVFlfQU5OT1RBVEVfQ09QWSkgeworCQkJaW5jID0gMjsKKwkJCW51 bV9jbGlwcyAvPSAyOworCQl9CisKKwkJcmVjdHMgPSBrY2FsbG9jKG51bV9jbGlwcywgc2l6ZW9m KCpyZWN0cyksIEdGUF9LRVJORUwpOworCQlpZiAoIXJlY3RzKSB7CisJCQlyZXQgPSAtRU5PTUVN OworCQkJZ290byBvdXQ7CisJCX0KKworCQljb252ZXJ0X2NsaXBfcmVjdF90b19yZWN0KGNsaXBz LCByZWN0cywgbnVtX2NsaXBzLCBpbmMpOworCQlkYW1hZ2UgPSBkcm1fcHJvcGVydHlfY3JlYXRl X2Jsb2IoZmItPmRldiwKKwkJCQkJCSAgbnVtX2NsaXBzICogc2l6ZW9mKCpyZWN0cyksCisJCQkJ CQkgIHJlY3RzKTsKKwkJaWYgKElTX0VSUihkYW1hZ2UpKSB7CisJCQlyZXQgPSBQVFJfRVJSKGRh bWFnZSk7CisJCQlkYW1hZ2UgPSBOVUxMOworCQkJZ290byBvdXQ7CisJCX0KKwl9CisKK3JldHJ5 OgorCWRybV9mb3JfZWFjaF9wbGFuZShwbGFuZSwgZmItPmRldikgeworCQlzdHJ1Y3QgZHJtX3Bs YW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKKworCQlpZiAocGxhbmUtPnN0YXRlLT5mYiAhPSBmYikK KwkJCWNvbnRpbnVlOworCisJCXBsYW5lX3N0YXRlID0gZHJtX2F0b21pY19nZXRfcGxhbmVfc3Rh dGUoc3RhdGUsIHBsYW5lKTsKKwkJaWYgKElTX0VSUihwbGFuZV9zdGF0ZSkpIHsKKwkJCXJldCA9 IFBUUl9FUlIocGxhbmVfc3RhdGUpOworCQkJZ290byBvdXQ7CisJCX0KKworCQlkcm1fcHJvcGVy dHlfcmVwbGFjZV9ibG9iKCZwbGFuZV9zdGF0ZS0+ZmJfZGFtYWdlX2NsaXBzLAorCQkJCQkgIGRh bWFnZSk7CisJfQorCisJcmV0ID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOworCitvdXQ6CisJ aWYgKHJldCA9PSAtRURFQURMSykgeworCQlkcm1fYXRvbWljX3N0YXRlX2NsZWFyKHN0YXRlKTsK KwkJcmV0ID0gZHJtX21vZGVzZXRfYmFja29mZigmY3R4KTsKKwkJaWYgKCFyZXQpCisJCQlnb3Rv IHJldHJ5OworCX0KKworCWRybV9wcm9wZXJ0eV9ibG9iX3B1dChkYW1hZ2UpOworCWtmcmVlKHJl Y3RzKTsKKwlkcm1fYXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7CisKKwlkcm1fbW9kZXNldF9kcm9w X2xvY2tzKCZjdHgpOworCWRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaSgmY3R4KTsKKworCXJldHVy biByZXQ7CisKK30KK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfZGlydHlmYik7CisK IC8qKgogICogZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXJfaW5pdCAtIEluaXRpYWxpemUg dGhlIGRhbWFnZSBpdGVyYXRvci4KICAqIEBpdGVyOiBUaGUgaXRlcmF0b3IgdG8gaW5pdGlhbGl6 ZS4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmggYi9pbmNsdWRl L2RybS9kcm1fZGFtYWdlX2hlbHBlci5oCmluZGV4IGI5YTBkMDVmYjA5My4uODJhNzEyOGM5Zjk3 IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZGFtYWdlX2hlbHBlci5oCisrKyBiL2luY2x1 ZGUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmgKQEAgLTY3LDYgKzY3LDEwIEBAIHN0cnVjdCBkcm1f YXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlciB7CiB2b2lkIGRybV9wbGFuZV9lbmFibGVfZmJfZGFt YWdlX2NsaXBzKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKTsKIHZvaWQgZHJtX2F0b21pY19oZWxw ZXJfY2hlY2tfcGxhbmVfZGFtYWdlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJ CQkJICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7CitpbnQgZHJtX2F0b21p Y19oZWxwZXJfZGlydHlmYihzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKKwkJCSAgICAgIHN0 cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LCB1bnNpZ25lZCBmbGFncywKKwkJCSAgICAgIHVuc2ln bmVkIGNvbG9yLCBzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqY2xpcHMsCisJCQkgICAgICB1bnNpZ25l ZCBudW1fY2xpcHMpOwogdm9pZAogZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXJfaW5pdChz dHJ1Y3QgZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXIgKml0ZXIsCiAJCQkJICAgY29uc3Qg c3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlLAotLSAKMi4xNy4xCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK