From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [PATCH 1/4] qcom-scm: add ocmem support Date: Mon, 28 Sep 2015 14:51:51 -0400 Message-ID: <1443466314-1810-2-git-send-email-robdclark@gmail.com> References: <1443466314-1810-1-git-send-email-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1443466314-1810-1-git-send-email-robdclark@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Cc: Stephen Boyd , Bjorn Andersson List-Id: linux-arm-msm@vger.kernel.org QWRkIGludGVyZmFjZXMgbmVlZGVkIGZvciBjb25maWd1cmluZyBPQ01FTS4KClNpZ25lZC1vZmYt Ynk6IFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWlsLmNvbT4KLS0tCiBkcml2ZXJzL2Zpcm13YXJl L3Fjb21fc2NtLTMyLmMgfCAgNTcgKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9maXJt d2FyZS9xY29tX3NjbS02NC5jIHwgIDE2ICsrKysrKysKIGRyaXZlcnMvZmlybXdhcmUvcWNvbV9z Y20uYyAgICB8IDEwNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog ZHJpdmVycy9maXJtd2FyZS9xY29tX3NjbS5oICAgIHwgIDEzICsrKysrCiBpbmNsdWRlL2xpbnV4 L3Fjb21fc2NtLmggICAgICAgfCAgMTAgKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAyMDIgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlybXdhcmUvcWNvbV9zY20tMzIuYyBiL2Ry aXZlcnMvZmlybXdhcmUvcWNvbV9zY20tMzIuYwppbmRleCBlOWMzMDZiLi42NTZkOGZlIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2Zpcm13YXJlL3Fjb21fc2NtLTMyLmMKKysrIGIvZHJpdmVycy9maXJt d2FyZS9xY29tX3NjbS0zMi5jCkBAIC01MDAsNiArNTAwLDYzIEBAIGludCBfX3Fjb21fc2NtX2hk Y3BfcmVxKHN0cnVjdCBxY29tX3NjbV9oZGNwX3JlcSAqcmVxLCB1MzIgcmVxX2NudCwgdTMyICpy ZXNwKQogCQlyZXEsIHJlcV9jbnQgKiBzaXplb2YoKnJlcSksIHJlc3AsIHNpemVvZigqcmVzcCkp OwogfQogCitpbnQgX19xY29tX3NjbV9vY21lbV9zZWN1cmVfY2ZnKHVuc2lnbmVkIHNlY19pZCkK K3sKKwlpbnQgcmV0LCBzY21fcmV0ID0gMDsKKwlzdHJ1Y3QgbXNtX3NjbV9zZWNfY2ZnIHsKKwkJ dW5zaWduZWQgaW50IGlkOworCQl1bnNpZ25lZCBpbnQgc3BhcmU7CisJfSBjZmc7CisKKwljZmcu aWQgPSBzZWNfaWQ7CisKKworCXJldCA9IHFjb21fc2NtX2NhbGwoUUNPTV9TQ01fT0NNRU1fU0VD VVJFX1NWQywgUUNPTV9TQ01fT0NNRU1fU0VDVVJFX0NGRywKKwkJCSZjZmcsIHNpemVvZihjZmcp LCAmc2NtX3JldCwgc2l6ZW9mKHNjbV9yZXQpKTsKKworCWlmIChyZXQgfHwgc2NtX3JldCkgewor CQlwcl9lcnIoIm9jbWVtOiBGYWlsZWQgdG8gZW5hYmxlIHNlY3VyZSBwcm9ncmFtbWluZ1xuIik7 CisJCXJldHVybiByZXQgPyByZXQgOiAtRUlOVkFMOworCX0KKworCXJldHVybiAwOworfQorCitp bnQgX19xY29tX3NjbV9vY21lbV9sb2NrKHVpbnQzMl90IGlkLCB1aW50MzJfdCBvZmZzZXQsIHVp bnQzMl90IHNpemUsCisJCXVpbnQzMl90IG1vZGUpCit7CisJc3RydWN0IG9jbWVtX3R6X2xvY2sg eworCQl1MzIgaWQ7CisJCXUzMiBvZmZzZXQ7CisJCXUzMiBzaXplOworCQl1MzIgbW9kZTsKKwl9 IHJlcXVlc3Q7CisKKwlyZXF1ZXN0LmlkID0gaWQ7CisJcmVxdWVzdC5vZmZzZXQgPSBvZmZzZXQ7 CisJcmVxdWVzdC5zaXplID0gc2l6ZTsKKwlyZXF1ZXN0Lm1vZGUgPSBtb2RlOworCisJcmV0dXJu IHFjb21fc2NtX2NhbGwoUUNPTV9TQ01fT0NNRU1fU1ZDLCBRQ09NX1NDTV9PQ01FTV9MT0NLX0NN RCwKKwkJCSZyZXF1ZXN0LCBzaXplb2YocmVxdWVzdCksIE5VTEwsIDApOworfQorCitpbnQgX19x Y29tX3NjbV9vY21lbV91bmxvY2sodWludDMyX3QgaWQsIHVpbnQzMl90IG9mZnNldCwgdWludDMy X3Qgc2l6ZSkKK3sKKwlzdHJ1Y3Qgb2NtZW1fdHpfdW5sb2NrIHsKKwkJdTMyIGlkOworCQl1MzIg b2Zmc2V0OworCQl1MzIgc2l6ZTsKKwl9IHJlcXVlc3Q7CisKKwlyZXF1ZXN0LmlkID0gaWQ7CisJ cmVxdWVzdC5vZmZzZXQgPSBvZmZzZXQ7CisJcmVxdWVzdC5zaXplID0gc2l6ZTsKKworCXJldHVy biBxY29tX3NjbV9jYWxsKFFDT01fU0NNX09DTUVNX1NWQywgUUNPTV9TQ01fT0NNRU1fVU5MT0NL X0NNRCwKKwkJCSZyZXF1ZXN0LCBzaXplb2YocmVxdWVzdCksIE5VTEwsIDApOworfQorCiBib29s IF9fcWNvbV9zY21fcGFzX3N1cHBvcnRlZCh1MzIgcGVyaXBoZXJhbCkKIHsKIAlfX2xlMzIgb3V0 OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9maXJtd2FyZS9xY29tX3NjbS02NC5jIGIvZHJpdmVycy9m aXJtd2FyZS9xY29tX3NjbS02NC5jCmluZGV4IGU2NGZkOTIuLmVmNWM1OWUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZmlybXdhcmUvcWNvbV9zY20tNjQuYworKysgYi9kcml2ZXJzL2Zpcm13YXJlL3Fj b21fc2NtLTY0LmMKQEAgLTYyLDYgKzYyLDIyIEBAIGludCBfX3Fjb21fc2NtX2hkY3BfcmVxKHN0 cnVjdCBxY29tX3NjbV9oZGNwX3JlcSAqcmVxLCB1MzIgcmVxX2NudCwgdTMyICpyZXNwKQogCXJl dHVybiAtRU5PVFNVUFA7CiB9CiAKK2ludCBfX3Fjb21fc2NtX29jbWVtX3NlY3VyZV9jZmcodW5z aWduZWQgc2VjX2lkKQoreworCXJldHVybiAtRU5PVFNVUFA7Cit9CisKK2ludCBfX3Fjb21fc2Nt X29jbWVtX2xvY2sodWludDMyX3QgaWQsIHVpbnQzMl90IG9mZnNldCwgdWludDMyX3Qgc2l6ZSwK KwkJdWludDMyX3QgbW9kZSkKK3sKKwlyZXR1cm4gLUVOT1RTVVBQOworfQorCitpbnQgX19xY29t X3NjbV9vY21lbV91bmxvY2sodWludDMyX3QgaWQsIHVpbnQzMl90IG9mZnNldCwgdWludDMyX3Qg c2l6ZSkKK3sKKwlyZXR1cm4gLUVOT1RTVVBQOworfQorCiBib29sIF9fcWNvbV9zY21fcGFzX3N1 cHBvcnRlZCh1MzIgcGVyaXBoZXJhbCkKIHsKIAlyZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2Zpcm13YXJlL3Fjb21fc2NtLmMgYi9kcml2ZXJzL2Zpcm13YXJlL3Fjb21fc2NtLmMK aW5kZXggMTE4ZGYwYS4uNTliMTAwNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9maXJtd2FyZS9xY29t X3NjbS5jCisrKyBiL2RyaXZlcnMvZmlybXdhcmUvcWNvbV9zY20uYwpAQCAtMTU0LDYgKzE1NCwx MTIgQEAgaW50IHFjb21fc2NtX2hkY3BfcmVxKHN0cnVjdCBxY29tX3NjbV9oZGNwX3JlcSAqcmVx LCB1MzIgcmVxX2NudCwgdTMyICpyZXNwKQogRVhQT1JUX1NZTUJPTChxY29tX3NjbV9oZGNwX3Jl cSk7CiAKIC8qKgorICogcWNvbV9zY21fb2NtZW1fc2VjdXJlX2F2YWlsYWJsZSgpIC0gQ2hlY2sg aWYgc2VjdXJlIGVudmlyb25tZW50IHN1cHBvcnRzCisgKiBPQ01FTS4KKyAqCisgKiBSZXR1cm4g dHJ1ZSBpZiBPQ01FTSBzZWN1cmUgaW50ZXJmYWNlIGlzIHN1cHBvcnRlZCwgZmFsc2UgaWYgbm90 LgorICovCitib29sIHFjb21fc2NtX29jbWVtX3NlY3VyZV9hdmFpbGFibGUodm9pZCkKK3sKKwlp bnQgcmV0ID0gcWNvbV9zY21fY2xrX2VuYWJsZSgpOworCisJaWYgKHJldCkKKwkJZ290byBjbGtf ZXJyOworCisJcmV0ID0gX19xY29tX3NjbV9pc19jYWxsX2F2YWlsYWJsZShRQ09NX1NDTV9PQ01F TV9TRUNVUkVfU1ZDLAorCQkJUUNPTV9TQ01fT0NNRU1fU0VDVVJFX0NGRyk7CisKKwlxY29tX3Nj bV9jbGtfZGlzYWJsZSgpOworCitjbGtfZXJyOgorCXJldHVybiAocmV0ID4gMCkgPyB0cnVlIDog ZmFsc2U7Cit9CitFWFBPUlRfU1lNQk9MKHFjb21fc2NtX29jbWVtX3NlY3VyZV9hdmFpbGFibGUp OworCisvKioKKyAqIHFjb21fc2NtX29jbWVtX3NlY3VyZV9jZmcoKSAtIGNhbGwgT0NNRU0gc2Vj dXJlIGNmZyBpbnRlcmZhY2UKKyAqLworaW50IHFjb21fc2NtX29jbWVtX3NlY3VyZV9jZmcodW5z aWduZWQgc2VjX2lkKQoreworCWludCByZXQgPSBxY29tX3NjbV9jbGtfZW5hYmxlKCk7CisKKwlp ZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gX19xY29tX3NjbV9vY21lbV9zZWN1cmVf Y2ZnKHNlY19pZCk7CisJcWNvbV9zY21fY2xrX2Rpc2FibGUoKTsKKworCXJldHVybiByZXQ7Cit9 CitFWFBPUlRfU1lNQk9MKHFjb21fc2NtX29jbWVtX3NlY3VyZV9jZmcpOworCisvKioKKyAqIHFj b21fc2NtX29jbWVtX2xvY2tfYXZhaWxhYmxlKCkgLSBpcyBPQ01FTSBsb2NrL3VubG9jayBpbnRl cmZhY2UgYXZhaWxhYmxlCisgKi8KK2Jvb2wgcWNvbV9zY21fb2NtZW1fbG9ja19hdmFpbGFibGUo dm9pZCkKK3sKKwlpbnQgcmV0ID0gcWNvbV9zY21fY2xrX2VuYWJsZSgpOworCisJaWYgKHJldCkK KwkJZ290byBjbGtfZXJyOworCisJcmV0ID0gX19xY29tX3NjbV9pc19jYWxsX2F2YWlsYWJsZShR Q09NX1NDTV9PQ01FTV9TVkMsCisJCQlRQ09NX1NDTV9PQ01FTV9MT0NLX0NNRCk7CisKKwlxY29t X3NjbV9jbGtfZGlzYWJsZSgpOworCitjbGtfZXJyOgorCXJldHVybiAocmV0ID4gMCkgPyB0cnVl IDogZmFsc2U7Cit9CitFWFBPUlRfU1lNQk9MKHFjb21fc2NtX29jbWVtX2xvY2tfYXZhaWxhYmxl KTsKKworLyoqCisgKiBxY29tX3NjbV9vY21lbV9sb2NrKCkgLSBjYWxsIE9DTUVNIGxvY2sgaW50 ZXJmYWNlIHRvIGFzc2lnbiBhbiBPQ01FTQorICogcmVnaW9uIHRvIHRoZSBzcGVjaWZpZWQgaW5p dGlhdG9yCisgKgorICogQGlkOiAgICAgdHogaW5pdGlhdG9yIGlkCisgKiBAb2Zmc2V0OiBPQ01F TSBvZmZzZXQKKyAqIEBzaXplOiAgIE9DTUVNIHNpemUKKyAqIEBtb2RlOiAgIGFjY2VzcyBtb2Rl IChXSURFL05BUlJPVykKKyAqLworaW50IHFjb21fc2NtX29jbWVtX2xvY2sodWludDMyX3QgaWQs IHVpbnQzMl90IG9mZnNldCwgdWludDMyX3Qgc2l6ZSwKKwkJdWludDMyX3QgbW9kZSkKK3sKKwlp bnQgcmV0ID0gcWNvbV9zY21fY2xrX2VuYWJsZSgpOworCisJaWYgKHJldCkKKwkJcmV0dXJuIHJl dDsKKworCXJldCA9IF9fcWNvbV9zY21fb2NtZW1fbG9jayhpZCwgb2Zmc2V0LCBzaXplLCBtb2Rl KTsKKwlxY29tX3NjbV9jbGtfZGlzYWJsZSgpOworCisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9T WU1CT0wocWNvbV9zY21fb2NtZW1fbG9jayk7CisKKy8qKgorICogcWNvbV9zY21fb2NtZW1fdW5s b2NrKCkgLSBjYWxsIE9DTUVNIHVubG9jayBpbnRlcmZhY2UgdG8gcmVsZWFzZSBhbiBPQ01FTQor ICogcmVnaW9uIGZyb20gdGhlIHNwZWNpZmllZCBpbml0aWF0b3IKKyAqCisgKiBAaWQ6ICAgICB0 eiBpbml0aWF0b3IgaWQKKyAqIEBvZmZzZXQ6IE9DTUVNIG9mZnNldAorICogQHNpemU6ICAgT0NN RU0gc2l6ZQorICovCitpbnQgcWNvbV9zY21fb2NtZW1fdW5sb2NrKHVpbnQzMl90IGlkLCB1aW50 MzJfdCBvZmZzZXQsIHVpbnQzMl90IHNpemUpCit7CisJaW50IHJldCA9IHFjb21fc2NtX2Nsa19l bmFibGUoKTsKKworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSBfX3Fjb21fc2Nt X29jbWVtX3VubG9jayhpZCwgb2Zmc2V0LCBzaXplKTsKKwlxY29tX3NjbV9jbGtfZGlzYWJsZSgp OworCisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0wocWNvbV9zY21fb2NtZW1fdW5sb2Nr KTsKKworLyoqCiAgKiBxY29tX3NjbV9wYXNfc3VwcG9ydGVkKCkgLSBDaGVjayBpZiB0aGUgcGVy aXBoZXJhbCBhdXRoZW50aWNhdGlvbiBzZXJ2aWNlIGlzCiAgKgkJCSAgICAgIGF2YWlsYWJsZSBm b3IgdGhlIGdpdmVuIHBlcmlwaGVyaWFsCiAgKiBAcGVyaXBoZXJhbDoJcGVyaXBoZXJhbCBpZApk aWZmIC0tZ2l0IGEvZHJpdmVycy9maXJtd2FyZS9xY29tX3NjbS5oIGIvZHJpdmVycy9maXJtd2Fy ZS9xY29tX3NjbS5oCmluZGV4IDIyMGQxOWMuLmUwMTY1NmYzIDEwMDY0NAotLS0gYS9kcml2ZXJz L2Zpcm13YXJlL3Fjb21fc2NtLmgKKysrIGIvZHJpdmVycy9maXJtd2FyZS9xY29tX3NjbS5oCkBA IC0zNiw2ICszNiwxOSBAQCBleHRlcm4gaW50IF9fcWNvbV9zY21faXNfY2FsbF9hdmFpbGFibGUo dTMyIHN2Y19pZCwgdTMyIGNtZF9pZCk7CiBleHRlcm4gaW50IF9fcWNvbV9zY21faGRjcF9yZXEo c3RydWN0IHFjb21fc2NtX2hkY3BfcmVxICpyZXEsIHUzMiByZXFfY250LAogCQl1MzIgKnJlc3Ap OwogCisjZGVmaW5lIFFDT01fU0NNX09DTUVNX1NFQ1VSRV9TVkMJCTB4YworI2RlZmluZSBRQ09N X1NDTV9PQ01FTV9TRUNVUkVfQ0ZHCQkweDIKKworZXh0ZXJuIGludCBfX3Fjb21fc2NtX29jbWVt X3NlY3VyZV9jZmcodW5zaWduZWQgc2VjX2lkKTsKKworI2RlZmluZSBRQ09NX1NDTV9PQ01FTV9T VkMJCQkweGYKKyNkZWZpbmUgUUNPTV9TQ01fT0NNRU1fTE9DS19DTUQJCTB4MQorI2RlZmluZSBR Q09NX1NDTV9PQ01FTV9VTkxPQ0tfQ01ECQkweDIKKworZXh0ZXJuIGludCBfX3Fjb21fc2NtX29j bWVtX2xvY2sodWludDMyX3QgaWQsIHVpbnQzMl90IG9mZnNldCwgdWludDMyX3Qgc2l6ZSwKKwkJ dWludDMyX3QgbW9kZSk7CitleHRlcm4gaW50IF9fcWNvbV9zY21fb2NtZW1fdW5sb2NrKHVpbnQz Ml90IGlkLCB1aW50MzJfdCBvZmZzZXQsIHVpbnQzMl90IHNpemUpOworCiAjZGVmaW5lIFFDT01f U0NNX1NWQ19QSUwJCTB4MgogI2RlZmluZSBRQ09NX1NDTV9QQVNfSU5JVF9JTUFHRV9DTUQJMHgx CiAjZGVmaW5lIFFDT01fU0NNX1BBU19NRU1fU0VUVVBfQ01ECTB4MgpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9saW51eC9xY29tX3NjbS5oIGIvaW5jbHVkZS9saW51eC9xY29tX3NjbS5oCmluZGV4IDQ2 ZDQxZTQuLmE5MzQ0NTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcWNvbV9zY20uaAorKysg Yi9pbmNsdWRlL2xpbnV4L3Fjb21fc2NtLmgKQEAgLTIzLDEwICsyMywyMCBAQCBzdHJ1Y3QgcWNv bV9zY21faGRjcF9yZXEgewogCXUzMiB2YWw7CiB9OwogCitleHRlcm4gYm9vbCBxY29tX3NjbV9p c19hdmFpbGFibGUodm9pZCk7CisKIGV4dGVybiBib29sIHFjb21fc2NtX2hkY3BfYXZhaWxhYmxl KHZvaWQpOwogZXh0ZXJuIGludCBxY29tX3NjbV9oZGNwX3JlcShzdHJ1Y3QgcWNvbV9zY21faGRj cF9yZXEgKnJlcSwgdTMyIHJlcV9jbnQsCiAJCXUzMiAqcmVzcCk7CiAKK2V4dGVybiBib29sIHFj b21fc2NtX29jbWVtX3NlY3VyZV9hdmFpbGFibGUodm9pZCk7CitleHRlcm4gaW50IHFjb21fc2Nt X29jbWVtX3NlY3VyZV9jZmcodW5zaWduZWQgc2VjX2lkKTsKKworZXh0ZXJuIGJvb2wgcWNvbV9z Y21fb2NtZW1fbG9ja19hdmFpbGFibGUodm9pZCk7CitleHRlcm4gaW50IHFjb21fc2NtX29jbWVt X2xvY2sodWludDMyX3QgaWQsIHVpbnQzMl90IG9mZnNldCwgdWludDMyX3Qgc2l6ZSwKKwkJdWlu dDMyX3QgbW9kZSk7CitleHRlcm4gaW50IHFjb21fc2NtX29jbWVtX3VubG9jayh1aW50MzJfdCBp ZCwgdWludDMyX3Qgb2Zmc2V0LCB1aW50MzJfdCBzaXplKTsKKwogZXh0ZXJuIGJvb2wgcWNvbV9z Y21fcGFzX3N1cHBvcnRlZCh1MzIgcGVyaXBoZXJhbCk7CiBleHRlcm4gaW50IHFjb21fc2NtX3Bh c19pbml0X2ltYWdlKHUzMiBwZXJpcGhlcmFsLCBjb25zdCB2b2lkICptZXRhZGF0YSwgc2l6ZV90 IHNpemUpOwogZXh0ZXJuIGludCBxY29tX3NjbV9wYXNfbWVtX3NldHVwKHUzMiBwZXJpcGhlcmFs LCBwaHlzX2FkZHJfdCBhZGRyLCBwaHlzX2FkZHJfdCBzaXplKTsKLS0gCjIuNC4zCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=