From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 13/13] ASoC: AMD: Manage ACP 2.x SRAM banks power Date: Fri, 4 Dec 2015 18:40:40 -0500 Message-ID: <1449272440-8735-13-git-send-email-alexander.deucher@amd.com> References: <1449272440-8735-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1449272440-8735-1-git-send-email-alexander.deucher@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: broonie@kernel.org, airlied@gmail.com, dri-devel@lists.freedesktop.org, alsa-devel@alsa-project.org, maruthi.bayyavarapu@amd.com, rajeevkumar.linux@gmail.com Cc: Alex Deucher , Maruthi Srinivas Bayyavarapu , lgirdwood@gmail.com, perex@perex.cz List-Id: alsa-devel@alsa-project.org RnJvbTogTWFydXRoaSBTcmluaXZhcyBCYXl5YXZhcmFwdSA8TWFydXRoaS5CYXl5YXZhcmFwdUBh bWQuY29tPgoKQUNQIFNSQU0gYmFua3MgZ2V0cyB0dXJuZWQgb24gd2hlbiBBQ1AgaXMgcG93ZXJl ZCBvbi4KTm90IGFsbCBiYW5rcyBhcmUgdXNlZCBmb3IgcGxheWJhY2svY2FwdHVyZS4gU28sIHBv d2VyIG9uCnJlcXVpcmVkIGJhbmtzIGR1cmluZyBhdWRpbyBkZXZpY2Ugb3BlbiBhbmQgcG93ZXIg b2ZmIGR1cmluZwphdWRpbyBkZXZpY2UgY2xvc2UuCgpTaWduZWQtb2ZmLWJ5OiBNYXJ1dGhpIEJh eXlhdmFyYXB1IDxtYXJ1dGhpLmJheXlhdmFyYXB1QGFtZC5jb20+ClJldmlld2VkLWJ5OiBBbGV4 IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IEFsZXgg RGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1kLmNvbT4KLS0tCiBzb3VuZC9zb2MvYW1kL2Fj cC1wY20tZG1hLmMgfCAyNSArKysrKysrKysrKy0tLQogc291bmQvc29jL2FtZC9hY3AuYyAgICAg ICAgIHwgODEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBz b3VuZC9zb2MvYW1kL2FjcC5oICAgICAgICAgfCAgMyArLQogMyBmaWxlcyBjaGFuZ2VkLCAxMDMg aW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYW1k L2FjcC1wY20tZG1hLmMgYi9zb3VuZC9zb2MvYW1kL2FjcC1wY20tZG1hLmMKaW5kZXggMDdhMjZl NS4uZGFiYTY0YSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2FtZC9hY3AtcGNtLWRtYS5jCisrKyBi L3NvdW5kL3NvYy9hbWQvYWNwLXBjbS1kbWEuYwpAQCAtMTMzLDYgKzEzMyw3IEBAIHN0YXRpYyBp cnFyZXR1cm5fdCBkbWFfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogCiBzdGF0aWMg aW50IGFjcF9kbWFfb3BlbihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKIHsK Kwl1MzIgYmFuazsKIAlpbnQgcmV0ID0gMDsKIAlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50 aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOwogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpw cnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7CkBAIC0xNjYsMTAgKzE2NywxNyBAQCBzdGF0 aWMgaW50IGFjcF9kbWFfb3BlbihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkK IAlpZiAoIWludHJfZGF0YS0+cGxheV9zdHJlYW0gJiYgIWludHJfZGF0YS0+Y2FwdHVyZV9zdHJl YW0pCiAJCWFjcF9lbmFibGVfZXh0ZXJuYWxfaW50ZXJydXB0cyhhZGF0YS0+YWNwX21taW8sIDEp OwogCi0JaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0sp CisJaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spIHsK IAkJaW50cl9kYXRhLT5wbGF5X3N0cmVhbSA9IHN1YnN0cmVhbTsKLQllbHNlCisJCWZvciAoYmFu ayA9IDE7IGJhbmsgPD0gNDsgYmFuaysrKQorCQkJYWNwX3R1cm5vbm9mZl9sb3dlcl9zcmFtX2Jh bmsoaW50cl9kYXRhLT5hY3BfbW1pbywgYmFuaywKKwkJCQkJCQl0cnVlKTsKKwl9IGVsc2Ugewog CQlpbnRyX2RhdGEtPmNhcHR1cmVfc3RyZWFtID0gc3Vic3RyZWFtOworCQlmb3IgKGJhbmsgPSA1 OyBiYW5rIDw9IDg7IGJhbmsrKykKKwkJCWFjcF90dXJub25vZmZfbG93ZXJfc3JhbV9iYW5rKGlu dHJfZGF0YS0+YWNwX21taW8sIGJhbmssCisJCQkJCXRydWUpOworCX0KIAogCXJldHVybiAwOwog fQpAQCAtMjAxLDYgKzIwOSw3IEBAIHN0YXRpYyBpbnQgYWNwX2RtYV9od19wYXJhbXMoc3RydWN0 IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCiAJcGcgPSB2aXJ0X3RvX3BhZ2Uoc3Vic3Ry ZWFtLT5kbWFfYnVmZmVyLmFyZWEpOwogCiAJaWYgKHBnICE9IE5VTEwpIHsKKwkJYWNwX3R1cm5v bm9mZl9sb3dlcl9zcmFtX2JhbmsocnRkLT5hY3BfbW1pbywgMCwgdHJ1ZSk7CiAJCS8qIFNhdmUg Zm9yIHJ1bnRpbWUgcHJpdmF0ZSBkYXRhICovCiAJCXJ0ZC0+cGcgPSBwZzsKIAkJcnRkLT5vcmRl ciA9IGdldF9vcmRlcihzaXplKTsKQEAgLTM2NCw2ICszNzMsNyBAQCBzdGF0aWMgaW50IGFjcF9k bWFfbmV3KHN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQpCiAKIHN0YXRpYyBpbnQgYWNw X2RtYV9jbG9zZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKIHsKKwl1MzIg YmFuazsKIAlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50 aW1lOwogCXN0cnVjdCBhdWRpb19zdWJzdHJlYW1fZGF0YSAqcnRkID0gcnVudGltZS0+cHJpdmF0 ZV9kYXRhOwogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpwcnRkID0gc3Vic3RyZWFtLT5w cml2YXRlX2RhdGE7CkBAIC0zNzEsMTAgKzM4MSwxNyBAQCBzdGF0aWMgaW50IGFjcF9kbWFfY2xv c2Uoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCiAKIAlrZnJlZShydGQpOwog Ci0JaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spCisJ aWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spIHsKIAkJ YWRhdGEtPnBsYXlfc3RyZWFtID0gTlVMTDsKLQllbHNlCisJCWZvciAoYmFuayA9IDE7IGJhbmsg PD0gNDsgYmFuaysrKQorCQkJYWNwX3R1cm5vbm9mZl9sb3dlcl9zcmFtX2JhbmsoYWRhdGEtPmFj cF9tbWlvLCBiYW5rLAorCQkJCQkJCWZhbHNlKTsKKwl9IGVsc2UgewogCQlhZGF0YS0+Y2FwdHVy ZV9zdHJlYW0gPSBOVUxMOworCQlmb3IgKGJhbmsgPSA1OyBiYW5rIDw9IDg7IGJhbmsrKykKKwkJ CWFjcF90dXJub25vZmZfbG93ZXJfc3JhbV9iYW5rKGFkYXRhLT5hY3BfbW1pbywgYmFuaywKKwkJ CQkJCQlmYWxzZSk7CisJfQogCiAJLyogRGlzYWJsZSBBQ1AgaXJxLCB3aGVuIHRoZSBjdXJyZW50 IHN0cmVhbSBpcyBiZWluZyBjbG9zZWQgYW5kCiAJICogYW5vdGhlciBzdHJlYW0gaXMgYWxzbyBu b3QgYWN0aXZlLgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2FtZC9hY3AuYyBiL3NvdW5kL3NvYy9h bWQvYWNwLmMKaW5kZXggMGQ1OWJlNC4uZWQzZjgzZiAxMDA2NDQKLS0tIGEvc291bmQvc29jL2Ft ZC9hY3AuYworKysgYi9zb3VuZC9zb2MvYW1kL2FjcC5jCkBAIC00NjIsMTAgKzQ2Miw3OSBAQCBp bnQgYWNwX2RtYV9zdG9wKHZvaWQgX19pb21lbSAqYWNwX21taW8sIHU4IGNoX251bSkKIAlyZXR1 cm4gMDsKIH0KIAordm9pZCBhY3BfdHVybm9ub2ZmX2xvd2VyX3NyYW1fYmFuayh2b2lkIF9faW9t ZW0gKmFjcF9tbWlvLCB1MTYgYmFuaywKKwkJCQkJYm9vbCB0dXJub24pCit7CisJdTMyIHZhbDsK KworCXZhbCA9IGFjcF9yZWdfcmVhZChhY3BfbW1pbywgbW1BQ1BfTUVNX1NIVVRfRE9XTl9SRVFf TE8pOworCWlmICh2YWwgJiAoMSA8PCBiYW5rKSkgeworCQkvKiBiYW5rIGlzIGluIG9mZiBzdGF0 ZSAqLworCQlpZiAodHVybm9uID09IHRydWUpCisJCQkvKiByZXF1ZXN0IHRvIG9uICovCisJCQl2 YWwgJj0gfigxIDw8IGJhbmspOworCQllbHNlCisJCQkvKiByZXF1ZXN0IHRvIG9mZiAqLworCQkJ cmV0dXJuOworCX0gZWxzZSB7CisJCS8qIGJhbmsgaXMgaW4gb24gc3RhdGUgKi8KKwkJaWYgKHR1 cm5vbiA9PSBmYWxzZSkKKwkJCS8qIHJlcXVlc3QgdG8gb2ZmICovCisJCQl2YWwgfD0gMSA8PCBi YW5rOworCQllbHNlCisJCQkvKiByZXF1ZXN0IHRvIG9uICovCisJCQlyZXR1cm47CisJfQorCSBh Y3BfcmVnX3dyaXRlKHZhbCwgYWNwX21taW8sCisJCQkJICAgbW1BQ1BfTUVNX1NIVVRfRE9XTl9S RVFfTE8pOworCS8qIElmIEFDUF9NRU1fU0hVVF9ET1dOX1NUU19MTyBpcyAweEZGRkZGRkZGLCB0 aGVuCisJICogc2h1dGRvd24gc2VxdWVuY2UgaXMgY29tcGxldGUuCisJICovCisJIHdoaWxlIChh Y3BfcmVnX3JlYWQoYWNwX21taW8sCisJCQkJICAgICAgbW1BQ1BfTUVNX1NIVVRfRE9XTl9TVFNf TE8pCisJCQkJICAgICAgIT0gMHhGRkZGRkZGRikKKwkJY3B1X3JlbGF4KCk7Cit9CisKK3ZvaWQg YWNwX3R1cm5vbm9mZl9oaWdoZXJfc3JhbV9iYW5rKHZvaWQgX19pb21lbSAqYWNwX21taW8sIHUx NiBiYW5rLAorCQkJCQlib29sIHR1cm5vbikKK3sKKwl1MzIgdmFsOworCisJYmFuayAtPSAzMjsK Kwl2YWwgPSBhY3BfcmVnX3JlYWQoYWNwX21taW8sIG1tQUNQX01FTV9TSFVUX0RPV05fUkVRX0hJ KTsKKwlpZiAodmFsICYgKDEgPDwgYmFuaykpIHsKKwkJLyogYmFuayBpcyBpbiBvZmYgc3RhdGUg Ki8KKwkJaWYgKHR1cm5vbiA9PSB0cnVlKQorCQkJLyogcmVxdWVzdCB0byBvbiAqLworCQkJdmFs ICY9IH4oMSA8PCBiYW5rKTsKKwkJZWxzZQorCQkJLyogcmVxdWVzdCB0byBvZmYgKi8KKwkJCXJl dHVybjsKKwl9IGVsc2UgeworCQkvKiBiYW5rIGlzIGluIG9uIHN0YXRlICovCisJCWlmICh0dXJu b24gPT0gZmFsc2UpCisJCQkvKiByZXF1ZXN0IHRvIG9mZiAqLworCQkJdmFsIHw9IDEgPDwgYmFu azsKKwkJZWxzZQorCQkJLyogcmVxdWVzdCB0byBvbiAqLworCQkJcmV0dXJuOworCX0KKwkgYWNw X3JlZ193cml0ZSh2YWwsIGFjcF9tbWlvLAorCQkJCSAgIG1tQUNQX01FTV9TSFVUX0RPV05fUkVR X0hJKTsKKwkvKiBJZiBBQ1BfTUVNX1NIVVRfRE9XTl9TVFNfTE8gaXMgMHhGRkZGRkZGRiwgdGhl bgorCSAqIHNodXRkb3duIHNlcXVlbmNlIGlzIGNvbXBsZXRlLgorCSAqLworCSB3aGlsZSAoYWNw X3JlZ19yZWFkKGFjcF9tbWlvLAorCQkJCSAgICAgIG1tQUNQX01FTV9TSFVUX0RPV05fU1RTX0hJ KQorCQkJCSAgICAgICE9IDB4MDAwMEZGRkYpCisJCWNwdV9yZWxheCgpOworfQorCiAvKiBJbml0 aWFsaXplIGFuZCBicmluZyBBQ1AgaGFyZHdhcmUgdG8gZGVmYXVsdCBzdGF0ZS4gKi8KIGludCBh Y3BfaW5pdCh2b2lkIF9faW9tZW0gKmFjcF9tbWlvKQogewotCXUzMiB2YWw7CisJdTMyIHZhbCwg YmFuazsKIAl1MzIgY291bnQ7CiAKIAkvKiBBc3NlcnQgU29mdCByZXNldCBvZiBBQ1AgKi8KQEAg LTUyNyw2ICs1OTYsMTYgQEAgaW50IGFjcF9pbml0KHZvaWQgX19pb21lbSAqYWNwX21taW8pCiAJ YWNwX3JlZ193cml0ZShBQ1BfRVhURVJOQUxfSU5UUl9DTlRMX19ETUFJT0NNYXNrX01BU0ssCiAJ CWFjcF9tbWlvLCBtbUFDUF9FWFRFUk5BTF9JTlRSX0NOVEwpOwogCisJLyogV2hlbiBBQ1BfVElM RV9QMSBpcyB0dXJuZWQgb24sIGFsbCBTUkFNIGJhbmtzIGdldCB0dXJuZWQgb24uCisJICogTm93 LCB0dXJuIG9mZiBhbGwgb2YgdGhlbS4gVGhpcyBjYW4ndCBiZSBkb25lIGluICdwb3dlcm9uJyBv ZgorCSAqIEFDUCBwbSBkb21haW4sIGFzIHRoaXMgcmVxdWlyZXMgQUNQIHRvIGJlIGluaXRpYWxp emVkLgorCSAqLworCWZvciAoYmFuayA9IDE7IGJhbmsgPCAzMjsgYmFuaysrKQorCQlhY3BfdHVy bm9ub2ZmX2xvd2VyX3NyYW1fYmFuayhhY3BfbW1pbywgYmFuaywgZmFsc2UpOworCisJZm9yIChi YW5rID0gMzI7IGJhbmsgPCA0ODsgYmFuaysrKQorCQlhY3BfdHVybm9ub2ZmX2hpZ2hlcl9zcmFt X2JhbmsoYWNwX21taW8sIGJhbmssIGZhbHNlKTsKKwogCS8qIERlc2lnbndhcmUgSTJTIGRyaXZl ciByZXF1cmllcyBwcm9wZXIgY2FwYWJpbGl0aWVzCiAJICogZnJvbSBtbUFDUF9JMlNNSUNTUF9D T01QX1BBUkFNXzEgcmVnaXN0ZXIuIFRoZSByZWdpc3RlcgogCSAqIHJlcG9ydHMgcGxheWJhY2sg YW5kIGNhcHR1cmUgY2FwYWJpbGl0aWVzIHRob3VnaCB0aGUKZGlmZiAtLWdpdCBhL3NvdW5kL3Nv Yy9hbWQvYWNwLmggYi9zb3VuZC9zb2MvYW1kL2FjcC5oCmluZGV4IDUzYzMwZWEuLmEyZjM3NjIg MTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9hbWQvYWNwLmgKKysrIGIvc291bmQvc29jL2FtZC9hY3Au aApAQCAtMTM1LDUgKzEzNSw2IEBAIGV4dGVybiB2b2lkIGFjcF9lbmFibGVfZXh0ZXJuYWxfaW50 ZXJydXB0cyh2b2lkIF9faW9tZW0gKmFjcF9tbWlvLAogZXh0ZXJuIHUzMiBhY3BfZ2V0X2ludHJf ZmxhZyh2b2lkIF9faW9tZW0gKmFjcF9tbWlvKTsKIGV4dGVybiB1MTYgZ2V0X2RzY3JfaWR4KHZv aWQgX19pb21lbSAqYWNwX21taW8sIGludCBkaXJlY3Rpb24pOwogZXh0ZXJuIHZvaWQgYWNwX2V4 dF9zdGF0X2NsZWFyX2RtYWlvYyh2b2lkIF9faW9tZW0gKmFjcF9tbWlvLCB1OCBjaF9udW0pOwot CitleHRlcm4gdm9pZCBhY3BfdHVybm9ub2ZmX2xvd2VyX3NyYW1fYmFuayh2b2lkIF9faW9tZW0g KmFjcF9tbWlvLCB1MTYgYmFuaywKKwkJCQkJYm9vbCB0dXJub24pOwogI2VuZGlmIC8qX19BQ1Bf SFdfSCAqLwotLSAKMS44LjMuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwK