From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Rawat Subject: [PATCH v3 17/18] drm/vmwgfx: Use atomic helper function for dirty fb IOCTL Date: Wed, 10 Oct 2018 17:16:56 -0700 Message-ID: <20181011001657.1715-17-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-001.vmware.com (ex13-edg-ou-001.vmware.com [208.91.0.189]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0CAB86E37A for ; Thu, 11 Oct 2018 00:17:25 +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: Deepak Rawat List-Id: dri-devel@lists.freedesktop.org VVNlIG5ldyBhdG9taWMgaGVscGVyIGZvciBkaXJ0eSBmYiBJT0NUTCB3aGljaCBtYWtlIHVzZSBv ZiBkYW1hZ2UKaW50ZXJmYWNlLiBOb3RlIHRoYXQgdGhpcyBpcyBvbmx5IGRvbmUgZm9yIFNURFUg YW5kIFNPVSwgZm9yIGxlZ2FjeQpkaXNwbGF5IHVuaXQgc3RpbGwgdXNpbmcgb2xkIGludGVyZmFj ZS4KClNpZ25lZC1vZmYtYnk6IERlZXBhayBSYXdhdCA8ZHJhd2F0QHZtd2FyZS5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMgfCA4MiArKysrKysrLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDY0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5j IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMKaW5kZXggMDU5ZjU3YmQ4MTcw Li4yMWRjYjQ2YTIzM2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCkBAIC04NDcs NTggKzg0Nyw2IEBAIHN0YXRpYyB2b2lkIHZtd19mcmFtZWJ1ZmZlcl9zdXJmYWNlX2Rlc3Ryb3ko c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZnJhbWVidWZmZXIpCiAJa2ZyZWUodmZicyk7CiB9CiAK LXN0YXRpYyBpbnQgdm13X2ZyYW1lYnVmZmVyX3N1cmZhY2VfZGlydHkoc3RydWN0IGRybV9mcmFt ZWJ1ZmZlciAqZnJhbWVidWZmZXIsCi0JCQkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwK LQkJCQkgIHVuc2lnbmVkIGZsYWdzLCB1bnNpZ25lZCBjb2xvciwKLQkJCQkgIHN0cnVjdCBkcm1f Y2xpcF9yZWN0ICpjbGlwcywKLQkJCQkgIHVuc2lnbmVkIG51bV9jbGlwcykKLXsKLQlzdHJ1Y3Qg dm13X3ByaXZhdGUgKmRldl9wcml2ID0gdm13X3ByaXYoZnJhbWVidWZmZXItPmRldik7Ci0Jc3Ry dWN0IHZtd19mcmFtZWJ1ZmZlcl9zdXJmYWNlICp2ZmJzID0KLQkJdm13X2ZyYW1lYnVmZmVyX3Rv X3ZmYnMoZnJhbWVidWZmZXIpOwotCXN0cnVjdCBkcm1fY2xpcF9yZWN0IG5vcmVjdDsKLQlpbnQg cmV0LCBpbmMgPSAxOwotCi0JLyogTGVnYWN5IERpc3BsYXkgVW5pdCBkb2VzIG5vdCBzdXBwb3J0 IDNEICovCi0JaWYgKGRldl9wcml2LT5hY3RpdmVfZGlzcGxheV91bml0ID09IHZtd19kdV9sZWdh Y3kpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2X3ByaXYt PmRldik7Ci0KLQlyZXQgPSB0dG1fcmVhZF9sb2NrKCZkZXZfcHJpdi0+cmVzZXJ2YXRpb25fc2Vt LCB0cnVlKTsKLQlpZiAodW5saWtlbHkocmV0ICE9IDApKSB7Ci0JCWRybV9tb2Rlc2V0X3VubG9j a19hbGwoZGV2X3ByaXYtPmRldik7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JaWYgKCFudW1fY2xp cHMpIHsKLQkJbnVtX2NsaXBzID0gMTsKLQkJY2xpcHMgPSAmbm9yZWN0OwotCQlub3JlY3QueDEg PSBub3JlY3QueTEgPSAwOwotCQlub3JlY3QueDIgPSBmcmFtZWJ1ZmZlci0+d2lkdGg7Ci0JCW5v cmVjdC55MiA9IGZyYW1lYnVmZmVyLT5oZWlnaHQ7Ci0JfSBlbHNlIGlmIChmbGFncyAmIERSTV9N T0RFX0ZCX0RJUlRZX0FOTk9UQVRFX0NPUFkpIHsKLQkJbnVtX2NsaXBzIC89IDI7Ci0JCWluYyA9 IDI7IC8qIHNraXAgc291cmNlIHJlY3RzICovCi0JfQotCi0JaWYgKGRldl9wcml2LT5hY3RpdmVf ZGlzcGxheV91bml0ID09IHZtd19kdV9zY3JlZW5fb2JqZWN0KQotCQlyZXQgPSB2bXdfa21zX3Nv dV9kb19zdXJmYWNlX2RpcnR5KGRldl9wcml2LCAmdmZicy0+YmFzZSwKLQkJCQkJCSAgIGNsaXBz LCBOVUxMLCBOVUxMLCAwLCAwLAotCQkJCQkJICAgbnVtX2NsaXBzLCBpbmMsIE5VTEwsIE5VTEwp OwotCWVsc2UKLQkJcmV0ID0gdm13X2ttc19zdGR1X3N1cmZhY2VfZGlydHkoZGV2X3ByaXYsICZ2 ZmJzLT5iYXNlLAotCQkJCQkJIGNsaXBzLCBOVUxMLCBOVUxMLCAwLCAwLAotCQkJCQkJIG51bV9j bGlwcywgaW5jLCBOVUxMLCBOVUxMKTsKLQotCXZtd19maWZvX2ZsdXNoKGRldl9wcml2LCBmYWxz ZSk7Ci0JdHRtX3JlYWRfdW5sb2NrKCZkZXZfcHJpdi0+cmVzZXJ2YXRpb25fc2VtKTsKLQotCWRy bV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2X3ByaXYtPmRldik7Ci0KLQlyZXR1cm4gMDsKLX0KLQog LyoqCiAgKiB2bXdfa21zX3JlYWRiYWNrIC0gUGVyZm9ybSBhIHJlYWRiYWNrIGZyb20gdGhlIHNj cmVlbiBzeXN0ZW0gdG8KICAqIGEgYnVmZmVyLW9iamVjdCBiYWNrZWQgZnJhbWVidWZmZXIuCkBA IC05NDIsNyArODkwLDcgQEAgaW50IHZtd19rbXNfcmVhZGJhY2soc3RydWN0IHZtd19wcml2YXRl ICpkZXZfcHJpdiwKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3Mg dm13X2ZyYW1lYnVmZmVyX3N1cmZhY2VfZnVuY3MgPSB7CiAJLmRlc3Ryb3kgPSB2bXdfZnJhbWVi dWZmZXJfc3VyZmFjZV9kZXN0cm95LAotCS5kaXJ0eSA9IHZtd19mcmFtZWJ1ZmZlcl9zdXJmYWNl X2RpcnR5LAorCS5kaXJ0eSA9IGRybV9hdG9taWNfaGVscGVyX2RpcnR5ZmIsCiB9OwogCiBzdGF0 aWMgaW50IHZtd19rbXNfbmV3X2ZyYW1lYnVmZmVyX3N1cmZhY2Uoc3RydWN0IHZtd19wcml2YXRl ICpkZXZfcHJpdiwKQEAgLTEwODUsMTYgKzEwMzMsNiBAQCBzdGF0aWMgaW50IHZtd19mcmFtZWJ1 ZmZlcl9ib19kaXJ0eShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmcmFtZWJ1ZmZlciwKIAl9CiAK IAlzd2l0Y2ggKGRldl9wcml2LT5hY3RpdmVfZGlzcGxheV91bml0KSB7Ci0JY2FzZSB2bXdfZHVf c2NyZWVuX3RhcmdldDoKLQkJcmV0ID0gdm13X2ttc19zdGR1X2RtYShkZXZfcHJpdiwgTlVMTCwg JnZmYmQtPmJhc2UsIE5VTEwsCi0JCQkJICAgICAgIGNsaXBzLCBOVUxMLCBudW1fY2xpcHMsIGlu Y3JlbWVudCwKLQkJCQkgICAgICAgdHJ1ZSwgdHJ1ZSwgTlVMTCk7Ci0JCWJyZWFrOwotCWNhc2Ug dm13X2R1X3NjcmVlbl9vYmplY3Q6Ci0JCXJldCA9IHZtd19rbXNfc291X2RvX2JvX2RpcnR5KGRl dl9wcml2LCAmdmZiZC0+YmFzZSwKLQkJCQkJICAgICAgY2xpcHMsIE5VTEwsIG51bV9jbGlwcywK LQkJCQkJICAgICAgaW5jcmVtZW50LCB0cnVlLCBOVUxMLCBOVUxMKTsKLQkJYnJlYWs7CiAJY2Fz ZSB2bXdfZHVfbGVnYWN5OgogCQlyZXQgPSB2bXdfa21zX2xkdV9kb19ib19kaXJ0eShkZXZfcHJp diwgJnZmYmQtPmJhc2UsIDAsIDAsCiAJCQkJCSAgICAgIGNsaXBzLCBudW1fY2xpcHMsIGluY3Jl bWVudCk7CkBAIC0xMTEzLDkgKzEwNTEsMjUgQEAgc3RhdGljIGludCB2bXdfZnJhbWVidWZmZXJf Ym9fZGlydHkoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZnJhbWVidWZmZXIsCiAJcmV0dXJuIHJl dDsKIH0KIAorc3RhdGljIGludCB2bXdfZnJhbWVidWZmZXJfYm9fZGlydHlfZXh0KHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZyYW1lYnVmZmVyLAorCQkJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdiwKKwkJCQkJdW5zaWduZWQgaW50IGZsYWdzLCB1bnNpZ25lZCBpbnQgY29sb3IsCisJCQkJ CXN0cnVjdCBkcm1fY2xpcF9yZWN0ICpjbGlwcywKKwkJCQkJdW5zaWduZWQgaW50IG51bV9jbGlw cykKK3sKKwlzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2ID0gdm13X3ByaXYoZnJhbWVidWZm ZXItPmRldik7CisKKwlpZiAoZGV2X3ByaXYtPmFjdGl2ZV9kaXNwbGF5X3VuaXQgPT0gdm13X2R1 X2xlZ2FjeSkKKwkJcmV0dXJuIHZtd19mcmFtZWJ1ZmZlcl9ib19kaXJ0eShmcmFtZWJ1ZmZlciwg ZmlsZV9wcml2LCBmbGFncywKKwkJCQkJCWNvbG9yLCBjbGlwcywgbnVtX2NsaXBzKTsKKworCXJl dHVybiBkcm1fYXRvbWljX2hlbHBlcl9kaXJ0eWZiKGZyYW1lYnVmZmVyLCBmaWxlX3ByaXYsIGZs YWdzLCBjb2xvciwKKwkJCQkJIGNsaXBzLCBudW1fY2xpcHMpOworfQorCiBzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlcl9mdW5jcyB2bXdfZnJhbWVidWZmZXJfYm9fZnVuY3MgPSB7 CiAJLmRlc3Ryb3kgPSB2bXdfZnJhbWVidWZmZXJfYm9fZGVzdHJveSwKLQkuZGlydHkgPSB2bXdf ZnJhbWVidWZmZXJfYm9fZGlydHksCisJLmRpcnR5ID0gdm13X2ZyYW1lYnVmZmVyX2JvX2RpcnR5 X2V4dCwKIH07CiAKIC8qKgotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK