From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shashank Sharma Subject: [PATCH 04/11] drm: parse ycbcr420 vcb block Date: Fri, 7 Apr 2017 19:39:21 +0300 Message-ID: <1491583168-20042-5-git-send-email-shashank.sharma@intel.com> References: <1491583168-20042-1-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1491583168-20042-1-git-send-email-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org Cc: Jose Abreu List-Id: intel-gfx@lists.freedesktop.org SERNSSAyLjAgc3BlYyBhZGRzIHN1cHBvcnQgZm9yIHljYmNyNDIwIHN1YnNhbXBsZWQgb3V0cHV0 LgpDRUEtODYxLUYgYWRkcyB0d28gbmV3IGJsb2NrcyBpbiBFRElELCB0byBwcm92aWRlIGluZm9y bWF0aW9uIGFib3V0CnNpbmsncyBzdXBwb3J0IGZvciB5Y2JjcjQyMCBvdXRwdXQuCgpPbmUgb2Yg dGhlc2UgbmV3IGJsb2NrcyBpczogeWNiY3I0MjAgdmNiCi0geWNiY3I0MjAgdmlkZW8gY2FwYWJp bGl0eSBkYXRhICh2Y2IpIGJsb2NrOiB2aWRlbyBtb2RlcyB3aGljaCBjYW4gYmUKICBzdXBwb3J0 IGluIHljYmNyNDIwIG91dHB1dCBtb2RlIGFsc28gKGFsb25nIHdpdGggUkdCLCBZQ0JDUiA0NDQv NDIyIGV0YykKClRoaXMgcGF0Y2ggYWRkcyBwYXJzaW5nIGFuZCBoYW5kbGluZyBvZiB5Y2JjcjQy MC12Y2IgaW4gdGhlIERSTSBsYXllci4KVGhpcyBibG9jayBjb250YWlucyBhIGJpdG1hcCBhYm91 dCB3aGljaCBtb2RlLCBmcm9tIGFtb25nIHRoZSBsaXN0IG9mCm5vcm1hbCBzdmQgdmlkZW9tb2Rl cywgY2FuIHN1cHBvcnQgeWNiY3I0MjAgb3V0cHV0IHRvby4KClNvIGlmIGJpdCAwIGZyb20gZmly c3QgdmNiIGJ5dGUgaXMgc2V0LCBtZWFucyBmaXJzdCB2aWRlbyBtb2RlIGluIHRoZQpzdmQgbGlz dCwgY2FuIGJlIHN1cHBvcnRlZCBpbiB5Y2JjcjQyMCBvdXRwdXQgdG9vLiBCaXQgMiBtZWFucyBz ZWNvbmQKdmlkZW8gbW9kZSBmcm9tIHN2ZCBsaXN0LCBhbmQgc28gb24uCgpDYzogVmlsbGUgU3ly amFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBKb3NlIEFicmV1IDxqb2Fi cmV1QHN5bm9wc3lzLmNvbT4KU2lnbmVkLW9mZi1ieTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFu ay5zaGFybWFAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jICB8IDgw ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogaW5jbHVkZS9k cm0vZHJtX2Nvbm5lY3Rvci5oIHwgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRp ZC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMKaW5kZXggNjRkOGUyZS4uZDAxYjdkZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9lZGlkLmMKQEAgLTI3NzgsNiArMjc3OCw3IEBAIGFkZF9kZXRhaWxlZF9tb2Rlcyhz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBzdHJ1Y3QgZWRpZCAqZWRpZCwKICNkZWZp bmUgU1BFQUtFUl9CTE9DSwkweDA0CiAjZGVmaW5lIFZJREVPX0NBUEFCSUxJVFlfQkxPQ0sJMHgw NwogI2RlZmluZSBWSURFT19EQVRBX0JMT0NLXzQyMAkweDBFCisjZGVmaW5lIFZJREVPX0NBUF9C TE9DS180MjAJMHgwRgogI2RlZmluZSBFRElEX0JBU0lDX0FVRElPCSgxIDw8IDYpCiAjZGVmaW5l IEVESURfQ0VBX1lDUkNCNDQ0CSgxIDw8IDUpCiAjZGVmaW5lIEVESURfQ0VBX1lDUkNCNDIyCSgx IDw8IDQpCkBAIC0zMTQzLDExICszMTQ0LDIxIEBAIHN0YXRpYyBpbnQKIGRvX2NlYV9tb2Rlcyhz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBjb25zdCB1OCAqZGIsIHU4IGxlbikKIHsK IAlpbnQgaSwgbW9kZXMgPSAwOworCXU2NCBoZG1pXzQyMF9jYXBfbWFwID0gY29ubmVjdG9yLT5k aXNwbGF5X2luZm8uaGRtaS55Y2JjcjQyMF92Y2JfbWFwOwogCiAJZm9yIChpID0gMDsgaSA8IGxl bjsgaSsrKSB7CiAJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCQltb2RlID0gZHJt X2Rpc3BsYXlfbW9kZV9mcm9tX3ZpY19pbmRleChjb25uZWN0b3IsIGRiLCBsZW4sIGkpOwogCQlp ZiAobW9kZSkgeworCQkJLyoKKwkJCSAqIHljYmNyNDIwIGNhcGFiaWxpdHkgYmxvY2sgY29udGFp bnMgYSBiaXRtYXAgd2hpY2gKKwkJCSAqIGdpdmVzIHRoZSBpbmRleCBvZiBzdWNoIENFQSBtb2Rl cyBpbiBWREIsIHdoaWNoIGNhbgorCQkJICogc3VwcG9ydCB5Y2JjcjQyMCBzYW1wbGluZyBvdXRw dXQgYWxzby4KKwkJCSAqIEZvciBleGFtcGxlLCBpZiB0aGUgYml0IDAgaW4gYml0bWFwIGlzIHNl dCwKKwkJCSAqIGZpcnN0IG1vZGUgaW4gVkRCIGNhbiBzdXBwb3J0IHljYmNyNDIwIG91dHB1dCB0 b28uCisJCQkgKi8KKwkJCWlmIChoZG1pXzQyMF9jYXBfbWFwICYgKDEgPDwgaSkpCisJCQkJbW9k ZS0+ZmxhZ3MgfD0gRFJNX01PREVfRkxBR180MjA7CiAJCQlkcm1fbW9kZV9wcm9iZWRfYWRkKGNv bm5lY3RvciwgbW9kZSk7CiAJCQltb2RlcysrOwogCQl9CkBAIC0zNTI2LDkgKzM1MzcsNjQgQEAg c3RhdGljIGJvb2wgY2VhX2RiX2lzX2hkbWlfdmRiNDIwKGNvbnN0IHU4ICpkYikKIAlyZXR1cm4g dHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgY2VhX2RiX2lzX2hkbWlfdmNiNDIwKGNvbnN0IHU4ICpk YikKK3sKKwlpZiAoY2VhX2RiX3RhZyhkYikgIT0gVklERU9fQ0FQQUJJTElUWV9CTE9DSykKKwkJ cmV0dXJuIGZhbHNlOworCisJaWYgKGNlYV9kYl9leHRlbmRlZF90YWcoZGIpICE9IFZJREVPX0NB UF9CTE9DS180MjApCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOworfQorCiAjZGVm aW5lIGZvcl9lYWNoX2NlYV9kYihjZWEsIGksIHN0YXJ0LCBlbmQpIFwKIAlmb3IgKChpKSA9IChz dGFydCk7IChpKSA8IChlbmQpICYmIChpKSArIGNlYV9kYl9wYXlsb2FkX2xlbigmKGNlYSlbKGkp XSkgPCAoZW5kKTsgKGkpICs9IGNlYV9kYl9wYXlsb2FkX2xlbigmKGNlYSlbKGkpXSkgKyAxKQog CitzdGF0aWMgdm9pZCBkcm1fcGFyc2VfdmNiXzQyMF9iaXRtYXAoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwKKwkJCQkgICAgIGNvbnN0IHU4ICpkYikKK3sKKwlzdHJ1Y3QgZHJtX2Rp c3BsYXlfaW5mbyAqaW5mbyA9ICZjb25uZWN0b3ItPmRpc3BsYXlfaW5mbzsKKwlzdHJ1Y3QgZHJt X2hkbWlfaW5mbyAqaGRtaSA9ICZpbmZvLT5oZG1pOworCXU4IG1hcF9sZW4gPSBjZWFfZGJfcGF5 bG9hZF9sZW4oZGIpIC0gMTsKKwl1OCBjb3VudDsKKwl1NjQgbWFwID0gMDsKKworCWlmICghZGIp CisJCXJldHVybjsKKworCWlmIChtYXBfbGVuID09IDApIHsKKwkJLyogQWxsIENFQSBtb2RlcyBz dXBwb3J0IHljYmNyNDIwIHNhbXBsaW5nIGFsc28uKi8KKwkJaGRtaS0+eWNiY3I0MjBfdmNiX21h cCA9IFU2NF9NQVg7CisJCXJldHVybjsKKwl9CisKKwkvKgorCSAqIFRoaXMgbWFwIGluZGljYXRl cyB3aGljaCBvZiB0aGUgZXhpc3RpbmcgQ0VBIGJsb2NrIG1vZGVzCisJICogZnJvbSBWREIgY2Fu IHN1cHBvcnQgWUNCQ1I0MjAgb3V0cHV0IHRvby4gU28gaWYgYml0PTAgaXMKKwkgKiBzZXQsIGZp cnN0IG1vZGUgZnJvbSBWREIgY2FuIHN1cHBvcnQgWUNCQ1I0MjAgb3V0cHV0IHRvby4KKwkgKiBX ZSB3aWxsIHBhcnNlIGFuZCBrZWVwIHRoaXMgbWFwLCBiZWZvcmUgcGFyc2luZyBWREIgaXRzZWxm CisJICogdG8gYXZvaWQgZ29pbmcgdGhyb3VnaCB0aGUgc2FtZSBibG9jayBhZ2FpbiBhbmQgYWdh aW4uCisJICoKKwkgKiBTcGVjIGlzIG5vdCBjbGVhciBhYm91dCBtYXggcG9zc2libGUgc2l6ZSBv ZiB0aGlzIGJsb2NrLgorCSAqIENsYW1waW5nIG1heCBiaXRtYXAgYmxvY2sgc2l6ZSBhdCA4IGJ5 dGVzLiBFdmVyeSBieXRlIGNhbgorCSAqIGFkZHJlc3MgOCBDRUEgbW9kZXMsIGluIHRoaXMgd2F5 IHRoaXMgbWFwIGNhbiBhZGRyZXNzCisJICogOCo4ID0gZmlyc3QgNjQgU1ZEcy4KKwkgKi8KKwlp ZiAobWFwX2xlbiA+IDgpCisJCW1hcF9sZW4gPSA4OworCisJZm9yIChjb3VudCA9IDA7IGNvdW50 IDwgbWFwX2xlbjsgY291bnQrKykKKwkJbWFwID0gKGRiWzIgKyBjb3VudF0gPDwgOCAqIGNvdW50 KSB8IG1hcDsKKworCWlmIChtYXApIHsKKwkJRFJNX0RFQlVHX0tNUygiU2luayBzdXBwb3J0cyB5 Y2JjciA0MjBcbiIpOworCQlpbmZvLT5jb2xvcl9mb3JtYXRzIHw9IERSTV9DT0xPUl9GT1JNQVRf WUNSQ0I0MjA7CisJfQorCisJaGRtaS0+eWNiY3I0MjBfdmNiX21hcCA9IG1hcDsKK30KKwogc3Rh dGljIGludAogYWRkX2NlYV9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBz dHJ1Y3QgZWRpZCAqZWRpZCkKIHsKQEAgLTM1NjEsNiArMzYyNyw4IEBAIGFkZF9jZWFfbW9kZXMo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvciwgc3RydWN0IGVkaWQgKmVkaWQpCiAJCQkJ LyogQWRkIDQ6MjowKG9ubHkpIG1vZGVzIHByZXNlbnQgaW4gRURJRCAqLwogCQkJCW1vZGVzICs9 IGRvXzQyMF92ZGJfbW9kZXMoY29ubmVjdG9yLCB2ZGI0MjAsCiAJCQkJCQkJICB2ZGI0MjBfbGVu KTsKKwkJCX0gZWxzZSBpZiAoY2VhX2RiX2lzX2hkbWlfdmNiNDIwKGRiKSkgeworCQkJCWRybV9w YXJzZV92Y2JfNDIwX2JpdG1hcChjb25uZWN0b3IsIGRiKTsKIAkJCX0KIAkJfQogCX0KQEAgLTQy NDEsNiArNDMwOSw4IEBAIHN0YXRpYyB2b2lkIGRybV9wYXJzZV9jZWFfZXh0KHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQlkcm1fcGFyc2VfaGRtaV92c2RiX3ZpZGVvKGNvbm5l Y3RvciwgZGIpOwogCQlpZiAoY2VhX2RiX2lzX2hkbWlfZm9ydW1fdnNkYihkYikpCiAJCQlkcm1f cGFyc2VfaGRtaV9mb3J1bV92c2RiKGNvbm5lY3RvciwgZGIpOworCQlpZiAoY2VhX2RiX2lzX2hk bWlfdmNiNDIwKGRiKSkKKwkJCWRybV9wYXJzZV92Y2JfNDIwX2JpdG1hcChjb25uZWN0b3IsIGRi KTsKIAl9CiB9CiAKQEAgLTQ0OTIsNiArNDU2MiwxNCBAQCBpbnQgZHJtX2FkZF9lZGlkX21vZGVz KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIHN0cnVjdCBlZGlkICplZGlkKQogCW51 bV9tb2RlcyArPSBhZGRfY3Z0X21vZGVzKGNvbm5lY3RvciwgZWRpZCk7CiAJbnVtX21vZGVzICs9 IGFkZF9zdGFuZGFyZF9tb2Rlcyhjb25uZWN0b3IsIGVkaWQpOwogCW51bV9tb2RlcyArPSBhZGRf ZXN0YWJsaXNoZWRfbW9kZXMoY29ubmVjdG9yLCBlZGlkKTsKKworCS8qCisJICogQ0VBLTg2MS1G IGFkZHMgeWNiY3IgY2FwYWJpbGl0eSBtYXAgYmxvY2ssIGZvciBIRE1JIDIuMCBzaW5rcy4KKwkg KiBUbyBhdm9pZCBtdWx0aXBsZSBwYXJzaW5nIG9mIHNhbWUgYmxvY2ssIGxldHMgZ2V0IHRoZSBz aW5rIGluZm8KKwkgKiBiZWZvcmUgcGFyc2luZyBDRUEgbW9kZXMuCisJICovCisJZHJtX2FkZF9k aXNwbGF5X2luZm8oY29ubmVjdG9yLCBlZGlkKTsKKwogCW51bV9tb2RlcyArPSBhZGRfY2VhX21v ZGVzKGNvbm5lY3RvciwgZWRpZCk7CiAJbnVtX21vZGVzICs9IGFkZF9hbHRlcm5hdGVfY2VhX21v ZGVzKGNvbm5lY3RvciwgZWRpZCk7CiAJbnVtX21vZGVzICs9IGFkZF9kaXNwbGF5aWRfZGV0YWls ZWRfbW9kZXMoY29ubmVjdG9yLCBlZGlkKTsKQEAgLTQ1MDEsOCArNDU3OSw2IEBAIGludCBkcm1f YWRkX2VkaWRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvciwgc3RydWN0IGVk aWQgKmVkaWQpCiAJaWYgKHF1aXJrcyAmIChFRElEX1FVSVJLX1BSRUZFUl9MQVJHRV82MCB8IEVE SURfUVVJUktfUFJFRkVSX0xBUkdFXzc1KSkKIAkJZWRpZF9maXh1cF9wcmVmZXJyZWQoY29ubmVj dG9yLCBxdWlya3MpOwogCi0JZHJtX2FkZF9kaXNwbGF5X2luZm8oY29ubmVjdG9yLCBlZGlkKTsK LQogCWlmIChxdWlya3MgJiBFRElEX1FVSVJLX0ZPUkNFXzZCUEMpCiAJCWNvbm5lY3Rvci0+ZGlz cGxheV9pbmZvLmJwYyA9IDY7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0 b3IuaCBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAppbmRleCBjZWY3NmIyLi5kYmZhNmEx IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKKysrIGIvaW5jbHVkZS9k cm0vZHJtX2Nvbm5lY3Rvci5oCkBAIC0xMzYsNiArMTM2LDcgQEAgc3RydWN0IGRybV9zY2RjIHsK IHN0cnVjdCBkcm1faGRtaV9pbmZvIHsKIAkvKiogQHNjZGM6IHNpbmsncyBzY2RjIHN1cHBvcnQg YW5kIGNhcGFiaWxpdGllcyAqLwogCXN0cnVjdCBkcm1fc2NkYyBzY2RjOworCXU2NCB5Y2JjcjQy MF92Y2JfbWFwOwogfTsKIAogLyoqCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==