From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: [PATCH v5 17/28] drm/i915/dsc: Compute Rate Control parameters for DSC Date: Fri, 5 Oct 2018 16:22:55 -0700 Message-ID: <20181005232306.31133-18-manasi.d.navare@intel.com> References: <20181005232306.31133-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: <20181005232306.31133-1-manasi.d.navare@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: Manasi Navare , Gaurav K Singh List-Id: intel-gfx@lists.freedesktop.org RnJvbTogR2F1cmF2IEsgU2luZ2ggPGdhdXJhdi5rLnNpbmdoQGludGVsLmNvbT4KClRoaXMgY29t cHV0YXRpb24gb2YgUkMgcGFyYW1zIGhhcHBlbnMgaW4gdGhlIGF0b21pYyBjb21taXQgcGhhc2UK ZHVyaW5nIGNvbXB1dGVfY29uZmlnKCkgdG8gdmFsaWRhdGUgaWYgZGlzcGxheSBzdHJlYW0gY29t cHJlc3Npb24KY2FuIGJlIGVuYWJsZWQgZm9yIHRoZSByZXF1ZXN0ZWQgbW9kZS4KCnY1IChGcm9t IE1hbmFzaSk6CiogRml4IGRpbSBjaGVja3BhdGNoIHdhcm5pbmdzL2NoZWNrcwp2NChGcm9tIEdh dXJhdik6CiogTm8gY2hhbmdlLlJlYmFzZSBvbiBkcm0tdGlwCgp2MyAoRnJvbSBHYXVyYXYpOgoq IFJlYmFzZSBvbiB0b3Agb2YgTWFuYXNpJ3MgbGF0ZXN0IHNlcmllcwoqIFJldHVybiAtdmUgdmFs dWUgaW4gY2FzZSBvZiBmYWlsdXJlIHNjZW5hcmlvcyAoTWFuYXNpKQoKRml4IHJldmlldyBjb21t ZW50cyBmcm9tIFZpbGxlOgoqIFJlbW92ZSB1bm5lY2Vzc2FyeSBjb21tZW50cwoqIFJlbW92ZSB1 bm5lY2Vzc2FyeSBwYXJhbnRoZXNpcwoqIEFkZCBjb21tZW50cyBmb3IgZmV3IFJDIHBhcmFtcyBj YWxjdWxhdGlvbnMKCnYyIChGcm9tIE1hbmFzaSk6CiogUmViYXNlIEdhdXJhdidzIHBhdGNoIGZy b20gaW50ZWwtZ2Z4IHRvIGdmeC1pbnRlcm5hbAoqIFVzZSBzdHJ1Y3QgZHJtX2RzY19jZmcgaW5z dGVhZCBvZiBzdHJ1Y3QgaW50ZWxfZHAKYXMgYSBwYXJhbWV0ZXIKCkNjOiBNYW5hc2kgTmF2YXJl IDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgpDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxh QGxpbnV4LmludGVsLmNvbT4KQ2M6IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBHYXVyYXYgSyBTaW5naCA8Z2F1cmF2Lmsuc2luZ2hA aW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVA aW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Zkc2MuYyB8IDEyNyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxMjcgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Zkc2MuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Zkc2MuYwppbmRleCAzNTFlYTdkNzFjMjEuLjU5 NDE5NmE5ZDBmNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdmRzYy5j 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 cmV0dXJuIC1FSU5WQUw7CisJfQorCisJZmluYWxfc2NhbGUgPSAodmRzY19jZmctPnJjX21vZGVs X3NpemUgKiA4KSAvCisJCSh2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSAtIHZkc2NfY2ZnLT5maW5h bF9vZmZzZXQpOworCWlmICh2ZHNjX2NmZy0+c2xpY2VfaGVpZ2h0ID4gMSkKKwkJLyoKKwkJICog TmZsQnBnT2Zmc2V0IGlzIDE2IGJpdCB2YWx1ZSB3aXRoIDExIGZyYWN0aW9uYWwgYml0cworCQkg KiBoZW5jZSB3ZSBtdWx0aXBseSBieSAyXjExIGZvciBwcmVzZXJ2aW5nIHRoZQorCQkgKiBmcmFj dGlvbmFsIHBhcnQKKwkJICovCisJCXZkc2NfY2ZnLT5uZmxfYnBnX29mZnNldCA9IERJVl9ST1VO RF9VUCgodmRzY19jZmctPmZpcnN0X2xpbmVfYnBnX29mZnNldCA8PCAxMSksCisJCQkJCQkJKHZk c2NfY2ZnLT5zbGljZV9oZWlnaHQgLSAxKSk7CisJZWxzZQorCQl2ZHNjX2NmZy0+bmZsX2JwZ19v ZmZzZXQgPSAwOworCisJLyogMl4xNiAtIDEgKi8KKwlpZiAodmRzY19jZmctPm5mbF9icGdfb2Zm c2V0ID4gNjU1MzUpIHsKKwkJRFJNX0VSUk9SKCJOZmxCcGdPZmZzZXQgaXMgdG9vIGxhcmdlIGZv ciB0aGlzIHNsaWNlIGhlaWdodFxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIE51 bWJlciBvZiBncm91cHMgdXNlZCB0byBjb2RlIHRoZSBlbnRpcmUgc2xpY2UgKi8KKwlncm91cHNf dG90YWwgPSBncm91cHNfcGVyX2xpbmUgKiB2ZHNjX2NmZy0+c2xpY2VfaGVpZ2h0OworCisJLyog c2xpY2VfYnBnX29mZnNldCBpcyAxNiBiaXQgdmFsdWUgd2l0aCAxMSBmcmFjdGlvbmFsIGJpdHMg Ki8KKwl2ZHNjX2NmZy0+c2xpY2VfYnBnX29mZnNldCA9IERJVl9ST1VORF9VUCgoKHZkc2NfY2Zn LT5yY19tb2RlbF9zaXplIC0KKwkJCQkJCSAgICB2ZHNjX2NmZy0+aW5pdGlhbF9vZmZzZXQgKwor CQkJCQkJICAgIG51bV9leHRyYV9tdXhfYml0cykgPDwgMTEpLAorCQkJCQkJICBncm91cHNfdG90 YWwpOworCisJaWYgKGZpbmFsX3NjYWxlID4gMHg5KSB7CisJCS8qCisJCSAqIFNjYWxlSW5jcmVt ZW50SW50ZXJ2YWwgPQorCQkgKiBmaW5hbG9mZnNldC8oKE5mbEJwZ09mZnNldCArIFNsaWNlQnBn T2Zmc2V0KSo4KGZpbmFsc2NhbGUgLSAxLjEyNSkpCisJCSAqIGFzIChOZmxCcGdPZmZzZXQgKyBT bGljZUJwZ09mZnNldCkgaGFzIDExIGJpdCBmcmFjdGlvbmFsIHZhbHVlLAorCQkgKiB3ZSBuZWVk IGRpdmlkZSBieSAyXjExIGZyb20gcHN0RHNjQ2ZnIHZhbHVlcworCQkgKi8KKwkJdmRzY19jZmct PnNjYWxlX2luY3JlbWVudF9pbnRlcnZhbCA9CisJCQkJKHZkc2NfY2ZnLT5maW5hbF9vZmZzZXQg KiAoMSA8PCAxMSkpIC8KKwkJCQkoKHZkc2NfY2ZnLT5uZmxfYnBnX29mZnNldCArCisJCQkJdmRz Y19jZmctPnNsaWNlX2JwZ19vZmZzZXQpKgorCQkJCShmaW5hbF9zY2FsZSAtIDkpKTsKKwl9IGVs c2UgeworCQkvKgorCQkgKiBJZiBmaW5hbFNjYWxlVmFsdWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFs IHRvIDksIGEgdmFsdWUgb2YgMCBzaG91bGQKKwkJICogYmUgdXNlZCB0byBkaXNhYmxlIHRoZSBz Y2FsZSBpbmNyZW1lbnQgYXQgdGhlIGVuZCBvZiB0aGUgc2xpY2UKKwkJICovCisJCXZkc2NfY2Zn LT5zY2FsZV9pbmNyZW1lbnRfaW50ZXJ2YWwgPSAwOworCX0KKworCWlmICh2ZHNjX2NmZy0+c2Nh bGVfaW5jcmVtZW50X2ludGVydmFsID4gNjU1MzUpIHsKKwkJRFJNX0VSUk9SKCJTY2FsZUluY3Jl bWVudEludGVydmFsIGlzIGxhcmdlIGZvciBzbGljZSBoZWlnaHRcbiIpOworCQlyZXR1cm4gLUVJ TlZBTDsKKwl9CisKKwkvKgorCSAqIERTQyBzcGVjIG1lbnRpb25zIHRoYXQgYml0c19wZXJfcGl4 ZWwgc3BlY2lmaWVzIHRoZSB0YXJnZXQKKwkgKiBiaXRzL3BpeGVsIChicHApIHJhdGUgdGhhdCBp cyB1c2VkIGJ5IHRoZSBlbmNvZGVyLAorCSAqIGluIHN0ZXBzIG9mIDEvMTYgb2YgYSBiaXQgcGVy IHBpeGVsCisJICovCisJcmJzX21pbiA9IHZkc2NfY2ZnLT5yY19tb2RlbF9zaXplIC0gdmRzY19j ZmctPmluaXRpYWxfb2Zmc2V0ICsKKwkJRElWX1JPVU5EX1VQKHZkc2NfY2ZnLT5pbml0aWFsX3ht aXRfZGVsYXkgKgorCQkJICAgICB2ZHNjX2NmZy0+Yml0c19wZXJfcGl4ZWwsIDE2KSArCisJCWdy b3Vwc19wZXJfbGluZSAqIHZkc2NfY2ZnLT5maXJzdF9saW5lX2JwZ19vZmZzZXQ7CisKKwlocmRf ZGVsYXkgPSBESVZfUk9VTkRfVVAoKHJic19taW4gKiAxNiksIHZkc2NfY2ZnLT5iaXRzX3Blcl9w aXhlbCk7CisJdmRzY19jZmctPnJjX2JpdHMgPSAoaHJkX2RlbGF5ICogdmRzY19jZmctPmJpdHNf cGVyX3BpeGVsKSAvIDE2OworCXZkc2NfY2ZnLT5pbml0aWFsX2RlY19kZWxheSA9IGhyZF9kZWxh eSAtIHZkc2NfY2ZnLT5pbml0aWFsX3htaXRfZGVsYXk7CisKKwlyZXR1cm4gMDsKK30KKworCiBp bnQgaW50ZWxfZHBfY29tcHV0ZV9kc2NfcGFyYW1zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs CiAJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewpAQCAtNDUxLDUg KzU3NSw4IEBAIGludCBpbnRlbF9kcF9jb21wdXRlX2RzY19wYXJhbXMoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCwKIAl2ZHNjX2NmZy0+aW5pdGlhbF9zY2FsZV92YWx1ZSA9ICh2ZHNjX2NmZy0+ cmNfbW9kZWxfc2l6ZSA8PCAzKSAvCiAJCSh2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSAtIHZkc2Nf Y2ZnLT5pbml0aWFsX29mZnNldCk7CiAKKwlpZiAoaW50ZWxfY29tcHV0ZV9yY19wYXJhbWV0ZXJz KHZkc2NfY2ZnKSA8IDApCisJCXJldHVybiAtMTsKKwogCXJldHVybiAwOwogfQotLSAKMi4xOC4w CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK