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 5F6666F59D for ; Fri, 11 Jan 2019 09:06:30 +0000 (UTC) From: Paul Kocialkowski Date: Fri, 11 Jan 2019 10:05:20 +0100 Message-Id: <20190111090532.19235-10-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 09/21] lib/igt_vc4: Add helpers for converting linear to T-tiled RGB 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: SW4gb3JkZXIgdG8gaW50ZWdyYXRlIHRlc3Rpbmcgb2YgVC10aWxlZCBidWZmZXJzLCB0aGUgZWFz aWVzdCBwYXRoIGlzIHRvCmdlbmVyYXRlIHBhdHRlcm5zICh3aXRoIHRoZSBhbHJlYWR5LWV4aXN0 aW5nIGZ1bmN0aW9ucykgaW4gbGluZWFyCmJ1ZmZlcnMgYW5kIGNvbnZlcnQgdGhlbSB0byBULXRp bGVkIHN1YnNlcXVlbnRseS4KCkFkZCBoZWxwZXJzIHRvIGRvIHRoYXQgY29udmVyc2lvbiwgd2l0 aCBhIGZpcnN0IGhlbHBlciB0aGF0IHJldHVybnMgdGhlCm1lbW9yeSBvZmZzZXQgZm9yIGEgZ2l2 ZW4gcG9zaXRpb24gaW4gYSBULXRpbGVkIGJ1ZmZlciBhbmQgYSBzZWNvbmQKaGVscGVyIHRoYXQg dXNlcyBpdCBmb3IgY29udmVydGluZyBiZXR3ZWVuIGZyYW1lYnVmZmVycy4KClNpZ25lZC1vZmYt Ynk6IFBhdWwgS29jaWFsa293c2tpIDxwYXVsLmtvY2lhbGtvd3NraUBib290bGluLmNvbT4KLS0t CiBsaWIvaWd0X3ZjNC5jIHwgMTMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiBsaWIvaWd0X3ZjNC5oIHwgICA0ICsrCiAyIGZpbGVzIGNoYW5nZWQs IDEzNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbGliL2lndF92YzQuYyBiL2xpYi9pZ3Rf dmM0LmMKaW5kZXggMTZkZmU2N2E0NGIxLi5iNGI5YzJmYzY5MTQgMTAwNjQ0Ci0tLSBhL2xpYi9p Z3RfdmM0LmMKKysrIGIvbGliL2lndF92YzQuYwpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUg ImRybXRlc3QuaCIKICNpbmNsdWRlICJpZ3RfYXV4LmgiCiAjaW5jbHVkZSAiaWd0X2NvcmUuaCIK KyNpbmNsdWRlICJpZ3RfZmIuaCIKICNpbmNsdWRlICJpZ3RfdmM0LmgiCiAjaW5jbHVkZSAiaW9j dGxfd3JhcHBlcnMuaCIKICNpbmNsdWRlICJpbnRlbF9yZWcuaCIKQEAgLTE3NiwzICsxNzcsMTMz IEBAIGJvb2wgaWd0X3ZjNF9wdXJnZWFibGVfYm8oaW50IGZkLCBpbnQgaGFuZGxlLCBib29sIHB1 cmdlYWJsZSkKIAogCXJldHVybiBhcmcucmV0YWluZWQ7CiB9CisKK3Vuc2lnbmVkIGludCBpZ3Rf dmM0X2ZiX3RfdGlsZWRfY29udmVydChzdHJ1Y3QgaWd0X2ZiICpkc3QsIHN0cnVjdCBpZ3RfZmIg KnNyYykKK3sKKwl1bnNpZ25lZCBpbnQgZmJfaWQ7CisJdW5zaWduZWQgaW50IGksIGo7CisJdm9p ZCAqc3JjX2J1ZjsKKwl2b2lkICpkc3RfYnVmOworCXNpemVfdCBicHAgPSBzcmMtPnBsYW5lX2Jw cFswXTsKKwlzaXplX3QgZHN0X3N0cmlkZSA9IEFMSUdOKHNyYy0+c3RyaWRlc1swXSwgMTI4KTsK KworCWZiX2lkID0gaWd0X2NyZWF0ZV9mYl93aXRoX2JvX3NpemUoc3JjLT5mZCwgc3JjLT53aWR0 aCwgc3JjLT5oZWlnaHQsCisJCQkJCSAgIHNyYy0+ZHJtX2Zvcm1hdCwKKwkJCQkJICAgRFJNX0ZP Uk1BVF9NT0RfQlJPQURDT01fVkM0X1RfVElMRUQsCisJCQkJCSAgIGRzdCwgMCwgZHN0X3N0cmlk ZSk7CisJaWd0X2Fzc2VydChmYl9pZCA+IDApOworCisJc3JjX2J1ZiA9IGlndF9mYl9tYXBfYnVm ZmVyKHNyYy0+ZmQsIHNyYyk7CisJaWd0X2Fzc2VydChzcmNfYnVmKTsKKworCWRzdF9idWYgPSBp Z3RfZmJfbWFwX2J1ZmZlcihkc3QtPmZkLCBkc3QpOworCWlndF9hc3NlcnQoZHN0X2J1Zik7CisK Kwlmb3IgKGkgPSAwOyBpIDwgc3JjLT5oZWlnaHQ7IGkrKykgeworCQlmb3IgKGogPSAwOyBqIDwg c3JjLT53aWR0aDsgaisrKSB7CisJCQlzaXplX3Qgc3JjX29mZnNldCA9IHNyYy0+b2Zmc2V0c1sw XTsKKwkJCXNpemVfdCBkc3Rfb2Zmc2V0ID0gZHN0LT5vZmZzZXRzWzBdOworCisJCQlzcmNfb2Zm c2V0ICs9IHNyYy0+c3RyaWRlc1swXSAqIGkgKyBqICogYnBwIC8gODsKKwkJCWRzdF9vZmZzZXQg Kz0gaWd0X3ZjNF90X3RpbGVkX29mZnNldChkc3Rfc3RyaWRlLAorCQkJCQkJCSAgICAgc3JjLT5o ZWlnaHQsCisJCQkJCQkJICAgICBicHAsIGosIGkpOworCisJCQlzd2l0Y2ggKGJwcCkgeworCQkJ Y2FzZSAxNjoKKwkJCQkqKHVpbnQxNl90ICopKGRzdF9idWYgKyBkc3Rfb2Zmc2V0KSA9CisJCQkJ CSoodWludDE2X3QgKikoc3JjX2J1ZiArIHNyY19vZmZzZXQpOworCQkJCWJyZWFrOworCQkJY2Fz ZSAzMjoKKwkJCQkqKHVpbnQzMl90ICopKGRzdF9idWYgKyBkc3Rfb2Zmc2V0KSA9CisJCQkJCSoo dWludDMyX3QgKikoc3JjX2J1ZiArIHNyY19vZmZzZXQpOworCQkJCWJyZWFrOworCQkJZGVmYXVs dDoKKwkJCQlpZ3RfYXNzZXJ0KGZhbHNlKTsKKwkJCX0KKwkJfQorCX0KKworCWlndF9mYl91bm1h cF9idWZmZXIoc3JjLCBzcmNfYnVmKTsKKwlpZ3RfZmJfdW5tYXBfYnVmZmVyKGRzdCwgZHN0X2J1 Zik7CisKKwlyZXR1cm4gZmJfaWQ7Cit9CisKKy8qIENhbGN1bGF0ZSB0aGUgdC10aWxlIHdpZHRo IHNvIHRoYXQgc2l6ZSA9IHdpZHRoICogaGVpZ2h0ICogYnBwIC8gOC4gKi8KKyNkZWZpbmUgVkM0 X1RfVElMRV9XKHNpemUsIGhlaWdodCwgYnBwKSAoKHNpemUpIC8gKGhlaWdodCkgLyAoKGJwcCkg LyA4KSkKKworc2l6ZV90IGlndF92YzRfdF90aWxlZF9vZmZzZXQoc2l6ZV90IHN0cmlkZSwgc2l6 ZV90IGhlaWdodCwgc2l6ZV90IGJwcCwKKwkJCSAgICAgIHNpemVfdCB4LCBzaXplX3QgeSkKK3sK Kwljb25zdCBzaXplX3QgdDFrX21hcF9ldmVuW10gPSB7IDAsIDMsIDEsIDIgfTsKKwljb25zdCBz aXplX3QgdDFrX21hcF9vZGRbXSA9IHsgMiwgMSwgMywgMCB9OworCWNvbnN0IHNpemVfdCB0NGtf dF9oID0gMzI7CisJY29uc3Qgc2l6ZV90IHQxa190X2ggPSAxNjsKKwljb25zdCBzaXplX3QgdDY0 X3RfaCA9IDQ7CisJc2l6ZV90IG9mZnNldCA9IDA7CisJc2l6ZV90IHQ0a190X3csIHQ0a193LCB0 NGtfeCwgdDRrX3k7CisJc2l6ZV90IHQxa190X3csIHQxa194LCB0MWtfeTsKKwlzaXplX3QgdDY0 X3RfdywgdDY0X3gsIHQ2NF95OworCXNpemVfdCBwaXhfeCwgcGl4X3k7CisJdW5zaWduZWQgaW50 IGluZGV4OworCisJLyogVC10aWxpbmcgaXMgb25seSBzdXBwb3J0ZWQgZm9yIDE2IGFuZCAzMiBi cHAuICovCisJaWd0X2Fzc2VydChicHAgPT0gMTYgfHwgYnBwID09IDMyKTsKKworCS8qIFQtdGls aW5nIHN0cmlkZSBtdXN0IGJlIGFsaWduZWQgdG8gdGhlIDRLIHRpbGVzIHN0cmlkZXMuICovCisJ aWd0X2Fzc2VydCgoc3RyaWRlICUgKDQwOTYgLyB0NGtfdF9oKSkgPT0gMCk7CisKKwkvKiBDYWxj dWxhdGUgdGhlIHRpbGUgd2lkdGggZm9yIHRoZSBicHAuICovCisJdDRrX3RfdyA9IFZDNF9UX1RJ TEVfVyg0MDk2LCB0NGtfdF9oLCBicHApOworCXQxa190X3cgPSBWQzRfVF9USUxFX1coMTAyNCwg dDFrX3RfaCwgYnBwKTsKKwl0NjRfdF93ID0gVkM0X1RfVElMRV9XKDY0LCB0NjRfdF9oLCBicHAp OworCisJLyogQWxpZ25lZCB0b3RhbCB3aWR0aCBpbiBudW1iZXIgb2YgNEsgdGlsZXMuICovCisJ dDRrX3cgPSAoc3RyaWRlIC8gKGJwcCAvIDgpKSAvIHQ0a190X3c7CisKKwkvKiBYIGFuZCB5IGNv b3JkaW5hdGVzIGluIG51bWJlciBvZiA0SyB0aWxlcy4gKi8KKwl0NGtfeCA9IHggLyB0NGtfdF93 OworCXQ0a195ID0geSAvIHQ0a190X2g7CisKKwkvKiBJbmNyZWFzZSBvZmZzZXQgdG8gdGhlIGJl Z2lubmluZyBvZiB0aGUgNEsgdGlsZSByb3cuICovCisJb2Zmc2V0ICs9IHQ0a195ICogdDRrX3cg KiA0MDk2OworCisJLyogWCBhbmQgWSBjb29yZGluYXRlcyBpbiBudW1iZXIgb2YgMUsgdGlsZXMg d2l0aGluIHRoZSA0SyB0aWxlLiAqLworCXQxa194ID0gKHggJSB0NGtfdF93KSAvIHQxa190X3c7 CisJdDFrX3kgPSAoeSAlIHQ0a190X2gpIC8gdDFrX3RfaDsKKworCS8qIEluZGV4IGZvciAxSyB0 aWxlIG1hcCBsb29rdXAuICovCisJaW5kZXggPSAyICogdDFrX3kgKyB0MWtfeDsKKworCS8qIE9k ZCByb3dzIHN0YXJ0IGZyb20gdGhlIHJpZ2h0LCBldmVuIHJvd3MgZnJvbSB0aGUgbGVmdC4gKi8K KwlpZiAodDRrX3kgJSAyKSB7CisJCS8qIEluY3JlYXNlIG9mZnNldCB0byB0aGUgNEsgdGlsZSAo c3RhcnRpbmcgZnJvbSB0aGUgcmlnaHQpLiAqLworCQlvZmZzZXQgKz0gKHQ0a193IC0gdDRrX3gg LSAxKSAqIDQwOTY7CisKKwkJLyogSW5jcmFzZSBvZmZzZXQgdG8gdGhlIGJlZ2lubmluZyBvZiB0 aGUgKG9kZCkgMUsgdGlsZS4gKi8KKwkJb2Zmc2V0ICs9IHQxa19tYXBfb2RkW2luZGV4XSAqIDEw MjQ7CisJfSBlbHNlIHsKKwkJLyogSW5jcmVhc2Ugb2Zmc2V0IHRvIHRoZSA0SyB0aWxlIChzdGFy dGluZyBmcm9tIHRoZSBsZWZ0KS4gKi8KKwkJb2Zmc2V0ICs9IHQ0a194ICogNDA5NjsKKworCQkv KiBJbmNyYXNlIG9mZnNldCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSAoZXZlbikgMUsgdGlsZS4g Ki8KKwkJb2Zmc2V0ICs9IHQxa19tYXBfZXZlbltpbmRleF0gKiAxMDI0OworCX0KKworCS8qIFgg YW5kIFkgY29vcmRpbmF0ZXMgaW4gbnVtYmVyIG9mIDY0IGJ5dGUgdGlsZXMgd2l0aGluIHRoZSAx SyB0aWxlLiAqLworCXQ2NF94ID0gKHggJSB0MWtfdF93KSAvIHQ2NF90X3c7CisJdDY0X3kgPSAo eSAlIHQxa190X2gpIC8gdDY0X3RfaDsKKworCS8qIEluY3JlYXNlIG9mZnNldCB0byB0aGUgYmVn aW5uaW5nIG9mIHRoZSA2NC1ieXRlIHRpbGUuICovCisJb2Zmc2V0ICs9ICh0NjRfeSAqICh0MWtf dF93IC8gdDY0X3RfdykgKyB0NjRfeCkgKiA2NDsKKworCS8qIFggYW5kIFkgY29vcmRpbmF0ZXMg aW4gbnVtYmVyIG9mIHBpeGVscyB3aXRoaW4gdGhlIDY0LWJ5dGUgdGlsZS4gKi8KKwlwaXhfeCA9 IHggJSB0NjRfdF93OworCXBpeF95ID0geSAlIHQ2NF90X2g7CisKKwkvKiBJbmNyZWFzZSBvZmZz ZXQgdG8gdGhlIGNvcnJlY3QgcGl4ZWwuICovCisJb2Zmc2V0ICs9IChwaXhfeSAqIHQ2NF90X3cg KyBwaXhfeCkgKiBicHAgLyA4OworCisJcmV0dXJuIG9mZnNldDsKK30KZGlmZiAtLWdpdCBhL2xp Yi9pZ3RfdmM0LmggYi9saWIvaWd0X3ZjNC5oCmluZGV4IGViYzhhMzg4MWI1ZS4uZDVjNTI5YmJj Y2RhIDEwMDY0NAotLS0gYS9saWIvaWd0X3ZjNC5oCisrKyBiL2xpYi9pZ3RfdmM0LmgKQEAgLTMz LDQgKzMzLDggQEAgYm9vbCBpZ3RfdmM0X3B1cmdlYWJsZV9ibyhpbnQgZmQsIGludCBoYW5kbGUs IGJvb2wgcHVyZ2VhYmxlKTsKIHZvaWQgaWd0X3ZjNF9zZXRfdGlsaW5nKGludCBmZCwgdWludDMy X3QgaGFuZGxlLCB1aW50NjRfdCBtb2RpZmllcik7CiB1aW50NjRfdCBpZ3RfdmM0X2dldF90aWxp bmcoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUpOwogCit1bnNpZ25lZCBpbnQgaWd0X3ZjNF9mYl90 X3RpbGVkX2NvbnZlcnQoc3RydWN0IGlndF9mYiAqZHN0LCBzdHJ1Y3QgaWd0X2ZiICpzcmMpOwor c2l6ZV90IGlndF92YzRfdF90aWxlZF9vZmZzZXQoc2l6ZV90IHN0cmlkZSwgc2l6ZV90IGhlaWdo dCwgc2l6ZV90IGJwcCwKKwkJCSAgICAgIHNpemVfdCB4LCBzaXplX3QgeSk7CisKICNlbmRpZiAv KiBJR1RfVkM0X0ggKi8KLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pZ3QtZGV2Cg==