From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4387E899DC for ; Mon, 11 Mar 2019 13:23:33 +0000 (UTC) From: Daniel Mrzyglod Date: Mon, 11 Mar 2019 14:23:09 +0100 Message-Id: <20190311132309.11061-1-daniel.t.mrzyglod@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t] lib: add pci helper functions to intel_chipset List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Mrzyglod@freedesktop.org List-ID: RnJvbTogIk1yenlnbG9kLCBEYW5pZWwgVCIgPGRhbmllbC50Lm1yenlnbG9kQGludGVsLmNvbT4K ClRoaXMgcGF0Y2ggYWRkIHR3byBoZWxwZXIgZnVuY3Rpb25zOgogKiByZWFkaW5nIHJlZ2lzdGVy IGZyb20gUENJIGJhc2VkIG9uIG9wZW4gZmQKICogZ2V0dGluZyBQQ0kgZG9tYWluL2J1cy9kZXYv ZnVuYyBiYXNlZCBvbiBmZAoKVGhlIHJlYXNvbiB3aHkgd2UgbmVlZCB0aGlzIGZ1bmN0aW9uIGlz IHVwIHRvIHNjZW5hcmlvIHdoZW4gd2UgaGF2ZQptdWx0aXBsZSBQQ0kgZGV2aWNlcy4KClNpZ25l ZC1vZmYtYnk6IE1yenlnbG9kLCBEYW5pZWwgVCA8ZGFuaWVsLnQubXJ6eWdsb2RAaW50ZWwuY29t PgotLS0KIGxpYi9pbnRlbF9jaGlwc2V0LmMgfCAxNzYgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIGxpYi9pbnRlbF9jaGlwc2V0LmggfCAgMTMgKysrKwogMiBm aWxlcyBjaGFuZ2VkLCAxODkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2xpYi9pbnRlbF9j aGlwc2V0LmMgYi9saWIvaW50ZWxfY2hpcHNldC5jCmluZGV4IDQ3NDhhM2ZiLi4zZGQ3MjJkNiAx MDA2NDQKLS0tIGEvbGliL2ludGVsX2NoaXBzZXQuYworKysgYi9saWIvaW50ZWxfY2hpcHNldC5j CkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDxzeXMvc3Rh dC5oPgogI2luY2x1ZGUgPHN5cy9tbWFuLmg+CisjaW5jbHVkZSA8bGludXgvbGltaXRzLmg+CiAj aW5jbHVkZSAiaTkxNV9kcm0uaCIKIAogI2luY2x1ZGUgImRybXRlc3QuaCIKQEAgLTE3OCwzICsx NzksMTc4IEBAIGludGVsX2NoZWNrX3BjaCh2b2lkKQogCQlyZXR1cm47CiAJfQogfQorCisvKioK KyAqIHBhcnNlX3BjaV9hZGRyZXNzX3N0cmluZzoKKyAqIEBwY2lfYWRkcmVzczogUENJIHN0cmlu ZyBpbiBmb3JtIDAwMDA6MDA6MDAuMAorICogQGRldl9hZGRyOiBzdHJ1Y3R1cmUgdG8gYmUgZmls bGVkIGJ5IHRoaXMgcGFyc2luZyBmdW5jdGlvbgorICoKKyAqIFRoaXMgZnVuY3Rpb24gZmlsbCBm ZF9wY2lfYWRkcmVzcyBzdHJ1Y3R1cmUgd2l0aCBkYXRhIGFib3V0IHBjaTogZG9tYWluLCBidXMK KyAqIGRldmljZSwgZnVuY3Rpb24KKyAqIFJldHVybjoKKyAqIE8gb3IgLUVJTlZBTAorICovCitz dGF0aWMgaW50IHBhcnNlX3BjaV9hZGRyZXNzX3N0cmluZyhjaGFyICpwY2lfYWRkcmVzcywKKwkJ CQkgICAgc3RydWN0IGZkX3BjaV9hZGRyZXNzICpkZXZfYWRkcikKK3sKKwl1bnNpZ25lZCBsb25n IHZhbDsKKwljaGFyICpwY2g7CisJaW50IGkgPSAwOworCisJaWYgKHN0cmxlbihwY2lfYWRkcmVz cykgIT0gMTIpCisJCXJldHVybiAtRUlOVkFMOworCisJLyogcGFyc2UgUENJIGFkZHJlc3MgIHN0 cmluZyBmb3IgZG9tYWluICovCisJcGNoID0gc3RydG9rKHBjaV9hZGRyZXNzLCAiOi4iKTsKKwll cnJubyA9IDA7CisJdmFsID0gc3RydG91bChwY2gsIE5VTEwsIDE2KTsKKwlpZiAoZXJybm8gIT0g MCB8fCB2YWwgPiBVSU5UMTZfTUFYKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlkZXZfYWRkci0+ZG9t YWluID0gdmFsOworCisJLyogcGFyc2UgIFBDSSBhZGRyZXNzIGZvcjogQlVTIERFVklDRSBGVU5D VElPTiAqLworCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKKwkJcGNoID0gc3RydG9rKE5VTEws ICI6LiIpOworCQllcnJubyA9IDA7CisJCXZhbCA9IHN0cnRvdWwocGNoLCBOVUxMLCAxNik7CisJ CWlmIChlcnJubyAhPSAwIHx8IHZhbCA+IFVJTlQ4X01BWCkKKwkJCXJldHVybiAtRUlOVkFMOwor CisJCXN3aXRjaCAoaSkgeworCQljYXNlIDA6CisJCQlkZXZfYWRkci0+YnVzID0gdmFsOworCQkJ YnJlYWs7CisJCWNhc2UgMToKKwkJCWRldl9hZGRyLT5kZXYgPSB2YWw7CisJCQlicmVhazsKKwkJ Y2FzZSAyOgorCQkJZGV2X2FkZHItPmZ1bmMgPSB2YWw7CisJCQlicmVhazsKKwkJZGVmYXVsdDoK KwkJCXJldHVybiAtRUlOVkFMOworCQlicmVhazsKKwkJfQorCX0KKworCXBjaCA9IHN0cnRvayhO VUxMLCAiOi4iKTsKKwlpZiAocGNoKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldHVybiAwOwor fQorCisvKioKKyAqIHBhcnNlX3BjaV9maWxlcGF0aF9zdHJpbmc6CisgKiBAZmlsZXBhdGg6IHN0 cmluZyBpbiBmb3JtIC4uLy4uL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjAwLjAvZHJtL2Nh cmQwCisgKiBAZGV2X2FkZHI6IHN0cnVjdHVyZSB0byBiZSBmaWxsZWQgYnkgdGhpcyBwYXJzaW5n IGZ1bmN0aW9uCisgKgorICogVGhpcyBmdW5jdGlvbiBwYXJzZSBmaWxlcGF0aCBzdHJpbmcgdG8g UENJIGFkZHJlc3Mgc3RyaW5nIDAwMDA6MDA6MDAuMCBmb3JtLgorICogYW5kIGZpbGwgZGV2X2Fk ZHIuCisgKiBSZXR1cm46CisgKiBPIG9yIC1FSU5WQUwKKyAqLworc3RhdGljIGludAorcGFyc2Vf cGNpX2ZpbGVwYXRoX3N0cmluZyhjaGFyICpmaWxlcGF0aCwgc3RydWN0IGZkX3BjaV9hZGRyZXNz ICpkZXZfYWRkcikKK3sKKwljaGFyICpwY2ggPSBzdHJzdHIoZmlsZXBhdGgsICJwY2kiKTsKKwlj aGFyICpiZWdpbiA9IE5VTEw7CisJY2hhciAqZW5kID0gTlVMTDsKKworCWlmIChwY2gpIHsKKwkJ cGNoID0gc3Ryc3RyKHBjaCwgIi8iKTsKKwkJcGNoKys7CisJCWJlZ2luID0gcGNoOworCQllbmQg PSBzdHJzdHIocGNoLCAiLyIpOworCQkqZW5kID0gJ1wwJzsKKwkJfSBlbHNlIHsKKwkJCXJldHVy biAtRUlOVkFMOworCQl9CisJaWYgKHN0cmxlbihiZWdpbikgIT0gMTIpCisJCXJldHVybiAtRUlO VkFMOworCWlmIChwYXJzZV9wY2lfYWRkcmVzc19zdHJpbmcoYmVnaW4sIGRldl9hZGRyKSA8IDAp CisJCXJldHVybiAtRUlOVkFMOworCXJldHVybiAwOworfQorCisvKioKKyAqIGdldF9wY2lfYWRk cmVzc19zcGFjZToKKyAqIEBmZDogZmlsZSBkZXNjcmlwdG9yIG9mIG9wZW5lZCBkZXZpY2UKKyAq IEBkZXZfYWRkcjogc3RydWN0dXJlIHdpdGggcGNpX2FkZHJlc3MgdG8gYmUgZmlsbGVkIGJ5IHRo aXMgcGFyc2luZyBmdW5jdGlvbgorICoKKyAqIFRoaXMgZnVuY3Rpb24gZmlsbCBkZXZfYWRkciBm cm9tIHJlYWRpbmcgZnN0YXRzIGZyb20gb3BlbmVkIGRldmljZS4KKyAqIGZyb20gaXQuCisgKiBS ZXR1cm46CisgKiBPIG9yIC1FSU5WQUwKKyAqLworaW50IGludGVsX2dldF9wY2lfYWRkcmVzc19z cGFjZShpbnQgZmQsIHN0cnVjdCBmZF9wY2lfYWRkcmVzcyAqZGV2X2FkZHIpCit7CisJc3RydWN0 IHN0YXQgc2I7CisJY2hhciBmaWxlcGF0aFtQQVRIX01BWF07CisJY2hhciBmZHBbUEFUSF9NQVhd OworCWludCByZXQgPSAtMTsKKworCWlmIChmc3RhdChmZCwgJnNiKSA9PSAtMSkgeworCQlwZXJy b3IoInN0YXQiKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJc3ByaW50ZihmZHAsICIvc3lz L2Rldi9jaGFyLyVkOiVkIiwgIG1ham9yKHNiLnN0X3JkZXYpLAorCQltaW5vcihzYi5zdF9yZGV2 KSk7CisJcmVhZGxpbmsoZmRwLCBmaWxlcGF0aCwgUEFUSF9NQVgpOworCisJcmV0ID0gcGFyc2Vf cGNpX2ZpbGVwYXRoX3N0cmluZyhmaWxlcGF0aCwgZGV2X2FkZHIpOworCWlmIChyZXQgPCAwKQor CQlyZXR1cm4gLUVJTlZBTDsKKworCXJldHVybiAwOworfQorCisvKioKKyAqIHBjaV9yZWFkX3Jl Z2lzdGVyX3UzMjoKKyAqIEBmZDogZmlsZSBkZXNjcmlwdG9yIG9mIG9wZW5lZCBkZXZpY2UKKyAq IEByZWdfbmFtZTogb2Zmc2V0IGluIG1taW8gc3BhY2UKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHJl YWQgVUlOVDMyIGZyb20gcGNpLgorICogUmV0dXJuOgorICogUmVnaXN0ZXIgdmFsdWUgb3IgaWd0 X2ZhaWwKKyAqLwordWludDMyX3QgaW50ZWxfcGNpX3JlYWRfcmVnaXN0ZXJfdTMyKGludCBmZCwg dWludDMyX3QgcmVnX25hbWUpCit7CisJdWludDMyX3QgcmVnX3ZhbCA9IDA7CisJaW50IGVycm9y ID0gLTE7CisJaW50IG1taW9fYmFyLCBtbWlvX3NpemU7CisJc3RydWN0IHBjaV9kZXZpY2UgKmRl djsKKwlzdHJ1Y3QgZmRfcGNpX2FkZHJlc3MgZGV2X2FkZHI7CisJdm9pZCAqaWd0X21taW87CisK KwlpbnRlbF9nZXRfcGNpX2FkZHJlc3Nfc3BhY2UoZmQsICZkZXZfYWRkcik7CisJcGNpX3N5c3Rl bV9pbml0KCk7CisJZGV2ID0gcGNpX2RldmljZV9maW5kX2J5X3Nsb3QoKHVpbnQzMl90KWRldl9h ZGRyLmRvbWFpbiwKKwkJCQkgICAgICAodWludDMyX3QpZGV2X2FkZHIuYnVzLAorCQkJCSAgICAg ICh1aW50MzJfdClkZXZfYWRkci5kZXYsCisJCQkJICAgICAgKHVpbnQzMl90KWRldl9hZGRyLmZ1 bmMpOworCisJZXJyb3IgPSBwY2lfZGV2aWNlX3Byb2JlKGRldik7CisJaWd0X2ZhaWxfb25fZihl cnJvciAhPSAwLAorCQkgICAgICAiQ291bGRuJ3QgcHJvYmUgZ3JhcGhpY3MgY2FyZFxuIik7CisK KwltbWlvX2JhciA9IDA7CisJbW1pb19zaXplID0gMiAqIDEwMjQgKiAxMDI0OworCisJZXJyb3Ig PSBwY2lfZGV2aWNlX21hcF9yYW5nZShkZXYsCisJCQkJICAgICBkZXYtPnJlZ2lvbnNbbW1pb19i YXJdLmJhc2VfYWRkciwKKwkJCQkgICAgIG1taW9fc2l6ZSwKKwkJCQkgICAgIFBDSV9ERVZfTUFQ X0ZMQUdfV1JJVEFCTEUsCisJCQkJICAgICAmaWd0X21taW8pOworCWlndF9mYWlsX29uX2YoZXJy b3IgIT0gMCwKKwkJICAgICAgIkNvdWxkbid0IG1hcCBNTUlPIHJlZ2lvblxuIik7CisKKwlyZWdf dmFsID0gKih2b2xhdGlsZSB1aW50MzJfdCAqKSgodm9sYXRpbGUgY2hhciAqKWlndF9tbWlvICsg cmVnX25hbWUpOworCisJZXJyb3IgPSBwY2lfZGV2aWNlX3VubWFwX3JhbmdlKGRldiwgaWd0X21t aW8sCisJCQkJICAgICAgIG1taW9fc2l6ZSk7CisJaWd0X2ZhaWxfb25fZihlcnJvciAhPSAwLAor CQkgICAgICAiQ291bGRuJ3QgdW5tYXAgTU1JTyByZWdpb25cbiIpOworCisJcmV0dXJuIHJlZ192 YWw7Cit9CmRpZmYgLS1naXQgYS9saWIvaW50ZWxfY2hpcHNldC5oIGIvbGliL2ludGVsX2NoaXBz ZXQuaAppbmRleCA0MDE3MGI3Yi4uOTZhNjE4ZWIgMTAwNjQ0Ci0tLSBhL2xpYi9pbnRlbF9jaGlw c2V0LmgKKysrIGIvbGliL2ludGVsX2NoaXBzZXQuaApAQCAtNzMsNiArNzMsMTkgQEAgc3RydWN0 IGludGVsX2RldmljZV9pbmZvIHsKIAogY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvICpp bnRlbF9nZXRfZGV2aWNlX2luZm8odWludDE2X3QgZGV2aWQpIF9fYXR0cmlidXRlX18oKHB1cmUp KTsKIAorc3RydWN0IGZkX3BjaV9hZGRyZXNzIHsKKwkvKioKKwkgKiBQQ0kgQWRkcmVzcworCSAq LworCXVpbnQxNl90CWRvbWFpbjsKKwl1aW50OF90CQlidXM7CisJdWludDhfdAkJZGV2OworCXVp bnQ4X3QJCWZ1bmM7Cit9OworCit1aW50MzJfdCBpbnRlbF9wY2lfcmVhZF9yZWdpc3Rlcl91MzIo aW50IGZkLCB1aW50MzJfdCByZWdfbmFtZSk7CitpbnQgaW50ZWxfZ2V0X3BjaV9hZGRyZXNzX3Nw YWNlKGludCBmZCwgc3RydWN0IGZkX3BjaV9hZGRyZXNzICpkZXZfYWRkcik7CisKIHVuc2lnbmVk IGludGVsX2dlbih1aW50MTZfdCBkZXZpZCkgX19hdHRyaWJ1dGVfXygocHVyZSkpOwogdW5zaWdu ZWQgaW50ZWxfZ3QodWludDE2X3QgZGV2aWQpIF9fYXR0cmlidXRlX18oKHB1cmUpKTsKIAotLSAK Mi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpp Z3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=