From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [RFC] drm/atomic+msm: add helper to implement legacy dirtyfb Date: Tue, 3 Apr 2018 18:42:23 -0400 Message-ID: <20180403224225.26776-1-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Thomas Hellstrom , David Airlie , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Maarten Lankhorst , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Rob Clark , Sean Paul , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Daniel Vetter , Gustavo Padovan , Deepak Singh Rawat , freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Lukasz Spintzyk List-Id: linux-arm-msm@vger.kernel.org QWRkIGFuIGF0b21pYyBoZWxwZXIgdG8gaW1wbGVtZW50IGRpcnR5ZmIgc3VwcG9ydC4gIFRoaXMg aXMgbmVlZGVkIHRvCnN1cHBvcnQgRFNJIGNvbW1hbmQtbW9kZSBwYW5lbHMgd2l0aCB4MTEgdXNl cnNwYWNlIChpZS4gd2hlbiB3ZSBjYW4ndApyZWx5IG9uIHBhZ2VmbGlwcyB0byB0cmlnZ2VyIGEg Zmx1c2ggdG8gdGhlIHBhbmVsKS4KClRvIHNpZ25hbCB0byB0aGUgZHJpdmVyIHRoYXQgdGhlIGFz eW5jIGF0b21pYyB1cGRhdGUgbmVlZHMgdG8Kc3luY2hyb25pemUgd2l0aCBmZW5jZXMsIGV2ZW4g dGhvdWdoIHRoZSBmYiBkaWRuJ3QgY2hhbmdlLCB0aGUKZHJtX2F0b21pY19zdGF0ZTo6ZGlydHkg ZmxhZyBpcyBhZGRlZC4KClNpZ25lZC1vZmYtYnk6IFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWls LmNvbT4KLS0tCkJhY2tncm91bmQ6IHRoZXJlIGFyZSBhIG51bWJlciBvZiBkaWZmZXJlbnQgZm9s a3Mgd29ya2luZyBvbiBnZXR0aW5nCnVwc3RyZWFtIGtlcm5lbCB3b3JraW5nIG9uIHZhcmlvdXMg ZGlmZmVyZW50IHBob25lcy90YWJsZXRzIHdpdGggcWNvbQpTb0Mncy4uIG1hbnkgb2YgdGhlbSBo YXZlIGNvbW1hbmQgbW9kZSBwYW5lbHMsIHNvIHdlIGtpbmQgb2YgbmVlZCBhCndheSB0byBzdXBw b3J0IHRoZSBsZWdhY3kgZGlydHlmYiBpb2N0bCBmb3IgeDExIHN1cHBvcnQuCgpJIGtub3cgdGhl cmUgaXMgd29yayBvbiBhIHByb3ByZXIgbm9uLWxlZ2FjeSBhdG9taWMgcHJvcGVydHkgZm9yCnVz ZXJzcGFjZSB0byBjb21tdW5pY2F0ZSBkaXJ0eS1yZWN0KHMpIHRvIHRoZSBrZXJuZWwsIHNvIHRo aXMgY2FuCmJlIGltcHJvdmVkIGZyb20gdHJpZ2dlcmluZyBhIGZ1bGwtZnJhbWUgZmx1c2ggb25j ZSB0aGF0IGlzIGluCnBsYWNlLiAgQnV0IHdlIGtpbmRhIG5lZWRhIGEgc3RvcC1nYXAgc29sdXRp b24uCgpJIGhhZCBjb25zaWRlcmVkIGFuIGluLWRyaXZlciBzb2x1dGlvbiBmb3IgdGhpcywgYnV0 IHRoaW5ncyBnZXQgYQpiaXQgdHJpY2t5IGlmIHVzZXJzcGFjZSBhbmRzIHVwIGNvbWJpbmluZyBk aXJ0eWZiIGlvY3RscyB3aXRoIHBhZ2UtCmZsaXBzLCBiZWNhdXNlIHdlIG5lZWQgdG8gc3luY2hy b25pemUgc2V0dGluZyB2YXJpb3VzIENUTC5GTFVTSCBiaXRzCndpdGggc2V0dGluZyB0aGUgQ1RM LlNUQVJUIGJpdC4gIChpZS4gcmVhbGx5IGFsbCB3ZSBuZWVkIHRvIGRvIGZvcgpjbWQgbW9kZSBw YW5lbHMgaXMgYmFuZyBDVEwuU1RBUlQsIGJ1dCBpcyB0aGlzIGVuZHMgdXAgcmFjaW5nIHdpdGgK cGFnZWZsaXBzIHNldHRpbmcgRkxVU0ggYml0cywgdGhlbiBiYWQgdGhpbmdzLikgIFRoZSBlYXNp ZXN0IHNvbG4KaXMgdG8gd3JhcCB0aGlzIHVwIGFzIGFuIGF0b21pYyBjb21taXQgYW5kIHJlbHkg b24gdGhlIHdvcmtlciB0bwpzZXJpYWxpemUgdGhpbmdzLiAgSGVuY2UgYWRkaW5nIGFuIGF0b21p YyBkaXJ0eWZiIGhlbHBlci4KCkkgZ3Vlc3MgYXQgbGVhc3QgdGhlIGhlbHBlciwgd2l0aCBzb21l IHNtYWxsIGFkZGl0aW9uIHRvIHRyYW5zbGF0ZQphbmQgcGFzcy10aHJ1IHRoZSBkaXJ0eSByZWN0 KHMpIGlzIHVzZWZ1bCB0byB0aGUgZmluYWwgYXRvbWljIGRpcnR5LQpyZWN0IHByb3BlcnR5IHNv bHV0aW9uLiAgRGVwZW5kaW5nIG9uIGhvdyBmYXIgb2ZmIHRoYXQgaXMsIGEgc3RvcC0KZ2FwIHNv bHV0aW9uIGNvdWxkIGJlIHVzZWZ1bC4KCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxw ZXIuYyB8IDY2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2F0b21pYy5jICAgIHwgIDUgKystCiBkcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9mYi5jICAgICAgICB8ICAxICsKIGluY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmgg ICAgIHwgIDQgKysrCiBpbmNsdWRlL2RybS9kcm1fcGxhbmUuaCAgICAgICAgICAgICB8ICA5ICsr KysrCiA1IGZpbGVzIGNoYW5nZWQsIDg0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCmluZGV4IGMzNTY1NDU5MWMxMi4uYTU3OGRjNjgx YjI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwpAQCAtMzUwNCw2ICszNTA0LDcg QEAgdm9pZCBfX2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKIAlpZiAoc3RhdGUtPmZiKQogCQlkcm1fZnJhbWVidWZmZXJfZ2V0 KHN0YXRlLT5mYik7CiAKKwlzdGF0ZS0+ZGlydHkgPSBmYWxzZTsKIAlzdGF0ZS0+ZmVuY2UgPSBO VUxMOwogCXN0YXRlLT5jb21taXQgPSBOVUxMOwogfQpAQCAtMzg0Nyw2ICszODQ4LDcxIEBAIGlu dCBkcm1fYXRvbWljX2hlbHBlcl9sZWdhY3lfZ2FtbWFfc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfbGVnYWN5X2dhbW1hX3NldCk7 CiAKKy8qKgorICogZHJtX2F0b21pY19oZWxwZXJfZGlydHlmYiAtIGhlbHBlciBmb3IgZGlydHlm YgorICoKKyAqIEEgaGVscGVyIHRvIGltcGxlbWVudCBkcm1fZnJhbWVidWZmZXJfZnVuY3M6OmRp cnR5CisgKi8KK2ludCBkcm1fYXRvbWljX2hlbHBlcl9kaXJ0eWZiKHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiLAorCQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsIHVuc2lnbmVk IGZsYWdzLAorCQkJICAgICAgdW5zaWduZWQgY29sb3IsIHN0cnVjdCBkcm1fY2xpcF9yZWN0ICpj bGlwcywKKwkJCSAgICAgIHVuc2lnbmVkIG51bV9jbGlwcykKK3sKKwlzdHJ1Y3QgZHJtX21vZGVz ZXRfYWNxdWlyZV9jdHggY3R4OworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKKwlz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKKwlpbnQgcmV0ID0gMDsKKworCS8qCisJICogV2hlbiBj YWxsZWQgZnJvbSBpb2N0bCwgd2UgYXJlIGludGVycnVwdGFibGUsIGJ1dCBub3Qgd2hlbgorCSAq IGNhbGxlZCBpbnRlcm5hbGx5IChpZS4gZGVmaW8gd29ya2VyKQorCSAqLworCWRybV9tb2Rlc2V0 X2FjcXVpcmVfaW5pdCgmY3R4LAorCQlmaWxlX3ByaXYgPyBEUk1fTU9ERVNFVF9BQ1FVSVJFX0lO VEVSUlVQVElCTEUgOiAwKTsKKworCXN0YXRlID0gZHJtX2F0b21pY19zdGF0ZV9hbGxvYyhmYi0+ ZGV2KTsKKwlpZiAoIXN0YXRlKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0OworCX0K KwlzdGF0ZS0+YWNxdWlyZV9jdHggPSAmY3R4OworCityZXRyeToKKwlkcm1fZm9yX2VhY2hfcGxh bmUocGxhbmUsIGZiLT5kZXYpIHsKKwkJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3Rh dGU7CisKKwkJaWYgKHBsYW5lLT5zdGF0ZS0+ZmIgIT0gZmIpCisJCQljb250aW51ZTsKKworCQlw bGFuZV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0YXRlLCBwbGFuZSk7CisJ CWlmIChJU19FUlIocGxhbmVfc3RhdGUpKSB7CisJCQlyZXQgPSBQVFJfRVJSKHBsYW5lX3N0YXRl KTsKKwkJCWdvdG8gb3V0OworCQl9CisKKwkJcGxhbmVfc3RhdGUtPmRpcnR5ID0gdHJ1ZTsKKwl9 CisKKwlyZXQgPSBkcm1fYXRvbWljX25vbmJsb2NraW5nX2NvbW1pdChzdGF0ZSk7CisKK291dDoK KwlpZiAocmV0ID09IC1FREVBRExLKSB7CisJCWRybV9hdG9taWNfc3RhdGVfY2xlYXIoc3RhdGUp OworCQlyZXQgPSBkcm1fbW9kZXNldF9iYWNrb2ZmKCZjdHgpOworCQlpZiAoIXJldCkKKwkJCWdv dG8gcmV0cnk7CisJfQorCisJZHJtX2F0b21pY19zdGF0ZV9wdXQoc3RhdGUpOworCisJZHJtX21v ZGVzZXRfZHJvcF9sb2NrcygmY3R4KTsKKwlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7 CisKKwlyZXR1cm4gcmV0OworCit9CitFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2Rp cnR5ZmIpOworCiAvKioKICAqIF9fZHJtX2F0b21pY19oZWxwZXJfcHJpdmF0ZV9kdXBsaWNhdGVf c3RhdGUgLSBjb3B5IGF0b21pYyBwcml2YXRlIHN0YXRlCiAgKiBAb2JqOiBDUlRDIG9iamVjdApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL21zbV9hdG9taWMuYwppbmRleCBiZjVmOGMzOWYzNGQuLmJiNTVhMDQ4ZTk4YiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMKQEAgLTIwMSw3ICsyMDEsMTAgQEAgaW50IG1zbV9h dG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJICogRmlndXJlIG91dCB3aGF0 IGZlbmNlIHRvIHdhaXQgZm9yOgogCSAqLwogCWZvcl9lYWNoX29sZG5ld19wbGFuZV9pbl9zdGF0 ZShzdGF0ZSwgcGxhbmUsIG9sZF9wbGFuZV9zdGF0ZSwgbmV3X3BsYW5lX3N0YXRlLCBpKSB7Ci0J CWlmICgobmV3X3BsYW5lX3N0YXRlLT5mYiAhPSBvbGRfcGxhbmVfc3RhdGUtPmZiKSAmJiBuZXdf cGxhbmVfc3RhdGUtPmZiKSB7CisJCWJvb2wgc3luY19mYiA9IG5ld19wbGFuZV9zdGF0ZS0+ZmIg JiYKKwkJCSgobmV3X3BsYW5lX3N0YXRlLT5mYiAhPSBvbGRfcGxhbmVfc3RhdGUtPmZiKSB8fAor CQkJIG5ld19wbGFuZV9zdGF0ZS0+ZGlydHkpOworCQlpZiAoc3luY19mYikgewogCQkJc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpvYmogPSBtc21fZnJhbWVidWZmZXJfYm8obmV3X3BsYW5lX3N0YXRl LT5mYiwgMCk7CiAJCQlzdHJ1Y3QgbXNtX2dlbV9vYmplY3QgKm1zbV9vYmogPSB0b19tc21fYm8o b2JqKTsKIAkJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dl dF9leGNsX3JjdShtc21fb2JqLT5yZXN2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9t c20vbXNtX2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mYi5jCmluZGV4IDBlMGM4NzI1 MmFiMC4uYTVkODgyYTM0YTMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9m Yi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZiLmMKQEAgLTYyLDYgKzYyLDcgQEAg c3RhdGljIHZvaWQgbXNtX2ZyYW1lYnVmZmVyX2Rlc3Ryb3koc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIpCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlcl9mdW5jcyBtc21fZnJh bWVidWZmZXJfZnVuY3MgPSB7CiAJLmNyZWF0ZV9oYW5kbGUgPSBtc21fZnJhbWVidWZmZXJfY3Jl YXRlX2hhbmRsZSwKIAkuZGVzdHJveSA9IG1zbV9mcmFtZWJ1ZmZlcl9kZXN0cm95LAorCS5kaXJ0 eSA9IGRybV9hdG9taWNfaGVscGVyX2RpcnR5ZmIsCiB9OwogCiAjaWZkZWYgQ09ORklHX0RFQlVH X0ZTCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oIGIvaW5jbHVk ZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAppbmRleCAyNmFhYmE1OGQ2Y2UuLjliN2E5NWMyNjQz ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAorKysgYi9pbmNs dWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCkBAIC0xODMsNiArMTgzLDEwIEBAIGludCBkcm1f YXRvbWljX2hlbHBlcl9sZWdhY3lfZ2FtbWFfc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJ CQkgICAgICAgdTE2ICpyZWQsIHUxNiAqZ3JlZW4sIHUxNiAqYmx1ZSwKIAkJCQkgICAgICAgdWlu dDMyX3Qgc2l6ZSwKIAkJCQkgICAgICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpj dHgpOworaW50IGRybV9hdG9taWNfaGVscGVyX2RpcnR5ZmIoc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIsCisJCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgdW5zaWduZWQgZmxh Z3MsCisJCQkgICAgICB1bnNpZ25lZCBjb2xvciwgc3RydWN0IGRybV9jbGlwX3JlY3QgKmNsaXBz LAorCQkJICAgICAgdW5zaWduZWQgbnVtX2NsaXBzKTsKIHZvaWQgX19kcm1fYXRvbWljX2hlbHBl cl9wcml2YXRlX29ial9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9wcml2YXRlX29iaiAqb2Jq LAogCQkJCQkJICAgICBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGUgKnN0YXRlKTsKIApkaWZmIC0t Z2l0IGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmggYi9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaApp bmRleCBmN2JmNGE0OGIxYzMuLjI5NmZhMjJiZGE3YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0v ZHJtX3BsYW5lLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKQEAgLTc2LDYgKzc2LDE1 IEBAIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgewogCSAqLwogCXN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiOwogCisJLyoqCisJICogQGRpcnR5OgorCSAqCisJICogRmxhZyB0aGF0IGluZGljYXRl cyB0aGUgZmIgY29udGVudHMgaGF2ZSBjaGFuZ2VkIGV2ZW4gdGhvdWdoIHRoZQorCSAqIGZiIGhh cyBub3QuICBUaGlzIGlzIG1vc3RseSBhIHN0b3AtZ2FwIHNvbHV0aW9uIHVudGlsIHdlIGhhdmUK KwkgKiBhdG9taWMgZGlydHktcmVjdChzKSBwcm9wZXJ0eS4KKwkgKi8KKwlib29sIGRpcnR5Owor CiAJLyoqCiAJICogQGZlbmNlOgogCSAqCi0tIAoyLjE0LjMKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRy ZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=