From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: [PATCH v6 17/28] drm/i915/dsc: Compute Rate Control parameters for DSC Date: Wed, 24 Oct 2018 15:28:29 -0700 Message-ID: <20181024222840.25683-18-manasi.d.navare@intel.com> References: <20181024222840.25683-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: <20181024222840.25683-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 cHJlc3Npb24KY2FuIGJlIGVuYWJsZWQgZm9yIHRoZSByZXF1ZXN0ZWQgbW9kZS4KCnY2IChGcm9t IE1hbmFzaSk6CiogVXNlIDkgaW5zdGVhZCBvZiAweDkgZm9yIGNvbnNpc3RlbmN5IChBbnVzaGEp Cgp2NSAoRnJvbSBNYW5hc2kpOgoqIEZpeCBkaW0gY2hlY2twYXRjaCB3YXJuaW5ncy9jaGVja3MK djQoRnJvbSBHYXVyYXYpOgoqIE5vIGNoYW5nZS5SZWJhc2Ugb24gZHJtLXRpcAoKdjMgKEZyb20g R2F1cmF2KToKKiBSZWJhc2Ugb24gdG9wIG9mIE1hbmFzaSdzIGxhdGVzdCBzZXJpZXMKKiBSZXR1 cm4gLXZlIHZhbHVlIGluIGNhc2Ugb2YgZmFpbHVyZSBzY2VuYXJpb3MgKE1hbmFzaSkKCkZpeCBy ZXZpZXcgY29tbWVudHMgZnJvbSBWaWxsZToKKiBSZW1vdmUgdW5uZWNlc3NhcnkgY29tbWVudHMK KiBSZW1vdmUgdW5uZWNlc3NhcnkgcGFyYW50aGVzaXMKKiBBZGQgY29tbWVudHMgZm9yIGZldyBS QyBwYXJhbXMgY2FsY3VsYXRpb25zCgp2MiAoRnJvbSBNYW5hc2kpOgoqIFJlYmFzZSBHYXVyYXYn cyBwYXRjaCBmcm9tIGludGVsLWdmeCB0byBnZngtaW50ZXJuYWwKKiBVc2Ugc3RydWN0IGRybV9k c2NfY2ZnIGluc3RlYWQgb2Ygc3RydWN0IGludGVsX2RwCmFzIGEgcGFyYW1ldGVyCgpDYzogTWFu YXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KQ2M6IEphbmkgTmlrdWxhIDxq YW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogR2F1cmF2IEsgU2luZ2ggPGdhdXJh di5rLnNpbmdoQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNp LmQubmF2YXJlQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IEFudXNoYSBTcml2YXRzYSA8YW51c2hh LnNyaXZhdHNhQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF92ZHNj LmMgfCAxMjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwg MTI3IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF92ZHNjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF92ZHNjLmMKaW5kZXggMzUxZWE3 ZDcxYzIxLi5lNjE2OGExODk5ZTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Zkc2MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF92ZHNjLmMKQEAgLTMx Nyw2ICszMTcsMTMwIEBAIHN0YXRpYyBpbnQgZ2V0X2NvbHVtbl9pbmRleF9mb3JfcmNfcGFyYW1z KHU4IGJpdHNfcGVyX2NvbXBvbmVudCkKIAl9CiB9CiAKK3N0YXRpYyBpbnQgaW50ZWxfY29tcHV0 ZV9yY19wYXJhbWV0ZXJzKHN0cnVjdCBkcm1fZHNjX2NvbmZpZyAqdmRzY19jZmcpCit7CisJdW5z aWduZWQgbG9uZyBncm91cHNfcGVyX2xpbmUgPSAwOworCXVuc2lnbmVkIGxvbmcgZ3JvdXBzX3Rv dGFsID0gMDsKKwl1bnNpZ25lZCBsb25nIG51bV9leHRyYV9tdXhfYml0cyA9IDA7CisJdW5zaWdu ZWQgbG9uZyBzbGljZV9iaXRzID0gMDsKKwl1bnNpZ25lZCBsb25nIGhyZF9kZWxheSA9IDA7CisJ dW5zaWduZWQgbG9uZyBmaW5hbF9zY2FsZSA9IDA7CisJdW5zaWduZWQgbG9uZyByYnNfbWluID0g MDsKKworCS8qIE51bWJlciBvZiBncm91cHMgdXNlZCB0byBjb2RlIGVhY2ggbGluZSBvZiBhIHNs aWNlICovCisJZ3JvdXBzX3Blcl9saW5lID0gRElWX1JPVU5EX1VQKHZkc2NfY2ZnLT5zbGljZV93 aWR0aCwKKwkJCQkgICAgICAgRFNDX1JDX1BJWEVMU19QRVJfR1JPVVApOworCisJLyogY2h1bmtz aXplIGluIEJ5dGVzICovCisJdmRzY19jZmctPnNsaWNlX2NodW5rX3NpemUgPSBESVZfUk9VTkRf VVAodmRzY19jZmctPnNsaWNlX3dpZHRoICoKKwkJCQkJCSAgdmRzY19jZmctPmJpdHNfcGVyX3Bp eGVsLAorCQkJCQkJICAoOCAqIDE2KSk7CisKKwlpZiAodmRzY19jZmctPmNvbnZlcnRfcmdiKQor CQludW1fZXh0cmFfbXV4X2JpdHMgPSAzICogKHZkc2NfY2ZnLT5tdXhfd29yZF9zaXplICsKKwkJ CQkJICAoNCAqIHZkc2NfY2ZnLT5iaXRzX3Blcl9jb21wb25lbnQgKyA0KQorCQkJCQkgIC0gMik7 CisJZWxzZQorCQludW1fZXh0cmFfbXV4X2JpdHMgPSAzICogdmRzY19jZmctPm11eF93b3JkX3Np emUgKworCQkJKDQgKiB2ZHNjX2NmZy0+Yml0c19wZXJfY29tcG9uZW50ICsgNCkgKworCQkJMiAq ICg0ICogdmRzY19jZmctPmJpdHNfcGVyX2NvbXBvbmVudCkgLSAyOworCS8qIE51bWJlciBvZiBi aXRzIGluIG9uZSBTbGljZSAqLworCXNsaWNlX2JpdHMgPSA4ICogdmRzY19jZmctPnNsaWNlX2No dW5rX3NpemUgKiB2ZHNjX2NmZy0+c2xpY2VfaGVpZ2h0OworCisJd2hpbGUgKChudW1fZXh0cmFf bXV4X2JpdHMgPiAwKSAmJgorCSAgICAgICAoKHNsaWNlX2JpdHMgLSBudW1fZXh0cmFfbXV4X2Jp dHMpICUgdmRzY19jZmctPm11eF93b3JkX3NpemUpKQorCQludW1fZXh0cmFfbXV4X2JpdHMtLTsK KworCWlmIChncm91cHNfcGVyX2xpbmUgPCB2ZHNjX2NmZy0+aW5pdGlhbF9zY2FsZV92YWx1ZSAt IDgpCisJCXZkc2NfY2ZnLT5pbml0aWFsX3NjYWxlX3ZhbHVlID0gZ3JvdXBzX3Blcl9saW5lICsg ODsKKworCS8qIHNjYWxlX2RlY3JlbWVudF9pbnRlcnZhbCBjYWxjdWxhdGlvbiBhY2NvcmRpbmcg dG8gRFNDIHNwZWMgMS4xMSAqLworCWlmICh2ZHNjX2NmZy0+aW5pdGlhbF9zY2FsZV92YWx1ZSA+ IDgpCisJCXZkc2NfY2ZnLT5zY2FsZV9kZWNyZW1lbnRfaW50ZXJ2YWwgPSBncm91cHNfcGVyX2xp bmUgLworCQkJKHZkc2NfY2ZnLT5pbml0aWFsX3NjYWxlX3ZhbHVlIC0gOCk7CisJZWxzZQorCQl2 ZHNjX2NmZy0+c2NhbGVfZGVjcmVtZW50X2ludGVydmFsID0gRFNDX1NDQUxFX0RFQ1JFTUVOVF9J TlRFUlZBTF9NQVg7CisKKwl2ZHNjX2NmZy0+ZmluYWxfb2Zmc2V0ID0gdmRzY19jZmctPnJjX21v ZGVsX3NpemUgLQorCQkodmRzY19jZmctPmluaXRpYWxfeG1pdF9kZWxheSAqCisJCSB2ZHNjX2Nm Zy0+Yml0c19wZXJfcGl4ZWwgKyA4KSAvIDE2ICsgbnVtX2V4dHJhX211eF9iaXRzOworCisJaWYg KHZkc2NfY2ZnLT5maW5hbF9vZmZzZXQgPj0gdmRzY19jZmctPnJjX21vZGVsX3NpemUpIHsKKwkJ RFJNX0VSUk9SKCJGaW5hbE9mcyA8IFJjTW9kZWxTemUgZm9yIHRoaXMgSW5pdGlhbFhtaXREZWxh eVxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWZpbmFsX3NjYWxlID0gKHZkc2NfY2Zn LT5yY19tb2RlbF9zaXplICogOCkgLworCQkodmRzY19jZmctPnJjX21vZGVsX3NpemUgLSB2ZHNj X2NmZy0+ZmluYWxfb2Zmc2V0KTsKKwlpZiAodmRzY19jZmctPnNsaWNlX2hlaWdodCA+IDEpCisJ CS8qCisJCSAqIE5mbEJwZ09mZnNldCBpcyAxNiBiaXQgdmFsdWUgd2l0aCAxMSBmcmFjdGlvbmFs IGJpdHMKKwkJICogaGVuY2Ugd2UgbXVsdGlwbHkgYnkgMl4xMSBmb3IgcHJlc2VydmluZyB0aGUK KwkJICogZnJhY3Rpb25hbCBwYXJ0CisJCSAqLworCQl2ZHNjX2NmZy0+bmZsX2JwZ19vZmZzZXQg PSBESVZfUk9VTkRfVVAoKHZkc2NfY2ZnLT5maXJzdF9saW5lX2JwZ19vZmZzZXQgPDwgMTEpLAor CQkJCQkJCSh2ZHNjX2NmZy0+c2xpY2VfaGVpZ2h0IC0gMSkpOworCWVsc2UKKwkJdmRzY19jZmct Pm5mbF9icGdfb2Zmc2V0ID0gMDsKKworCS8qIDJeMTYgLSAxICovCisJaWYgKHZkc2NfY2ZnLT5u ZmxfYnBnX29mZnNldCA+IDY1NTM1KSB7CisJCURSTV9FUlJPUigiTmZsQnBnT2Zmc2V0IGlzIHRv byBsYXJnZSBmb3IgdGhpcyBzbGljZSBoZWlnaHRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9 CisKKwkvKiBOdW1iZXIgb2YgZ3JvdXBzIHVzZWQgdG8gY29kZSB0aGUgZW50aXJlIHNsaWNlICov CisJZ3JvdXBzX3RvdGFsID0gZ3JvdXBzX3Blcl9saW5lICogdmRzY19jZmctPnNsaWNlX2hlaWdo dDsKKworCS8qIHNsaWNlX2JwZ19vZmZzZXQgaXMgMTYgYml0IHZhbHVlIHdpdGggMTEgZnJhY3Rp b25hbCBiaXRzICovCisJdmRzY19jZmctPnNsaWNlX2JwZ19vZmZzZXQgPSBESVZfUk9VTkRfVVAo KCh2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSAtCisJCQkJCQkgICAgdmRzY19jZmctPmluaXRpYWxf b2Zmc2V0ICsKKwkJCQkJCSAgICBudW1fZXh0cmFfbXV4X2JpdHMpIDw8IDExKSwKKwkJCQkJCSAg Z3JvdXBzX3RvdGFsKTsKKworCWlmIChmaW5hbF9zY2FsZSA+IDkpIHsKKwkJLyoKKwkJICogU2Nh bGVJbmNyZW1lbnRJbnRlcnZhbCA9CisJCSAqIGZpbmFsb2Zmc2V0LygoTmZsQnBnT2Zmc2V0ICsg U2xpY2VCcGdPZmZzZXQpKjgoZmluYWxzY2FsZSAtIDEuMTI1KSkKKwkJICogYXMgKE5mbEJwZ09m ZnNldCArIFNsaWNlQnBnT2Zmc2V0KSBoYXMgMTEgYml0IGZyYWN0aW9uYWwgdmFsdWUsCisJCSAq IHdlIG5lZWQgZGl2aWRlIGJ5IDJeMTEgZnJvbSBwc3REc2NDZmcgdmFsdWVzCisJCSAqLworCQl2 ZHNjX2NmZy0+c2NhbGVfaW5jcmVtZW50X2ludGVydmFsID0KKwkJCQkodmRzY19jZmctPmZpbmFs X29mZnNldCAqICgxIDw8IDExKSkgLworCQkJCSgodmRzY19jZmctPm5mbF9icGdfb2Zmc2V0ICsK KwkJCQl2ZHNjX2NmZy0+c2xpY2VfYnBnX29mZnNldCkqCisJCQkJKGZpbmFsX3NjYWxlIC0gOSkp OworCX0gZWxzZSB7CisJCS8qCisJCSAqIElmIGZpbmFsU2NhbGVWYWx1ZSBpcyBsZXNzIHRoYW4g b3IgZXF1YWwgdG8gOSwgYSB2YWx1ZSBvZiAwIHNob3VsZAorCQkgKiBiZSB1c2VkIHRvIGRpc2Fi bGUgdGhlIHNjYWxlIGluY3JlbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBzbGljZQorCQkgKi8KKwkJ dmRzY19jZmctPnNjYWxlX2luY3JlbWVudF9pbnRlcnZhbCA9IDA7CisJfQorCisJaWYgKHZkc2Nf Y2ZnLT5zY2FsZV9pbmNyZW1lbnRfaW50ZXJ2YWwgPiA2NTUzNSkgeworCQlEUk1fRVJST1IoIlNj YWxlSW5jcmVtZW50SW50ZXJ2YWwgaXMgbGFyZ2UgZm9yIHNsaWNlIGhlaWdodFxuIik7CisJCXJl dHVybiAtRUlOVkFMOworCX0KKworCS8qCisJICogRFNDIHNwZWMgbWVudGlvbnMgdGhhdCBiaXRz X3Blcl9waXhlbCBzcGVjaWZpZXMgdGhlIHRhcmdldAorCSAqIGJpdHMvcGl4ZWwgKGJwcCkgcmF0 ZSB0aGF0IGlzIHVzZWQgYnkgdGhlIGVuY29kZXIsCisJICogaW4gc3RlcHMgb2YgMS8xNiBvZiBh IGJpdCBwZXIgcGl4ZWwKKwkgKi8KKwlyYnNfbWluID0gdmRzY19jZmctPnJjX21vZGVsX3NpemUg LSB2ZHNjX2NmZy0+aW5pdGlhbF9vZmZzZXQgKworCQlESVZfUk9VTkRfVVAodmRzY19jZmctPmlu aXRpYWxfeG1pdF9kZWxheSAqCisJCQkgICAgIHZkc2NfY2ZnLT5iaXRzX3Blcl9waXhlbCwgMTYp ICsKKwkJZ3JvdXBzX3Blcl9saW5lICogdmRzY19jZmctPmZpcnN0X2xpbmVfYnBnX29mZnNldDsK KworCWhyZF9kZWxheSA9IERJVl9ST1VORF9VUCgocmJzX21pbiAqIDE2KSwgdmRzY19jZmctPmJp dHNfcGVyX3BpeGVsKTsKKwl2ZHNjX2NmZy0+cmNfYml0cyA9IChocmRfZGVsYXkgKiB2ZHNjX2Nm Zy0+Yml0c19wZXJfcGl4ZWwpIC8gMTY7CisJdmRzY19jZmctPmluaXRpYWxfZGVjX2RlbGF5ID0g aHJkX2RlbGF5IC0gdmRzY19jZmctPmluaXRpYWxfeG1pdF9kZWxheTsKKworCXJldHVybiAwOwor fQorCisKIGludCBpbnRlbF9kcF9jb21wdXRlX2RzY19wYXJhbXMoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCwKIAkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7CkBA IC00NTEsNSArNTc1LDggQEAgaW50IGludGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFtcyhzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwLAogCXZkc2NfY2ZnLT5pbml0aWFsX3NjYWxlX3ZhbHVlID0gKHZk c2NfY2ZnLT5yY19tb2RlbF9zaXplIDw8IDMpIC8KIAkJKHZkc2NfY2ZnLT5yY19tb2RlbF9zaXpl IC0gdmRzY19jZmctPmluaXRpYWxfb2Zmc2V0KTsKIAorCWlmIChpbnRlbF9jb21wdXRlX3JjX3Bh cmFtZXRlcnModmRzY19jZmcpIDwgMCkKKwkJcmV0dXJuIC0xOworCiAJcmV0dXJuIDA7CiB9Ci0t IAoyLjE4LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=