From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: [PATCH v4 17/25] drm/i915/dsc: Compute Rate Control parameters for DSC Date: Tue, 11 Sep 2018 17:55:59 -0700 Message-ID: <20180912005607.29522-18-manasi.d.navare@intel.com> References: <20180912005607.29522-1-manasi.d.navare@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180912005607.29522-1-manasi.d.navare@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogR2F1cmF2IEsgU2luZ2ggPGdhdXJhdi5rLnNpbmdoQGludGVsLmNvbT4KClRoaXMgY29t cHV0YXRpb24gb2YgUkMgcGFyYW1zIGhhcHBlbnMgaW4gdGhlIGF0b21pYyBjb21taXQgcGhhc2UK ZHVyaW5nIGNvbXB1dGVfY29uZmlnKCkgdG8gdmFsaWRhdGUgaWYgZGlzcGxheSBzdHJlYW0gY29t cHJlc3Npb24KY2FuIGJlIGVuYWJsZWQgZm9yIHRoZSByZXF1ZXN0ZWQgbW9kZS4KCnY1IChGcm9t IE1hbmFzaSk6CiogRml4IGRpbSBjaGVja3BhdGNoIHdhcm5pbmdzL2NoZWNrcwp2NChGcm9tIEdh dXJhdik6CiogTm8gY2hhbmdlLlJlYmFzZSBvbiBkcm0tdGlwCgp2MyAoRnJvbSBHYXVyYXYpOgoq IFJlYmFzZSBvbiB0b3Agb2YgTWFuYXNpJ3MgbGF0ZXN0IHNlcmllcwoqIFJldHVybiAtdmUgdmFs dWUgaW4gY2FzZSBvZiBmYWlsdXJlIHNjZW5hcmlvcyAoTWFuYXNpKQoKRml4IHJldmlldyBjb21t ZW50cyBmcm9tIFZpbGxlOgoqIFJlbW92ZSB1bm5lY2Vzc2FyeSBjb21tZW50cwoqIFJlbW92ZSB1 bm5lY2Vzc2FyeSBwYXJhbnRoZXNpcwoqIEFkZCBjb21tZW50cyBmb3IgZmV3IFJDIHBhcmFtcyBj YWxjdWxhdGlvbnMKCnYyIChGcm9tIE1hbmFzaSk6CiogUmViYXNlIEdhdXJhdidzIHBhdGNoIGZy b20gaW50ZWwtZ2Z4IHRvIGdmeC1pbnRlcm5hbAoqIFVzZSBzdHJ1Y3QgZHJtX2RzY19jZmcgaW5z dGVhZCBvZiBzdHJ1Y3QgaW50ZWxfZHAKYXMgYSBwYXJhbWV0ZXIKCkNjOiBNYW5hc2kgTmF2YXJl IDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgpDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxh QGxpbnV4LmludGVsLmNvbT4KQ2M6IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBHYXVyYXYgSyBTaW5naCA8Z2F1cmF2Lmsuc2luZ2hA aW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVA aW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Zkc2MuYyB8IDEyNyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxMjcgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Zkc2MuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Zkc2MuYwppbmRleCAzNTFlYTdkNzFjMjEuLjRl NGUxZTU1ZjI0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdmRzYy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Zkc2MuYwpAQCAtMzE3LDYgKzMxNywx MzAgQEAgc3RhdGljIGludCBnZXRfY29sdW1uX2luZGV4X2Zvcl9yY19wYXJhbXModTggYml0c19w ZXJfY29tcG9uZW50KQogCX0KIH0KIAorc3RhdGljIGludCBpbnRlbF9jb21wdXRlX3JjX3BhcmFt ZXRlcnMoc3RydWN0IGRybV9kc2NfY29uZmlnICp2ZHNjX2NmZykKK3sKKwl1bnNpZ25lZCBsb25n IGdyb3Vwc19wZXJfbGluZSA9IDA7CisJdW5zaWduZWQgbG9uZyBncm91cHNfdG90YWwgPSAwOwor CXVuc2lnbmVkIGxvbmcgbnVtX2V4dHJhX211eF9iaXRzID0gMDsKKwl1bnNpZ25lZCBsb25nIHNs aWNlX2JpdHMgPSAwOworCXVuc2lnbmVkIGxvbmcgaHJkX2RlbGF5ID0gMDsKKwl1bnNpZ25lZCBs b25nIGZpbmFsX3NjYWxlID0gMDsKKwl1bnNpZ25lZCBsb25nIHJic19taW4gPSAwOworCisJLyog TnVtYmVyIG9mIGdyb3VwcyB1c2VkIHRvIGNvZGUgZWFjaCBsaW5lIG9mIGEgc2xpY2UgKi8KKwln cm91cHNfcGVyX2xpbmUgPSBESVZfUk9VTkRfVVAodmRzY19jZmctPnNsaWNlX3dpZHRoLAorCQkJ CSAgICAgICBEU0NfUkNfUElYRUxTX1BFUl9HUk9VUCk7CisKKwkvKiBjaHVua3NpemUgaW4gQnl0 ZXMgKi8KKwl2ZHNjX2NmZy0+c2xpY2VfY2h1bmtfc2l6ZSA9IERJVl9ST1VORF9VUCh2ZHNjX2Nm Zy0+c2xpY2Vfd2lkdGggKgorCQkJCQkJICB2ZHNjX2NmZy0+Yml0c19wZXJfcGl4ZWwsCisJCQkJ CQkgICg4ICogMTYpKTsKKworCWlmICh2ZHNjX2NmZy0+Y29udmVydF9yZ2IpCisJCW51bV9leHRy YV9tdXhfYml0cyA9IDMgKiAodmRzY19jZmctPm11eF93b3JkX3NpemUgKworCQkJCQkgICg0ICog dmRzY19jZmctPmJpdHNfcGVyX2NvbXBvbmVudCArIDQpCisJCQkJCSAgLSAyKTsKKwllbHNlCisJ CW51bV9leHRyYV9tdXhfYml0cyA9IDMgKiB2ZHNjX2NmZy0+bXV4X3dvcmRfc2l6ZSArCisJCQko NCAqIHZkc2NfY2ZnLT5iaXRzX3Blcl9jb21wb25lbnQgKyA0KSArCisJCQkyICogKDQgKiB2ZHNj X2NmZy0+Yml0c19wZXJfY29tcG9uZW50KSAtIDI7CisJLyogTnVtYmVyIG9mIGJpdHMgaW4gb25l IFNsaWNlICovCisJc2xpY2VfYml0cyA9IDggKiB2ZHNjX2NmZy0+c2xpY2VfY2h1bmtfc2l6ZSAq IHZkc2NfY2ZnLT5zbGljZV9oZWlnaHQ7CisKKwl3aGlsZSAoKG51bV9leHRyYV9tdXhfYml0cyA+ IDApICYmCisJICAgICAgICgoc2xpY2VfYml0cyAtIG51bV9leHRyYV9tdXhfYml0cykgJSB2ZHNj X2NmZy0+bXV4X3dvcmRfc2l6ZSkpCisJCW51bV9leHRyYV9tdXhfYml0cy0tOworCisJaWYgKGdy b3Vwc19wZXJfbGluZSA8IHZkc2NfY2ZnLT5pbml0aWFsX3NjYWxlX3ZhbHVlIC0gOCkKKwkJdmRz Y19jZmctPmluaXRpYWxfc2NhbGVfdmFsdWUgPSBncm91cHNfcGVyX2xpbmUgKyA4OworCisJLyog c2NhbGVfZGVjcmVtZW50X2ludGVydmFsIGNhbGN1bGF0aW9uIGFjY29yZGluZyB0byBEU0Mgc3Bl YyAxLjExICovCisJaWYgKHZkc2NfY2ZnLT5pbml0aWFsX3NjYWxlX3ZhbHVlID4gOCkKKwkJdmRz Y19jZmctPnNjYWxlX2RlY3JlbWVudF9pbnRlcnZhbCA9IGdyb3Vwc19wZXJfbGluZSAvCisJCQko dmRzY19jZmctPmluaXRpYWxfc2NhbGVfdmFsdWUgLSA4KTsKKwllbHNlCisJCXZkc2NfY2ZnLT5z Y2FsZV9kZWNyZW1lbnRfaW50ZXJ2YWwgPSBEU0NfU0NBTEVfREVDUkVNRU5UX0lOVEVSVkFMX01B WDsKKworCXZkc2NfY2ZnLT5maW5hbF9vZmZzZXQgPSB2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSAt CisJCSh2ZHNjX2NmZy0+aW5pdGlhbF94bWl0X2RlbGF5ICoKKwkJIHZkc2NfY2ZnLT5iaXRzX3Bl cl9waXhlbCArIDgpIC8gMTYgKyBudW1fZXh0cmFfbXV4X2JpdHM7CisKKwlpZiAodmRzY19jZmct PmZpbmFsX29mZnNldCA+PSB2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSkgeworCQlEUk1fRVJST1Io IkZpbmFsT2ZzIDwgUmNNb2RlbFN6ZSBmb3IgdGhpcyBJbml0aWFsWG1pdERlbGF5XG4iKTsKKwkJ cmV0dXJuIC0xOworCX0KKworCWZpbmFsX3NjYWxlID0gKHZkc2NfY2ZnLT5yY19tb2RlbF9zaXpl ICogOCkgLworCQkodmRzY19jZmctPnJjX21vZGVsX3NpemUgLSB2ZHNjX2NmZy0+ZmluYWxfb2Zm c2V0KTsKKwlpZiAodmRzY19jZmctPnNsaWNlX2hlaWdodCA+IDEpCisJCS8qCisJCSAqIE5mbEJw Z09mZnNldCBpcyAxNiBiaXQgdmFsdWUgd2l0aCAxMSBmcmFjdGlvbmFsIGJpdHMKKwkJICogaGVu Y2Ugd2UgbXVsdGlwbHkgYnkgMl4xMSBmb3IgcHJlc2VydmluZyB0aGUKKwkJICogZnJhY3Rpb25h bCBwYXJ0CisJCSAqLworCQl2ZHNjX2NmZy0+bmZsX2JwZ19vZmZzZXQgPSBESVZfUk9VTkRfVVAo KHZkc2NfY2ZnLT5maXJzdF9saW5lX2JwZ19vZmZzZXQgPDwgMTEpLAorCQkJCQkJCSh2ZHNjX2Nm Zy0+c2xpY2VfaGVpZ2h0IC0gMSkpOworCWVsc2UKKwkJdmRzY19jZmctPm5mbF9icGdfb2Zmc2V0 ID0gMDsKKworCS8qIDJeMTYgLSAxICovCisJaWYgKHZkc2NfY2ZnLT5uZmxfYnBnX29mZnNldCA+ IDY1NTM1KSB7CisJCURSTV9FUlJPUigiTmZsQnBnT2Zmc2V0IGlzIHRvbyBsYXJnZSBmb3IgdGhp cyBzbGljZSBoZWlnaHRcbiIpOworCQlyZXR1cm4gLTE7CisJfQorCisJLyogTnVtYmVyIG9mIGdy b3VwcyB1c2VkIHRvIGNvZGUgdGhlIGVudGlyZSBzbGljZSAqLworCWdyb3Vwc190b3RhbCA9IGdy b3Vwc19wZXJfbGluZSAqIHZkc2NfY2ZnLT5zbGljZV9oZWlnaHQ7CisKKwkvKiBzbGljZV9icGdf b2Zmc2V0IGlzIDE2IGJpdCB2YWx1ZSB3aXRoIDExIGZyYWN0aW9uYWwgYml0cyAqLworCXZkc2Nf Y2ZnLT5zbGljZV9icGdfb2Zmc2V0ID0gRElWX1JPVU5EX1VQKCgodmRzY19jZmctPnJjX21vZGVs X3NpemUgLQorCQkJCQkJICAgIHZkc2NfY2ZnLT5pbml0aWFsX29mZnNldCArCisJCQkJCQkgICAg bnVtX2V4dHJhX211eF9iaXRzKSA8PCAxMSksCisJCQkJCQkgIGdyb3Vwc190b3RhbCk7CisKKwlp ZiAoZmluYWxfc2NhbGUgPiAweDkpIHsKKwkJLyoKKwkJICogU2NhbGVJbmNyZW1lbnRJbnRlcnZh bCA9CisJCSAqIGZpbmFsb2Zmc2V0LygoTmZsQnBnT2Zmc2V0ICsgU2xpY2VCcGdPZmZzZXQpKjgo ZmluYWxzY2FsZSAtIDEuMTI1KSkKKwkJICogYXMgKE5mbEJwZ09mZnNldCArIFNsaWNlQnBnT2Zm c2V0KSBoYXMgMTEgYml0IGZyYWN0aW9uYWwgdmFsdWUsCisJCSAqIHdlIG5lZWQgZGl2aWRlIGJ5 IDJeMTEgZnJvbSBwc3REc2NDZmcgdmFsdWVzCisJCSAqLworCQl2ZHNjX2NmZy0+c2NhbGVfaW5j cmVtZW50X2ludGVydmFsID0KKwkJCQkodmRzY19jZmctPmZpbmFsX29mZnNldCAqICgxIDw8IDEx KSkgLworCQkJCSgodmRzY19jZmctPm5mbF9icGdfb2Zmc2V0ICsKKwkJCQl2ZHNjX2NmZy0+c2xp Y2VfYnBnX29mZnNldCkqCisJCQkJKGZpbmFsX3NjYWxlIC0gOSkpOworCX0gZWxzZSB7CisJCS8q CisJCSAqIElmIGZpbmFsU2NhbGVWYWx1ZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gOSwgYSB2 YWx1ZSBvZiAwIHNob3VsZAorCQkgKiBiZSB1c2VkIHRvIGRpc2FibGUgdGhlIHNjYWxlIGluY3Jl bWVudCBhdCB0aGUgZW5kIG9mIHRoZSBzbGljZQorCQkgKi8KKwkJdmRzY19jZmctPnNjYWxlX2lu Y3JlbWVudF9pbnRlcnZhbCA9IDA7CisJfQorCisJaWYgKHZkc2NfY2ZnLT5zY2FsZV9pbmNyZW1l bnRfaW50ZXJ2YWwgPiA2NTUzNSkgeworCQlEUk1fRVJST1IoIlNjYWxlSW5jcmVtZW50SW50ZXJ2 YWwgaXMgbGFyZ2UgZm9yIHNsaWNlIGhlaWdodFxuIik7CisJCXJldHVybiAtMTsKKwl9CisKKwkv KgorCSAqIERTQyBzcGVjIG1lbnRpb25zIHRoYXQgYml0c19wZXJfcGl4ZWwgc3BlY2lmaWVzIHRo ZSB0YXJnZXQKKwkgKiBiaXRzL3BpeGVsIChicHApIHJhdGUgdGhhdCBpcyB1c2VkIGJ5IHRoZSBl bmNvZGVyLAorCSAqIGluIHN0ZXBzIG9mIDEvMTYgb2YgYSBiaXQgcGVyIHBpeGVsCisJICovCisJ cmJzX21pbiA9IHZkc2NfY2ZnLT5yY19tb2RlbF9zaXplIC0gdmRzY19jZmctPmluaXRpYWxfb2Zm c2V0ICsKKwkJRElWX1JPVU5EX1VQKHZkc2NfY2ZnLT5pbml0aWFsX3htaXRfZGVsYXkgKgorCQkJ ICAgICB2ZHNjX2NmZy0+Yml0c19wZXJfcGl4ZWwsIDE2KSArCisJCWdyb3Vwc19wZXJfbGluZSAq IHZkc2NfY2ZnLT5maXJzdF9saW5lX2JwZ19vZmZzZXQ7CisKKwlocmRfZGVsYXkgPSBESVZfUk9V TkRfVVAoKHJic19taW4gKiAxNiksIHZkc2NfY2ZnLT5iaXRzX3Blcl9waXhlbCk7CisJdmRzY19j ZmctPnJjX2JpdHMgPSAoaHJkX2RlbGF5ICogdmRzY19jZmctPmJpdHNfcGVyX3BpeGVsKSAvIDE2 OworCXZkc2NfY2ZnLT5pbml0aWFsX2RlY19kZWxheSA9IGhyZF9kZWxheSAtIHZkc2NfY2ZnLT5p bml0aWFsX3htaXRfZGVsYXk7CisKKwlyZXR1cm4gMDsKK30KKworCiBpbnQgaW50ZWxfZHBfY29t cHV0ZV9kc2NfcGFyYW1zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJCQkJc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewpAQCAtNDUxLDUgKzU3NSw4IEBAIGludCBp bnRlbF9kcF9jb21wdXRlX2RzY19wYXJhbXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAl2 ZHNjX2NmZy0+aW5pdGlhbF9zY2FsZV92YWx1ZSA9ICh2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSA8 PCAzKSAvCiAJCSh2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSAtIHZkc2NfY2ZnLT5pbml0aWFsX29m ZnNldCk7CiAKKwlpZiAoaW50ZWxfY29tcHV0ZV9yY19wYXJhbWV0ZXJzKHZkc2NfY2ZnKSA8IDAp CisJCXJldHVybiAtMTsKKwogCXJldHVybiAwOwogfQotLSAKMi4xOC4wCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK