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 615D66F59F for ; Fri, 11 Jan 2019 09:06:30 +0000 (UTC) From: Paul Kocialkowski Date: Fri, 11 Jan 2019 10:05:22 +0100 Message-Id: <20190111090532.19235-12-paul.kocialkowski@bootlin.com> In-Reply-To: <20190111090532.19235-1-paul.kocialkowski@bootlin.com> References: <20190111090532.19235-1-paul.kocialkowski@bootlin.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v3 11/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 , Thomas Petazzoni List-ID: SW4gb3JkZXIgdG8gdGVzdCBidWZmZXJzIHdpdGggU0FORCB0aWxpbmcsIGl0IGlzIHVzZWZ1bCB0 byBjb252ZXJ0CmxpbmVhciBidWZmZXJzIHRvIFNBTkQgdGlsaW5nIG1vZGUuCgpJbnRyb2R1Y2Ug aGVscGVycyB0byBhc3Npc3QgaW4gdGhhdCBkaXJlY3Rpb24sIG9uZSB0aGF0IGNhbGN1bGF0ZXMg dGhlCm1lbW9yeSBvZmZzZXQgaW4gdGhlIFNBTkQtdGlsZWQgYnVmZmVyIGZvciBhIGdpdmVuIHBp eGVsIHBvc2l0aW9uIGFuZApvbmUgdGhhdCBtYWtlcyB1c2Ugb2YgdGhlIGxhdHRlciBmb3IgZnJh bWVidWZmZXIgY29udmVyc2lvbi4KClNpZ25lZC1vZmYtYnk6IFBhdWwgS29jaWFsa293c2tpIDxw YXVsLmtvY2lhbGtvd3NraUBib290bGluLmNvbT4KLS0tCiBsaWIvaWd0X3ZjNC5jIHwgMTExICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBsaWIvaWd0 X3ZjNC5oIHwgICA1ICsrKwogMiBmaWxlcyBjaGFuZ2VkLCAxMTYgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2xpYi9pZ3RfdmM0LmMgYi9saWIvaWd0X3ZjNC5jCmluZGV4IGI0YjljMmZjNjkx NC4uMzEzN2MwZWY4NWZhIDEwMDY0NAotLS0gYS9saWIvaWd0X3ZjNC5jCisrKyBiL2xpYi9pZ3Rf dmM0LmMKQEAgLTMwNywzICszMDcsMTE0IEBAIHNpemVfdCBpZ3RfdmM0X3RfdGlsZWRfb2Zmc2V0 KHNpemVfdCBzdHJpZGUsIHNpemVfdCBoZWlnaHQsIHNpemVfdCBicHAsCiAKIAlyZXR1cm4gb2Zm c2V0OwogfQorCitzdGF0aWMgdm9pZCB2YzRfZmJfc2FuZF90aWxlZF9jb252ZXJ0X3BsYW5lKHN0 cnVjdCBpZ3RfZmIgKmRzdCwgdm9pZCAqZHN0X2J1ZiwKKwkJCQkJICAgIHN0cnVjdCBpZ3RfZmIg KnNyYywgdm9pZCAqc3JjX2J1ZiwKKwkJCQkJICAgIHNpemVfdCBjb2x1bW5fd2lkdGhfYnl0ZXMs CisJCQkJCSAgICBzaXplX3QgY29sdW1uX2hlaWdodCwKKwkJCQkJICAgIHVuc2lnbmVkIGludCBw bGFuZSkKK3sKKwlzaXplX3QgYnBwID0gZHN0LT5wbGFuZV9icHBbcGxhbmVdOworCXNpemVfdCBj b2x1bW5fd2lkdGggPSBjb2x1bW5fd2lkdGhfYnl0ZXMgKiBkc3QtPnBsYW5lX3dpZHRoW3BsYW5l XSAvCisJCQkgICAgICBkc3QtPndpZHRoOworCXNpemVfdCBjb2x1bW5fc2l6ZSA9IGNvbHVtbl93 aWR0aF9ieXRlcyAqIGNvbHVtbl9oZWlnaHQ7CisJdW5zaWduZWQgaW50IGksIGo7CisKKwlmb3Ig KGkgPSAwOyBpIDwgZHN0LT5wbGFuZV9oZWlnaHRbcGxhbmVdOyBpKyspIHsKKwkJZm9yIChqID0g MDsgaiA8IHNyYy0+cGxhbmVfd2lkdGhbcGxhbmVdOyBqKyspIHsKKwkJCXNpemVfdCBzcmNfb2Zm c2V0ID0gc3JjLT5vZmZzZXRzW3BsYW5lXTsKKwkJCXNpemVfdCBkc3Rfb2Zmc2V0ID0gZHN0LT5v ZmZzZXRzW3BsYW5lXTsKKworCQkJc3JjX29mZnNldCArPSBzcmMtPnN0cmlkZXNbcGxhbmVdICog aSArIGogKiBicHAgLyA4OworCQkJZHN0X29mZnNldCArPSB2YzRfc2FuZF90aWxlZF9vZmZzZXQo Y29sdW1uX3dpZHRoLAorCQkJCQkJCSAgICBjb2x1bW5fc2l6ZSwgaiwgaSwKKwkJCQkJCQkgICAg YnBwKTsKKworCQkJc3dpdGNoIChicHApIHsKKwkJCWNhc2UgODoKKwkJCQkqKHVpbnQ4X3QgKiko ZHN0X2J1ZiArIGRzdF9vZmZzZXQpID0KKwkJCQkJKih1aW50OF90ICopKHNyY19idWYgKyBzcmNf b2Zmc2V0KTsKKwkJCQlicmVhazsKKwkJCWNhc2UgMTY6CisJCQkJKih1aW50MTZfdCAqKShkc3Rf YnVmICsgZHN0X29mZnNldCkgPQorCQkJCQkqKHVpbnQxNl90ICopKHNyY19idWYgKyBzcmNfb2Zm c2V0KTsKKwkJCQlicmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJaWd0X2Fzc2VydChmYWxzZSk7CisJ CQl9CisJCX0KKwl9Cit9CisKK3Vuc2lnbmVkIGludCB2YzRfZmJfc2FuZF90aWxlZF9jb252ZXJ0 KHN0cnVjdCBpZ3RfZmIgKmRzdCwgc3RydWN0IGlndF9mYiAqc3JjLAorCQkJCSAgICAgICBzaXpl X3QgY29sdW1uX3dpZHRoX2J5dGVzLAorCQkJCSAgICAgICBzaXplX3QgY29sdW1uX2hlaWdodCkK K3sKKwl1bnNpZ25lZCBpbnQgZmJfaWQ7CisJdW5zaWduZWQgaW50IGk7CisJdWludDY0X3QgbW9k aWZpZXI7CisJdm9pZCAqc3JjX2J1ZjsKKwl2b2lkICpkc3RfYnVmOworCisJaWYgKCFjb2x1bW5f aGVpZ2h0KQorCQljb2x1bW5faGVpZ2h0ID0gc3JjLT5oZWlnaHQ7CisKKwlzd2l0Y2ggKGNvbHVt bl93aWR0aF9ieXRlcykgeworCWNhc2UgMzI6CisJCW1vZGlmaWVyID0KKwkJCURSTV9GT1JNQVRf TU9EX0JST0FEQ09NX1NBTkQzMl9DT0xfSEVJR0hUKGNvbHVtbl9oZWlnaHQpOworCQlicmVhazsK KwljYXNlIDY0OgorCQltb2RpZmllciA9CisJCQlEUk1fRk9STUFUX01PRF9CUk9BRENPTV9TQU5E NjRfQ09MX0hFSUdIVChjb2x1bW5faGVpZ2h0KTsKKwkJYnJlYWs7CisJY2FzZSAxMjg6CisJCW1v ZGlmaWVyID0KKwkJCURSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1NBTkQxMjhfQ09MX0hFSUdIVChj b2x1bW5faGVpZ2h0KTsKKwkJYnJlYWs7CisJY2FzZSAyNTY6CisJCW1vZGlmaWVyID0KKwkJCURS TV9GT1JNQVRfTU9EX0JST0FEQ09NX1NBTkQyNTZfQ09MX0hFSUdIVChjb2x1bW5faGVpZ2h0KTsK KwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJaWd0X2Fzc2VydChmYWxzZSk7CisJfQorCisJZmJfaWQg PSBpZ3RfY3JlYXRlX2ZiKHNyYy0+ZmQsIHNyYy0+d2lkdGgsIHNyYy0+aGVpZ2h0LCBzcmMtPmRy bV9mb3JtYXQsCisJCQkgICAgICBtb2RpZmllciwgZHN0KTsKKwlpZ3RfYXNzZXJ0KGZiX2lkID4g MCk7CisKKwlzcmNfYnVmID0gaWd0X2ZiX21hcF9idWZmZXIoc3JjLT5mZCwgc3JjKTsKKwlpZ3Rf YXNzZXJ0KHNyY19idWYpOworCisJZHN0X2J1ZiA9IGlndF9mYl9tYXBfYnVmZmVyKGRzdC0+ZmQs IGRzdCk7CisJaWd0X2Fzc2VydChkc3RfYnVmKTsKKworCWZvciAoaSA9IDA7IGkgPCBkc3QtPm51 bV9wbGFuZXM7IGkrKykKKwkJdmM0X2ZiX3NhbmRfdGlsZWRfY29udmVydF9wbGFuZShkc3QsIGRz dF9idWYsIHNyYywgc3JjX2J1ZiwKKwkJCQkJCWNvbHVtbl93aWR0aF9ieXRlcywKKwkJCQkJCWNv bHVtbl9oZWlnaHQsIGkpOworCisJaWd0X2ZiX3VubWFwX2J1ZmZlcihzcmMsIHNyY19idWYpOwor CWlndF9mYl91bm1hcF9idWZmZXIoZHN0LCBkc3RfYnVmKTsKKworCXJldHVybiBmYl9pZDsKK30K Kworc2l6ZV90IHZjNF9zYW5kX3RpbGVkX29mZnNldChzaXplX3QgY29sdW1uX3dpZHRoLCBzaXpl X3QgY29sdW1uX3NpemUsIHNpemVfdCB4LAorCQkJICAgICBzaXplX3QgeSwgc2l6ZV90IGJwcCkK K3sKKwlzaXplX3Qgb2Zmc2V0ID0gMDsKKwlzaXplX3QgY29sc194OworCXNpemVfdCBwaXhfeDsK KworCS8qIE9mZnNldCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSByZWxldmFudCBjb2x1bW4uICov CisJY29sc194ID0geCAvIGNvbHVtbl93aWR0aDsKKwlvZmZzZXQgKz0gY29sc194ICogY29sdW1u X3NpemU7CisKKwkvKiBPZmZzZXQgdG8gdGhlIHJlbGV2YW50IHBpeGVsLiAqLworCXBpeF94ID0g eCAlIGNvbHVtbl93aWR0aDsKKwlvZmZzZXQgKz0gKGNvbHVtbl93aWR0aCAqIHkgKyBwaXhfeCkg KiBicHAgLyA4OworCisJcmV0dXJuIG9mZnNldDsKK30KZGlmZiAtLWdpdCBhL2xpYi9pZ3RfdmM0 LmggYi9saWIvaWd0X3ZjNC5oCmluZGV4IGVlN2FmNzM3YWRlOS4uOTExOGFlMTkzZjYwIDEwMDY0 NAotLS0gYS9saWIvaWd0X3ZjNC5oCisrKyBiL2xpYi9pZ3RfdmM0LmgKQEAgLTQ1LDUgKzQ1LDEw IEBAIHVpbnQ2NF90IGlndF92YzRfZ2V0X3RpbGluZyhpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSk7 CiB1bnNpZ25lZCBpbnQgaWd0X3ZjNF9mYl90X3RpbGVkX2NvbnZlcnQoc3RydWN0IGlndF9mYiAq ZHN0LCBzdHJ1Y3QgaWd0X2ZiICpzcmMpOwogc2l6ZV90IGlndF92YzRfdF90aWxlZF9vZmZzZXQo c2l6ZV90IHN0cmlkZSwgc2l6ZV90IGhlaWdodCwgc2l6ZV90IGJwcCwKIAkJCSAgICAgIHNpemVf dCB4LCBzaXplX3QgeSk7Cit1bnNpZ25lZCBpbnQgdmM0X2ZiX3NhbmRfdGlsZWRfY29udmVydChz dHJ1Y3QgaWd0X2ZiICpkc3QsIHN0cnVjdCBpZ3RfZmIgKnNyYywKKwkJCQkgICAgICAgc2l6ZV90 IGNvbHVtbl93aWR0aF9ieXRlcywKKwkJCQkgICAgICAgc2l6ZV90IGNvbHVtbl9oZWlnaHQpOwor c2l6ZV90IHZjNF9zYW5kX3RpbGVkX29mZnNldChzaXplX3QgY29sdW1uX3dpZHRoLCBzaXplX3Qg Y29sdW1uX3NpemUsIHNpemVfdCB4LAorCQkJICAgICBzaXplX3QgeSwgc2l6ZV90IGJwcCk7CiAK ICNlbmRpZiAvKiBJR1RfVkM0X0ggKi8KLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pZ3QtZGV2Cg==