From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas De Marchi Subject: [PATCH 2/9] drm/i915/dmc: extract fw_info and table walk from intel_package_header Date: Fri, 7 Jun 2019 02:12:23 -0700 Message-ID: <20190607091230.1489-3-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 A575889CE2 for ; Fri, 7 Jun 2019 09:12:48 +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 TW92ZSBmd19pbmZvIG91dCBvZiBzdHJ1Y3QgaW50ZWxfcGFja2FnZV9oZWFkZXIgdG8gYWxsb3cg aXQgdG8gZ3JvdyBtb3JlCmVhc2lseSBpbiBmdXR1cmUuIFRvIG1ha2UgYSBjbGVhbmVyIG1vdmUs IGxldCdzIGFsc28gZXh0cmFjdCBhIGZ1bmN0aW9uIHRvCnNlYXJjaCB0aGUgaGVhZGVyIGZvciB0 aGUgZG1jX29mZnNldC4KCldoaWxlIHJldmlld2luZyB0aGlzIGNvZGUgSSB3b25kZXJlZCB3aHkg d2UgY29udGludWVkIHRoZSBzZWFyY2ggZXZlbgphZnRlciBmaW5kaW5nIGEgc3VpdGFibGUgZmly bXdhcmUuIEFkZCBhIGNvbW1lbnQgdG8gZXhwbGFpbiB3ZSB3aWxsCmNvbnRpbnVlIHRvIHRyeSB0 byBmaW5kIGEgbW9yZSBzcGVjaWZpYyBmaXJtd2FyZSB2ZXJzaW9uLCBldmVuIGlmIHRoaXMKaXMg bm90IHJlcXVpcmVkIGJ5IHRoZSBzcGVjLgoKU2lnbmVkLW9mZi1ieTogTHVjYXMgRGUgTWFyY2hp IDxsdWNhcy5kZW1hcmNoaUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfY3NyLmMgfCA3MiArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDU1IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfY3NyLmMKaW5kZXggM2QyYmVlY2Q4ZDBkLi45OWZhNGRiOTVlNDYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nzci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Nzci5jCkBAIC03MCw2ICs3MCw3IEBAIE1PRFVMRV9GSVJNV0FSRShTS0xfQ1NSX1BB VEgpOwogTU9EVUxFX0ZJUk1XQVJFKEJYVF9DU1JfUEFUSCk7CiAKICNkZWZpbmUgQ1NSX0RFRkFV TFRfRldfT0ZGU0VUCQkweEZGRkZGRkZGCisjZGVmaW5lIFBBQ0tBR0VfTUFYX0ZXX0lORk9fRU5U UklFUwkyMAogCiBzdHJ1Y3QgaW50ZWxfY3NzX2hlYWRlciB7CiAJLyogMHgwOSBmb3IgRE1DICov CkBAIC0xMzksOCArMTQwLDYgQEAgc3RydWN0IGludGVsX3BhY2thZ2VfaGVhZGVyIHsKIAogCS8q IE51bWJlciBvZiB2YWxpZCBlbnRyaWVzIGluIHRoZSBGV0luZm8gYXJyYXkgYmVsb3cgKi8KIAl1 MzIgbnVtX2VudHJpZXM7Ci0KLQlzdHJ1Y3QgaW50ZWxfZndfaW5mbyBmd19pbmZvWzIwXTsKIH0g X19wYWNrZWQ7CiAKIHN0cnVjdCBpbnRlbF9kbWNfaGVhZGVyIHsKQEAgLTI5Miw2ICsyOTEsNDYg QEAgdm9pZCBpbnRlbF9jc3JfbG9hZF9wcm9ncmFtKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKIAlnZW45X3NldF9kY19zdGF0ZV9kZWJ1Z21hc2soZGV2X3ByaXYpOwogfQogCisv KgorICogU2VhcmNoIGZ3X2luZm8gdGFibGUgZm9yIGRtY19vZmZzZXQgdG8gZmluZCBmaXJtd2Fy ZSBiaW5hcnk6IG51bV9lbnRyaWVzIGlzCisgKiBhbHJlYWR5IHNhbml0aXplZC4KKyAqLworc3Rh dGljIHUzMiBmaW5kX2RtY19md19vZmZzZXQoY29uc3Qgc3RydWN0IGludGVsX2Z3X2luZm8gKmZ3 X2luZm8sCisJCQkgICAgICB1bnNpZ25lZCBpbnQgbnVtX2VudHJpZXMsCisJCQkgICAgICBjb25z dCBzdHJ1Y3Qgc3RlcHBpbmdfaW5mbyAqc2kpCit7CisJdTMyIGRtY19vZmZzZXQgPSBDU1JfREVG QVVMVF9GV19PRkZTRVQ7CisJdW5zaWduZWQgaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVt X2VudHJpZXM7IGkrKykgeworCQlpZiAoZndfaW5mb1tpXS5zdWJzdGVwcGluZyA9PSAnKicgJiYK KwkJICAgIHNpLT5zdGVwcGluZyA9PSBmd19pbmZvW2ldLnN0ZXBwaW5nKSB7CisJCQlkbWNfb2Zm c2V0ID0gZndfaW5mb1tpXS5vZmZzZXQ7CisJCQlicmVhazsKKwkJfQorCisJCWlmIChzaS0+c3Rl cHBpbmcgPT0gZndfaW5mb1tpXS5zdGVwcGluZyAmJgorCQkgICAgc2ktPnN1YnN0ZXBwaW5nID09 IGZ3X2luZm9baV0uc3Vic3RlcHBpbmcpIHsKKwkJCWRtY19vZmZzZXQgPSBmd19pbmZvW2ldLm9m ZnNldDsKKwkJCWJyZWFrOworCQl9CisKKwkJaWYgKGZ3X2luZm9baV0uc3RlcHBpbmcgPT0gJyon ICYmCisJCSAgICBmd19pbmZvW2ldLnN1YnN0ZXBwaW5nID09ICcqJykgeworCQkJLyoKKwkJCSAq IEluIHRoZW9yeSB3ZSBzaG91bGQgc3RvcCB0aGUgc2VhcmNoIGFzIGdlbmVyaWMKKwkJCSAqIGVu dHJpZXMgc2hvdWxkIGFsd2F5cyBjb21lIGFmdGVyIHRoZSBtb3JlIHNwZWNpZmljCisJCQkgKiBv bmVzLCBidXQgbGV0J3MgY29udGludWUgdG8gbWFrZSBzdXJlIHRvIHdvcmsgZXZlbgorCQkJICog d2l0aCAiYnJva2VuIiBmaXJtd2FyZXMuIElmIHdlIGRvbid0IGZpbmQgYSBtb3JlCisJCQkgKiBz cGVjaWZpYyBvbmUsIHRoZW4gd2UgdXNlIHRoaXMgZW50cnkKKwkJCSAqLworCQkJZG1jX29mZnNl dCA9IGZ3X2luZm9baV0ub2Zmc2V0OworCQl9CisJfQorCisJcmV0dXJuIGRtY19vZmZzZXQ7Cit9 CisKIHN0YXRpYyB1MzIgKnBhcnNlX2Nzcl9mdyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCiAJCQkgY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdykKIHsKQEAgLTMwMCw3ICszMzks NyBAQCBzdGF0aWMgdTMyICpwYXJzZV9jc3JfZncoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCXN0cnVjdCBpbnRlbF9kbWNfaGVhZGVyICpkbWNfaGVhZGVyOwogCXN0cnVjdCBp bnRlbF9jc3IgKmNzciA9ICZkZXZfcHJpdi0+Y3NyOwogCWNvbnN0IHN0cnVjdCBzdGVwcGluZ19p bmZvICpzaSA9IGludGVsX2dldF9zdGVwcGluZ19pbmZvKGRldl9wcml2KTsKLQl1MzIgZG1jX29m ZnNldCA9IENTUl9ERUZBVUxUX0ZXX09GRlNFVCwgcmVhZGNvdW50ID0gMCwgbmJ5dGVzOworCXUz MiBkbWNfb2Zmc2V0LCBudW1fZW50cmllcywgcmVhZGNvdW50ID0gMCwgbmJ5dGVzOwogCXUzMiBp OwogCXUzMiAqZG1jX3BheWxvYWQ7CiAJc2l6ZV90IGZzaXplOwpAQCAtMzQ5LDI3ICszODgsMjYg QEAgc3RhdGljIHUzMiAqcGFyc2VfY3NyX2Z3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKIAkJCSAgKHBhY2thZ2VfaGVhZGVyLT5oZWFkZXJfbGVuICogNCkpOwogCQlyZXR1cm4g TlVMTDsKIAl9CisKIAlyZWFkY291bnQgKz0gc2l6ZW9mKHN0cnVjdCBpbnRlbF9wYWNrYWdlX2hl YWRlcik7CisJbnVtX2VudHJpZXMgPSBwYWNrYWdlX2hlYWRlci0+bnVtX2VudHJpZXM7CisJaWYg KFdBUk5fT04ocGFja2FnZV9oZWFkZXItPm51bV9lbnRyaWVzID4gUEFDS0FHRV9NQVhfRldfSU5G T19FTlRSSUVTKSkKKwkJbnVtX2VudHJpZXMgPSBQQUNLQUdFX01BWF9GV19JTkZPX0VOVFJJRVM7 CiAKLQkvKiBTZWFyY2ggZm9yIGRtY19vZmZzZXQgdG8gZmluZCBmaXJ3YXJlIGJpbmFyeS4gKi8K LQlmb3IgKGkgPSAwOyBpIDwgcGFja2FnZV9oZWFkZXItPm51bV9lbnRyaWVzOyBpKyspIHsKLQkJ aWYgKHBhY2thZ2VfaGVhZGVyLT5md19pbmZvW2ldLnN1YnN0ZXBwaW5nID09ICcqJyAmJgotCQkg ICAgc2ktPnN0ZXBwaW5nID09IHBhY2thZ2VfaGVhZGVyLT5md19pbmZvW2ldLnN0ZXBwaW5nKSB7 Ci0JCQlkbWNfb2Zmc2V0ID0gcGFja2FnZV9oZWFkZXItPmZ3X2luZm9baV0ub2Zmc2V0OwotCQkJ YnJlYWs7Ci0JCX0gZWxzZSBpZiAoc2ktPnN0ZXBwaW5nID09IHBhY2thZ2VfaGVhZGVyLT5md19p bmZvW2ldLnN0ZXBwaW5nICYmCi0JCQkgICBzaS0+c3Vic3RlcHBpbmcgPT0gcGFja2FnZV9oZWFk ZXItPmZ3X2luZm9baV0uc3Vic3RlcHBpbmcpIHsKLQkJCWRtY19vZmZzZXQgPSBwYWNrYWdlX2hl YWRlci0+ZndfaW5mb1tpXS5vZmZzZXQ7Ci0JCQlicmVhazsKLQkJfSBlbHNlIGlmIChwYWNrYWdl X2hlYWRlci0+ZndfaW5mb1tpXS5zdGVwcGluZyA9PSAnKicgJiYKLQkJCSAgIHBhY2thZ2VfaGVh ZGVyLT5md19pbmZvW2ldLnN1YnN0ZXBwaW5nID09ICcqJykKLQkJCWRtY19vZmZzZXQgPSBwYWNr YWdlX2hlYWRlci0+ZndfaW5mb1tpXS5vZmZzZXQ7Ci0JfQorCWZzaXplICs9IFBBQ0tBR0VfTUFY X0ZXX0lORk9fRU5UUklFUyAqIHNpemVvZihzdHJ1Y3QgaW50ZWxfZndfaW5mbyk7CisJaWYgKGZz aXplID4gZnctPnNpemUpCisJCWdvdG8gZXJyb3JfdHJ1bmNhdGVkOworCisJZG1jX29mZnNldCA9 IGZpbmRfZG1jX2Z3X29mZnNldCgoc3RydWN0IGludGVsX2Z3X2luZm8gKikKKwkJCQkJJmZ3LT5k YXRhW3JlYWRjb3VudF0sIG51bV9lbnRyaWVzLCBzaSk7CiAJaWYgKGRtY19vZmZzZXQgPT0gQ1NS X0RFRkFVTFRfRldfT0ZGU0VUKSB7CiAJCURSTV9FUlJPUigiRE1DIGZpcm13YXJlIG5vdCBzdXBw b3J0ZWQgZm9yICVjIHN0ZXBwaW5nXG4iLAogCQkJICBzaS0+c3RlcHBpbmcpOwogCQlyZXR1cm4g TlVMTDsKIAl9CisJLyogd2UgYWx3YXlzIGhhdmUgc3BhY2UgZm9yIFBBQ0tBR0VfTUFYX0ZXX0lO Rk9fRU5UUklFUyAqLworCXJlYWRjb3VudCArPSBQQUNLQUdFX01BWF9GV19JTkZPX0VOVFJJRVMg KiBzaXplb2Yoc3RydWN0IGludGVsX2Z3X2luZm8pOworCiAJLyogQ29udmVydCBkbWNfb2Zmc2V0 IGludG8gbnVtYmVyIG9mIGJ5dGVzLiBCeSBkZWZhdWx0IGl0IGlzIGluIGR3b3JkcyovCiAJZG1j X29mZnNldCAqPSA0OwogCXJlYWRjb3VudCArPSBkbWNfb2Zmc2V0OwotLSAKMi4yMS4wCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=