From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mblankhorst.nl (mblankhorst.nl [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6A02B8984D for ; Mon, 18 Mar 2019 10:33:48 +0000 (UTC) From: Maarten Lankhorst Date: Mon, 18 Mar 2019 11:33:45 +0100 Message-Id: <20190318103345.17938-2-maarten.lankhorst@linux.intel.com> In-Reply-To: <20190318103345.17938-1-maarten.lankhorst@linux.intel.com> References: <20190318103345.17938-1-maarten.lankhorst@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 2/2] lib/igt_fb: Add support for Y410/Y416 formats, v3. 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 List-ID: WTQxMCBpcyBwYWNrZWQgd2l0aCBjb21wcmVzc2VkIGEgY2hhbm5lbCBhbmQgb25seSAzMiBicHAs IGxpa2UKMTAgYml0cyBSR0IgZm9ybWF0cy4gWTQxNiBpcyBhIHBhY2tlZCAxNiBiaXRzIHBlciBj b21wb25lbnQgZm9ybWF0LgoKQ2hhbmdlcyBzaW5jZSB2MToKLSBSZWJhc2Ugb24gdG9wIG9mIHVw c3RyZWFtIFlVViBjaGFuZ2VzLgpDaGFuZ2VzIHNpbmNlIHYyOgotIERpc2NhcmQgYWxwaGEgY2hh bm5lbCwgbm90IHVzZWQgdXBzdHJlYW0uCgpTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3Jz dCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgotLS0KIGxpYi9pZ3RfY29sb3Jf ZW5jb2RpbmcuYyB8ICAgMiArCiBsaWIvaWd0X2ZiLmMgICAgICAgICAgICAgfCAxMzAgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEzMiBp bnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9jb2xvcl9lbmNvZGluZy5jIGIvbGli L2lndF9jb2xvcl9lbmNvZGluZy5jCmluZGV4IDlmOWRjMTQzOWVlNC4uMGViZGRkY2Q0OWM1IDEw MDY0NAotLS0gYS9saWIvaWd0X2NvbG9yX2VuY29kaW5nLmMKKysrIGIvbGliL2lndF9jb2xvcl9l bmNvZGluZy5jCkBAIC0xNTQsNiArMTU0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjb2xvcl9l bmNvZGluZ19mb3JtYXQgewogCXsgRFJNX0ZPUk1BVF9ZMjEwLCA2NTQ3Mi5mLCA0MDk2LmYsIDYw MTYwLmYsIDQwOTYuZiwgMzI3NjguZiwgNjE0NDAuZiB9LAogCXsgRFJNX0ZPUk1BVF9ZMjEyLCA2 NTUyMC5mLCA0MDk2LmYsIDYwMTYwLmYsIDQwOTYuZiwgMzI3NjguZiwgNjE0NDAuZiB9LAogCXsg RFJNX0ZPUk1BVF9ZMjE2LCA2NTUzNS5mLCA0MDk2LmYsIDYwMTYwLmYsIDQwOTYuZiwgMzI3Njgu ZiwgNjE0NDAuZiB9LAorCXsgRFJNX0ZPUk1BVF9ZNDEwLCAxMDIzLmYsIDY0LmYsIDk0MC5mLCA2 NC5mLCA1MTIuZiwgOTYwLmYgfSwKKwl7IERSTV9GT1JNQVRfWTQxNiwgNjU1MzUuZiwgNDA5Ni5m LCA2MDE2MC5mLCA0MDk2LmYsIDMyNzY4LmYsIDYxNDQwLmYgfSwKIH07CiAKIHN0YXRpYyBjb25z dCBzdHJ1Y3QgY29sb3JfZW5jb2RpbmdfZm9ybWF0ICpsb29rdXBfZm91cmNjKHVpbnQzMl90IGZv dXJjYykKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZmIuYyBiL2xpYi9pZ3RfZmIuYwppbmRleCA3Mjdh M2YyYjBmYjguLjNmN2YxZDJkOWQ0MyAxMDA2NDQKLS0tIGEvbGliL2lndF9mYi5jCisrKyBiL2xp Yi9pZ3RfZmIuYwpAQCAtMjIxLDYgKzIyMSwxNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZvcm1h dF9kZXNjX3N0cnVjdCB7CiAJICAubnVtX3BsYW5lcyA9IDMsIC5wbGFuZV9icHAgPSB7IDgsIDgs IDgsIH0sCiAJICAuaHN1YiA9IDIsIC52c3ViID0gMSwKIAl9LAorCXsgLm5hbWUgPSAiWTQxMCIs IC5kZXB0aCA9IC0xLCAuZHJtX2lkID0gRFJNX0ZPUk1BVF9ZNDEwLAorCSAgLmNhaXJvX2lkID0g Q0FJUk9fRk9STUFUX1JHQjk2RiwKKwkgIC5udW1fcGxhbmVzID0gMSwgLnBsYW5lX2JwcCA9IHsg MzIsIH0sCisJICAuaHN1YiA9IDEsIC52c3ViID0gMSwKKwl9LAorCXsgLm5hbWUgPSAiWTQxNiIs IC5kZXB0aCA9IC0xLCAuZHJtX2lkID0gRFJNX0ZPUk1BVF9ZNDE2LAorCSAgLmNhaXJvX2lkID0g Q0FJUk9fRk9STUFUX1JHQjk2RiwKKwkgIC5udW1fcGxhbmVzID0gMSwgLnBsYW5lX2JwcCA9IHsg NjQsIH0sCisJICAuaHN1YiA9IDEsIC52c3ViID0gMSwKKwl9LAogCXsgLm5hbWUgPSAiUDAxMCIs IC5kZXB0aCA9IC0xLCAuZHJtX2lkID0gRFJNX0ZPUk1BVF9QMDEwLAogCSAgLmNhaXJvX2lkID0g Q0FJUk9fRk9STUFUX1JHQjk2RiwKIAkgIC5udW1fcGxhbmVzID0gMiwgLnBsYW5lX2JwcCA9IHsg MTYsIDMyIH0sCkBAIC02ODQsNiArNjk0LDI4IEBAIHN0YXRpYyB2b2lkIGNsZWFyX3l1dl9idWZm ZXIoc3RydWN0IGlndF9mYiAqZmIpCiAJCQlmYi0+c3RyaWRlc1swXSAqIGZiLT5wbGFuZV9oZWln aHRbMF0gLyBzaXplb2Yod2NoYXJfdCkpOwogCQlicmVhazsKIAorCWNhc2UgRFJNX0ZPUk1BVF9Z NDEwOgorCQl3bWVtc2V0KHB0ciArIGZiLT5vZmZzZXRzWzBdLAorCQkJZnVsbF9yYW5nZSA/IDB4 ZTAwMDAyMDAgOiAweGUwMDEwMjAwLAorCQlmYi0+c3RyaWRlc1swXSAqIGZiLT5wbGFuZV9oZWln aHRbMF0gLyBzaXplb2Yod2NoYXJfdCkpOworCQlicmVhazsKKwljYXNlIERSTV9GT1JNQVRfWTQx NjogeworCQlzdHJ1Y3QgYXl1djE2IHsgdWludDE2X3QgdSwgeSwgdiwgYTsgfTsKKwkJY29uc3Qg c3RydWN0IGF5dXYxNiBwaXhlbCA9IHsKKwkJCS5hID0gMHhmZmZmLAorCQkJLnYgPSBmdWxsX3Jh bmdlID8gMCA6IDB4MTAwMCwKKwkJCS55ID0gMHg4MDAwLAorCQkJLnUgPSBmdWxsX3JhbmdlID8g MCA6IDB4MTAwMAorCQl9OworCisJCWZvciAoaW50IGkgPSAwOyBpIDwgZmItPnBsYW5lX2hlaWdo dFswXTsgaSsrKSB7CisJCQlzdHJ1Y3QgYXl1djE2ICpjdXIgPSBwdHIgKyBmYi0+b2Zmc2V0c1sw XSArIGZiLT5zdHJpZGVzWzBdICogaTsKKworCQkJZm9yIChpbnQgaiA9IDA7IGkgPCBmYi0+cGxh bmVfd2lkdGhbMF07IGorKykKKwkJCQkqY3VyKysgPSBwaXhlbDsKKwkJfQorCQlicmVhazsKKwkJ fQogCX0KIAogCWlndF9mYl91bm1hcF9idWZmZXIoZmIsIHB0cik7CkBAIC0xOTQxLDYgKzE5NzMs NyBAQCBzdGF0aWMgdm9pZCBnZXRfeXV2X3BhcmFtZXRlcnMoc3RydWN0IGlndF9mYiAqZmIsIHN0 cnVjdCB5dXZfcGFyYW1ldGVycyAqcGFyYW1zKQogCQlwYXJhbXMtPnV2X2luYyA9IDQ7CiAJCWJy ZWFrOwogCisJY2FzZSBEUk1fRk9STUFUX1k0MTY6CiAJY2FzZSBEUk1fRk9STUFUX1hZVVY4ODg4 OgogCQlwYXJhbXMtPnlfaW5jID0gNDsKIAkJcGFyYW1zLT51dl9pbmMgPSA0OwpAQCAtMTk3MSw2 ICsyMDA0LDcgQEAgc3RhdGljIHZvaWQgZ2V0X3l1dl9wYXJhbWV0ZXJzKHN0cnVjdCBpZ3RfZmIg KmZiLCBzdHJ1Y3QgeXV2X3BhcmFtZXRlcnMgKnBhcmFtcykKIAljYXNlIERSTV9GT1JNQVRfWTIx MjoKIAljYXNlIERSTV9GT1JNQVRfWTIxNjoKIAljYXNlIERSTV9GT1JNQVRfWFlVVjg4ODg6CisJ Y2FzZSBEUk1fRk9STUFUX1k0MTY6CiAJCXBhcmFtcy0+eV9zdHJpZGUgPSBmYi0+c3RyaWRlc1sw XTsKIAkJcGFyYW1zLT51dl9zdHJpZGUgPSBmYi0+c3RyaWRlc1swXTsKIAkJYnJlYWs7CkBAIC0y MDQ1LDYgKzIwNzksMTIgQEAgc3RhdGljIHZvaWQgZ2V0X3l1dl9wYXJhbWV0ZXJzKHN0cnVjdCBp Z3RfZmIgKmZiLCBzdHJ1Y3QgeXV2X3BhcmFtZXRlcnMgKnBhcmFtcykKIAkJcGFyYW1zLT52X29m ZnNldCA9IGZiLT5vZmZzZXRzWzBdICsgNjsKIAkJYnJlYWs7CiAKKwljYXNlIERSTV9GT1JNQVRf WTQxNjoKKwkJcGFyYW1zLT55X29mZnNldCA9IGZiLT5vZmZzZXRzWzBdICsgMjsKKwkJcGFyYW1z LT51X29mZnNldCA9IGZiLT5vZmZzZXRzWzBdOworCQlwYXJhbXMtPnZfb2Zmc2V0ID0gZmItPm9m ZnNldHNbMF0gKyA0OworCQlicmVhazsKKwogCWNhc2UgRFJNX0ZPUk1BVF9YWVVWODg4ODoKIAkJ cGFyYW1zLT55X29mZnNldCA9IGZiLT5vZmZzZXRzWzBdICsgMTsKIAkJcGFyYW1zLT51X29mZnNl dCA9IGZiLT5vZmZzZXRzWzBdICsgMjsKQEAgLTIyNzMsNiArMjMxMyw3IEBAIHN0YXRpYyB2b2lk IGNvbnZlcnRfeXV2MTZfdG9fZmxvYXQoc3RydWN0IGZiX2NvbnZlcnQgKmN2dCkKIAkJfQogCiAJ CXB0ciArPSBmbG9hdF9zdHJpZGU7CisKIAkJeSArPSBwYXJhbXMueV9zdHJpZGUgLyBzaXplb2Yo KnkpOwogCiAJCWlmICgoc3JjX2ZtdC0+dnN1YiA9PSAxKSB8fCAoaSAlIHNyY19mbXQtPnZzdWIp KSB7CkBAIC0yMzc0LDYgKzI0MTUsODUgQEAgc3RhdGljIHZvaWQgY29udmVydF9mbG9hdF90b195 dXYxNihzdHJ1Y3QgZmJfY29udmVydCAqY3Z0KQogCX0KIH0KIAorc3RhdGljIHZvaWQgY29udmVy dF9ZNDEwX3RvX2Zsb2F0KHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQpCit7CisJaW50IGksIGo7CisJ Y29uc3QgdWludDMyX3QgKnl1eXY7CisJdWludDMyX3QgKmJ1ZjsKKwlmbG9hdCAqcHRyID0gY3Z0 LT5kc3QucHRyOworCXVuc2lnbmVkIGludCBmbG9hdF9zdHJpZGUgPSBjdnQtPmRzdC5mYi0+c3Ry aWRlc1swXSAvIHNpemVvZigqcHRyKTsKKwl1bnNpZ25lZCBpbnQgeXV5dl9zdHJpZGUgPSBjdnQt PnNyYy5mYi0+c3RyaWRlc1swXSAvIHNpemVvZigqeXV5dik7CisJc3RydWN0IGlndF9tYXQ0IG0g PSBpZ3RfeWNiY3JfdG9fcmdiX21hdHJpeChjdnQtPnNyYy5mYi0+ZHJtX2Zvcm1hdCwKKwkJCQkJ CSAgICBjdnQtPmRzdC5mYi0+ZHJtX2Zvcm1hdCwKKwkJCQkJCSAgICBjdnQtPnNyYy5mYi0+Y29s b3JfZW5jb2RpbmcsCisJCQkJCQkgICAgY3Z0LT5zcmMuZmItPmNvbG9yX3JhbmdlKTsKKworCWln dF9hc3NlcnQoY3Z0LT5zcmMuZmItPmRybV9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9ZNDEwICYmCisJ CSAgIGN2dC0+ZHN0LmZiLT5kcm1fZm9ybWF0ID09IElHVF9GT1JNQVRfRkxPQVQpOworCisJeXV5 diA9IGJ1ZiA9IGNvbnZlcnRfc3JjX2dldChjdnQpOworCisJZm9yIChpID0gMDsgaSA8IGN2dC0+ ZHN0LmZiLT5oZWlnaHQ7IGkrKykgeworCQlmb3IgKGogPSAwOyBqIDwgY3Z0LT5kc3QuZmItPndp ZHRoOyBqKyspIHsKKwkJCS8qIENvbnZlcnQgMngxIHBpeGVsIGJsb2NrcyAqLworCQkJc3RydWN0 IGlndF92ZWM0IHl1djsKKwkJCXN0cnVjdCBpZ3RfdmVjNCByZ2I7CisKKwkJCXl1di5kWzBdID0g KHl1eXZbal0gPj4gMTApICYgMHgzZmY7CisJCQl5dXYuZFsxXSA9IHl1eXZbal0gJiAweDNmZjsK KwkJCXl1di5kWzJdID0gKHl1eXZbal0gPj4gMjApICYgMHgzZmY7CisJCQl5dXYuZFszXSA9IDEu ZjsKKworCQkJcmdiID0gaWd0X21hdHJpeF90cmFuc2Zvcm0oJm0sICZ5dXYpOworCisJCQl3cml0 ZV9yZ2JmKCZwdHJbaiAqIDNdLCAmcmdiKTsKKwkJfQorCisJCXB0ciArPSBmbG9hdF9zdHJpZGU7 CisJCXl1eXYgKz0geXV5dl9zdHJpZGU7CisJfQorCisJY29udmVydF9zcmNfcHV0KGN2dCwgYnVm KTsKK30KKworc3RhdGljIHZvaWQgY29udmVydF9mbG9hdF90b19ZNDEwKHN0cnVjdCBmYl9jb252 ZXJ0ICpjdnQpCit7CisJaW50IGksIGo7CisJdWludDMyX3QgKnl1eXYgPSBjdnQtPmRzdC5wdHI7 CisJY29uc3QgZmxvYXQgKnB0ciA9IGN2dC0+c3JjLnB0cjsKKwl1bnNpZ25lZCBmbG9hdF9zdHJp ZGUgPSBjdnQtPnNyYy5mYi0+c3RyaWRlc1swXSAvIHNpemVvZigqcHRyKTsKKwl1bnNpZ25lZCB5 dXl2X3N0cmlkZSA9IGN2dC0+ZHN0LmZiLT5zdHJpZGVzWzBdIC8gc2l6ZW9mKCp5dXl2KTsKKwlz dHJ1Y3QgaWd0X21hdDQgbSA9IGlndF9yZ2JfdG9feWNiY3JfbWF0cml4KGN2dC0+c3JjLmZiLT5k cm1fZm9ybWF0LAorCQkJCQkJICAgIGN2dC0+ZHN0LmZiLT5kcm1fZm9ybWF0LAorCQkJCQkJICAg IGN2dC0+ZHN0LmZiLT5jb2xvcl9lbmNvZGluZywKKwkJCQkJCSAgICBjdnQtPmRzdC5mYi0+Y29s b3JfcmFuZ2UpOworCisJaWd0X2Fzc2VydChjdnQtPnNyYy5mYi0+ZHJtX2Zvcm1hdCA9PSBJR1Rf Rk9STUFUX0ZMT0FUICYmCisJCSAgIGN2dC0+ZHN0LmZiLT5kcm1fZm9ybWF0ID09IERSTV9GT1JN QVRfWTQxMCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgY3Z0LT5kc3QuZmItPmhlaWdodDsgaSsrKSB7 CisJCWZvciAoaiA9IDA7IGogPCBjdnQtPmRzdC5mYi0+d2lkdGg7IGorKykgeworCQkJc3RydWN0 IGlndF92ZWM0IHJnYjsKKwkJCXN0cnVjdCBpZ3RfdmVjNCB5dXY7CisJCQl1aW50MTZfdCB5LCBj YiwgY3I7CisKKwkJCXJlYWRfcmdiZigmcmdiLCAmcHRyW2ogKiAzXSk7CisKKwkJCXl1diA9IGln dF9tYXRyaXhfdHJhbnNmb3JtKCZtLCAmcmdiKTsKKwkJCXkgPSB5dXYuZFswXTsKKwkJCWNyID0g eXV2LmRbMV07CisJCQljYiA9IHl1di5kWzJdOworCisJCQl5dXl2W2pdID0gKChjciAmIDB4M2Zm KSA8PCAwKSB8CisJCQkJICAoKHkgJiAweDNmZikgPDwgMTApIHwKKwkJCQkgICgoY2IgJiAweDNm ZikgPDwgMjApOworCQl9CisKKwkJcHRyICs9IGZsb2F0X3N0cmlkZTsKKwkJeXV5diArPSB5dXl2 X3N0cmlkZTsKKwl9Cit9CisKIHN0YXRpYyB2b2lkIGNvbnZlcnRfcGl4bWFuKHN0cnVjdCBmYl9j b252ZXJ0ICpjdnQpCiB7CiAJcGl4bWFuX2Zvcm1hdF9jb2RlX3Qgc3JjX3BpeG1hbiA9IGRybV9m b3JtYXRfdG9fcGl4bWFuKGN2dC0+c3JjLmZiLT5kcm1fZm9ybWF0KTsKQEAgLTI0NjMsOCArMjU4 MywxMiBAQCBzdGF0aWMgdm9pZCBmYl9jb252ZXJ0KHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQpCiAJ CWNhc2UgRFJNX0ZPUk1BVF9ZMjEwOgogCQljYXNlIERSTV9GT1JNQVRfWTIxMjoKIAkJY2FzZSBE Uk1fRk9STUFUX1kyMTY6CisJCWNhc2UgRFJNX0ZPUk1BVF9ZNDE2OgogCQkJY29udmVydF95dXYx Nl90b19mbG9hdChjdnQpOwogCQkJcmV0dXJuOworCQljYXNlIERSTV9GT1JNQVRfWTQxMDoKKwkJ CWNvbnZlcnRfWTQxMF90b19mbG9hdChjdnQpOworCQkJcmV0dXJuOwogCQl9CiAJfSBlbHNlIGlm IChjdnQtPnNyYy5mYi0+ZHJtX2Zvcm1hdCA9PSBJR1RfRk9STUFUX0ZMT0FUKSB7CiAJCXN3aXRj aCAoY3Z0LT5kc3QuZmItPmRybV9mb3JtYXQpIHsKQEAgLTI0NzQsOCArMjU5OCwxMiBAQCBzdGF0 aWMgdm9pZCBmYl9jb252ZXJ0KHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQpCiAJCWNhc2UgRFJNX0ZP Uk1BVF9ZMjEwOgogCQljYXNlIERSTV9GT1JNQVRfWTIxMjoKIAkJY2FzZSBEUk1fRk9STUFUX1ky MTY6CisJCWNhc2UgRFJNX0ZPUk1BVF9ZNDE2OgogCQkJY29udmVydF9mbG9hdF90b195dXYxNihj dnQpOwogCQkJcmV0dXJuOworCQljYXNlIERSTV9GT1JNQVRfWTQxMDoKKwkJCWNvbnZlcnRfZmxv YXRfdG9fWTQxMChjdnQpOworCQkJcmV0dXJuOwogCQl9CiAJfQogCkBAIC0yOTQyLDYgKzMwNzAs OCBAQCBib29sIGlndF9mb3JtYXRfaXNfeXV2KHVpbnQzMl90IGRybV9mb3JtYXQpCiAJY2FzZSBE Uk1fRk9STUFUX1kyMTA6CiAJY2FzZSBEUk1fRk9STUFUX1kyMTI6CiAJY2FzZSBEUk1fRk9STUFU X1kyMTY6CisJY2FzZSBEUk1fRk9STUFUX1k0MTA6CisJY2FzZSBEUk1fRk9STUFUX1k0MTY6CiAJ Y2FzZSBEUk1fRk9STUFUX1lVWVY6CiAJY2FzZSBEUk1fRk9STUFUX1lWWVU6CiAJY2FzZSBEUk1f Rk9STUFUX1VZVlk6Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aWd0LWRldg==