From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas De Marchi Subject: [PATCH 5/9] drm/i915/dmc: extract function to parse package_header Date: Fri, 7 Jun 2019 02:12:26 -0700 Message-ID: <20190607091230.1489-6-lucas.demarchi@intel.com> References: <20190607091230.1489-1-lucas.demarchi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2010C89CE3 for ; Fri, 7 Jun 2019 09:12:49 +0000 (UTC) In-Reply-To: <20190607091230.1489-1-lucas.demarchi@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: Lucas De Marchi List-Id: intel-gfx@lists.freedesktop.org TGlrZSBwYXJzZV9jc3JfZndfY3NzKCkgdGhpcyBwYXJzZXMgdGhlIHBhY2thZ2VfaGVhZGVyIGZy b20gZmlybXdhcmUgYW5kCnNhdmVzIHRoZSByZWxldmFudCBmaWVsZHMgaW4gdGhlIGNzciBzdHJ1 Y3QuIEluIHRoaXMgZnVuY3Rpb24gd2UgYWxzbwpsb29rdXAgdGhlIGZ3X2luZm8gd2UgYXJlIGlu dGVyZXN0ZWQgaW4uCgpTaWduZWQtb2ZmLWJ5OiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2FzLmRlbWFy Y2hpQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYyB8IDEx NyArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjYgaW5z ZXJ0aW9ucygrKSwgNTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfY3NyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYwppbmRl eCA3OTczMjA3NWYwMDguLmRiNTc3MjYxNmE0ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfY3NyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3NyLmMK QEAgLTMzMiw2ICszMzIsNjQgQEAgc3RhdGljIHUzMiBmaW5kX2RtY19md19vZmZzZXQoY29uc3Qg c3RydWN0IGludGVsX2Z3X2luZm8gKmZ3X2luZm8sCiAJcmV0dXJuIGRtY19vZmZzZXQ7CiB9CiAK K3N0YXRpYyB1MzIKK3BhcnNlX2Nzcl9md19wYWNrYWdlKHN0cnVjdCBpbnRlbF9jc3IgKmNzciwK KwkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGFja2FnZV9oZWFkZXIgKnBhY2thZ2VfaGVhZGVy LAorCQkgICAgIGNvbnN0IHN0cnVjdCBzdGVwcGluZ19pbmZvICpzaSwKKwkJICAgICBzaXplX3Qg cmVtX3NpemUpCit7CisJdTMyIHBhY2thZ2Vfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaW50ZWxfcGFj a2FnZV9oZWFkZXIpOworCXUzMiBudW1fZW50cmllcywgbWF4X2VudHJpZXMsIGRtY19vZmZzZXQ7 CisJY29uc3Qgc3RydWN0IGludGVsX2Z3X2luZm8gKmZ3X2luZm87CisKKwlpZiAocmVtX3NpemUg PCBwYWNrYWdlX3NpemUpCisJCWdvdG8gZXJyb3JfdHJ1bmNhdGVkOworCisJaWYgKHBhY2thZ2Vf aGVhZGVyLT5oZWFkZXJfdmVyID09IDEpIHsKKwkJbWF4X2VudHJpZXMgPSBQQUNLQUdFX01BWF9G V19JTkZPX0VOVFJJRVM7CisJfSBlbHNlIGlmIChwYWNrYWdlX2hlYWRlci0+aGVhZGVyX3ZlciA9 PSAyKSB7CisJCW1heF9lbnRyaWVzID0gUEFDS0FHRV9WMl9NQVhfRldfSU5GT19FTlRSSUVTOwor CX0gZWxzZSB7CisJCURSTV9FUlJPUigiRE1DIGZpcm13YXJlIGhhcyB1bmtub3duIGhlYWRlciB2 ZXJzaW9uICV1XG4iLAorCQkJICBwYWNrYWdlX2hlYWRlci0+aGVhZGVyX3Zlcik7CisJCXJldHVy biAwOworCX0KKworCS8qCisJICogV2Ugc2hvdWxkIGFsd2F5cyBoYXZlIHNwYWNlIGZvciBtYXhf ZW50cmllcywKKwkgKiBldmVuIGlmIG5vdCBhbGwgYXJlIHVzZWQKKwkgKi8KKwlwYWNrYWdlX3Np emUgKz0gbWF4X2VudHJpZXMgKiBzaXplb2Yoc3RydWN0IGludGVsX2Z3X2luZm8pOworCWlmIChy ZW1fc2l6ZSA8IHBhY2thZ2Vfc2l6ZSkKKwkJZ290byBlcnJvcl90cnVuY2F0ZWQ7CisKKwlpZiAo cGFja2FnZV9oZWFkZXItPmhlYWRlcl9sZW4gKiA0ICE9IHBhY2thZ2Vfc2l6ZSkgeworCQlEUk1f RVJST1IoIkRNQyBmaXJtd2FyZSBoYXMgd3JvbmcgcGFja2FnZSBoZWFkZXIgbGVuZ3RoICIKKwkJ CSAgIigldSBieXRlcylcbiIsIHBhY2thZ2Vfc2l6ZSk7CisJCXJldHVybiAwOworCX0KKworCW51 bV9lbnRyaWVzID0gcGFja2FnZV9oZWFkZXItPm51bV9lbnRyaWVzOworCWlmIChXQVJOX09OKHBh Y2thZ2VfaGVhZGVyLT5udW1fZW50cmllcyA+IG1heF9lbnRyaWVzKSkKKwkJbnVtX2VudHJpZXMg PSBtYXhfZW50cmllczsKKworCWZ3X2luZm8gPSAoY29uc3Qgc3RydWN0IGludGVsX2Z3X2luZm8g KikKKwkJKCh1OCAqKXBhY2thZ2VfaGVhZGVyICsgc2l6ZW9mKCpwYWNrYWdlX2hlYWRlcikpOwor CWRtY19vZmZzZXQgPSBmaW5kX2RtY19md19vZmZzZXQoZndfaW5mbywgbnVtX2VudHJpZXMsIHNp KTsKKwlpZiAoZG1jX29mZnNldCA9PSBDU1JfREVGQVVMVF9GV19PRkZTRVQpIHsKKwkJRFJNX0VS Uk9SKCJETUMgZmlybXdhcmUgbm90IHN1cHBvcnRlZCBmb3IgJWMgc3RlcHBpbmdcbiIsCisJCQkg IHNpLT5zdGVwcGluZyk7CisJCXJldHVybiAwOworCX0KKworCS8qIGRtY19vZmZzZXQgaXMgaW4g ZHdvcmRzICovCisJcmV0dXJuIHBhY2thZ2Vfc2l6ZSArIGRtY19vZmZzZXQgKiA0OworCitlcnJv cl90cnVuY2F0ZWQ6CisJRFJNX0VSUk9SKCJUcnVuY2F0ZWQgRE1DIGZpcm13YXJlLCByZWZ1c2lu Zy5cbiIpOworCXJldHVybiAwOworfQorCiAvKiBSZXR1cm4gbnVtYmVyIG9mIGJ5dGVzIHBhcnNl ZCBvciAwIG9uIGVycm9yICovCiBzdGF0aWMgdTMyIHBhcnNlX2Nzcl9md19jc3Moc3RydWN0IGlu dGVsX2NzciAqY3NyLAogCQkJICAgIHN0cnVjdCBpbnRlbF9jc3NfaGVhZGVyICpjc3NfaGVhZGVy LApAQCAtMzc0LDcgKzQzMiw3IEBAIHN0YXRpYyB1MzIgKnBhcnNlX2Nzcl9mdyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJc3RydWN0IGludGVsX2RtY19oZWFkZXIgKmRtY19o ZWFkZXI7CiAJc3RydWN0IGludGVsX2NzciAqY3NyID0gJmRldl9wcml2LT5jc3I7CiAJY29uc3Qg c3RydWN0IHN0ZXBwaW5nX2luZm8gKnNpID0gaW50ZWxfZ2V0X3N0ZXBwaW5nX2luZm8oZGV2X3By aXYpOwotCXUzMiBkbWNfb2Zmc2V0LCBudW1fZW50cmllcywgbWF4X2VudHJpZXMsIHJlYWRjb3Vu dCA9IDAsIG5ieXRlczsKKwl1MzIgcmVhZGNvdW50ID0gMCwgbmJ5dGVzOwogCXUzMiBpLCByOwog CXUzMiAqZG1jX3BheWxvYWQ7CiAJc2l6ZV90IGZzaXplOwpAQCAtMzg5LDU5ICs0NDcsMTYgQEAg c3RhdGljIHUzMiAqcGFyc2VfY3NyX2Z3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAkJcmV0dXJuIE5VTEw7CiAKIAlyZWFkY291bnQgKz0gcjsKLQlmc2l6ZSA9IHJlYWRjb3Vu dCArCi0JCXNpemVvZihzdHJ1Y3QgaW50ZWxfcGFja2FnZV9oZWFkZXIpICsKLQkJc2l6ZW9mKHN0 cnVjdCBpbnRlbF9kbWNfaGVhZGVyKTsKLQlpZiAoZnNpemUgPiBmdy0+c2l6ZSkKLQkJZ290byBl cnJvcl90cnVuY2F0ZWQ7Ci0KLQkvKiBFeHRyYWN0IFBhY2thZ2UgSGVhZGVyIGluZm9ybWF0aW9u Ki8KLQlwYWNrYWdlX2hlYWRlciA9IChzdHJ1Y3QgaW50ZWxfcGFja2FnZV9oZWFkZXIgKikKLQkJ JmZ3LT5kYXRhW3JlYWRjb3VudF07Ci0KLQlyZWFkY291bnQgKz0gc2l6ZW9mKHN0cnVjdCBpbnRl bF9wYWNrYWdlX2hlYWRlcik7Ci0KLQlpZiAocGFja2FnZV9oZWFkZXItPmhlYWRlcl92ZXIgPT0g MSkgewotCQltYXhfZW50cmllcyA9IFBBQ0tBR0VfTUFYX0ZXX0lORk9fRU5UUklFUzsKLQl9IGVs c2UgaWYgKHBhY2thZ2VfaGVhZGVyLT5oZWFkZXJfdmVyID09IDIpIHsKLQkJbWF4X2VudHJpZXMg PSBQQUNLQUdFX1YyX01BWF9GV19JTkZPX0VOVFJJRVM7Ci0JfSBlbHNlIHsKLQkJRFJNX0VSUk9S KCJETUMgZmlybXdhcmUgaGFzIHVua25vd24gaGVhZGVyIHZlcnNpb24gJXVcbiIsCi0JCQkgIHBh Y2thZ2VfaGVhZGVyLT5oZWFkZXJfdmVyKTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCi0JaWYgKHBh Y2thZ2VfaGVhZGVyLT5oZWFkZXJfbGVuICogNCAhPQotCSAgICBzaXplb2Yoc3RydWN0IGludGVs X3BhY2thZ2VfaGVhZGVyKSArCi0JICAgIG1heF9lbnRyaWVzICogc2l6ZW9mKHN0cnVjdCBpbnRl bF9md19pbmZvKSkgewotCQlEUk1fRVJST1IoIkRNQyBmaXJtd2FyZSBoYXMgd3JvbmcgcGFja2Fn ZSBoZWFkZXIgbGVuZ3RoICIKLQkJCSAgIigldSBieXRlcylcbiIsIHBhY2thZ2VfaGVhZGVyLT5o ZWFkZXJfbGVuICogNCk7Ci0JCXJldHVybiBOVUxMOwotCX0KLQotCW51bV9lbnRyaWVzID0gcGFj a2FnZV9oZWFkZXItPm51bV9lbnRyaWVzOwotCWlmIChXQVJOX09OKHBhY2thZ2VfaGVhZGVyLT5u dW1fZW50cmllcyA+IG1heF9lbnRyaWVzKSkKLQkJbnVtX2VudHJpZXMgPSBtYXhfZW50cmllczsK LQotCWZzaXplICs9IG1heF9lbnRyaWVzICogc2l6ZW9mKHN0cnVjdCBpbnRlbF9md19pbmZvKTsK LQlpZiAoZnNpemUgPiBmdy0+c2l6ZSkKLQkJZ290byBlcnJvcl90cnVuY2F0ZWQ7CiAKLQlkbWNf b2Zmc2V0ID0gZmluZF9kbWNfZndfb2Zmc2V0KChzdHJ1Y3QgaW50ZWxfZndfaW5mbyAqKQotCQkJ CQkmZnctPmRhdGFbcmVhZGNvdW50XSwgbnVtX2VudHJpZXMsIHNpKTsKLQlpZiAoZG1jX29mZnNl dCA9PSBDU1JfREVGQVVMVF9GV19PRkZTRVQpIHsKLQkJRFJNX0VSUk9SKCJETUMgZmlybXdhcmUg bm90IHN1cHBvcnRlZCBmb3IgJWMgc3RlcHBpbmdcbiIsCi0JCQkgIHNpLT5zdGVwcGluZyk7CisJ LyogRXh0cmFjdCBQYWNrYWdlIEhlYWRlciBpbmZvcm1hdGlvbiAqLworCXBhY2thZ2VfaGVhZGVy ID0gKHN0cnVjdCBpbnRlbF9wYWNrYWdlX2hlYWRlciAqKSZmdy0+ZGF0YVtyZWFkY291bnRdOwor CXIgPSBwYXJzZV9jc3JfZndfcGFja2FnZShjc3IsIHBhY2thZ2VfaGVhZGVyLCBzaSwgZnctPnNp emUgLSByZWFkY291bnQpOworCWlmICghcikKIAkJcmV0dXJuIE5VTEw7Ci0JfQogCi0JLyogd2Ug YWx3YXlzIGhhdmUgc3BhY2UgZm9yIG1heF9lbnRyaWVzLCBldmVuIGlmIG5vdCBhbGwgYXJlIHVz ZWQgKi8KLQlyZWFkY291bnQgKz0gbWF4X2VudHJpZXMgKiBzaXplb2Yoc3RydWN0IGludGVsX2Z3 X2luZm8pOwotCi0JLyogQ29udmVydCBkbWNfb2Zmc2V0IGludG8gbnVtYmVyIG9mIGJ5dGVzLiBC eSBkZWZhdWx0IGl0IGlzIGluIGR3b3JkcyovCi0JZG1jX29mZnNldCAqPSA0OwotCXJlYWRjb3Vu dCArPSBkbWNfb2Zmc2V0OwotCWZzaXplICs9IGRtY19vZmZzZXQ7CisJcmVhZGNvdW50ICs9IHI7 CisJZnNpemUgPSByZWFkY291bnQgKworCQlzaXplb2Yoc3RydWN0IGludGVsX2RtY19oZWFkZXIp OwogCWlmIChmc2l6ZSA+IGZ3LT5zaXplKQogCQlnb3RvIGVycm9yX3RydW5jYXRlZDsKIAotLSAK Mi4yMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=