From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH 2/5] drm/msm: Add a helper function to parse clock names Date: Mon, 6 Aug 2018 11:33:21 -0600 Message-ID: <20180806173324.16074-3-jcrouse@codeaurora.org> References: <20180806173324.16074-1-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180806173324.16074-1-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, hoegsberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org QWRkIGEgaGVscGVyIGZ1bmN0aW9uIHRvIHBhcnNlIHRoZSBjbG9jayBuYW1lcyBhbmQgc2V0IHVw CnRoZSBidWxrIGRhdGEgc28gd2UgY2FuIHRha2UgYWR2YW50YWdlIG9mIHRoZSBidWxrIGNsb2Nr CmZ1bmN0aW9ucyBpbnN0ZWFkIG9mIHJvbGxpbmcgb3VyIG93bi4gVGhpcyBpcyBhZGRlZAphcyBh IGhlbHBlciBmdW5jdGlvbiBzbyB0aGUgdXBjb21pbmcgYTZ4eCBHTVUgY29kZSBjYW4KYWxzbyB0 YWtlIGFkdmFudGFnZSBvZiBpdC4KClNpZ25lZC1vZmYtYnk6IEpvcmRhbiBDcm91c2UgPGpjcm91 c2VAY29kZWF1cm9yYS5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMgfCA1 NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9tc20v bXNtX2Rydi5oIHwgIDQgKysrCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuYyB8IDYwICsr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9ncHUuaCB8ICAyICstCiA0IGZpbGVzIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKyksIDUxIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKaW5kZXggNDY4NzZiYzhiNzA3Li5jMWFiYWQ4 YTg2MTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCkBAIC04MSw2ICs4MSw2MyBAQCBtb2R1bGVfcGFy YW0obW9kZXNldCwgYm9vbCwgMDYwMCk7CiAgKiBVdGlsL2hlbHBlcnM6CiAgKi8KIAoraW50IG1z bV9jbGtfYnVsa19nZXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgY2xrX2J1bGtfZGF0YSAq KmJ1bGspCit7CisJc3RydWN0IHByb3BlcnR5ICpwcm9wOworCWNvbnN0IGNoYXIgKm5hbWU7CisJ c3RydWN0IGNsa19idWxrX2RhdGEgKmxvY2FsOworCWludCBpID0gMCwgcmV0LCBjb3VudDsKKwor CWNvdW50ID0gb2ZfcHJvcGVydHlfY291bnRfc3RyaW5ncyhkZXYtPm9mX25vZGUsICJjbG9jay1u YW1lcyIpOworCWlmIChjb3VudCA8IDEpCisJCXJldHVybiAwOworCisJbG9jYWwgPSBkZXZtX2tj YWxsb2MoZGV2LCBzaXplb2Yoc3RydWN0IGNsa19idWxrX2RhdGEgKiksCisJCWNvdW50LCBHRlBf S0VSTkVMKTsKKwlpZiAoIWxvY2FsKQorCQlyZXR1cm4gLUVOT01FTTsKKworCW9mX3Byb3BlcnR5 X2Zvcl9lYWNoX3N0cmluZyhkZXYtPm9mX25vZGUsICJjbG9jay1uYW1lcyIsIHByb3AsIG5hbWUp IHsKKwkJbG9jYWxbaV0uaWQgPSBkZXZtX2tzdHJkdXAoZGV2LCBuYW1lLCBHRlBfS0VSTkVMKTsK KwkJaWYgKCFsb2NhbFtpXS5pZCkgeworCQkJZGV2bV9rZnJlZShkZXYsIGxvY2FsKTsKKwkJCXJl dHVybiAtRU5PTUVNOworCQl9CisKKwkJaSsrOworCX0KKworCXJldCA9IGRldm1fY2xrX2J1bGtf Z2V0KGRldiwgY291bnQsIGxvY2FsKTsKKworCWlmIChyZXQpIHsKKwkJZm9yIChpID0gMDsgaSA8 IGNvdW50OyBpKyspCisJCQlkZXZtX2tmcmVlKGRldiwgKHZvaWQgKikgbG9jYWxbaV0uaWQpOwor CQlkZXZtX2tmcmVlKGRldiwgbG9jYWwpOworCisJCXJldHVybiByZXQ7CisJfQorCisJKmJ1bGsg PSBsb2NhbDsKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0cnVjdCBjbGsgKm1zbV9jbGtfYnVsa19n ZXRfY2xvY2soc3RydWN0IGNsa19idWxrX2RhdGEgKmJ1bGssIGludCBjb3VudCwKKwkJY29uc3Qg Y2hhciAqbmFtZSkKK3sKKwlpbnQgaTsKKwljaGFyIG5bMzJdOworCisJc25wcmludGYobiwgc2l6 ZW9mKG4pLCAiJXNfY2xrIiwgbmFtZSk7CisKKwlmb3IgKGkgPSAwOyBidWxrICYmIGkgPCBjb3Vu dDsgaSsrKSB7CisJCWlmICghc3RyY21wKGJ1bGtbaV0uaWQsIG5hbWUpIHx8ICFzdHJjbXAoYnVs a1tpXS5pZCwgbikpCisJCQlyZXR1cm4gYnVsa1tpXS5jbGs7CisJfQorCisKKwlyZXR1cm4gTlVM TDsKK30KKwogc3RydWN0IGNsayAqbXNtX2Nsa19nZXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldiwgY29uc3QgY2hhciAqbmFtZSkKIHsKIAlzdHJ1Y3QgY2xrICpjbGs7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2Rydi5oCmluZGV4IGI2MTE0ODQ4NjZkNi4uOGU1MTBkNWM3NThhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9k cnYuaApAQCAtMzg3LDYgKzM4NywxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbXNtX3BlcmZfZGVi dWdmc19jbGVhbnVwKHN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYpIHt9CiAjZW5kaWYKIAog c3RydWN0IGNsayAqbXNtX2Nsa19nZXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgY29u c3QgY2hhciAqbmFtZSk7CitpbnQgbXNtX2Nsa19idWxrX2dldChzdHJ1Y3QgZGV2aWNlICpkZXYs IHN0cnVjdCBjbGtfYnVsa19kYXRhICoqYnVsayk7CisKK3N0cnVjdCBjbGsgKm1zbV9jbGtfYnVs a19nZXRfY2xvY2soc3RydWN0IGNsa19idWxrX2RhdGEgKmJ1bGssIGludCBjb3VudCwKKwljb25z dCBjaGFyICpuYW1lKTsKIHZvaWQgX19pb21lbSAqbXNtX2lvcmVtYXAoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldiwgY29uc3QgY2hhciAqbmFtZSwKIAkJY29uc3QgY2hhciAqZGJnbmFtZSk7 CiB2b2lkIG1zbV93cml0ZWwodTMyIGRhdGEsIHZvaWQgX19pb21lbSAqYWRkcik7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v bXNtX2dwdS5jCmluZGV4IGYzODg5NDRjOTNlMi4uY2EzNjg0OTBiM2VlIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9ncHUuYwpAQCAtMTQyLDggKzE0Miw2IEBAIHN0YXRpYyBpbnQgZGlzYWJsZV9wd3JyYWlsKHN0 cnVjdCBtc21fZ3B1ICpncHUpCiAKIHN0YXRpYyBpbnQgZW5hYmxlX2NsayhzdHJ1Y3QgbXNtX2dw dSAqZ3B1KQogewotCWludCBpOwotCiAJaWYgKGdwdS0+Y29yZV9jbGsgJiYgZ3B1LT5mYXN0X3Jh dGUpCiAJCWNsa19zZXRfcmF0ZShncHUtPmNvcmVfY2xrLCBncHUtPmZhc3RfcmF0ZSk7CiAKQEAg LTE1MSwyOCArMTQ5LDEyIEBAIHN0YXRpYyBpbnQgZW5hYmxlX2NsayhzdHJ1Y3QgbXNtX2dwdSAq Z3B1KQogCWlmIChncHUtPnJiYm10aW1lcl9jbGspCiAJCWNsa19zZXRfcmF0ZShncHUtPnJiYm10 aW1lcl9jbGssIDE5MjAwMDAwKTsKIAotCWZvciAoaSA9IGdwdS0+bnJfY2xvY2tzIC0gMTsgaSA+ PSAwOyBpLS0pCi0JCWlmIChncHUtPmdycF9jbGtzW2ldKQotCQkJY2xrX3ByZXBhcmUoZ3B1LT5n cnBfY2xrc1tpXSk7Ci0KLQlmb3IgKGkgPSBncHUtPm5yX2Nsb2NrcyAtIDE7IGkgPj0gMDsgaS0t KQotCQlpZiAoZ3B1LT5ncnBfY2xrc1tpXSkKLQkJCWNsa19lbmFibGUoZ3B1LT5ncnBfY2xrc1tp XSk7Ci0KLQlyZXR1cm4gMDsKKwlyZXR1cm4gY2xrX2J1bGtfcHJlcGFyZV9lbmFibGUoZ3B1LT5u cl9jbG9ja3MsIGdwdS0+Z3JwX2Nsa3MpOwogfQogCiBzdGF0aWMgaW50IGRpc2FibGVfY2xrKHN0 cnVjdCBtc21fZ3B1ICpncHUpCiB7Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSBncHUtPm5yX2Nsb2Nr cyAtIDE7IGkgPj0gMDsgaS0tKQotCQlpZiAoZ3B1LT5ncnBfY2xrc1tpXSkKLQkJCWNsa19kaXNh YmxlKGdwdS0+Z3JwX2Nsa3NbaV0pOwotCi0JZm9yIChpID0gZ3B1LT5ucl9jbG9ja3MgLSAxOyBp ID49IDA7IGktLSkKLQkJaWYgKGdwdS0+Z3JwX2Nsa3NbaV0pCi0JCQljbGtfdW5wcmVwYXJlKGdw dS0+Z3JwX2Nsa3NbaV0pOworCWNsa19idWxrX2Rpc2FibGVfdW5wcmVwYXJlKGdwdS0+bnJfY2xv Y2tzLCBncHUtPmdycF9jbGtzKTsKIAogCS8qCiAJICogU2V0IHRoZSBjbG9jayB0byBhIGRlbGli ZXJhdGVseSBsb3cgcmF0ZS4gT24gb2xkZXIgdGFyZ2V0cyB0aGUgY2xvY2sKQEAgLTc4NSw0NCAr NzY3LDIyIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBpcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpk YXRhKQogCXJldHVybiBncHUtPmZ1bmNzLT5pcnEoZ3B1KTsKIH0KIAotc3RhdGljIHN0cnVjdCBj bGsgKmdldF9jbG9jayhzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKm5hbWUpCi17Ci0J c3RydWN0IGNsayAqY2xrID0gZGV2bV9jbGtfZ2V0KGRldiwgbmFtZSk7Ci0KLQlyZXR1cm4gSVNf RVJSKGNsaykgPyBOVUxMIDogY2xrOwotfQotCiBzdGF0aWMgaW50IGdldF9jbG9ja3Moc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldiwgc3RydWN0IG1zbV9ncHUgKmdwdSkKIHsKLQlzdHJ1Y3Qg ZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OwotCXN0cnVjdCBwcm9wZXJ0eSAqcHJvcDsKLQljb25z dCBjaGFyICpuYW1lOwotCWludCBpID0gMDsKKwlpbnQgcmV0ID0gbXNtX2Nsa19idWxrX2dldCgm cGRldi0+ZGV2LCAmZ3B1LT5ncnBfY2xrcyk7CiAKLQlncHUtPm5yX2Nsb2NrcyA9IG9mX3Byb3Bl cnR5X2NvdW50X3N0cmluZ3MoZGV2LT5vZl9ub2RlLCAiY2xvY2stbmFtZXMiKTsKLQlpZiAoZ3B1 LT5ucl9jbG9ja3MgPCAxKSB7CisJaWYgKHJldCA8IDEpIHsKIAkJZ3B1LT5ucl9jbG9ja3MgPSAw OwotCQlyZXR1cm4gMDsKLQl9Ci0KLQlncHUtPmdycF9jbGtzID0gZGV2bV9rY2FsbG9jKGRldiwg c2l6ZW9mKHN0cnVjdCBjbGsgKiksIGdwdS0+bnJfY2xvY2tzLAotCQlHRlBfS0VSTkVMKTsKLQlp ZiAoIWdwdS0+Z3JwX2Nsa3MpIHsKLQkJZ3B1LT5ucl9jbG9ja3MgPSAwOwotCQlyZXR1cm4gLUVO T01FTTsKKwkJcmV0dXJuIHJldDsKIAl9CiAKLQlvZl9wcm9wZXJ0eV9mb3JfZWFjaF9zdHJpbmco ZGV2LT5vZl9ub2RlLCAiY2xvY2stbmFtZXMiLCBwcm9wLCBuYW1lKSB7Ci0JCWdwdS0+Z3JwX2Ns a3NbaV0gPSBnZXRfY2xvY2soZGV2LCBuYW1lKTsKKwlncHUtPm5yX2Nsb2NrcyA9IHJldDsKIAot CQkvKiBSZW1lbWJlciB0aGUga2V5IGNsb2NrcyB0aGF0IHdlIG5lZWQgdG8gY29udHJvbCBsYXRl ciAqLwotCQlpZiAoIXN0cmNtcChuYW1lLCAiY29yZSIpIHx8ICFzdHJjbXAobmFtZSwgImNvcmVf Y2xrIikpCi0JCQlncHUtPmNvcmVfY2xrID0gZ3B1LT5ncnBfY2xrc1tpXTsKLQkJZWxzZSBpZiAo IXN0cmNtcChuYW1lLCAicmJibXRpbWVyIikgfHwgIXN0cmNtcChuYW1lLCAicmJibXRpbWVyX2Ns ayIpKQotCQkJZ3B1LT5yYmJtdGltZXJfY2xrID0gZ3B1LT5ncnBfY2xrc1tpXTsKKwlncHUtPmNv cmVfY2xrID0gbXNtX2Nsa19idWxrX2dldF9jbG9jayhncHUtPmdycF9jbGtzLAorCQlncHUtPm5y X2Nsb2NrcywgImNvcmUiKTsKIAotCQkrK2k7Ci0JfQorCWdwdS0+cmJibXRpbWVyX2NsayA9IG1z bV9jbGtfYnVsa19nZXRfY2xvY2soZ3B1LT5ncnBfY2xrcywKKwkJZ3B1LT5ucl9jbG9ja3MsICJy YmJtdGltZXIiKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21zbS9tc21fZ3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuaAppbmRleCAxYzYx MDViYzU1YzcuLjkxMjJlZTZlNTVlNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9t c21fZ3B1LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmgKQEAgLTExMiw3ICsx MTIsNyBAQCBzdHJ1Y3QgbXNtX2dwdSB7CiAKIAkvKiBQb3dlciBDb250cm9sOiAqLwogCXN0cnVj dCByZWd1bGF0b3IgKmdwdV9yZWcsICpncHVfY3g7Ci0Jc3RydWN0IGNsayAqKmdycF9jbGtzOwor CXN0cnVjdCBjbGtfYnVsa19kYXRhICpncnBfY2xrczsKIAlpbnQgbnJfY2xvY2tzOwogCXN0cnVj dCBjbGsgKmViaTFfY2xrLCAqY29yZV9jbGssICpyYmJtdGltZXJfY2xrOwogCXVpbnQzMl90IGZh c3RfcmF0ZTsKLS0gCjIuMTguMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZnJlZWRyZW5vCg==