From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id E79626E102 for ; Tue, 17 Dec 2019 00:00:54 +0000 (UTC) From: Imre Deak Date: Tue, 17 Dec 2019 02:00:33 +0200 Message-Id: <20191217000033.24913-1-imre.deak@intel.com> In-Reply-To: <20191216235407.23070-1-imre.deak@intel.com> References: <20191216235407.23070-1-imre.deak@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH v2] lib/igt_fb: Add support for the gen12 media compressed modifier 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: Dhinakaran Pandiyan List-ID: TWVkaWEgY29tcHJlc3NlZCBmcmFtZWJ1ZmZlcnMgZG9uJ3QgaGF2ZSBhIENDUyBDQyBwbGFuZS4g QWRkIGhlbHBlcnMgdG8Kc2VsZWN0IHRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgQ0NTIHBsYW5lcyBh bmQgbWFrZSBzdXJlIHdlIHNldHVwIHRoZQpwbGFuZXMgY29ycmVjdGx5IGZvciBNQyBmcmFtZWJ1 ZmZlcnMgdG9vLgoKTm90ZSB0aGF0IHRoZSBvcmRlciBvZiBNQyBmcmFtZWJ1ZmZlciBwbGFuZXMg dGhpcyBjaGFuZ2UgYXNzdW1lcyBpcwoKcGxhbmUgMDogWSBwbGFuZQpwbGFuZSAxOiBVViBwbGFu ZQpwbGFuZSAyOiBDQ1MgcGxhbmUgZm9yIHBsYW5lIDAKcGxhbmUgMzogQ0NTIHBsYW5lIGZvciBw bGFuZSAxCgp1bmxpa2UgdGhlIG9yZGVyIGRlZmluZWQgaW4gdGhlIGxhdGVzdCBkZWNvbXByZXNz aW9uIGtlcm5lbCBwYXRjaHNldC4KVGhlIGFib3ZlIG9yZGVyIGlzIHRoZSBsb2dpY2FsIG9uZSB0 aGF0IGFsbG93cyB1cyB0byBrZWVwIHRoZSBleGlzdGluZwp3YXkgb2YgaGFuZGxpbmcgdGhlIFkv VVYgcGxhbmVzLgoKdjI6Ci0gRml4IGlzX2Njc19wbGFuZSgpIGFkZGluZyB0aGUgbWlzc2luZyBp c19jY3NfbW9kaWZpZXIoKSBjaGVjay4KCkNjOiBNaWthIEthaG9sYSA8bWlrYS5rYWhvbGFAaW50 ZWwuY29tPgpDYzogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRl bC5jb20+CkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGltcmUuZGVha0BpbnRlbC5jb20+Ci0tLQogbGli L2lndF9mYi5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZmIuYyBiL2xpYi9pZ3RfZmIuYwppbmRleCAzYjE0 MWI5My4uMWRjY2RjNjYgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfZmIuYworKysgYi9saWIvaWd0X2Zi LmMKQEAgLTQ4NywxOCArNDg3LDUwIEBAIHN0YXRpYyBib29sIGlzX2Njc19tb2RpZmllcih1aW50 NjRfdCBtb2RpZmllcikKIAkJbW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEX0ND UzsKIH0KIAorc3RhdGljIGJvb2wgaXNfY2NzX3BsYW5lKGNvbnN0IHN0cnVjdCBpZ3RfZmIgKmZi LCBpbnQgcGxhbmUpCit7CisJaWYgKGlzX2dlbjEyX21jX2Njc19tb2RpZmllcihmYi0+bW9kaWZp ZXIpKQorCQlyZXR1cm4gcGxhbmUgPj0gZmItPm51bV9wbGFuZXMgLyAyOworCisJcmV0dXJuIGlz X2Njc19tb2RpZmllcihmYi0+bW9kaWZpZXIpICYmIHBsYW5lID4gMDsKK30KKworc3RhdGljIGJv b2wgaXNfZ2VuMTJfY2NzX3BsYW5lKGNvbnN0IHN0cnVjdCBpZ3RfZmIgKmZiLCBpbnQgcGxhbmUp Cit7CisJcmV0dXJuIGlzX2dlbjEyX2Njc19tb2RpZmllcihmYi0+bW9kaWZpZXIpICYmIGlzX2Nj c19wbGFuZShmYiwgcGxhbmUpOworfQorCitzdGF0aWMgYm9vbCBpc19nZW4xMl9jY3NfY2NfcGxh bmUoY29uc3Qgc3RydWN0IGlndF9mYiAqZmIsIGludCBwbGFuZSkKK3sKKwlyZXR1cm4gZmItPm1v ZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0dFTjEyX1JDX0NDU19DQyAmJgorCSAg ICAgICBwbGFuZSA9PSAyOworfQorCitzdGF0aWMgaW50IGNjc190b19tYWluX3BsYW5lKGNvbnN0 IHN0cnVjdCBpZ3RfZmIgKmZiLCBpbnQgcGxhbmUpCit7CisJaWYgKGlzX2dlbjEyX2Njc19jY19w bGFuZShmYiwgcGxhbmUpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiBwbGFuZSAtIGZiLT5udW1f cGxhbmVzIC8gMjsKK30KKwogc3RhdGljIHVuc2lnbmVkIGZiX3BsYW5lX3dpZHRoKGNvbnN0IHN0 cnVjdCBpZ3RfZmIgKmZiLCBpbnQgcGxhbmUpCiB7CiAJY29uc3Qgc3RydWN0IGZvcm1hdF9kZXNj X3N0cnVjdCAqZm9ybWF0ID0gbG9va3VwX2RybV9mb3JtYXQoZmItPmRybV9mb3JtYXQpOwogCi0J aWYgKGlzX2Njc19tb2RpZmllcihmYi0+bW9kaWZpZXIpICYmIHBsYW5lID09IDEpIHsKLQkJaWYg KGlzX2dlbjEyX2Njc19tb2RpZmllcihmYi0+bW9kaWZpZXIpKQotCQkJcmV0dXJuIERJVl9ST1VO RF9VUChmYi0+d2lkdGgsCi0JCQkJCSAgICA1MTIgLyAoZmItPnBsYW5lX2JwcFswXSAvIDgpKSAq IDY0OwotCQllbHNlCi0JCQlyZXR1cm4gRElWX1JPVU5EX1VQKGZiLT53aWR0aCwgMTAyNCkgKiAx Mjg7Ci0JfSBlbHNlIGlmIChpc19nZW4xMl9jY3NfbW9kaWZpZXIoZmItPm1vZGlmaWVyKSAmJiBw bGFuZSA9PSAyKSB7CisJaWYgKGlzX2dlbjEyX2Njc19jY19wbGFuZShmYiwgcGxhbmUpKSB7CiAJ CXJldHVybiA2NDsKKwl9IGlmIChpc19nZW4xMl9jY3NfcGxhbmUoZmIsIHBsYW5lKSkgeworCQlp bnQgbWFpbl9wbGFuZSA9IGNjc190b19tYWluX3BsYW5lKGZiLCBwbGFuZSk7CisJCWludCB3aWR0 aCA9IGZiLT53aWR0aDsKKworCQlpZiAobWFpbl9wbGFuZSkKKwkJCXdpZHRoID0gRElWX1JPVU5E X1VQKHdpZHRoLCBmb3JtYXQtPmhzdWIpOworCisJCXJldHVybiBESVZfUk9VTkRfVVAod2lkdGgs CisJCQkJICAgIDUxMiAvIChmYi0+cGxhbmVfYnBwW21haW5fcGxhbmVdIC8gOCkpICogNjQ7CisJ fSBlbHNlIGlmIChpc19jY3NfcGxhbmUoZmIsIHBsYW5lKSkgeworCQkgcmV0dXJuIERJVl9ST1VO RF9VUChmYi0+d2lkdGgsIDEwMjQpICogMTI4OwogCX0KIAogCWlmIChwbGFuZSA9PSAwKQpAQCAt NTExLDcgKzU0Myw3IEBAIHN0YXRpYyB1bnNpZ25lZCBmYl9wbGFuZV9icHAoY29uc3Qgc3RydWN0 IGlndF9mYiAqZmIsIGludCBwbGFuZSkKIHsKIAljb25zdCBzdHJ1Y3QgZm9ybWF0X2Rlc2Nfc3Ry dWN0ICpmb3JtYXQgPSBsb29rdXBfZHJtX2Zvcm1hdChmYi0+ZHJtX2Zvcm1hdCk7CiAKLQlpZiAo aXNfY2NzX21vZGlmaWVyKGZiLT5tb2RpZmllcikgJiYgKHBsYW5lID09IDEgfHwgcGxhbmUgPT0g MikpCisJaWYgKGlzX2Njc19wbGFuZShmYiwgcGxhbmUpKQogCQlyZXR1cm4gODsKIAllbHNlCiAJ CXJldHVybiBmb3JtYXQtPnBsYW5lX2JwcFtwbGFuZV07CkBAIC01MjEsMTMgKzU1MywxOCBAQCBz dGF0aWMgdW5zaWduZWQgZmJfcGxhbmVfaGVpZ2h0KGNvbnN0IHN0cnVjdCBpZ3RfZmIgKmZiLCBp bnQgcGxhbmUpCiB7CiAJY29uc3Qgc3RydWN0IGZvcm1hdF9kZXNjX3N0cnVjdCAqZm9ybWF0ID0g bG9va3VwX2RybV9mb3JtYXQoZmItPmRybV9mb3JtYXQpOwogCi0JaWYgKGlzX2Njc19tb2RpZmll cihmYi0+bW9kaWZpZXIpICYmIHBsYW5lID09IDEpIHsKLQkJaWYgKGlzX2dlbjEyX2Njc19tb2Rp ZmllcihmYi0+bW9kaWZpZXIpKQotCQkJcmV0dXJuIERJVl9ST1VORF9VUChmYi0+aGVpZ2h0LCAx MjgpICogNDsKLQkJZWxzZQotCQkJcmV0dXJuIERJVl9ST1VORF9VUChmYi0+aGVpZ2h0LCA1MTIp ICogMzI7Ci0JfSBlbHNlIGlmIChpc19nZW4xMl9jY3NfbW9kaWZpZXIoZmItPm1vZGlmaWVyKSAm JiBwbGFuZSA9PSAyKQorCWlmIChpc19nZW4xMl9jY3NfY2NfcGxhbmUoZmIsIHBsYW5lKSkgewog CQlyZXR1cm4gMTsKKwl9IGVsc2UgaWYgKGlzX2dlbjEyX2Njc19wbGFuZShmYiwgcGxhbmUpKSB7 CisJCWludCBoZWlnaHQgPSBmYi0+aGVpZ2h0OworCisJCWlmIChjY3NfdG9fbWFpbl9wbGFuZShm YiwgcGxhbmUpKQorCQkJaGVpZ2h0ID0gRElWX1JPVU5EX1VQKGhlaWdodCwgZm9ybWF0LT52c3Vi KTsKKworCQlyZXR1cm4gRElWX1JPVU5EX1VQKGhlaWdodCwgMTI4KSAqIDQ7CisJfSBlbHNlIGlm IChpc19jY3NfcGxhbmUoZmIsIHBsYW5lKSkgeworCQlyZXR1cm4gRElWX1JPVU5EX1VQKGZiLT5o ZWlnaHQsIDUxMikgKiAzMjsKKwl9CiAKIAlpZiAocGxhbmUgPT0gMCkKIAkJcmV0dXJuIGZiLT5o ZWlnaHQ7CkBAIC01MzcsMTYgKzU3NCwxNSBAQCBzdGF0aWMgdW5zaWduZWQgZmJfcGxhbmVfaGVp Z2h0KGNvbnN0IHN0cnVjdCBpZ3RfZmIgKmZiLCBpbnQgcGxhbmUpCiAKIHN0YXRpYyBpbnQgZmJf bnVtX3BsYW5lcyhjb25zdCBzdHJ1Y3QgaWd0X2ZiICpmYikKIHsKLQljb25zdCBzdHJ1Y3QgZm9y bWF0X2Rlc2Nfc3RydWN0ICpmb3JtYXQgPSBsb29rdXBfZHJtX2Zvcm1hdChmYi0+ZHJtX2Zvcm1h dCk7CisJaW50IG51bV9wbGFuZXMgPSBsb29rdXBfZHJtX2Zvcm1hdChmYi0+ZHJtX2Zvcm1hdCkt Pm51bV9wbGFuZXM7CiAKLQlpZiAoaXNfY2NzX21vZGlmaWVyKGZiLT5tb2RpZmllcikpIHsKLQkJ aWYgKGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1Nf Q0MpCi0JCQlyZXR1cm4gMzsKLQkJZWxzZQotCQkJcmV0dXJuIDI7Ci0JfSBlbHNlIHsKLQkJcmV0 dXJuIGZvcm1hdC0+bnVtX3BsYW5lczsKLQl9CisJaWYgKGlzX2Njc19tb2RpZmllcihmYi0+bW9k aWZpZXIpKQorCQludW1fcGxhbmVzICo9IDI7CisKKwlpZiAoZmItPm1vZGlmaWVyID09IEk5MTVf Rk9STUFUX01PRF9ZX1RJTEVEX0dFTjEyX1JDX0NDU19DQykKKwkJbnVtX3BsYW5lcysrOworCisJ cmV0dXJuIG51bV9wbGFuZXM7CiB9CiAKIHZvaWQgaWd0X2luaXRfZmIoc3RydWN0IGlndF9mYiAq ZmIsIGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LApAQCAtNjA0LDEyICs2NDAsMTIgQEAg c3RhdGljIHVpbnQzMl90IGNhbGNfcGxhbmVfc3RyaWRlKHN0cnVjdCBpZ3RfZmIgKmZiLCBpbnQg cGxhbmUpCiAJCSAqIHNvIHRoZSBlYXNpZXN0IHdheSBpcyB0byBhbGlnbiB0aGUgbHVtYSBzdHJp ZGUgdG8gMjU2LgogCQkgKi8KIAkJcmV0dXJuIEFMSUdOKG1pbl9zdHJpZGUsIDI1Nik7Ci0JfSBl bHNlIGlmIChpc19nZW4xMl9jY3NfbW9kaWZpZXIoZmItPm1vZGlmaWVyKSAmJiBwbGFuZSA9PSAx KSB7Ci0JCS8qIEEgbWFpbiBzdXJmYWNlIHVzaW5nIGEgQ0NTIEFVWCBzdXJmYWNlIG11c3QgYmUg NHg0IHRpbGVzIGFsaWduZWQuICovCi0JCXJldHVybiBBTElHTihtaW5fc3RyaWRlLCA2NCk7Ci0J fSBlbHNlIGlmIChpc19nZW4xMl9jY3NfbW9kaWZpZXIoZmItPm1vZGlmaWVyKSAmJiBwbGFuZSA9 PSAyKSB7CisJfSBlbHNlIGlmIChpc19nZW4xMl9jY3NfY2NfcGxhbmUoZmIsIHBsYW5lKSkgewog CQkvKiBjbGVhciBjb2xvciBhbHdheXMgZml4ZWQgdG8gNjQgYnl0ZXMgKi8KIAkJcmV0dXJuIDY0 OworCX0gZWxzZSBpZiAoaXNfZ2VuMTJfY2NzX3BsYW5lKGZiLCBwbGFuZSkpIHsKKwkJLyogQSBt YWluIHN1cmZhY2UgdXNpbmcgYSBDQ1MgQVVYIHN1cmZhY2UgbXVzdCBiZSA0eDQgdGlsZXMgYWxp Z25lZC4gKi8KKwkJcmV0dXJuIEFMSUdOKG1pbl9zdHJpZGUsIDY0KTsKIAl9IGVsc2UgewogCQl1 bnNpZ25lZCBpbnQgdGlsZV93aWR0aCwgdGlsZV9oZWlnaHQ7CiAKQEAgLTY0NCw3ICs2ODAsNyBA QCBzdGF0aWMgdWludDY0X3QgY2FsY19wbGFuZV9zaXplKHN0cnVjdCBpZ3RfZmIgKmZiLCBpbnQg cGxhbmUpCiAJCXNpemUgPSByb3VuZHVwX3Bvd2VyX29mX3R3byhzaXplKTsKIAogCQlyZXR1cm4g c2l6ZTsKLQl9IGVsc2UgaWYgKGlzX2dlbjEyX2Njc19tb2RpZmllcihmYi0+bW9kaWZpZXIpICYm IChwbGFuZSA9PSAxIHx8IHBsYW5lID09IDIpKSB7CisJfSBlbHNlIGlmIChpc19nZW4xMl9jY3Nf cGxhbmUoZmIsIHBsYW5lKSkgewogCQkvKiBUaGUgQVVYIENDUyBzdXJmYWNlIG11c3QgYmUgcGFn ZSBhbGlnbmVkICovCiAJCXJldHVybiAodWludDY0X3QpZmItPnN0cmlkZXNbcGxhbmVdICoKIAkJ CUFMSUdOKGZiLT5wbGFuZV9oZWlnaHRbcGxhbmVdLCA2NCk7Ci0tIAoyLjE3LjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBs aXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=