From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 9/9] ASoC: AMD: Manage ACP 2.x SRAM banks power Date: Fri, 8 Jan 2016 18:22:11 -0500 Message-ID: <1452295331-28476-10-git-send-email-alexander.deucher@amd.com> References: <1452295331-28476-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: <1452295331-28476-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: airlied@gmail.com, dri-devel@lists.freedesktop.org, broonie@kernel.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 RGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1kLmNvbT4KLS0tCgp2MjogQ2hhbmdlczoKICAg IDEuIENsZWFuIHVwIHNyYW0gYmFuayBoYW5kbGluZyB0byBjbGFyaWZ5IG9wZXJhdGlvbgogICAg Mi4gQWRkIHRpbWVvdXQgdG8gbG9vcAoKIHNvdW5kL3NvYy9hbWQvYWNwLXBjbS1kbWEuYyB8IDk0 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogMSBmaWxlIGNo YW5nZWQsIDg3IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc291 bmQvc29jL2FtZC9hY3AtcGNtLWRtYS5jIGIvc291bmQvc29jL2FtZC9hY3AtcGNtLWRtYS5jCmlu ZGV4IGMwODE5YjUuLmNjOGI4NDEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9hbWQvYWNwLXBjbS1k bWEuYworKysgYi9zb3VuZC9zb2MvYW1kL2FjcC1wY20tZG1hLmMKQEAgLTM3Niw5ICszNzYsNTcg QEAgc3RhdGljIGludCBhY3BfZG1hX3N0b3Aodm9pZCBfX2lvbWVtICphY3BfbW1pbywgdTggY2hf bnVtKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgdm9pZCBhY3Bfc2V0X3NyYW1fYmFua19zdGF0 ZSh2b2lkIF9faW9tZW0gKmFjcF9tbWlvLCB1MTYgYmFuaywKKwkJCQkJYm9vbCBwb3dlcl9vbikK K3sKKwl1MzIgdmFsLCByZXFfcmVnLCBzdHNfcmVnLCBzdHNfcmVnX21hc2s7CisJdTMyIGxvb3Bz ID0gMTAwMDsKKworCWlmIChiYW5rIDwgMzIpIHsKKwkJcmVxX3JlZyA9IG1tQUNQX01FTV9TSFVU X0RPV05fUkVRX0xPOworCQlzdHNfcmVnID0gbW1BQ1BfTUVNX1NIVVRfRE9XTl9TVFNfTE87CisJ CXN0c19yZWdfbWFzayA9IDB4RkZGRkZGRkY7CisKKwl9IGVsc2UgeworCQliYW5rIC09IDMyOwor CQlyZXFfcmVnID0gbW1BQ1BfTUVNX1NIVVRfRE9XTl9SRVFfSEk7CisJCXN0c19yZWcgPSBtbUFD UF9NRU1fU0hVVF9ET1dOX1NUU19ISTsKKwkJc3RzX3JlZ19tYXNrID0gMHgwMDAwRkZGRjsKKwl9 CisKKwl2YWwgPSBhY3BfcmVnX3JlYWQoYWNwX21taW8sIHJlcV9yZWcpOworCWlmICh2YWwgJiAo MSA8PCBiYW5rKSkgeworCQkvKiBiYW5rIGlzIGluIG9mZiBzdGF0ZSAqLworCQlpZiAocG93ZXJf b24gPT0gdHJ1ZSkKKwkJCS8qIHJlcXVlc3QgdG8gb24gKi8KKwkJCXZhbCAmPSB+KDEgPDwgYmFu ayk7CisJCWVsc2UKKwkJCS8qIHJlcXVlc3QgdG8gb2ZmICovCisJCQlyZXR1cm47CisJfSBlbHNl IHsKKwkJLyogYmFuayBpcyBpbiBvbiBzdGF0ZSAqLworCQlpZiAocG93ZXJfb24gPT0gZmFsc2Up CisJCQkvKiByZXF1ZXN0IHRvIG9mZiAqLworCQkJdmFsIHw9IDEgPDwgYmFuazsKKwkJZWxzZQor CQkJLyogcmVxdWVzdCB0byBvbiAqLworCQkJcmV0dXJuOworCX0KKwlhY3BfcmVnX3dyaXRlKHZh bCwgYWNwX21taW8sIHJlcV9yZWcpOworCisJd2hpbGUgKGFjcF9yZWdfcmVhZChhY3BfbW1pbywg c3RzX3JlZykgIT0gc3RzX3JlZ19tYXNrKSB7CisJCWlmICghbG9vcHMtLSkgeworCQkJcHJfZXJy KCJBQ1AgU1JBTSBiYW5rICVkIHN0YXRlIGNoYW5nZSBmYWlsZWRcbiIsIGJhbmspOworCQkJYnJl YWs7CisJCX0KKwkJY3B1X3JlbGF4KCk7CisJfQorfQorCiAvKiBJbml0aWFsaXplIGFuZCBicmlu ZyBBQ1AgaGFyZHdhcmUgdG8gZGVmYXVsdCBzdGF0ZS4gKi8KIHN0YXRpYyBpbnQgYWNwX2luaXQo dm9pZCBfX2lvbWVtICphY3BfbW1pbykKIHsKKwl1MTYgYmFuazsKIAl1MzIgdmFsLCBjb3VudCwg c3JhbV9wdGVfb2Zmc2V0OwogCiAJLyogQXNzZXJ0IFNvZnQgcmVzZXQgb2YgQUNQICovCkBAIC00 NDcsNiArNDk1LDEzIEBAIHN0YXRpYyBpbnQgYWNwX2luaXQodm9pZCBfX2lvbWVtICphY3BfbW1p bykKIAlhY3BfcmVnX3dyaXRlKEFDUF9FWFRFUk5BTF9JTlRSX0NOVExfX0RNQUlPQ01hc2tfTUFT SywKIAkJYWNwX21taW8sIG1tQUNQX0VYVEVSTkFMX0lOVFJfQ05UTCk7CiAKKyAgICAgICAvKiBX aGVuIEFDUF9USUxFX1AxIGlzIHR1cm5lZCBvbiwgYWxsIFNSQU0gYmFua3MgZ2V0IHR1cm5lZCBv bi4KKwkqIE5vdywgdHVybiBvZmYgYWxsIG9mIHRoZW0uIFRoaXMgY2FuJ3QgYmUgZG9uZSBpbiAn cG93ZXJvbicgb2YKKwkqIEFDUCBwbSBkb21haW4sIGFzIHRoaXMgcmVxdWlyZXMgQUNQIHRvIGJl IGluaXRpYWxpemVkLgorCSovCisJZm9yIChiYW5rID0gMTsgYmFuayA8IDQ4OyBiYW5rKyspCisJ CWFjcF9zZXRfc3JhbV9iYW5rX3N0YXRlKGFjcF9tbWlvLCBiYW5rLCBmYWxzZSk7CisKIAlyZXR1 cm4gMDsKIH0KIApAQCAtNTU5LDYgKzYxNCw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBkbWFfaXJx X2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogCiBzdGF0aWMgaW50IGFjcF9kbWFfb3Blbihz dHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKIHsKKwl1MTYgYmFuazsKIAlpbnQg cmV0ID0gMDsKIAlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5y dW50aW1lOwogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpwcnRkID0gc3Vic3RyZWFtLT5w cml2YXRlX2RhdGE7CkBAIC01OTIsMTAgKzY0OCwxNyBAQCBzdGF0aWMgaW50IGFjcF9kbWFfb3Bl bihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKIAlpZiAoIWludHJfZGF0YS0+ cGxheV9zdHJlYW0gJiYgIWludHJfZGF0YS0+Y2FwdHVyZV9zdHJlYW0pCiAJCWFjcF9yZWdfd3Jp dGUoMSwgYWRhdGEtPmFjcF9tbWlvLCBtbUFDUF9FWFRFUk5BTF9JTlRSX0VOQik7CiAKLQlpZiAo c3Vic3RyZWFtLT5zdHJlYW0gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykKKwlpZiAoc3Vi c3RyZWFtLT5zdHJlYW0gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykgewogCQlpbnRyX2Rh dGEtPnBsYXlfc3RyZWFtID0gc3Vic3RyZWFtOwotCWVsc2UKKwkJZm9yIChiYW5rID0gMTsgYmFu ayA8PSA0OyBiYW5rKyspCisJCQlhY3Bfc2V0X3NyYW1fYmFua19zdGF0ZShpbnRyX2RhdGEtPmFj cF9tbWlvLCBiYW5rLAorCQkJCQkJdHJ1ZSk7CisJfSBlbHNlIHsKIAkJaW50cl9kYXRhLT5jYXB0 dXJlX3N0cmVhbSA9IHN1YnN0cmVhbTsKKwkJZm9yIChiYW5rID0gNTsgYmFuayA8PSA4OyBiYW5r KyspCisJCQlhY3Bfc2V0X3NyYW1fYmFua19zdGF0ZShpbnRyX2RhdGEtPmFjcF9tbWlvLCBiYW5r LAorCQkJCQkJdHJ1ZSk7CisJfQogCiAJcmV0dXJuIDA7CiB9CkBAIC02MjcsNiArNjkwLDcgQEAg c3RhdGljIGludCBhY3BfZG1hX2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1 YnN0cmVhbSwKIAlwZyA9IHZpcnRfdG9fcGFnZShzdWJzdHJlYW0tPmRtYV9idWZmZXIuYXJlYSk7 CiAKIAlpZiAocGcgIT0gTlVMTCkgeworCQlhY3Bfc2V0X3NyYW1fYmFua19zdGF0ZShydGQtPmFj cF9tbWlvLCAwLCB0cnVlKTsKIAkJLyogU2F2ZSBmb3IgcnVudGltZSBwcml2YXRlIGRhdGEgKi8K IAkJcnRkLT5wZyA9IHBnOwogCQlydGQtPm9yZGVyID0gZ2V0X29yZGVyKHNpemUpOwpAQCAtODAy LDYgKzg2Niw3IEBAIHN0YXRpYyBpbnQgYWNwX2RtYV9uZXcoc3RydWN0IHNuZF9zb2NfcGNtX3J1 bnRpbWUgKnJ0ZCkKIAogc3RhdGljIGludCBhY3BfZG1hX2Nsb3NlKHN0cnVjdCBzbmRfcGNtX3N1 YnN0cmVhbSAqc3Vic3RyZWFtKQogeworCXUxNiBiYW5rOwogCXN0cnVjdCBzbmRfcGNtX3J1bnRp bWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CiAJc3RydWN0IGF1ZGlvX3N1YnN0cmVh bV9kYXRhICpydGQgPSBydW50aW1lLT5wcml2YXRlX2RhdGE7CiAJc3RydWN0IHNuZF9zb2NfcGNt X3J1bnRpbWUgKnBydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKQEAgLTgwOSwxMCArODc0 LDE3IEBAIHN0YXRpYyBpbnQgYWNwX2RtYV9jbG9zZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0g KnN1YnN0cmVhbSkKIAogCWtmcmVlKHJ0ZCk7CiAKLQlpZiAoc3Vic3RyZWFtLT5zdHJlYW0gPT0g U05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykKKwlpZiAoc3Vic3RyZWFtLT5zdHJlYW0gPT0gU05E UlZfUENNX1NUUkVBTV9QTEFZQkFDSykgewogCQlhZGF0YS0+cGxheV9zdHJlYW0gPSBOVUxMOwot CWVsc2UKKwkJZm9yIChiYW5rID0gMTsgYmFuayA8PSA0OyBiYW5rKyspCisJCQlhY3Bfc2V0X3Ny YW1fYmFua19zdGF0ZShhZGF0YS0+YWNwX21taW8sIGJhbmssCisJCQkJCQlmYWxzZSk7CisJfSBl bHNlIHsKIAkJYWRhdGEtPmNhcHR1cmVfc3RyZWFtID0gTlVMTDsKKwkJZm9yIChiYW5rID0gNTsg YmFuayA8PSA4OyBiYW5rKyspCisJCQlhY3Bfc2V0X3NyYW1fYmFua19zdGF0ZShhZGF0YS0+YWNw X21taW8sIGJhbmssCisJCQkJCQlmYWxzZSk7CisJfQogCiAJLyogRGlzYWJsZSBBQ1AgaXJxLCB3 aGVuIHRoZSBjdXJyZW50IHN0cmVhbSBpcyBiZWluZyBjbG9zZWQgYW5kCiAJICogYW5vdGhlciBz dHJlYW0gaXMgYWxzbyBub3QgYWN0aXZlLgpAQCAtOTA2LDE3ICs5NzgsMjUgQEAgc3RhdGljIGlu dCBhY3BfYXVkaW9fcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIHN0YXRp YyBpbnQgYWNwX3BjbV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQogeworCXUxNiBiYW5rOwog CXN0cnVjdCBhdWRpb19kcnZfZGF0YSAqYWRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAog CWFjcF9pbml0KGFkYXRhLT5hY3BfbW1pbyk7CiAKLQlpZiAoYWRhdGEtPnBsYXlfc3RyZWFtICYm IGFkYXRhLT5wbGF5X3N0cmVhbS0+cnVudGltZSkKKwlpZiAoYWRhdGEtPnBsYXlfc3RyZWFtICYm IGFkYXRhLT5wbGF5X3N0cmVhbS0+cnVudGltZSkgeworCQlmb3IgKGJhbmsgPSAxOyBiYW5rIDw9 IDQ7IGJhbmsrKykKKwkJCWFjcF9zZXRfc3JhbV9iYW5rX3N0YXRlKGFkYXRhLT5hY3BfbW1pbywg YmFuaywKKwkJCQkJCXRydWUpOwogCQljb25maWdfYWNwX2RtYShhZGF0YS0+YWNwX21taW8sCiAJ CQkJYWRhdGEtPnBsYXlfc3RyZWFtLT5ydW50aW1lLT5wcml2YXRlX2RhdGEpOwotCWlmIChhZGF0 YS0+Y2FwdHVyZV9zdHJlYW0gJiYgYWRhdGEtPmNhcHR1cmVfc3RyZWFtLT5ydW50aW1lKQorCX0K KwlpZiAoYWRhdGEtPmNhcHR1cmVfc3RyZWFtICYmIGFkYXRhLT5jYXB0dXJlX3N0cmVhbS0+cnVu dGltZSkgeworCQlmb3IgKGJhbmsgPSA1OyBiYW5rIDw9IDg7IGJhbmsrKykKKwkJCWFjcF9zZXRf c3JhbV9iYW5rX3N0YXRlKGFkYXRhLT5hY3BfbW1pbywgYmFuaywKKwkJCQkJCXRydWUpOwogCQlj b25maWdfYWNwX2RtYShhZGF0YS0+YWNwX21taW8sCiAJCQkJYWRhdGEtPmNhcHR1cmVfc3RyZWFt LT5ydW50aW1lLT5wcml2YXRlX2RhdGEpOwotCisJfQogCWFjcF9yZWdfd3JpdGUoMSwgYWRhdGEt PmFjcF9tbWlvLCBtbUFDUF9FWFRFUk5BTF9JTlRSX0VOQik7CiAJcmV0dXJuIDA7CiB9Ci0tIAoy LjUuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK