From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Rawat Subject: [RFC 2/3] drm: Add helper iterator functions to iterate over plane damage. Date: Wed, 4 Apr 2018 16:49:07 -0700 Message-ID: <1522885748-67122-3-git-send-email-drawat@vmware.com> References: <1522885748-67122-1-git-send-email-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 62D936E64F for ; Wed, 4 Apr 2018 23:51:01 +0000 (UTC) In-Reply-To: <1522885748-67122-1-git-send-email-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, thellstrom@vmware.com, syeh@vmware.com Cc: airlied@linux.ie, linux-kernel@vger.kernel.org, linux-graphics-maintainer@vmware.com, Deepak Rawat , lukasz.spintzyk@displaylink.com List-Id: dri-devel@lists.freedesktop.org V2l0aCBkYW1hZ2UgcHJvcGVydHkgaW4gZHJtX3BsYW5lX3N0YXRlLCB0aGlzIHBhdGNoIGFkZHMg aGVscGVyIGl0ZXJhdG9yCnRvIHRyYXZlcnNlIHRoZSBkYW1hZ2UgY2xpcHMuIEl0ZXJhdG9yIHdp bGwgcmV0dXJuIHRoZSBkYW1hZ2UgcmVjdGFuZ2xlcwppbiBmcmFtZWJ1ZmZlciwgcGxhbmUgb3Ig Y3J0YyBjb29yZGluYXRlcyBhcyBuZWVkIGJ5IGRyaXZlcgppbXBsZW1lbnRhdGlvbi4KClNpZ25l ZC1vZmYtYnk6IERlZXBhayBSYXdhdCA8ZHJhd2F0QHZtd2FyZS5jb20+Ci0tLQogZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgfCAxMjIgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiBpbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oICAgICB8ICAzOSAr KysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTYxIGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX2hlbHBlci5jCmluZGV4IDU1YjQ0ZTMuLjM1NWI1MTQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX2hlbHBlci5jCkBAIC0zODY1LDMgKzM4NjUsMTI1IEBAIHZvaWQgX19kcm1f YXRvbWljX2hlbHBlcl9wcml2YXRlX29ial9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9wcml2 YXRlX29iaiAqb2JqCiAJbWVtY3B5KHN0YXRlLCBvYmotPnN0YXRlLCBzaXplb2YoKnN0YXRlKSk7 CiB9CiBFWFBPUlRfU1lNQk9MKF9fZHJtX2F0b21pY19oZWxwZXJfcHJpdmF0ZV9vYmpfZHVwbGlj YXRlX3N0YXRlKTsKKworLyoqCisgKiBkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlcl9pbml0 IC0gaW5pdGlhbGl6ZSB0aGUgZGFtYWdlIGl0ZXJhdG9yCisgKiBAaXRlcjogVGhlIGl0ZXJhdG9y IHRvIGluaXRpYWxpemUuCisgKiBAdHlwZTogQ29vcmRpbmF0ZSB0eXBlIGNhbGxlciBpcyBpbnRl cmVzdGVkIGluLgorICogQHN0YXRlOiBwbGFuZV9zdGF0ZSBmcm9tIHdoaWNoIHRvIGl0ZXJhdGUg dGhlIGRhbWFnZSBjbGlwcy4KKyAqIEBoZGlzcGxheTogV2lkdGggb2YgY3J0YyBvbiB3aGljaCBw bGFuZSBpcyBzY2FubmVkIG91dC4KKyAqIEB2ZGlzcGxheTogSGVpZ2h0IG9mIGNydGMgb24gd2hp Y2ggcGxhbmUgaXMgc2Nhbm5lZCBvdXQuCisgKgorICogSW5pdGlhbGl6ZSBhbiBpdGVyYXRvciB0 aGF0IGlzIHVzZWQgdG8gdHJhbnNsYXRlIGFuZCBjbGlwIGEgc2V0IG9mIGRhbWFnZQorICogcmVj dGFuZ2xlcyBpbiBmcmFtZWJ1ZmZlciBjb29yZGluYXRlcyB0byBwbGFuZSBhbmQgY3J0YyBjb29y ZGluYXRlcy4gVGhlIHR5cGUKKyAqIGFyZ3VtZW50IHNwZWNpZnkgd2hpY2ggdHlwZSBvZiBjb29y ZGluYXRlIHRvIGl0ZXJhdGUgaW4uCisgKgorICogUmV0dXJuczogMCBvbiBzdWNjZXNzIGFuZCBu ZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGVycm9yLiBJZiBhbiBlcnJvciBjb2RlIGlzCisgKiByZXR1 cm5lZCB0aGVuIGl0IG1lYW5zIHRoZSBwbGFuZSBzdGF0ZSBzaG91bGQgbm90IHVwZGF0ZS4KKyAq LworaW50Citkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlcl9pbml0KHN0cnVjdCBkcm1fYXRv bWljX2hlbHBlcl9kYW1hZ2VfaXRlciAqaXRlciwKKwkJCQkgICBlbnVtIGRybV9hdG9taWNfaGVs cGVyX2RhbWFnZV9jbGlwX3R5cGUgdHlwZSwKKwkJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5l X3N0YXRlICpzdGF0ZSwKKwkJCQkgICB1aW50MzJfdCBoZGlzcGxheSwgdWludDMyX3QgdmRpc3Bs YXkpCit7CisJaWYgKCFzdGF0ZSB8fCAhc3RhdGUtPmNydGMgfHwgIXN0YXRlLT5mYikKKwkJcmV0 dXJuIC1FSU5WQUw7CisKKwltZW1zZXQoaXRlciwgMCwgc2l6ZW9mKCppdGVyKSk7CisJaXRlci0+ Y2xpcHMgPSAoc3RydWN0IGRybV9yZWN0ICopc3RhdGUtPmRhbWFnZV9jbGlwcy0+ZGF0YTsKKwlp dGVyLT5udW1fY2xpcHMgPSBzdGF0ZS0+bnVtX2NsaXBzOworCWl0ZXItPnR5cGUgPSB0eXBlOwor CisJLyoKKwkgKiBGdWxsIHVwZGF0ZSBpbiBjYXNlIG9mIHNjYWxpbmcgb3Igcm90YXRpb24uIElu IGZ1dHVyZSBzdXBwb3J0IGZvcgorCSAqIHNjYWxpbmcvcm90YXRpbmcgZGFtYWdlIGNsaXBzIGNh biBiZSBhZGRlZAorCSAqLworCWlmIChzdGF0ZS0+Y3J0Y193ICE9IChzdGF0ZS0+c3JjX3cgPj4g MTYpIHx8CisJICAgIHN0YXRlLT5jcnRjX2ggIT0gc3RhdGUtPnNyY19oID4+IDE2IHx8IHN0YXRl LT5yb3RhdGlvbiAhPSAwKSB7CisJCWl0ZXItPmN1cnJfY2xpcCA9IGl0ZXItPm51bV9jbGlwczsK KwkJcmV0dXJuIDA7CisJfQorCisJaXRlci0+ZmJfc3JjLngxID0gMDsKKwlpdGVyLT5mYl9zcmMu eTEgPSAwOworCWl0ZXItPmZiX3NyYy54MiA9IHN0YXRlLT5mYi0+d2lkdGg7CisJaXRlci0+ZmJf c3JjLnkyID0gc3RhdGUtPmZiLT5oZWlnaHQ7CisKKwlpdGVyLT5wbGFuZV9zcmMueDEgPSBzdGF0 ZS0+c3JjX3ggPj4gMTY7CisJaXRlci0+cGxhbmVfc3JjLnkxID0gc3RhdGUtPnNyY195ID4+IDE2 OworCWl0ZXItPnBsYW5lX3NyYy54MiA9IGl0ZXItPnBsYW5lX3NyYy54MSArIChzdGF0ZS0+c3Jj X3cgPj4gMTYpOworCWl0ZXItPnBsYW5lX3NyYy55MiA9IGl0ZXItPnBsYW5lX3NyYy55MSArIChz dGF0ZS0+c3JjX2ggPj4gMTYpOworCWl0ZXItPnRyYW5zbGF0ZV9wbGFuZV94ID0gLWl0ZXItPnBs YW5lX3NyYy54MTsKKwlpdGVyLT50cmFuc2xhdGVfcGxhbmVfeSA9IC1pdGVyLT5wbGFuZV9zcmMu eTE7CisKKwkvKiBDbGlwIHBsYW5lIHNyYyByZWN0IHRvIGZiIGRpbWVuc2lvbnMgKi8KKwlkcm1f cmVjdF9pbnRlcnNlY3QoJml0ZXItPnBsYW5lX3NyYywgJml0ZXItPmZiX3NyYyk7CisKKwlpdGVy LT5jcnRjX3NyYy54MSA9IDA7CisJaXRlci0+Y3J0Y19zcmMueTEgPSAwOworCWl0ZXItPmNydGNf c3JjLngyID0gaGRpc3BsYXk7CisJaXRlci0+Y3J0Y19zcmMueTIgPSB2ZGlzcGxheTsKKwlpdGVy LT50cmFuc2xhdGVfY3J0Y194ID0gLShpdGVyLT5wbGFuZV9zcmMueDEgLSBzdGF0ZS0+Y3J0Y194 KTsKKwlpdGVyLT50cmFuc2xhdGVfY3J0Y194ID0gLShpdGVyLT5wbGFuZV9zcmMueTEgLSBzdGF0 ZS0+Y3J0Y195KTsKKworCS8qIENsaXAgY3J0YyBzcmMgcmVjdCB0byBwbGFuZSBkaW1lbnNpb25z ICovCisJZHJtX3JlY3RfdHJhbnNsYXRlKCZpdGVyLT5jcnRjX3NyYywgLWl0ZXItPnRyYW5zbGF0 ZV9jcnRjX3gsCisJCQkgICAtaXRlci0+dHJhbnNsYXRlX2NydGNfeCk7CisJZHJtX3JlY3RfaW50 ZXJzZWN0KCZpdGVyLT5jcnRjX3NyYywgJml0ZXItPnBsYW5lX3NyYyk7CisKKwlyZXR1cm4gMDsK K30KK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXJfaW5pdCk7CisK Ky8qKgorICogZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXJfbmV4dCAtIGFkdmFuY2UgdGhl IGRhbWFnZSBpdGVyYXRvcgorICogQGl0ZXI6IFRoZSBpdGVyYXRvciB0byBhZHZhbmNlLgorICog QHJlY3Q6IFJldHVybiBhIHJlY3RhbmdsZSBpbiBjb29yZGluYXRlIHNwZWNpZmllZCBkdXJpbmcg aXRlcmF0b3IgaW5pdC4KKyAqCisgKiBSZXR1cm5zOiAgdHJ1ZSBpZiB0aGUgb3V0cHV0IGlzIHZh bGlkLCBmYWxzZSBpZiB3ZSd2ZSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlCisgKiByZWN0YW5nbGUg bGlzdC4gSWYgdGhlIGZpcnN0IGNhbGwgcmV0dXJuIGZhbHNlLCBtZWFucyBuZWVkIGZ1bGwgdXBk YXRlLgorICovCitib29sCitkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlcl9uZXh0KHN0cnVj dCBkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlciAqaXRlciwKKwkJCQkgICBzdHJ1Y3QgZHJt X3JlY3QgKnJlY3QpCit7CisJY29uc3Qgc3RydWN0IGRybV9yZWN0ICpjdXJyX2NsaXA7CisKK25l eHRfY2xpcDoKKwlpZiAoaXRlci0+Y3Vycl9jbGlwID49IGl0ZXItPm51bV9jbGlwcykKKwkJcmV0 dXJuIGZhbHNlOworCisJY3Vycl9jbGlwID0gJml0ZXItPmNsaXBzW2l0ZXItPmN1cnJfY2xpcF07 CisJaXRlci0+Y3Vycl9jbGlwKys7CisKKwlyZWN0LT54MSA9IGN1cnJfY2xpcC0+eDE7CisJcmVj dC0+eDIgPSBjdXJyX2NsaXAtPngyOworCXJlY3QtPnkxID0gY3Vycl9jbGlwLT55MTsKKwlyZWN0 LT55MiA9IGN1cnJfY2xpcC0+eTI7CisKKwkvKiBDbGlwIGRhbWFnZSByZWN0IHdpdGhpbiBmYiBs aW1pdCAqLworCWlmICghZHJtX3JlY3RfaW50ZXJzZWN0KHJlY3QsICZpdGVyLT5mYl9zcmMpKQor CQlnb3RvIG5leHRfY2xpcDsKKwllbHNlIGlmIChpdGVyLT50eXBlICYgRFJNX0FUT01JQ19IRUxQ RVJfREFNQUdFX0NMSVBfVFlQRV9GQikKKwkJcmV0dXJuIHRydWU7CisKKwkvKiBDbGlwIGRhbWFn ZSByZWN0IHdpdGhpbiBwbGFuZSBsaW1pdCAqLworCWlmICghZHJtX3JlY3RfaW50ZXJzZWN0KHJl Y3QsICZpdGVyLT5wbGFuZV9zcmMpKQorCQlnb3RvIG5leHRfY2xpcDsKKwllbHNlIGlmIChpdGVy LT50eXBlICYgRFJNX0FUT01JQ19IRUxQRVJfREFNQUdFX0NMSVBfVFlQRV9QTEFORSkgeworCQlk cm1fcmVjdF90cmFuc2xhdGUocmVjdCwgaXRlci0+dHJhbnNsYXRlX3BsYW5lX3gsCisJCQkJICAg aXRlci0+dHJhbnNsYXRlX3BsYW5lX3kpOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwkvKiBDbGlw IGRhbWFnZSByZWN0IHdpdGhpbiBjcnRjIGxpbWl0ICovCisJaWYgKCFkcm1fcmVjdF9pbnRlcnNl Y3QocmVjdCwgJml0ZXItPmNydGNfc3JjKSkKKwkJZ290byBuZXh0X2NsaXA7CisKKwlkcm1fcmVj dF90cmFuc2xhdGUocmVjdCwgaXRlci0+dHJhbnNsYXRlX2NydGNfeCwKKwkJCSAgIGl0ZXItPnRy YW5zbGF0ZV9jcnRjX3kpOworCisJcmV0dXJuIHRydWU7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9h dG9taWNfaGVscGVyX2RhbWFnZV9pdGVyX25leHQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmgKaW5k ZXggMjZhYWJhNS4uZWJkNGI2NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19o ZWxwZXIuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCkBAIC0zNiw2ICsz NiwzNyBAQCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZTsKIHN0cnVjdCBkcm1fcHJpdmF0ZV9vYmo7 CiBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGU7CiAKKy8qKgorICogZW51bSBkcm1fYXRvbWljX2hl bHBlcl9kYW1hZ2VfY2xpcF90eXBlIC0gdHlwZSBvZiBjbGlwcyB0byBpdGVyYXRvciBvdmVyCisg KgorICogV2hpbGUgdXNpbmcgZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXIgdGhlIHR5cGUg b2YgY2xpcCBjb29yZGluYXRlcyBjYWxsZXIKKyAqIGlzIGludGVyZXN0ZWQgaW4uCisgKi8KK2Vu dW0gZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2NsaXBfdHlwZSB7CisJRFJNX0FUT01JQ19IRUxQ RVJfREFNQUdFX0NMSVBfVFlQRV9GQiAgICAgICA9IDB4MCwKKwlEUk1fQVRPTUlDX0hFTFBFUl9E QU1BR0VfQ0xJUF9UWVBFX1BMQU5FICAgID0gMHgxLAorCURSTV9BVE9NSUNfSEVMUEVSX0RBTUFH RV9DTElQX1RZUEVfQ1JUQyAgICAgPSAweDIsCit9OworCisvKioKKyAqIHN0cnVjdCBkcm1fYXRv bWljX2hlbHBlcl9kYW1hZ2VfaXRlciAtIGRhbWFnZSBjbGlwIGl0ZXJhdG9yCisgKgorICogVGhp cyBpdGVyYXRvciB0cmFja3Mgc3RhdGUgbmVlZGVkIHRvIHdhbGsgdGhlIGxpc3Qgb2YgZGFtYWdl IGNsaXBzLgorICovCitzdHJ1Y3QgZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXIgeworCWVu dW0gZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2NsaXBfdHlwZSB0eXBlOworCWNvbnN0IHN0cnVj dCBkcm1fcmVjdCAqY2xpcHM7CisJdWludDMyX3QgbnVtX2NsaXBzOworCXVpbnQzMl90IGN1cnJf Y2xpcDsKKwlzdHJ1Y3QgZHJtX3JlY3QgZmJfc3JjOworCWludCB0cmFuc2xhdGVfcGxhbmVfeDsK KwlpbnQgdHJhbnNsYXRlX3BsYW5lX3k7CisJc3RydWN0IGRybV9yZWN0IHBsYW5lX3NyYzsKKwlp bnQgdHJhbnNsYXRlX2NydGNfeDsKKwlpbnQgdHJhbnNsYXRlX2NydGNfeTsKKwlzdHJ1Y3QgZHJt X3JlY3QgY3J0Y19zcmM7Cit9OworCiBpbnQgZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfbW9kZXNl dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSk7CiBpbnQgZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCkBAIC0xODUsNiArMjE2LDE0IEBAIGludCBkcm1f YXRvbWljX2hlbHBlcl9sZWdhY3lfZ2FtbWFfc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJ CQkgICAgICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpOwogdm9pZCBfX2Ry bV9hdG9taWNfaGVscGVyX3ByaXZhdGVfb2JqX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX3By aXZhdGVfb2JqICpvYmosCiAJCQkJCQkgICAgIHN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZSAqc3Rh dGUpOworaW50Citkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlcl9pbml0KHN0cnVjdCBkcm1f YXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlciAqaXRlciwKKwkJCQkgICBlbnVtIGRybV9hdG9taWNf aGVscGVyX2RhbWFnZV9jbGlwX3R5cGUgdHlwZSwKKwkJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX3Bs YW5lX3N0YXRlICpzdGF0ZSwKKwkJCQkgICB1aW50MzJfdCBoZGlzcGxheSwgdWludDMyX3QgdmRp c3BsYXkpOworYm9vbAorZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXJfbmV4dChzdHJ1Y3Qg ZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXIgKml0ZXIsCisJCQkJICAgc3RydWN0IGRybV9y ZWN0ICpyZWN0KTsKIAogLyoqCiAgKiBkcm1fYXRvbWljX2NydGNfZm9yX2VhY2hfcGxhbmUgLSBp dGVyYXRlIG92ZXIgcGxhbmVzIGN1cnJlbnRseSBhdHRhY2hlZCB0byBDUlRDCi0tIAoyLjcuNAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==