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, 11 Jun 2018 12:26:01 -0600 Message-ID: <20180611182604.30467-3-jcrouse@codeaurora.org> References: <20180611182604.30467-1-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180611182604.30467-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: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org QWRkIGEgaGVscGVyIGZ1bmN0aW9uIHRvIHBhcnNlIHRoZSBjbG9jayBuYW1lcyBhbmQgc2V0IHVw CnRoZSBidWxrIGRhdGEgc28gd2UgY2FuIHRha2UgYWR2YW50YWdlIG9mIHRoZSBidWxrIGNsb2Nr CmZ1bmN0aW9ucyBpbnN0ZWFkIG9mIHJvbGxpbmcgb3VyIG93bi4gVGhpcyBpcyBhZGRlZAphcyBh IGhlbHBlciBmdW5jdGlvbiBzbyB0aGUgdXBjb21pbmcgYTZ4eCBHTVUgY29kZSBjYW4KYWxzbyB0 YWtlIGFkdmFudGFnZSBvZiBpdC4KClNpZ25lZC1vZmYtYnk6IEpvcmRhbiBDcm91c2UgPGpjcm91 c2VAY29kZWF1cm9yYS5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMgfCA1 NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9tc20v bXNtX2Rydi5oIHwgIDQgKysrCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuYyB8IDYwICsr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9ncHUuaCB8ICAyICstCiA0IGZpbGVzIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKyksIDUxIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKaW5kZXggN2Y3MzIxZWI1MzEyLi4zZTg2ZmM5 YmUzOWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCkBAIC03OCw2ICs3OCw2MyBAQCBtb2R1bGVfcGFy YW0obW9kZXNldCwgYm9vbCwgMDYwMCk7CiAgKiBVdGlsL2hlbHBlcnM6CiAgKi8KIAoraW50IG1z bV9jbGtfYnVsa19nZXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgY2xrX2J1bGtfZGF0YSAq KmJ1bGspCit7CisJc3RydWN0IHByb3BlcnR5ICpwcm9wOworCWNvbnN0IGNoYXIgKm5hbWU7CisJ c3RydWN0IGNsa19idWxrX2RhdGEgKmxvY2FsOworCWludCBpID0gMCwgcmV0LCBjb3VudDsKKwor CWNvdW50ID0gb2ZfcHJvcGVydHlfY291bnRfc3RyaW5ncyhkZXYtPm9mX25vZGUsICJjbG9jay1u YW1lcyIpOworCWlmIChjb3VudCA8IDEpCisJCXJldHVybiAwOworCisJbG9jYWwgPSBkZXZtX2tj YWxsb2MoZGV2LCBzaXplb2Yoc3RydWN0IGNsa19idWxrX2RhdGEgKiksCisJCWNvdW50LCBHRlBf S0VSTkVMKTsKKwlpZiAoIWxvY2FsKQorCQlyZXR1cm4gLUVOT01FTTsKKworCW9mX3Byb3BlcnR5 X2Zvcl9lYWNoX3N0cmluZyhkZXYtPm9mX25vZGUsICJjbG9jay1uYW1lcyIsIHByb3AsIG5hbWUp IHsKKwkJbG9jYWxbaV0uaWQgPSBkZXZtX2tzdHJkdXAoZGV2LCBuYW1lLCBHRlBfS0VSTkVMKTsK KwkJaWYgKCFsb2NhbFtpXS5pZCkgeworCQkJZGV2bV9rZnJlZShkZXYsIGxvY2FsKTsKKwkJCXJl dHVybiAtRU5PTUVNOworCQl9CisKKwkJaSsrOworCX0KKworCXJldCA9IGRldm1fY2xrX2J1bGtf Z2V0KGRldiwgY291bnQsIGxvY2FsKTsKKworCWlmIChyZXQpIHsKKwkJZm9yIChpID0gMDsgaSA8 IGNvdW50OyBpKyspCisJCQlkZXZtX2tmcmVlKGRldiwgKHZvaWQgKikgbG9jYWxbaV0uaWQpOwor CQlkZXZtX2tmcmVlKGRldiwgbG9jYWwpOworCisJCXJldHVybiByZXQ7CisJfQorCisJKmJ1bGsg PSBsb2NhbDsKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0cnVjdCBjbGsgKm1zbV9jbGtfYnVsa19n ZXRfY2xvY2soc3RydWN0IGNsa19idWxrX2RhdGEgKmJ1bGssIGludCBjb3VudCwKKwkJY29uc3Qg Y2hhciAqbmFtZSkKK3sKKwlpbnQgaTsKKwljaGFyIG5bMzJdOworCisJc25wcmludGYobiwgc2l6 ZW9mKG4pLCAiJXNfY2xrIiwgbmFtZSk7CisKKwlmb3IgKGkgPSAwOyBidWxrICYmIGkgPCBjb3Vu dDsgaSsrKSB7CisJCWlmICghc3RyY21wKGJ1bGtbaV0uaWQsIG5hbWUpIHx8ICFzdHJjbXAoYnVs a1tpXS5pZCwgbikpCisJCQlyZXR1cm4gYnVsa1tpXS5jbGs7CisJfQorCisKKwlyZXR1cm4gTlVM TDsKK30KKwogc3RydWN0IGNsayAqbXNtX2Nsa19nZXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldiwgY29uc3QgY2hhciAqbmFtZSkKIHsKIAlzdHJ1Y3QgY2xrICpjbGs7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2Rydi5oCmluZGV4IDE3Y2VmY2ExZDU2Ni4uMDExYzM0YWQxZjkzIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9k cnYuaApAQCAtMzA3LDYgKzMwNywxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbXNtX3BlcmZfZGVi dWdmc19jbGVhbnVwKHN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYpIHt9CiAjZW5kaWYKIAog c3RydWN0IGNsayAqbXNtX2Nsa19nZXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgY29u c3QgY2hhciAqbmFtZSk7CitpbnQgbXNtX2Nsa19idWxrX2dldChzdHJ1Y3QgZGV2aWNlICpkZXYs IHN0cnVjdCBjbGtfYnVsa19kYXRhICoqYnVsayk7CisKK3N0cnVjdCBjbGsgKm1zbV9jbGtfYnVs a19nZXRfY2xvY2soc3RydWN0IGNsa19idWxrX2RhdGEgKmJ1bGssIGludCBjb3VudCwKKwljb25z dCBjaGFyICpuYW1lKTsKIHZvaWQgX19pb21lbSAqbXNtX2lvcmVtYXAoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldiwgY29uc3QgY2hhciAqbmFtZSwKIAkJY29uc3QgY2hhciAqZGJnbmFtZSk7 CiB2b2lkIG1zbV93cml0ZWwodTMyIGRhdGEsIHZvaWQgX19pb21lbSAqYWRkcik7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v bXNtX2dwdS5jCmluZGV4IDFjMDlhY2ZiNDAyOC4uZDRkNWE2OGU0NjhkIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9ncHUuYwpAQCAtMTQxLDggKzE0MSw2IEBAIHN0YXRpYyBpbnQgZGlzYWJsZV9wd3JyYWlsKHN0 cnVjdCBtc21fZ3B1ICpncHUpCiAKIHN0YXRpYyBpbnQgZW5hYmxlX2NsayhzdHJ1Y3QgbXNtX2dw dSAqZ3B1KQogewotCWludCBpOwotCiAJaWYgKGdwdS0+Y29yZV9jbGsgJiYgZ3B1LT5mYXN0X3Jh dGUpCiAJCWNsa19zZXRfcmF0ZShncHUtPmNvcmVfY2xrLCBncHUtPmZhc3RfcmF0ZSk7CiAKQEAg LTE1MCwyOCArMTQ4LDE0IEBAIHN0YXRpYyBpbnQgZW5hYmxlX2NsayhzdHJ1Y3QgbXNtX2dwdSAq Z3B1KQogCWlmIChncHUtPnJiYm10aW1lcl9jbGspCiAJCWNsa19zZXRfcmF0ZShncHUtPnJiYm10 aW1lcl9jbGssIDE5MjAwMDAwKTsKIAotCWZvciAoaSA9IGdwdS0+bnJfY2xvY2tzIC0gMTsgaSA+ PSAwOyBpLS0pCi0JCWlmIChncHUtPmdycF9jbGtzW2ldKQotCQkJY2xrX3ByZXBhcmUoZ3B1LT5n cnBfY2xrc1tpXSk7Ci0KLQlmb3IgKGkgPSBncHUtPm5yX2Nsb2NrcyAtIDE7IGkgPj0gMDsgaS0t KQotCQlpZiAoZ3B1LT5ncnBfY2xrc1tpXSkKLQkJCWNsa19lbmFibGUoZ3B1LT5ncnBfY2xrc1tp XSk7CisJY2xrX2J1bGtfcHJlcGFyZV9lbmFibGUoZ3B1LT5ucl9jbG9ja3MsIGdwdS0+Z3JwX2Ns a3MpOwogCiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgZGlzYWJsZV9jbGsoc3RydWN0IG1z bV9ncHUgKmdwdSkKIHsKLQlpbnQgaTsKLQotCWZvciAoaSA9IGdwdS0+bnJfY2xvY2tzIC0gMTsg aSA+PSAwOyBpLS0pCi0JCWlmIChncHUtPmdycF9jbGtzW2ldKQotCQkJY2xrX2Rpc2FibGUoZ3B1 LT5ncnBfY2xrc1tpXSk7Ci0KLQlmb3IgKGkgPSBncHUtPm5yX2Nsb2NrcyAtIDE7IGkgPj0gMDsg aS0tKQotCQlpZiAoZ3B1LT5ncnBfY2xrc1tpXSkKLQkJCWNsa191bnByZXBhcmUoZ3B1LT5ncnBf Y2xrc1tpXSk7CisJY2xrX2J1bGtfZGlzYWJsZV91bnByZXBhcmUoZ3B1LT5ucl9jbG9ja3MsIGdw dS0+Z3JwX2Nsa3MpOwogCiAJLyoKIAkgKiBTZXQgdGhlIGNsb2NrIHRvIGEgZGVsaWJlcmF0ZWx5 IGxvdyByYXRlLiBPbiBvbGRlciB0YXJnZXRzIHRoZSBjbG9jawpAQCAtNjYwLDQ0ICs2NDQsMjAg QEAgc3RhdGljIGlycXJldHVybl90IGlycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpCiAJ cmV0dXJuIGdwdS0+ZnVuY3MtPmlycShncHUpOwogfQogCi1zdGF0aWMgc3RydWN0IGNsayAqZ2V0 X2Nsb2NrKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbmFtZSkKLXsKLQlzdHJ1Y3Qg Y2xrICpjbGsgPSBkZXZtX2Nsa19nZXQoZGV2LCBuYW1lKTsKLQotCXJldHVybiBJU19FUlIoY2xr KSA/IE5VTEwgOiBjbGs7Ci19Ci0KIHN0YXRpYyBpbnQgZ2V0X2Nsb2NrcyhzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2LCBzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQogewotCXN0cnVjdCBkZXZpY2Ug KmRldiA9ICZwZGV2LT5kZXY7Ci0Jc3RydWN0IHByb3BlcnR5ICpwcm9wOwotCWNvbnN0IGNoYXIg Km5hbWU7Ci0JaW50IGkgPSAwOwotCi0JZ3B1LT5ucl9jbG9ja3MgPSBvZl9wcm9wZXJ0eV9jb3Vu dF9zdHJpbmdzKGRldi0+b2Zfbm9kZSwgImNsb2NrLW5hbWVzIik7Ci0JaWYgKGdwdS0+bnJfY2xv Y2tzIDwgMSkgewotCQlncHUtPm5yX2Nsb2NrcyA9IDA7Ci0JCXJldHVybiAwOwotCX0KKwlpbnQg cmV0ID0gbXNtX2Nsa19idWxrX2dldCgmcGRldi0+ZGV2LCAmZ3B1LT5ncnBfY2xrcyk7CiAKLQln cHUtPmdycF9jbGtzID0gZGV2bV9rY2FsbG9jKGRldiwgc2l6ZW9mKHN0cnVjdCBjbGsgKiksIGdw dS0+bnJfY2xvY2tzLAotCQlHRlBfS0VSTkVMKTsKLQlpZiAoIWdwdS0+Z3JwX2Nsa3MpIHsKLQkJ Z3B1LT5ucl9jbG9ja3MgPSAwOwotCQlyZXR1cm4gLUVOT01FTTsKLQl9CisJaWYgKHJldCA8IDEp CisJCXJldHVybiByZXQ7CiAKLQlvZl9wcm9wZXJ0eV9mb3JfZWFjaF9zdHJpbmcoZGV2LT5vZl9u b2RlLCAiY2xvY2stbmFtZXMiLCBwcm9wLCBuYW1lKSB7Ci0JCWdwdS0+Z3JwX2Nsa3NbaV0gPSBn ZXRfY2xvY2soZGV2LCBuYW1lKTsKKwlncHUtPm5yX2Nsb2NrcyA9IHJldDsKIAotCQkvKiBSZW1l bWJlciB0aGUga2V5IGNsb2NrcyB0aGF0IHdlIG5lZWQgdG8gY29udHJvbCBsYXRlciAqLwotCQlp ZiAoIXN0cmNtcChuYW1lLCAiY29yZSIpIHx8ICFzdHJjbXAobmFtZSwgImNvcmVfY2xrIikpCi0J CQlncHUtPmNvcmVfY2xrID0gZ3B1LT5ncnBfY2xrc1tpXTsKLQkJZWxzZSBpZiAoIXN0cmNtcChu YW1lLCAicmJibXRpbWVyIikgfHwgIXN0cmNtcChuYW1lLCAicmJibXRpbWVyX2NsayIpKQotCQkJ Z3B1LT5yYmJtdGltZXJfY2xrID0gZ3B1LT5ncnBfY2xrc1tpXTsKKwlncHUtPmNvcmVfY2xrID0g bXNtX2Nsa19idWxrX2dldF9jbG9jayhncHUtPmdycF9jbGtzLAorCQlncHUtPm5yX2Nsb2Nrcywg ImNvcmUiKTsKIAotCQkrK2k7Ci0JfQorCWdwdS0+cmJibXRpbWVyX2NsayA9IG1zbV9jbGtfYnVs a19nZXRfY2xvY2soZ3B1LT5ncnBfY2xrcywKKwkJZ3B1LT5ucl9jbG9ja3MsICJyYmJtdGltZXIi KTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21f Z3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuaAppbmRleCBiODI0MTE3OTE3NWEu LmM5YmMyNzdlMjM0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmgKQEAgLTEwOCw3ICsxMDgsNyBAQCBz dHJ1Y3QgbXNtX2dwdSB7CiAKIAkvKiBQb3dlciBDb250cm9sOiAqLwogCXN0cnVjdCByZWd1bGF0 b3IgKmdwdV9yZWcsICpncHVfY3g7Ci0Jc3RydWN0IGNsayAqKmdycF9jbGtzOworCXN0cnVjdCBj bGtfYnVsa19kYXRhICpncnBfY2xrczsKIAlpbnQgbnJfY2xvY2tzOwogCXN0cnVjdCBjbGsgKmVi aTFfY2xrLCAqY29yZV9jbGssICpyYmJtdGltZXJfY2xrOwogCXVpbnQzMl90IGZhc3RfcmF0ZTsK LS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5v Cg==