From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 3/8] drm/i915/skl+: calculate plane pixel rate (v3) Date: Mon, 7 Mar 2016 17:05:41 -0800 Message-ID: <1457399146-4578-4-git-send-email-matthew.d.roper@intel.com> References: <1457399146-4578-1-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 852556E1ED for ; Tue, 8 Mar 2016 01:07:25 +0000 (UTC) In-Reply-To: <1457399146-4578-1-git-send-email-matthew.d.roper@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 Cc: shobhit.kumar@intel.com List-Id: intel-gfx@lists.freedesktop.org RnJvbTogIkt1bWFyLCBNYWhlc2giIDxtYWhlc2gxLmt1bWFyQGludGVsLmNvbT4KCkRvbid0IHVz ZSBwaXBlIHBpeGVsIHJhdGUgZm9yIHBsYW5lIHBpeGVsIHJhdGUuIENhbGN1bGF0ZSBwbGFuZSBw aXhlbCBhY2NvcmRpbmcKdG8gZm9ybXVsYQoKYWRqdXN0ZWQgcGxhbmVfcGl4ZWxfcmF0ZSA9IGFk anVzdGVkIHBpcGVfcGl4ZWxfcmF0ZSAqIGRvd25zY2FsZSBhbW1vdW50Cgpkb3duc2NhbGUgYW1v dW50ID0gbWF4WzEsIHNyY19oL2RzdF9oXSAqIG1heFsxLCBzcmNfdy9kc3Rfd10KaWYgOTAvMjcw IHJvdGF0aW9uIHVzZSByb3RhdGVkIHdpZHRoICYgaGVpZ2h0Cgp2MjogdXNlIGludGVsX3BsYW5l X3N0YXRlLT52aXNpYmxlIGluc3RlYWQgb2YgKGZiID09IE5VTEwpIGFzIHBlciBNYXR0J3MKICAg IGNvbW1lbnQuCgp2MyAoYnkgTWF0dCk6CiAtIEtlZXAgZG93bnNjYWxlIGFtb3VudCBpbiAxNi4x NiBmaXhlZCBwb2ludCByYXRoZXIgdGhhbiBjb252ZXJ0aW5nIHRvCiAgIGRlY2ltYWwgZml4ZWQg cG9pbnQuCiAtIFN0b3JlIGFkanVzdGVkIHBsYW5lIHBpeGVsIHJhdGUgaW4gcGxhbmUgc3RhdGUg aW5zdGVhZCBvZiB0aGUgcGxhbmUKICAgcGFyYW1ldGVycyBzdHJ1Y3R1cmUgdGhhdCB3ZSBubyBs b25nZXIgdXNlLgoKQ2M6IG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20KU2lnbmVkLW9mZi1ieTog S3VtYXIsIE1haGVzaCA8bWFoZXNoMS5rdW1hckBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IE1h dHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggfCAgMyArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0u YyAgfCA4NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiAyIGZpbGVz IGNoYW5nZWQsIDg2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAppbmRleCAzZGFmMWUzLi5mMDIyOTExIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaApAQCAtMzM0LDYgKzMzNCw5IEBAIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSB7CiAKIAkv KiBhc3luYyBmbGlwIHJlbGF0ZWQgc3RydWN0dXJlcyAqLwogCXN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqd2FpdF9yZXE7CisKKwkvKiBTdG9yZXMgdGhlIGFkanVzdGVkIHBsYW5lIHBpeGVs IHJhdGUgZm9yIFdNIGNhbGN1bGF0aW9uIGZvciBTS0wrICovCisJdWludDMyX3QgcGxhbmVfcGl4 ZWxfcmF0ZTsKIH07CiAKIHN0cnVjdCBpbnRlbF9pbml0aWFsX3BsYW5lX2NvbmZpZyB7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYwppbmRleCBkOGFiOWYxLi5lODI4YmRlIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMKQEAgLTI2LDYgKzI2LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvY3B1ZnJl cS5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CiAjaW5jbHVkZSAiaTkxNV9k cnYuaCIKICNpbmNsdWRlICJpbnRlbF9kcnYuaCIKICNpbmNsdWRlICIuLi8uLi8uLi9wbGF0Zm9y bS94ODYvaW50ZWxfaXBzLmgiCkBAIC0yODQzLDYgKzI4NDQsNDMgQEAgc2tsX3dtX3BsYW5lX2lk KGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCiAJfQogfQogCisvKgorICogVGhpcyBm dW5jdGlvbiB0YWtlcyBkcm1fcGxhbmVfc3RhdGUgYXMgaW5wdXQKKyAqIGFuZCBkZWNpZGVzIHRo ZSBkb3duc2NhbGUgYW1vdW50IGFjY29yZGluZyB0byB0aGUgZm9ybXVsYQorICoKKyAqIGRvd25z Y2FsZSBhbW91bnQgPSBNYXhbMSwgSG9yaXpvbnRhbCBzb3VyY2Ugc2l6ZSAvIEhvcml6b250YWwg ZGVzdCBzaXplXQorICoKKyAqIFJldHVybiB2YWx1ZSBpcyBwcm92aWRlZCBpbiAxNi4xNiBmaXhl ZCBwb2ludCBmb3JtIHRvIHJldGFpbiBmcmFjdGlvbmFsIHBhcnQKKyAqIENhbGxlciBzaG91bGQg dGFrZSBjYXJlIG9mIGRpdmlkaW5nICYgUm91bmRpbmcgb2ZmIHRoZSB2YWx1ZQorICovCitzdGF0 aWMgdWludDMyX3QKK3NrbF9wbGFuZV9kb3duc2NhbGVfYW1vdW50KGNvbnN0IHN0cnVjdCBpbnRl bF9wbGFuZSAqaW50ZWxfcGxhbmUpCit7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcHN0YXRl ID0gaW50ZWxfcGxhbmUtPmJhc2Uuc3RhdGU7CisJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpp bnRlbF9wc3RhdGUgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShwc3RhdGUpOworCXVpbnQzMl90IGRv d25zY2FsZV9oLCBkb3duc2NhbGVfdzsKKwl1aW50MzJfdCBzcmNfdywgc3JjX2gsIGRzdF93LCBk c3RfaDsKKworCS8qIElmIHBsYW5lIG5vdCB2aXNpYmxlIHJldHVybiBhbW91bnQgYXMgdW5pdHkg Ki8KKwlpZiAoIWludGVsX3BzdGF0ZS0+dmlzaWJsZSkKKwkJcmV0dXJuIERSTV9QTEFORV9IRUxQ RVJfTk9fU0NBTElORzsKKworCS8qIG4uYi4sIHNyYyBpcyAxNi4xNiBmaXhlZCBwb2ludCwgZHN0 IGlzIHdob2xlIGludGVnZXIgKi8KKwlzcmNfdyA9IGRybV9yZWN0X3dpZHRoKCZpbnRlbF9wc3Rh dGUtPnNyYyk7CisJc3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJmludGVsX3BzdGF0ZS0+c3JjKTsK Kwlkc3RfdyA9IGRybV9yZWN0X3dpZHRoKCZpbnRlbF9wc3RhdGUtPmRzdCk7CisJZHN0X2ggPSBk cm1fcmVjdF9oZWlnaHQoJmludGVsX3BzdGF0ZS0+ZHN0KTsKKwlpZiAoaW50ZWxfcm90YXRpb25f OTBfb3JfMjcwKHBzdGF0ZS0+cm90YXRpb24pKQorCQlzd2FwKGRzdF93LCBkc3RfaCk7CisKKwlk b3duc2NhbGVfaCA9IG1heChzcmNfaCAvIGRzdF9oLCAodWludDMyX3QpRFJNX1BMQU5FX0hFTFBF Ul9OT19TQ0FMSU5HKTsKKwlkb3duc2NhbGVfdyA9IG1heChzcmNfaCAvIGRzdF9oLCAodWludDMy X3QpRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HKTsKKworCS8qIFByb3ZpZGUgcmVzdWx0IGlu IDE2LjE2IGZpeGVkIHBvaW50ICovCisJcmV0dXJuICh1aW50NjRfdClkb3duc2NhbGVfdyAqIGRv d25zY2FsZV9oID4+IDE2OworfQorCisKIHN0YXRpYyB2b2lkCiBza2xfZGRiX2dldF9waXBlX2Fs bG9jYXRpb25fbGltaXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICAgY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKQEAgLTMyNDgsOSArMzI4Niw5IEBAIHN0YXRp YyBib29sIHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIAkJc3dhcCh3aWR0aCwgaGVpZ2h0KTsKIAogCWNwcCA9IGRybV9mb3JtYXRf cGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwotCW1ldGhvZDEgPSBza2xfd21fbWV0aG9k MShza2xfcGlwZV9waXhlbF9yYXRlKGNzdGF0ZSksCisJbWV0aG9kMSA9IHNrbF93bV9tZXRob2Qx KGludGVsX3BzdGF0ZS0+cGxhbmVfcGl4ZWxfcmF0ZSwKIAkJCQkgY3BwLCBsYXRlbmN5KTsKLQlt ZXRob2QyID0gc2tsX3dtX21ldGhvZDIoc2tsX3BpcGVfcGl4ZWxfcmF0ZShjc3RhdGUpLAorCW1l dGhvZDIgPSBza2xfd21fbWV0aG9kMihpbnRlbF9wc3RhdGUtPnBsYW5lX3BpeGVsX3JhdGUsCiAJ CQkJIGNzdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsLAogCQkJCSB3aWR0aCwK IAkJCQkgY3BwLApAQCAtMzY5MSw2ICszNzI5LDQ2IEBAIHN0YXRpYyB2b2lkIHNrbF91cGRhdGVf b3RoZXJfcGlwZV93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCX0KIH0KIAorc3RhdGljIHVp bnQzMl90Citza2xfcGxhbmVfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0 YXRlLCBzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQoreworCXVpbnQ2NF90IGFkanVzdGVkX3Bp eGVsX3JhdGU7CisJdWludDY0X3QgZG93bnNjYWxlX2Ftb3VudDsKKworCS8qCisJICogYWRqdXN0 ZWQgcGxhbmUgcGl4ZWwgcmF0ZSA9IGFkanVzdGVkIHBpcGUgcGl4ZWwgcmF0ZQorCSAqIFBsYW5l IHBpeGVsIHJhdGUgPSBhZGp1c3RlZCBwbGFuZSBwaXhlbCByYXRlICogcGxhbmUgZG93biBzY2Fs ZQorCSAqIGFtb3VudAorCSAqLworCWFkanVzdGVkX3BpeGVsX3JhdGUgPSBza2xfcGlwZV9waXhl bF9yYXRlKGNzdGF0ZSk7CisJZG93bnNjYWxlX2Ftb3VudCA9IHNrbF9wbGFuZV9kb3duc2NhbGVf YW1vdW50KHBsYW5lKTsKKworCXJldHVybiAodWludDMyX3QpKGFkanVzdGVkX3BpeGVsX3JhdGUg KiBkb3duc2NhbGVfYW1vdW50ID4+IDE2KTsKK30KKworc3RhdGljIHZvaWQgc2tsX3NldF9wbGFu ZV9waXhlbF9yYXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKK3sKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNzdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOworCXN0cnVj dCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSBOVUxMOworCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBjcnRjLT5kZXY7CisKKwlpZiAoIWludGVsX2NydGMtPmFjdGl2ZSkKKwkJcmV0dXJuOwor CWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2LCBpbnRlbF9jcnRjLCBpbnRlbF9wbGFu ZSkgeworCQlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSA9ICZpbnRlbF9wbGFuZS0+YmFzZTsKKwkJ c3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwc3RhdGUgPQorCQkJdG9faW50ZWxfcGxhbmVfc3Rh dGUocGxhbmUtPnN0YXRlKTsKKworCQlpZiAoIXBzdGF0ZS0+dmlzaWJsZSkKKwkJCWNvbnRpbnVl OworCisJCXBzdGF0ZS0+cGxhbmVfcGl4ZWxfcmF0ZSA9IHNrbF9wbGFuZV9waXhlbF9yYXRlKGNz dGF0ZSwKKwkJCQkJCQkJaW50ZWxfcGxhbmUpOworCX0KKworfQorCiBzdGF0aWMgdm9pZCBza2xf Y2xlYXJfd20oc3RydWN0IHNrbF93bV92YWx1ZXMgKndhdGVybWFya3MsIGVudW0gcGlwZSBwaXBl KQogewogCXdhdGVybWFya3MtPndtX2xpbmV0aW1lW3BpcGVdID0gMDsKQEAgLTM3MjYsNiArMzgw NCw5IEBAIHN0YXRpYyB2b2lkIHNrbF91cGRhdGVfd20oc3RydWN0IGRybV9jcnRjICpjcnRjKQog CiAJc2tsX2NsZWFyX3dtKHJlc3VsdHMsIGludGVsX2NydGMtPnBpcGUpOwogCisJLyogQ2FsY3Vs YXRlIHBsYW5lIHBpeGVsIHJhdGUgZm9yIGVhY2ggcGxhbmUgaW4gYWR2YW5jZSAqLworCXNrbF9z ZXRfcGxhbmVfcGl4ZWxfcmF0ZShjcnRjKTsKKwogCWlmICghc2tsX3VwZGF0ZV9waXBlX3dtKGNy dGMsICZyZXN1bHRzLT5kZGIsIHBpcGVfd20pKQogCQlyZXR1cm47CiAKLS0gCjIuMS40CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK