From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.bootlin.com (mail.bootlin.com [62.4.15.54]) by gabe.freedesktop.org (Postfix) with ESMTP id F29D26E5FE for ; Fri, 25 Jan 2019 14:07:34 +0000 (UTC) From: Paul Kocialkowski Date: Fri, 25 Jan 2019 15:06:12 +0100 Message-Id: <20190125140623.10801-11-paul.kocialkowski@bootlin.com> In-Reply-To: <20190125140623.10801-1-paul.kocialkowski@bootlin.com> References: <20190125140623.10801-1-paul.kocialkowski@bootlin.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v4 10/21] lib/igt_vc4: Add helpers for converting linear to SAND-tiled buffers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Petri Latvala , Eben Upton List-ID: SW4gb3JkZXIgdG8gdGVzdCBidWZmZXJzIHdpdGggU0FORCB0aWxpbmcsIGl0IGlzIHVzZWZ1bCB0 byBjb252ZXJ0CmxpbmVhciBidWZmZXJzIHRvIFNBTkQgdGlsaW5nIG1vZGUuCgpJbnRyb2R1Y2Ug aGVscGVycyB0byBhc3Npc3QgaW4gdGhhdCBkaXJlY3Rpb24sIG9uZSB0aGF0IGNhbGN1bGF0ZXMg dGhlCm1lbW9yeSBvZmZzZXQgaW4gdGhlIFNBTkQtdGlsZWQgYnVmZmVyIGZvciBhIGdpdmVuIHBp eGVsIHBvc2l0aW9uIGFuZApvbmUgdGhhdCBtYWtlcyB1c2Ugb2YgdGhlIGxhdHRlciBmb3IgZnJh bWVidWZmZXIgY29udmVyc2lvbi4KClNpZ25lZC1vZmYtYnk6IFBhdWwgS29jaWFsa293c2tpIDxw YXVsLmtvY2lhbGtvd3NraUBib290bGluLmNvbT4KQWNrZWQtYnk6IEx5dWRlIFBhdWwgPGx5dWRl QHJlZGhhdC5jb20+Ci0tLQogbGliL2lndF92YzQuYyB8IDEwOCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogbGliL2lndF92YzQuaCB8ICAgNCArKwog MiBmaWxlcyBjaGFuZ2VkLCAxMTIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rf dmM0LmMgYi9saWIvaWd0X3ZjNC5jCmluZGV4IGI2OTdiNWZkZjA4Mi4uOWEwYmEzMGI0NDIwIDEw MDY0NAotLS0gYS9saWIvaWd0X3ZjNC5jCisrKyBiL2xpYi9pZ3RfdmM0LmMKQEAgLTMwNywzICsz MDcsMTExIEBAIHNpemVfdCBpZ3RfdmM0X3RfdGlsZWRfb2Zmc2V0KHNpemVfdCBzdHJpZGUsIHNp emVfdCBoZWlnaHQsIHNpemVfdCBicHAsCiAKIAlyZXR1cm4gb2Zmc2V0OwogfQorCitzdGF0aWMg dm9pZCB2YzRfZmJfc2FuZF90aWxlZF9jb252ZXJ0X3BsYW5lKHN0cnVjdCBpZ3RfZmIgKmRzdCwg dm9pZCAqZHN0X2J1ZiwKKwkJCQkJICAgIHN0cnVjdCBpZ3RfZmIgKnNyYywgdm9pZCAqc3JjX2J1 ZiwKKwkJCQkJICAgIHNpemVfdCBjb2x1bW5fd2lkdGhfYnl0ZXMsCisJCQkJCSAgICBzaXplX3Qg Y29sdW1uX2hlaWdodCwKKwkJCQkJICAgIHVuc2lnbmVkIGludCBwbGFuZSkKK3sKKwlzaXplX3Qg YnBwID0gZHN0LT5wbGFuZV9icHBbcGxhbmVdOworCXNpemVfdCBjb2x1bW5fd2lkdGggPSBjb2x1 bW5fd2lkdGhfYnl0ZXMgKiBkc3QtPnBsYW5lX3dpZHRoW3BsYW5lXSAvCisJCQkgICAgICBkc3Qt PndpZHRoOworCXNpemVfdCBjb2x1bW5fc2l6ZSA9IGNvbHVtbl93aWR0aF9ieXRlcyAqIGNvbHVt bl9oZWlnaHQ7CisJdW5zaWduZWQgaW50IGksIGo7CisKKwlmb3IgKGkgPSAwOyBpIDwgZHN0LT5w bGFuZV9oZWlnaHRbcGxhbmVdOyBpKyspIHsKKwkJZm9yIChqID0gMDsgaiA8IHNyYy0+cGxhbmVf d2lkdGhbcGxhbmVdOyBqKyspIHsKKwkJCXNpemVfdCBzcmNfb2Zmc2V0ID0gc3JjLT5vZmZzZXRz W3BsYW5lXTsKKwkJCXNpemVfdCBkc3Rfb2Zmc2V0ID0gZHN0LT5vZmZzZXRzW3BsYW5lXTsKKwor CQkJc3JjX29mZnNldCArPSBzcmMtPnN0cmlkZXNbcGxhbmVdICogaSArIGogKiBicHAgLyA4Owor CQkJZHN0X29mZnNldCArPSB2YzRfc2FuZF90aWxlZF9vZmZzZXQoY29sdW1uX3dpZHRoLAorCQkJ CQkJCSAgICBjb2x1bW5fc2l6ZSwgaiwgaSwKKwkJCQkJCQkgICAgYnBwKTsKKworCQkJc3dpdGNo IChicHApIHsKKwkJCWNhc2UgODoKKwkJCQkqKHVpbnQ4X3QgKikoZHN0X2J1ZiArIGRzdF9vZmZz ZXQpID0KKwkJCQkJKih1aW50OF90ICopKHNyY19idWYgKyBzcmNfb2Zmc2V0KTsKKwkJCQlicmVh azsKKwkJCWNhc2UgMTY6CisJCQkJKih1aW50MTZfdCAqKShkc3RfYnVmICsgZHN0X29mZnNldCkg PQorCQkJCQkqKHVpbnQxNl90ICopKHNyY19idWYgKyBzcmNfb2Zmc2V0KTsKKwkJCQlicmVhazsK KwkJCWRlZmF1bHQ6CisJCQkJaWd0X2Fzc2VydChmYWxzZSk7CisJCQl9CisJCX0KKwl9Cit9CisK K3Vuc2lnbmVkIGludCB2YzRfZmJfc2FuZF90aWxlZF9jb252ZXJ0KHN0cnVjdCBpZ3RfZmIgKmRz dCwgc3RydWN0IGlndF9mYiAqc3JjLAorCQkJCSAgICAgICB1aW50NjRfdCBtb2RpZmllcikKK3sK Kwl1aW50NjRfdCBtb2RpZmllcl9iYXNlOworCXNpemVfdCBjb2x1bW5fd2lkdGhfYnl0ZXM7CisJ c2l6ZV90IGNvbHVtbl9oZWlnaHQ7CisJdW5zaWduZWQgaW50IGZiX2lkOworCXVuc2lnbmVkIGlu dCBpOworCXZvaWQgKnNyY19idWY7CisJdm9pZCAqZHN0X2J1ZjsKKworCW1vZGlmaWVyX2Jhc2Ug PSBmb3VyY2NfbW9kX2Jyb2FkY29tX21vZChtb2RpZmllcik7CisJY29sdW1uX2hlaWdodCA9IGZv dXJjY19tb2RfYnJvYWRjb21fcGFyYW0obW9kaWZpZXIpOworCisJc3dpdGNoIChtb2RpZmllcl9i YXNlKSB7CisJY2FzZSBEUk1fRk9STUFUX01PRF9CUk9BRENPTV9TQU5EMzI6CisJCWNvbHVtbl93 aWR0aF9ieXRlcyA9IDMyOworCQlicmVhazsKKwljYXNlIERSTV9GT1JNQVRfTU9EX0JST0FEQ09N X1NBTkQ2NDoKKwkJY29sdW1uX3dpZHRoX2J5dGVzID0gNjQ7CisJCWJyZWFrOworCWNhc2UgRFJN X0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDEyODoKKwkJY29sdW1uX3dpZHRoX2J5dGVzID0gMTI4 OworCQlicmVhazsKKwljYXNlIERSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1NBTkQyNTY6CisJCWNv bHVtbl93aWR0aF9ieXRlcyA9IDI1NjsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJaWd0X2Fzc2Vy dChmYWxzZSk7CisJfQorCisJZmJfaWQgPSBpZ3RfY3JlYXRlX2ZiKHNyYy0+ZmQsIHNyYy0+d2lk dGgsIHNyYy0+aGVpZ2h0LCBzcmMtPmRybV9mb3JtYXQsCisJCQkgICAgICBtb2RpZmllciwgZHN0 KTsKKwlpZ3RfYXNzZXJ0KGZiX2lkID4gMCk7CisKKwlzcmNfYnVmID0gaWd0X2ZiX21hcF9idWZm ZXIoc3JjLT5mZCwgc3JjKTsKKwlpZ3RfYXNzZXJ0KHNyY19idWYpOworCisJZHN0X2J1ZiA9IGln dF9mYl9tYXBfYnVmZmVyKGRzdC0+ZmQsIGRzdCk7CisJaWd0X2Fzc2VydChkc3RfYnVmKTsKKwor CWZvciAoaSA9IDA7IGkgPCBkc3QtPm51bV9wbGFuZXM7IGkrKykKKwkJdmM0X2ZiX3NhbmRfdGls ZWRfY29udmVydF9wbGFuZShkc3QsIGRzdF9idWYsIHNyYywgc3JjX2J1ZiwKKwkJCQkJCWNvbHVt bl93aWR0aF9ieXRlcywKKwkJCQkJCWNvbHVtbl9oZWlnaHQsIGkpOworCisJaWd0X2ZiX3VubWFw X2J1ZmZlcihzcmMsIHNyY19idWYpOworCWlndF9mYl91bm1hcF9idWZmZXIoZHN0LCBkc3RfYnVm KTsKKworCXJldHVybiBmYl9pZDsKK30KKworc2l6ZV90IHZjNF9zYW5kX3RpbGVkX29mZnNldChz aXplX3QgY29sdW1uX3dpZHRoLCBzaXplX3QgY29sdW1uX3NpemUsIHNpemVfdCB4LAorCQkJICAg ICBzaXplX3QgeSwgc2l6ZV90IGJwcCkKK3sKKwlzaXplX3Qgb2Zmc2V0ID0gMDsKKwlzaXplX3Qg Y29sc194OworCXNpemVfdCBwaXhfeDsKKworCS8qIE9mZnNldCB0byB0aGUgYmVnaW5uaW5nIG9m IHRoZSByZWxldmFudCBjb2x1bW4uICovCisJY29sc194ID0geCAvIGNvbHVtbl93aWR0aDsKKwlv ZmZzZXQgKz0gY29sc194ICogY29sdW1uX3NpemU7CisKKwkvKiBPZmZzZXQgdG8gdGhlIHJlbGV2 YW50IHBpeGVsLiAqLworCXBpeF94ID0geCAlIGNvbHVtbl93aWR0aDsKKwlvZmZzZXQgKz0gKGNv bHVtbl93aWR0aCAqIHkgKyBwaXhfeCkgKiBicHAgLyA4OworCisJcmV0dXJuIG9mZnNldDsKK30K ZGlmZiAtLWdpdCBhL2xpYi9pZ3RfdmM0LmggYi9saWIvaWd0X3ZjNC5oCmluZGV4IGQ1YzUyOWJi Y2NkYS4uYTE3ODEyNjk4ZmU1IDEwMDY0NAotLS0gYS9saWIvaWd0X3ZjNC5oCisrKyBiL2xpYi9p Z3RfdmM0LmgKQEAgLTM2LDUgKzM2LDkgQEAgdWludDY0X3QgaWd0X3ZjNF9nZXRfdGlsaW5nKGlu dCBmZCwgdWludDMyX3QgaGFuZGxlKTsKIHVuc2lnbmVkIGludCBpZ3RfdmM0X2ZiX3RfdGlsZWRf Y29udmVydChzdHJ1Y3QgaWd0X2ZiICpkc3QsIHN0cnVjdCBpZ3RfZmIgKnNyYyk7CiBzaXplX3Qg aWd0X3ZjNF90X3RpbGVkX29mZnNldChzaXplX3Qgc3RyaWRlLCBzaXplX3QgaGVpZ2h0LCBzaXpl X3QgYnBwLAogCQkJICAgICAgc2l6ZV90IHgsIHNpemVfdCB5KTsKK3Vuc2lnbmVkIGludCB2YzRf ZmJfc2FuZF90aWxlZF9jb252ZXJ0KHN0cnVjdCBpZ3RfZmIgKmRzdCwgc3RydWN0IGlndF9mYiAq c3JjLAorCQkJCSAgICAgICB1aW50NjRfdCBtb2RpZmllcik7CitzaXplX3QgdmM0X3NhbmRfdGls ZWRfb2Zmc2V0KHNpemVfdCBjb2x1bW5fd2lkdGgsIHNpemVfdCBjb2x1bW5fc2l6ZSwgc2l6ZV90 IHgsCisJCQkgICAgIHNpemVfdCB5LCBzaXplX3QgYnBwKTsKIAogI2VuZGlmIC8qIElHVF9WQzRf SCAqLwotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK