From: Alexandre Courbot Subject: [PATCH 07/15] msgqueue: support for GP10B PMU firmware Date: Wed, 29 Mar 2017 18:31:15 +0900 Message-ID: <20170329093123.24656-8-acourbot@nvidia.com> References: <20170329093123.24656-1-acourbot@nvidia.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170329093123.24656-1-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Ben Skeggs Cc: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: nouveau.vger.kernel.org VGhlIEdQMTBCIGZpcm13YXJlIGlzIHZlcnkgY2xvc2UgdG8gR00yMEIncy4gVGhlIG9ubHkgZGlm ZmVyZW5jZSBpcyB0aGF0Cml0IHN1cHBvcnRzIGJvb3RpbmcgbXVsdGlwbGUgZmFsY29ucy4gSW4g b3JkZXIgdG8gYXZvaWQgaGF2aW5nIHRvbyBtdWNoCmZ1bmN0aW9ucyBhbmQgc3RydWN0dXJlcyBz aGFyZWQsIGltcGxlbWVudCBpdHMgc3VwcG9ydCBpbiB0aGUgc2FtZQpzb3VyY2UgZmlsZSBhcyBH TTIwQiBmaXJtd2FyZS4KClNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBDb3VyYm90IDxhY291cmJv dEBudmlkaWEuY29tPgotLS0KIGRybS9ub3V2ZWF1L252a20vZmFsY29uL21zZ3F1ZXVlLmMgICAg ICAgICAgfCAgIDMgKwogZHJtL25vdXZlYXUvbnZrbS9mYWxjb24vbXNncXVldWUuaCAgICAgICAg ICB8ICAgMiArCiBkcm0vbm91dmVhdS9udmttL2ZhbGNvbi9tc2dxdWV1ZV8wMTM3YzYzZC5jIHwg MTEyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTE3IGlu c2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcm0vbm91dmVhdS9udmttL2ZhbGNvbi9tc2dxdWV1 ZS5jIGIvZHJtL25vdXZlYXUvbnZrbS9mYWxjb24vbXNncXVldWUuYwppbmRleCBmNzEwMWE5MTBi YzcuLmQ0NWQ3OTQ3YTk2NCAxMDA2NDQKLS0tIGEvZHJtL25vdXZlYXUvbnZrbS9mYWxjb24vbXNn cXVldWUuYworKysgYi9kcm0vbm91dmVhdS9udmttL2ZhbGNvbi9tc2dxdWV1ZS5jCkBAIC01MDEs NiArNTAxLDkgQEAgbnZrbV9tc2dxdWV1ZV9uZXcodTMyIHZlcnNpb24sIHN0cnVjdCBudmttX2Zh bGNvbiAqZmFsY29uLAogCWNhc2UgMHgwMTM3YzYzZDoKIAkJcmV0ID0gbXNncXVldWVfMDEzN2M2 M2RfbmV3KGZhbGNvbiwgc2IsIHF1ZXVlKTsKIAkJYnJlYWs7CisJY2FzZSAweDAxMzdiY2E1Ogor CQlyZXQgPSBtc2dxdWV1ZV8wMTM3YmNhNV9uZXcoZmFsY29uLCBzYiwgcXVldWUpOworCQlicmVh azsKIAljYXNlIDB4MDE0OGNkZWM6CiAJCXJldCA9IG1zZ3F1ZXVlXzAxNDhjZGVjX25ldyhmYWxj b24sIHNiLCBxdWV1ZSk7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJtL25vdXZlYXUvbnZrbS9m YWxjb24vbXNncXVldWUuaCBiL2RybS9ub3V2ZWF1L252a20vZmFsY29uL21zZ3F1ZXVlLmgKaW5k ZXggMmIzYTZjM2I4ZjZhLi4xM2I1NGY4ZDhlMDQgMTAwNjQ0Ci0tLSBhL2RybS9ub3V2ZWF1L252 a20vZmFsY29uL21zZ3F1ZXVlLmgKKysrIGIvZHJtL25vdXZlYXUvbnZrbS9mYWxjb24vbXNncXVl dWUuaApAQCAtMjA1LDYgKzIwNSw4IEBAIHZvaWQgbnZrbV9tc2dxdWV1ZV9wcm9jZXNzX21zZ3Mo c3RydWN0IG52a21fbXNncXVldWUgKiwKIAogaW50IG1zZ3F1ZXVlXzAxMzdjNjNkX25ldyhzdHJ1 Y3QgbnZrbV9mYWxjb24gKiwgY29uc3Qgc3RydWN0IG52a21fc2VjYm9vdCAqLAogCQkJICBzdHJ1 Y3QgbnZrbV9tc2dxdWV1ZSAqKik7CitpbnQgbXNncXVldWVfMDEzN2JjYTVfbmV3KHN0cnVjdCBu dmttX2ZhbGNvbiAqLCBjb25zdCBzdHJ1Y3QgbnZrbV9zZWNib290ICosCisJCQkgIHN0cnVjdCBu dmttX21zZ3F1ZXVlICoqKTsKIGludCBtc2dxdWV1ZV8wMTQ4Y2RlY19uZXcoc3RydWN0IG52a21f ZmFsY29uICosIGNvbnN0IHN0cnVjdCBudmttX3NlY2Jvb3QgKiwKIAkJCSAgc3RydWN0IG52a21f bXNncXVldWUgKiopOwogCmRpZmYgLS1naXQgYS9kcm0vbm91dmVhdS9udmttL2ZhbGNvbi9tc2dx dWV1ZV8wMTM3YzYzZC5jIGIvZHJtL25vdXZlYXUvbnZrbS9mYWxjb24vbXNncXVldWVfMDEzN2M2 M2QuYwppbmRleCA5MzViOWE3ZTYwYTkuLmZlYzAyNzMxNThmNiAxMDA2NDQKLS0tIGEvZHJtL25v dXZlYXUvbnZrbS9mYWxjb24vbXNncXVldWVfMDEzN2M2M2QuYworKysgYi9kcm0vbm91dmVhdS9u dmttL2ZhbGNvbi9tc2dxdWV1ZV8wMTM3YzYzZC5jCkBAIC00Myw2ICs0MywxNSBAQCBzdHJ1Y3Qg bXNncXVldWVfMDEzN2M2M2QgewogI2RlZmluZSBtc2dxdWV1ZV8wMTM3YzYzZChxKSBcCiAJY29u dGFpbmVyX29mKHEsIHN0cnVjdCBtc2dxdWV1ZV8wMTM3YzYzZCwgYmFzZSkKIAorc3RydWN0IG1z Z3F1ZXVlXzAxMzdiY2E1IHsKKwlzdHJ1Y3QgbXNncXVldWVfMDEzN2M2M2QgYmFzZTsKKworCXU2 NCB3cHJfYWRkcjsKK307CisjZGVmaW5lIG1zZ3F1ZXVlXzAxMzdiY2E1KHEpIFwKKwljb250YWlu ZXJfb2YoY29udGFpbmVyX29mKHEsIHN0cnVjdCBtc2dxdWV1ZV8wMTM3YzYzZCwgYmFzZSksIFwK KwkJICAgICBzdHJ1Y3QgbXNncXVldWVfMDEzN2JjYTUsIGJhc2UpOworCiBzdGF0aWMgc3RydWN0 IG52a21fbXNncXVldWVfcXVldWUgKgogbXNncXVldWVfMDEzN2M2M2RfY21kX3F1ZXVlKHN0cnVj dCBudmttX21zZ3F1ZXVlICpxdWV1ZSwKIAkJCSAgICBlbnVtIG1zZ3F1ZXVlX21zZ19wcmlvcml0 eSBwcmlvcml0eSkKQEAgLTE4MCw2ICsxODksNyBAQCBtc2dxdWV1ZV8wMTM3YzYzZF9pbml0X2Z1 bmMgPSB7CiBlbnVtIHsKIAlBQ1JfQ01EX0lOSVRfV1BSX1JFR0lPTiA9IDB4MDAsCiAJQUNSX0NN RF9CT09UU1RSQVBfRkFMQ09OID0gMHgwMSwKKwlBQ1JfQ01EX0JPT1RTVFJBUF9NVUxUSVBMRV9G QUxDT05TID0gMHgwMywKIH07CiAKIHN0YXRpYyB2b2lkCkBAIC0yODYsMTEgKzI5Niw4MSBAQCBh Y3JfYm9vdF9mYWxjb24oc3RydWN0IG52a21fbXNncXVldWUgKnByaXYsIGVudW0gbnZrbV9zZWNi b290X2ZhbGNvbiBmYWxjb24pCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkCithY3JfYm9v dF9tdWx0aXBsZV9mYWxjb25zX2NhbGxiYWNrKHN0cnVjdCBudmttX21zZ3F1ZXVlICpwcml2LAor CQkJCSAgIHN0cnVjdCBudmttX21zZ3F1ZXVlX2hkciAqaGRyKQoreworCXN0cnVjdCBhY3JfYm9v dHN0cmFwX2ZhbGNvbl9tc2cgeworCQlzdHJ1Y3QgbnZrbV9tc2dxdWV1ZV9tc2cgYmFzZTsKKwor CQl1MzIgZmFsY29uX21hc2s7CisJfSAqbXNnID0gKHZvaWQgKiloZHI7CisJY29uc3Qgc3RydWN0 IG52a21fc3ViZGV2ICpzdWJkZXYgPSBwcml2LT5mYWxjb24tPm93bmVyOworCXVuc2lnbmVkIGxv bmcgZmFsY29uX21hc2sgPSBtc2ctPmZhbGNvbl9tYXNrOworCXUzMiBmYWxjb25faWQsIGZhbGNv bl90cmVhdGVkID0gMDsKKworCWZvcl9lYWNoX3NldF9iaXQoZmFsY29uX2lkLCAmZmFsY29uX21h c2ssIE5WS01fU0VDQk9PVF9GQUxDT05fRU5EKSB7CisJCW52a21fZGVidWcoc3ViZGV2LCAiJXMg Ym9vdGVkXG4iLAorCQkJICAgbnZrbV9zZWNib290X2ZhbGNvbl9uYW1lW2ZhbGNvbl9pZF0pOwor CQlmYWxjb25fdHJlYXRlZCB8PSBCSVQoZmFsY29uX2lkKTsKKwl9CisKKwlpZiAoZmFsY29uX3Ry ZWF0ZWQgIT0gbXNnLT5mYWxjb25fbWFzaykgeworCQludmttX2Vycm9yKHN1YmRldiwgImluIGJv b3RzdHJhcCBmYWxjb24gY2FsbGJhY2s6XG4iKTsKKwkJbnZrbV9lcnJvcihzdWJkZXYsICJpbnZh bGlkIGZhbGNvbiBtYXNrIDB4JXhcbiIsCisJCQkgICBtc2ctPmZhbGNvbl9tYXNrKTsKKwkJcmV0 dXJuOworCX0KK30KKworc3RhdGljIGludAorYWNyX2Jvb3RfbXVsdGlwbGVfZmFsY29ucyhzdHJ1 Y3QgbnZrbV9tc2dxdWV1ZSAqcHJpdiwgdW5zaWduZWQgbG9uZyBmYWxjb25fbWFzaykKK3sKKwlE RUNMQVJFX0NPTVBMRVRJT05fT05TVEFDSyhjb21wbGV0ZWQpOworCS8qCisJICogZmxhZ3MgICAg ICAtIEZsYWcgc3BlY2lmeWluZyBSRVNFVCBvciBubyBSRVNFVC4KKwkgKiBmYWxjb24gaWQgIC0g RmFsY29uIGlkIHNwZWNpZnlpbmcgZmFsY29uIHRvIGJvb3RzdHJhcC4KKwkgKi8KKwlzdHJ1Y3Qg eworCQlzdHJ1Y3QgbnZrbV9tc2dxdWV1ZV9oZHIgaGRyOworCQl1OCBjbWRfdHlwZTsKKwkJdTMy IGZsYWdzOworCQl1MzIgZmFsY29uX21hc2s7CisJCXUzMiB1c2VfdmFfbWFzazsKKwkJdTMyIHdw cl9sbzsKKwkJdTMyIHdwcl9oaTsKKwl9IGNtZDsKKwlzdHJ1Y3QgbXNncXVldWVfMDEzN2JjYTUg KnF1ZXVlID0gbXNncXVldWVfMDEzN2JjYTUocHJpdik7CisKKwltZW1zZXQoJmNtZCwgMCwgc2l6 ZW9mKGNtZCkpOworCisJY21kLmhkci51bml0X2lkID0gTVNHUVVFVUVfMDEzN0M2M0RfVU5JVF9B Q1I7CisJY21kLmhkci5zaXplID0gc2l6ZW9mKGNtZCk7CisJY21kLmNtZF90eXBlID0gQUNSX0NN RF9CT09UU1RSQVBfTVVMVElQTEVfRkFMQ09OUzsKKwljbWQuZmxhZ3MgPSBBQ1JfQ01EX0JPT1RT VFJBUF9GQUxDT05fRkxBR1NfUkVTRVRfWUVTOworCWNtZC5mYWxjb25fbWFzayA9IGZhbGNvbl9t YXNrOworCWNtZC53cHJfbG8gPSBsb3dlcl8zMl9iaXRzKHF1ZXVlLT53cHJfYWRkcik7CisJY21k Lndwcl9oaSA9IHVwcGVyXzMyX2JpdHMocXVldWUtPndwcl9hZGRyKTsKKwludmttX21zZ3F1ZXVl X3Bvc3QocHJpdiwgTVNHUVVFVUVfTVNHX1BSSU9SSVRZX0hJR0gsICZjbWQuaGRyLAorCQkJYWNy X2Jvb3RfbXVsdGlwbGVfZmFsY29uc19jYWxsYmFjaywgJmNvbXBsZXRlZCwgdHJ1ZSk7CisKKwlp ZiAoIXdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmY29tcGxldGVkLCBtc2Vjc190b19qaWZm aWVzKDEwMDApKSkKKwkJcmV0dXJuIC1FVElNRURPVVQ7CisKKwlyZXR1cm4gMDsKK30KKwogc3Rh dGljIGNvbnN0IHN0cnVjdCBudmttX21zZ3F1ZXVlX2Fjcl9mdW5jCiBtc2dxdWV1ZV8wMTM3YzYz ZF9hY3JfZnVuYyA9IHsKIAkuYm9vdF9mYWxjb24gPSBhY3JfYm9vdF9mYWxjb24sCiB9OwogCitz dGF0aWMgY29uc3Qgc3RydWN0IG52a21fbXNncXVldWVfYWNyX2Z1bmMKK21zZ3F1ZXVlXzAxMzdi Y2E1X2Fjcl9mdW5jID0geworCS5ib290X2ZhbGNvbiA9IGFjcl9ib290X2ZhbGNvbiwKKwkuYm9v dF9tdWx0aXBsZV9mYWxjb25zID0gYWNyX2Jvb3RfbXVsdGlwbGVfZmFsY29ucywKK307CisKIHN0 YXRpYyB2b2lkCiBtc2dxdWV1ZV8wMTM3YzYzZF9kdG9yKHN0cnVjdCBudmttX21zZ3F1ZXVlICpx dWV1ZSkKIHsKQEAgLTMyMiwzICs0MDIsMzUgQEAgbXNncXVldWVfMDEzN2M2M2RfbmV3KHN0cnVj dCBudmttX2ZhbGNvbiAqZmFsY29uLCBjb25zdCBzdHJ1Y3QgbnZrbV9zZWNib290ICpzYiwKIAog CXJldHVybiAwOwogfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG52a21fbXNncXVldWVfZnVuYwor bXNncXVldWVfMDEzN2JjYTVfZnVuYyA9IHsKKwkuaW5pdF9mdW5jID0gJm1zZ3F1ZXVlXzAxMzdj NjNkX2luaXRfZnVuYywKKwkuYWNyX2Z1bmMgPSAmbXNncXVldWVfMDEzN2JjYTVfYWNyX2Z1bmMs CisJLmNtZF9xdWV1ZSA9IG1zZ3F1ZXVlXzAxMzdjNjNkX2NtZF9xdWV1ZSwKKwkucmVjdiA9IG1z Z3F1ZXVlXzAxMzdjNjNkX3Byb2Nlc3NfbXNncywKKwkuZHRvciA9IG1zZ3F1ZXVlXzAxMzdjNjNk X2R0b3IsCit9OworCitpbnQKK21zZ3F1ZXVlXzAxMzdiY2E1X25ldyhzdHJ1Y3QgbnZrbV9mYWxj b24gKmZhbGNvbiwgY29uc3Qgc3RydWN0IG52a21fc2VjYm9vdCAqc2IsCisJCSAgICAgIHN0cnVj dCBudmttX21zZ3F1ZXVlICoqcXVldWUpCit7CisJc3RydWN0IG1zZ3F1ZXVlXzAxMzdiY2E1ICpy ZXQ7CisKKwlyZXQgPSBremFsbG9jKHNpemVvZigqcmV0KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFy ZXQpCisJCXJldHVybiAtRU5PTUVNOworCisJKnF1ZXVlID0gJnJldC0+YmFzZS5iYXNlOworCisJ LyoKKwkgKiBGSVhNRSB0aGlzIG11c3QgYmUgc2V0IHRvIHRoZSBhZGRyZXNzIG9mIGEgKkdQVSog bWFwcGluZyB3aXRoaW4gdGhlCisJICogQUNSIGFkZHJlc3Mgc3BhY2UhCisJICovCisJLyogcmV0 LT53cHJfYWRkciA9IHNiLT53cHJfYWRkcjsgKi8KKworCW52a21fbXNncXVldWVfY3RvcigmbXNn cXVldWVfMDEzN2JjYTVfZnVuYywgZmFsY29uLCAmcmV0LT5iYXNlLmJhc2UpOworCisJcmV0dXJu IDA7Cit9Ci0tIAoyLjEyLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCk5vdXZlYXUgbWFpbGluZyBsaXN0Ck5vdXZlYXVAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vbm91dmVh dQo=