From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH 6/6] msm/drm: gpu: Dynamically locate the clocks from the device tree Date: Tue, 7 Mar 2017 10:02:56 -0700 Message-ID: <1488906176-10720-7-git-send-email-jcrouse@codeaurora.org> References: <1488906176-10720-1-git-send-email-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1488906176-10720-1-git-send-email-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org SW5zdGVhZCBvZiB1c2luZyBhIGZpeGVkIGxpc3Qgb2YgY2xvY2sgbmFtZXMgdXNlIHRoZSBjbG9j ay1uYW1lcwpsaXN0IGluIHRoZSBkZXZpY2UgdHJlZSB0byBkaXNjb3ZlciBhbmQgZ2V0IHRoZSBs aXN0IG9mIGNsb2Nrcwp0aGF0IHdlIG5lZWQuCgpTaWduZWQtb2ZmLWJ5OiBKb3JkYW4gQ3JvdXNl IDxqY3JvdXNlQGNvZGVhdXJvcmEub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dw dS5jIHwgNzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogZHJp dmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmggfCAgNCArKy0KIDIgZmlsZXMgY2hhbmdlZCwgNTcg aW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL21zbS9tc21fZ3B1LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuYwppbmRleCAy YjczMWU3Li4yNWRlNDZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuYwpAQCAtOTMsMTggKzkzLDE4IEBA IHN0YXRpYyBpbnQgZW5hYmxlX2NsayhzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQogewogCWludCBpOwog Ci0JaWYgKGdwdS0+Z3JwX2Nsa3NbMF0gJiYgZ3B1LT5mYXN0X3JhdGUpCi0JCWNsa19zZXRfcmF0 ZShncHUtPmdycF9jbGtzWzBdLCBncHUtPmZhc3RfcmF0ZSk7CisJaWYgKGdwdS0+Y29yZV9jbGsg JiYgZ3B1LT5mYXN0X3JhdGUpCisJCWNsa19zZXRfcmF0ZShncHUtPmNvcmVfY2xrLCBncHUtPmZh c3RfcmF0ZSk7CiAKIAkvKiBTZXQgdGhlIFJCQk0gdGltZXIgcmF0ZSB0byAxOS4yTWh6ICovCi0J aWYgKGdwdS0+Z3JwX2Nsa3NbMl0pCi0JCWNsa19zZXRfcmF0ZShncHUtPmdycF9jbGtzWzJdLCAx OTIwMDAwMCk7CisJaWYgKGdwdS0+cmJibXRpbWVyX2NsaykKKwkJY2xrX3NldF9yYXRlKGdwdS0+ cmJibXRpbWVyX2NsaywgMTkyMDAwMDApOwogCi0JZm9yIChpID0gQVJSQVlfU0laRShncHUtPmdy cF9jbGtzKSAtIDE7IGkgPj0gMDsgaS0tKQorCWZvciAoaSA9IGdwdS0+bnJfY2xvY2tzIC0gMTsg aSA+PSAwOyBpLS0pCiAJCWlmIChncHUtPmdycF9jbGtzW2ldKQogCQkJY2xrX3ByZXBhcmUoZ3B1 LT5ncnBfY2xrc1tpXSk7CiAKLQlmb3IgKGkgPSBBUlJBWV9TSVpFKGdwdS0+Z3JwX2Nsa3MpIC0g MTsgaSA+PSAwOyBpLS0pCisJZm9yIChpID0gZ3B1LT5ucl9jbG9ja3MgLSAxOyBpID49IDA7IGkt LSkKIAkJaWYgKGdwdS0+Z3JwX2Nsa3NbaV0pCiAJCQljbGtfZW5hYmxlKGdwdS0+Z3JwX2Nsa3Nb aV0pOwogCkBAIC0xMTUsMTEgKzExNSwxMSBAQCBzdGF0aWMgaW50IGRpc2FibGVfY2xrKHN0cnVj dCBtc21fZ3B1ICpncHUpCiB7CiAJaW50IGk7CiAKLQlmb3IgKGkgPSBBUlJBWV9TSVpFKGdwdS0+ Z3JwX2Nsa3MpIC0gMTsgaSA+PSAwOyBpLS0pCisJZm9yIChpID0gZ3B1LT5ucl9jbG9ja3MgLSAx OyBpID49IDA7IGktLSkKIAkJaWYgKGdwdS0+Z3JwX2Nsa3NbaV0pCiAJCQljbGtfZGlzYWJsZShn cHUtPmdycF9jbGtzW2ldKTsKIAotCWZvciAoaSA9IEFSUkFZX1NJWkUoZ3B1LT5ncnBfY2xrcykg LSAxOyBpID49IDA7IGktLSkKKwlmb3IgKGkgPSBncHUtPm5yX2Nsb2NrcyAtIDE7IGkgPj0gMDsg aS0tKQogCQlpZiAoZ3B1LT5ncnBfY2xrc1tpXSkKIAkJCWNsa191bnByZXBhcmUoZ3B1LT5ncnBf Y2xrc1tpXSk7CiAKQEAgLTEyOCwxMCArMTI4LDExIEBAIHN0YXRpYyBpbnQgZGlzYWJsZV9jbGso c3RydWN0IG1zbV9ncHUgKmdwdSkKIAkgKiBzcGVlZCBoYWQgdG8gYmUgbm9uIHplcm8gdG8gYXZv aWQgcHJvYmxlbXMuIE9uIG5ld2VyIHRhcmdldHMgdGhpcwogCSAqIHdpbGwgYmUgcm91bmRlZCBk b3duIHRvIHplcm8gYW55d2F5IHNvIGl0IGFsbCB3b3JrcyBvdXQuCiAJICovCi0JY2xrX3NldF9y YXRlKGdwdS0+Z3JwX2Nsa3NbMF0sIDI3MDAwMDAwKTsKKwlpZiAoZ3B1LT5jb3JlX2NsaykKKwkJ Y2xrX3NldF9yYXRlKGdwdS0+Y29yZV9jbGssIDI3MDAwMDAwKTsKIAotCWlmIChncHUtPmdycF9j bGtzWzJdKQotCQljbGtfc2V0X3JhdGUoZ3B1LT5ncnBfY2xrc1syXSwgMCk7CisJaWYgKGdwdS0+ cmJibXRpbWVyX2NsaykKKwkJY2xrX3NldF9yYXRlKGdwdS0+cmJibXRpbWVyX2NsaywgMCk7CiAK IAlyZXR1cm4gMDsKIH0KQEAgLTU4Niw5ICs1ODcsNDUgQEAgc3RhdGljIGlycXJldHVybl90IGly cV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpCiAJcmV0dXJuIGdwdS0+ZnVuY3MtPmlycShn cHUpOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciAqY2xrX25hbWVzW10gPSB7Ci0JImNvcmUiLCAi aWZhY2UiLCAicmJibXRpbWVyIiwgIm1lbSIsICJtZW1faWZhY2UiLCAiYWx0X21lbV9pZmFjZSIs Ci19Oworc3RhdGljIHN0cnVjdCBjbGsgKmdldF9jbG9jayhzdHJ1Y3QgZGV2aWNlICpkZXYsIGNv bnN0IGNoYXIgKm5hbWUpCit7CisJc3RydWN0IGNsayAqY2xrID0gZGV2bV9jbGtfZ2V0KGRldiwg bmFtZSk7CisKKwlyZXR1cm4gSVNfRVJSKGNsaykgPyBOVUxMIDogY2xrOworfQorCitzdGF0aWMg aW50IGdldF9jbG9ja3Moc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgc3RydWN0IG1zbV9n cHUgKmdwdSkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworCXN0cnVjdCBw cm9wZXJ0eSAqcHJvcDsKKwljb25zdCBjaGFyICpuYW1lOworCWludCBpID0gMDsKKworCWdwdS0+ bnJfY2xvY2tzID0gb2ZfcHJvcGVydHlfY291bnRfc3RyaW5ncyhkZXYtPm9mX25vZGUsICJjbG9j ay1uYW1lcyIpOworCWlmIChncHUtPm5yX2Nsb2NrcyA8IDEpIHsKKwkJZ3B1LT5ucl9jbG9ja3Mg PSAwOworCQlyZXR1cm4gMDsKKwl9CisKKwlncHUtPmdycF9jbGtzID0gZGV2bV9rY2FsbG9jKGRl diwgc2l6ZW9mKHN0cnVjdCBjbGsgKiksIGdwdS0+bnJfY2xvY2tzLAorCQlHRlBfS0VSTkVMKTsK KwlpZiAoIWdwdS0+Z3JwX2Nsa3MpCisJCXJldHVybiAtRU5PTUVNOworCisJb2ZfcHJvcGVydHlf Zm9yX2VhY2hfc3RyaW5nKGRldi0+b2Zfbm9kZSwgImNsb2NrLW5hbWVzIiwgcHJvcCwgbmFtZSkg eworCQlncHUtPmdycF9jbGtzW2ldID0gZ2V0X2Nsb2NrKGRldiwgbmFtZSk7CisKKwkJLyogUmVt ZW1iZXIgdGhlIGtleSBjbG9ja3MgdGhhdCB3ZSBuZWVkIHRvIGNvbnRyb2wgbGF0ZXIgKi8KKwkJ aWYgKCFzdHJjbXAobmFtZSwgImNvcmUiKSkKKwkJCWdwdS0+Y29yZV9jbGsgPSBncHUtPmdycF9j bGtzW2ldOworCQllbHNlIGlmICghc3RyY21wKG5hbWUsICJyYmJtdGltZXIiKSkKKwkJCWdwdS0+ cmJibXRpbWVyX2NsayA9IGdwdS0+Z3JwX2Nsa3NbaV07CisKKwkJKytpOworCX0KKworCXJldHVy biAwOworfQogCiBpbnQgbXNtX2dwdV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sIHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJCXN0cnVjdCBtc21fZ3B1ICpncHUsIGNvbnN0IHN0 cnVjdCBtc21fZ3B1X2Z1bmNzICpmdW5jcywKQEAgLTYyNSw3ICs2NjIsNiBAQCBpbnQgbXNtX2dw dV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYsCiAKIAlzcGluX2xvY2tfaW5pdCgmZ3B1LT5wZXJmX2xvY2spOwogCi0JQlVHX09OKEFSUkFZ X1NJWkUoY2xrX25hbWVzKSAhPSBBUlJBWV9TSVpFKGdwdS0+Z3JwX2Nsa3MpKTsKIAogCS8qIE1h cCByZWdpc3RlcnM6ICovCiAJZ3B1LT5tbWlvID0gbXNtX2lvcmVtYXAocGRldiwgY29uZmlnLT5p b25hbWUsIG5hbWUpOwpAQCAtNjQ5LDEzICs2ODUsOSBAQCBpbnQgbXNtX2dwdV9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkcm0sIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJCWdvdG8g ZmFpbDsKIAl9CiAKLQkvKiBBY3F1aXJlIGNsb2NrczogKi8KLQlmb3IgKGkgPSAwOyBpIDwgQVJS QVlfU0laRShjbGtfbmFtZXMpOyBpKyspIHsKLQkJZ3B1LT5ncnBfY2xrc1tpXSA9IG1zbV9jbGtf Z2V0KHBkZXYsIGNsa19uYW1lc1tpXSk7Ci0JCURCRygiZ3JwX2Nsa3NbJXNdOiAlcCIsIGNsa19u YW1lc1tpXSwgZ3B1LT5ncnBfY2xrc1tpXSk7Ci0JCWlmIChJU19FUlIoZ3B1LT5ncnBfY2xrc1tp XSkpCi0JCQlncHUtPmdycF9jbGtzW2ldID0gTlVMTDsKLQl9CisJcmV0ID0gZ2V0X2Nsb2Nrcyhw ZGV2LCBncHUpOworCWlmIChyZXQpCisJCWdvdG8gZmFpbDsKIAogCWdwdS0+ZWJpMV9jbGsgPSBt c21fY2xrX2dldChwZGV2LCAiYnVzIik7CiAJREJHKCJlYmkxX2NsazogJXAiLCBncHUtPmViaTFf Y2xrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5oIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fZ3B1LmgKaW5kZXggYmM2ZjE2My4uNDE2MjAyOCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21z bS9tc21fZ3B1LmgKQEAgLTExMCw3ICsxMTAsOSBAQCBzdHJ1Y3QgbXNtX2dwdSB7CiAKIAkvKiBQ b3dlciBDb250cm9sOiAqLwogCXN0cnVjdCByZWd1bGF0b3IgKmdwdV9yZWcsICpncHVfY3g7Ci0J c3RydWN0IGNsayAqZWJpMV9jbGssICpncnBfY2xrc1s2XTsKKwlzdHJ1Y3QgY2xrICoqZ3JwX2Ns a3M7CisJaW50IG5yX2Nsb2NrczsKKwlzdHJ1Y3QgY2xrICplYmkxX2NsaywgKmNvcmVfY2xrLCAq cmJibXRpbWVyX2NsazsKIAl1aW50MzJfdCBmYXN0X3JhdGUsIGJ1c19mcmVxOwogCiAjaWZkZWYg RE9XTlNUUkVBTV9DT05GSUdfTVNNX0JVU19TQ0FMSU5HCi0tIAoxLjkuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlz dApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==