From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: [PATCH v10 11/23] drm/i915/dsc: Compute Rate Control parameters for DSC Date: Tue, 20 Nov 2018 10:37:24 -0800 Message-ID: <20181120183736.28054-12-manasi.d.navare@intel.com> References: <20181120183736.28054-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: <20181120183736.28054-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: dri-devel@lists.freedesktop.org RnJvbTogR2F1cmF2IEsgU2luZ2ggPGdhdXJhdi5rLnNpbmdoQGludGVsLmNvbT4KClRoaXMgY29t cHV0YXRpb24gb2YgUkMgcGFyYW1zIGhhcHBlbnMgaW4gdGhlIGF0b21pYyBjb21taXQgcGhhc2UK ZHVyaW5nIGNvbXB1dGVfY29uZmlnKCkgdG8gdmFsaWRhdGUgaWYgZGlzcGxheSBzdHJlYW0gY29t cHJlc3Npb24KY2FuIGJlIGVuYWJsZWQgZm9yIHRoZSByZXF1ZXN0ZWQgbW9kZS4KCnY3IChGcm9t IE1hbmFzaSk6CiogVXNlIERSTV9ERUJVRyBpbnN0ZWFkIG9mIERSTV9FUlJPUiAoVmlsbGUpCiog VXNlIEVycm9yIG51bWJlcmluc3RlYWQgb2YgLTEgKFZpbGxlKQp2NiAoRnJvbSBNYW5hc2kpOgoq IFVzZSA5IGluc3RlYWQgb2YgMHg5IGZvciBjb25zaXN0ZW5jeSAoQW51c2hhKQoKdjUgKEZyb20g TWFuYXNpKToKKiBGaXggZGltIGNoZWNrcGF0Y2ggd2FybmluZ3MvY2hlY2tzCnY0KEZyb20gR2F1 cmF2KToKKiBObyBjaGFuZ2UuUmViYXNlIG9uIGRybS10aXAKCnYzIChGcm9tIEdhdXJhdik6Ciog UmViYXNlIG9uIHRvcCBvZiBNYW5hc2kncyBsYXRlc3Qgc2VyaWVzCiogUmV0dXJuIC12ZSB2YWx1 ZSBpbiBjYXNlIG9mIGZhaWx1cmUgc2NlbmFyaW9zIChNYW5hc2kpCgpGaXggcmV2aWV3IGNvbW1l bnRzIGZyb20gVmlsbGU6CiogUmVtb3ZlIHVubmVjZXNzYXJ5IGNvbW1lbnRzCiogUmVtb3ZlIHVu bmVjZXNzYXJ5IHBhcmFudGhlc2lzCiogQWRkIGNvbW1lbnRzIGZvciBmZXcgUkMgcGFyYW1zIGNh bGN1bGF0aW9ucwoKdjIgKEZyb20gTWFuYXNpKToKKiBSZWJhc2UgR2F1cmF2J3MgcGF0Y2ggZnJv bSBpbnRlbC1nZnggdG8gZ2Z4LWludGVybmFsCiogVXNlIHN0cnVjdCBkcm1fZHNjX2NmZyBpbnN0 ZWFkIG9mIHN0cnVjdCBpbnRlbF9kcAphcyBhIHBhcmFtZXRlcgoKQ2M6IE1hbmFzaSBOYXZhcmUg PG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+CkNjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFA bGludXguaW50ZWwuY29tPgpDYzogVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEdhdXJhdiBLIFNpbmdoIDxnYXVyYXYuay5zaW5naEBp bnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBp bnRlbC5jb20+ClJldmlld2VkLWJ5OiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBp bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdmRzYy5jIHwgMTI2ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDEyNSBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfdmRzYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdmRzYy5jCmluZGV4IDBh MTkxOGYyZjY0My4uYjY0NGY2OWYxYzkzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF92ZHNjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdmRzYy5jCkBA IC0zMTcsNiArMzE3LDEzMCBAQCBzdGF0aWMgaW50IGdldF9jb2x1bW5faW5kZXhfZm9yX3JjX3Bh cmFtcyh1OCBiaXRzX3Blcl9jb21wb25lbnQpCiAJfQogfQogCitzdGF0aWMgaW50IGludGVsX2Nv bXB1dGVfcmNfcGFyYW1ldGVycyhzdHJ1Y3QgZHJtX2RzY19jb25maWcgKnZkc2NfY2ZnKQorewor CXVuc2lnbmVkIGxvbmcgZ3JvdXBzX3Blcl9saW5lID0gMDsKKwl1bnNpZ25lZCBsb25nIGdyb3Vw c190b3RhbCA9IDA7CisJdW5zaWduZWQgbG9uZyBudW1fZXh0cmFfbXV4X2JpdHMgPSAwOworCXVu c2lnbmVkIGxvbmcgc2xpY2VfYml0cyA9IDA7CisJdW5zaWduZWQgbG9uZyBocmRfZGVsYXkgPSAw OworCXVuc2lnbmVkIGxvbmcgZmluYWxfc2NhbGUgPSAwOworCXVuc2lnbmVkIGxvbmcgcmJzX21p biA9IDA7CisKKwkvKiBOdW1iZXIgb2YgZ3JvdXBzIHVzZWQgdG8gY29kZSBlYWNoIGxpbmUgb2Yg YSBzbGljZSAqLworCWdyb3Vwc19wZXJfbGluZSA9IERJVl9ST1VORF9VUCh2ZHNjX2NmZy0+c2xp Y2Vfd2lkdGgsCisJCQkJICAgICAgIERTQ19SQ19QSVhFTFNfUEVSX0dST1VQKTsKKworCS8qIGNo dW5rc2l6ZSBpbiBCeXRlcyAqLworCXZkc2NfY2ZnLT5zbGljZV9jaHVua19zaXplID0gRElWX1JP VU5EX1VQKHZkc2NfY2ZnLT5zbGljZV93aWR0aCAqCisJCQkJCQkgIHZkc2NfY2ZnLT5iaXRzX3Bl cl9waXhlbCwKKwkJCQkJCSAgKDggKiAxNikpOworCisJaWYgKHZkc2NfY2ZnLT5jb252ZXJ0X3Jn YikKKwkJbnVtX2V4dHJhX211eF9iaXRzID0gMyAqICh2ZHNjX2NmZy0+bXV4X3dvcmRfc2l6ZSAr CisJCQkJCSAgKDQgKiB2ZHNjX2NmZy0+Yml0c19wZXJfY29tcG9uZW50ICsgNCkKKwkJCQkJICAt IDIpOworCWVsc2UKKwkJbnVtX2V4dHJhX211eF9iaXRzID0gMyAqIHZkc2NfY2ZnLT5tdXhfd29y ZF9zaXplICsKKwkJCSg0ICogdmRzY19jZmctPmJpdHNfcGVyX2NvbXBvbmVudCArIDQpICsKKwkJ CTIgKiAoNCAqIHZkc2NfY2ZnLT5iaXRzX3Blcl9jb21wb25lbnQpIC0gMjsKKwkvKiBOdW1iZXIg b2YgYml0cyBpbiBvbmUgU2xpY2UgKi8KKwlzbGljZV9iaXRzID0gOCAqIHZkc2NfY2ZnLT5zbGlj ZV9jaHVua19zaXplICogdmRzY19jZmctPnNsaWNlX2hlaWdodDsKKworCXdoaWxlICgobnVtX2V4 dHJhX211eF9iaXRzID4gMCkgJiYKKwkgICAgICAgKChzbGljZV9iaXRzIC0gbnVtX2V4dHJhX211 eF9iaXRzKSAlIHZkc2NfY2ZnLT5tdXhfd29yZF9zaXplKSkKKwkJbnVtX2V4dHJhX211eF9iaXRz LS07CisKKwlpZiAoZ3JvdXBzX3Blcl9saW5lIDwgdmRzY19jZmctPmluaXRpYWxfc2NhbGVfdmFs dWUgLSA4KQorCQl2ZHNjX2NmZy0+aW5pdGlhbF9zY2FsZV92YWx1ZSA9IGdyb3Vwc19wZXJfbGlu ZSArIDg7CisKKwkvKiBzY2FsZV9kZWNyZW1lbnRfaW50ZXJ2YWwgY2FsY3VsYXRpb24gYWNjb3Jk aW5nIHRvIERTQyBzcGVjIDEuMTEgKi8KKwlpZiAodmRzY19jZmctPmluaXRpYWxfc2NhbGVfdmFs dWUgPiA4KQorCQl2ZHNjX2NmZy0+c2NhbGVfZGVjcmVtZW50X2ludGVydmFsID0gZ3JvdXBzX3Bl cl9saW5lIC8KKwkJCSh2ZHNjX2NmZy0+aW5pdGlhbF9zY2FsZV92YWx1ZSAtIDgpOworCWVsc2UK KwkJdmRzY19jZmctPnNjYWxlX2RlY3JlbWVudF9pbnRlcnZhbCA9IERTQ19TQ0FMRV9ERUNSRU1F TlRfSU5URVJWQUxfTUFYOworCisJdmRzY19jZmctPmZpbmFsX29mZnNldCA9IHZkc2NfY2ZnLT5y Y19tb2RlbF9zaXplIC0KKwkJKHZkc2NfY2ZnLT5pbml0aWFsX3htaXRfZGVsYXkgKgorCQkgdmRz Y19jZmctPmJpdHNfcGVyX3BpeGVsICsgOCkgLyAxNiArIG51bV9leHRyYV9tdXhfYml0czsKKwor CWlmICh2ZHNjX2NmZy0+ZmluYWxfb2Zmc2V0ID49IHZkc2NfY2ZnLT5yY19tb2RlbF9zaXplKSB7 CisJCURSTV9ERUJVR19LTVMoIkZpbmFsT2ZzIDwgUmNNb2RlbFN6ZSBmb3IgdGhpcyBJbml0aWFs WG1pdERlbGF5XG4iKTsKKwkJcmV0dXJuIC1FUkFOR0U7CisJfQorCisJZmluYWxfc2NhbGUgPSAo dmRzY19jZmctPnJjX21vZGVsX3NpemUgKiA4KSAvCisJCSh2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6 ZSAtIHZkc2NfY2ZnLT5maW5hbF9vZmZzZXQpOworCWlmICh2ZHNjX2NmZy0+c2xpY2VfaGVpZ2h0 ID4gMSkKKwkJLyoKKwkJICogTmZsQnBnT2Zmc2V0IGlzIDE2IGJpdCB2YWx1ZSB3aXRoIDExIGZy YWN0aW9uYWwgYml0cworCQkgKiBoZW5jZSB3ZSBtdWx0aXBseSBieSAyXjExIGZvciBwcmVzZXJ2 aW5nIHRoZQorCQkgKiBmcmFjdGlvbmFsIHBhcnQKKwkJICovCisJCXZkc2NfY2ZnLT5uZmxfYnBn X29mZnNldCA9IERJVl9ST1VORF9VUCgodmRzY19jZmctPmZpcnN0X2xpbmVfYnBnX29mZnNldCA8 PCAxMSksCisJCQkJCQkJKHZkc2NfY2ZnLT5zbGljZV9oZWlnaHQgLSAxKSk7CisJZWxzZQorCQl2 ZHNjX2NmZy0+bmZsX2JwZ19vZmZzZXQgPSAwOworCisJLyogMl4xNiAtIDEgKi8KKwlpZiAodmRz Y19jZmctPm5mbF9icGdfb2Zmc2V0ID4gNjU1MzUpIHsKKwkJRFJNX0RFQlVHX0tNUygiTmZsQnBn T2Zmc2V0IGlzIHRvbyBsYXJnZSBmb3IgdGhpcyBzbGljZSBoZWlnaHRcbiIpOworCQlyZXR1cm4g LUVSQU5HRTsKKwl9CisKKwkvKiBOdW1iZXIgb2YgZ3JvdXBzIHVzZWQgdG8gY29kZSB0aGUgZW50 aXJlIHNsaWNlICovCisJZ3JvdXBzX3RvdGFsID0gZ3JvdXBzX3Blcl9saW5lICogdmRzY19jZmct PnNsaWNlX2hlaWdodDsKKworCS8qIHNsaWNlX2JwZ19vZmZzZXQgaXMgMTYgYml0IHZhbHVlIHdp dGggMTEgZnJhY3Rpb25hbCBiaXRzICovCisJdmRzY19jZmctPnNsaWNlX2JwZ19vZmZzZXQgPSBE SVZfUk9VTkRfVVAoKCh2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSAtCisJCQkJCQkgICAgdmRzY19j ZmctPmluaXRpYWxfb2Zmc2V0ICsKKwkJCQkJCSAgICBudW1fZXh0cmFfbXV4X2JpdHMpIDw8IDEx KSwKKwkJCQkJCSAgZ3JvdXBzX3RvdGFsKTsKKworCWlmIChmaW5hbF9zY2FsZSA+IDkpIHsKKwkJ LyoKKwkJICogU2NhbGVJbmNyZW1lbnRJbnRlcnZhbCA9CisJCSAqIGZpbmFsb2Zmc2V0LygoTmZs QnBnT2Zmc2V0ICsgU2xpY2VCcGdPZmZzZXQpKjgoZmluYWxzY2FsZSAtIDEuMTI1KSkKKwkJICog YXMgKE5mbEJwZ09mZnNldCArIFNsaWNlQnBnT2Zmc2V0KSBoYXMgMTEgYml0IGZyYWN0aW9uYWwg dmFsdWUsCisJCSAqIHdlIG5lZWQgZGl2aWRlIGJ5IDJeMTEgZnJvbSBwc3REc2NDZmcgdmFsdWVz CisJCSAqLworCQl2ZHNjX2NmZy0+c2NhbGVfaW5jcmVtZW50X2ludGVydmFsID0KKwkJCQkodmRz Y19jZmctPmZpbmFsX29mZnNldCAqICgxIDw8IDExKSkgLworCQkJCSgodmRzY19jZmctPm5mbF9i cGdfb2Zmc2V0ICsKKwkJCQl2ZHNjX2NmZy0+c2xpY2VfYnBnX29mZnNldCkqCisJCQkJKGZpbmFs X3NjYWxlIC0gOSkpOworCX0gZWxzZSB7CisJCS8qCisJCSAqIElmIGZpbmFsU2NhbGVWYWx1ZSBp cyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gOSwgYSB2YWx1ZSBvZiAwIHNob3VsZAorCQkgKiBiZSB1 c2VkIHRvIGRpc2FibGUgdGhlIHNjYWxlIGluY3JlbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBzbGlj ZQorCQkgKi8KKwkJdmRzY19jZmctPnNjYWxlX2luY3JlbWVudF9pbnRlcnZhbCA9IDA7CisJfQor CisJaWYgKHZkc2NfY2ZnLT5zY2FsZV9pbmNyZW1lbnRfaW50ZXJ2YWwgPiA2NTUzNSkgeworCQlE Uk1fREVCVUdfS01TKCJTY2FsZUluY3JlbWVudEludGVydmFsIGlzIGxhcmdlIGZvciBzbGljZSBo ZWlnaHRcbiIpOworCQlyZXR1cm4gLUVSQU5HRTsKKwl9CisKKwkvKgorCSAqIERTQyBzcGVjIG1l bnRpb25zIHRoYXQgYml0c19wZXJfcGl4ZWwgc3BlY2lmaWVzIHRoZSB0YXJnZXQKKwkgKiBiaXRz L3BpeGVsIChicHApIHJhdGUgdGhhdCBpcyB1c2VkIGJ5IHRoZSBlbmNvZGVyLAorCSAqIGluIHN0 ZXBzIG9mIDEvMTYgb2YgYSBiaXQgcGVyIHBpeGVsCisJICovCisJcmJzX21pbiA9IHZkc2NfY2Zn LT5yY19tb2RlbF9zaXplIC0gdmRzY19jZmctPmluaXRpYWxfb2Zmc2V0ICsKKwkJRElWX1JPVU5E X1VQKHZkc2NfY2ZnLT5pbml0aWFsX3htaXRfZGVsYXkgKgorCQkJICAgICB2ZHNjX2NmZy0+Yml0 c19wZXJfcGl4ZWwsIDE2KSArCisJCWdyb3Vwc19wZXJfbGluZSAqIHZkc2NfY2ZnLT5maXJzdF9s aW5lX2JwZ19vZmZzZXQ7CisKKwlocmRfZGVsYXkgPSBESVZfUk9VTkRfVVAoKHJic19taW4gKiAx NiksIHZkc2NfY2ZnLT5iaXRzX3Blcl9waXhlbCk7CisJdmRzY19jZmctPnJjX2JpdHMgPSAoaHJk X2RlbGF5ICogdmRzY19jZmctPmJpdHNfcGVyX3BpeGVsKSAvIDE2OworCXZkc2NfY2ZnLT5pbml0 aWFsX2RlY19kZWxheSA9IGhyZF9kZWxheSAtIHZkc2NfY2ZnLT5pbml0aWFsX3htaXRfZGVsYXk7 CisKKwlyZXR1cm4gMDsKK30KKworCiBpbnQgaW50ZWxfZHBfY29tcHV0ZV9kc2NfcGFyYW1zKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBp cGVfY29uZmlnKQogewpAQCAtNDUxLDUgKzU3NSw1IEBAIGludCBpbnRlbF9kcF9jb21wdXRlX2Rz Y19wYXJhbXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAl2ZHNjX2NmZy0+aW5pdGlhbF9z Y2FsZV92YWx1ZSA9ICh2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSA8PCAzKSAvCiAJCSh2ZHNjX2Nm Zy0+cmNfbW9kZWxfc2l6ZSAtIHZkc2NfY2ZnLT5pbml0aWFsX29mZnNldCk7CiAKLQlyZXR1cm4g MDsKKwlyZXR1cm4gaW50ZWxfY29tcHV0ZV9yY19wYXJhbWV0ZXJzKHZkc2NfY2ZnKTsKIH0KLS0g CjIuMTkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==