From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: [PATCH v3] drm/i915: rewrite hsw/bdw audio codec enable/disable sequences Date: Tue, 28 Oct 2014 14:03:09 +0200 Message-ID: <1414497789-6224-1-git-send-email-jani.nikula@intel.com> References: <7441f15f037714b64fa4d0039e2d2332546ff541.1414419818.git.jani.nikula@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 2DFA6892B9 for ; Tue, 28 Oct 2014 05:03:26 -0700 (PDT) In-Reply-To: <7441f15f037714b64fa4d0039e2d2332546ff541.1414419818.git.jani.nikula@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: jani.nikula@intel.com List-Id: intel-gfx@lists.freedesktop.org VGhlcmUncyBzb21lIHNlcmlvdXMgY29uZnVzaW9uIHJlZ2FyZGluZyBFTEQgdmFsaWQgYml0IHRo YXQgZ2V0cyBzZXQgYW5kCmNsZWFyZWQgYmFjayBhbmQgZm9ydGggZXRjLiBSZXdyaXRlIGl0IGFs bCBiYXNlZCBvbiB0aGUgZG9jdW1lbnRlZCBhdWRpbwpjb2RlYyBlbmFibGUvZGlzYWJsZSBzZXF1 ZW5jZXMuCgp2MzogcmVwbGFjZSB2Ymxhbmsgd2FpdCB3aXRoIGEgY29tbWVudAoKU2lnbmVkLW9m Zi1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIHwgMTEwICsrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCA2NCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwppbmRleCA4MjE1MTRjOTUyMjkuLjJl N2Q0Mjg3OGI5ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8u YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCkBAIC0xMzIsMTQgKzEz MiwyNiBAQCBzdGF0aWMgdm9pZCBnNHhfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCiAKIHN0YXRpYyB2b2lkIGhzd19hdWRpb19jb2RlY19kaXNhYmxl KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGVuY29kZXIt PmJhc2UuY3J0YzsKLQllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0YyktPnBpcGU7 CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5jb2Rlci0+YmFzZS5kZXYt PmRldl9wcml2YXRlOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpOworCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+ cGlwZTsKIAl1aW50MzJfdCB0bXA7CiAKKwlEUk1fREVCVUdfS01TKCJEaXNhYmxlIGF1ZGlvIGNv ZGVjIG9uIHBpcGUgJWNcbiIsIHBpcGVfbmFtZShwaXBlKSk7CisKKwkvKiBEaXNhYmxlIHRpbWVz dGFtcHMgKi8KKwl0bXAgPSBJOTE1X1JFQUQoSFNXX0FVRF9DRkcocGlwZSkpOworCXRtcCAmPSB+ QVVEX0NPTkZJR19OX1ZBTFVFX0lOREVYOworCXRtcCB8PSBBVURfQ09ORklHX05fUFJPR19FTkFC TEU7CisJdG1wICY9IH5BVURfQ09ORklHX1VQUEVSX05fTUFTSzsKKwl0bXAgJj0gfkFVRF9DT05G SUdfTE9XRVJfTl9NQVNLOworCWlmIChpbnRlbF9waXBlX2hhc190eXBlKGludGVsX2NydGMsIElO VEVMX09VVFBVVF9ESVNQTEFZUE9SVCkpCisJCXRtcCB8PSBBVURfQ09ORklHX05fVkFMVUVfSU5E RVg7CisJSTkxNV9XUklURShIU1dfQVVEX0NGRyhwaXBlKSwgdG1wKTsKKworCS8qIEludmFsaWRh dGUgRUxEICovCiAJdG1wID0gSTkxNV9SRUFEKEhTV19BVURfUElOX0VMRF9DUF9WTEQpOwotCXRt cCAmPSB+KChBVURJT19PVVRQVVRfRU5BQkxFX0EgfCBBVURJT19FTERfVkFMSURfQSkgPDwgKHBp cGUgKiA0KSk7CisJdG1wICY9IH4oQVVESU9fRUxEX1ZBTElEX0EgPDwgKHBpcGUgKiA0KSk7CiAJ STkxNV9XUklURShIU1dfQVVEX1BJTl9FTERfQ1BfVkxELCB0bXApOwogfQogCkBAIC0xNDksNzcg KzE2MSw0NyBAQCBzdGF0aWMgdm9pZCBoc3dfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gY29ubmVjdG9yLT5kZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpOwotCXVpbnQ4X3Qg KmVsZCA9IGNvbm5lY3Rvci0+ZWxkOwotCXVpbnQzMl90IGVsZHY7CisJZW51bSBwaXBlIHBpcGUg PSBpbnRlbF9jcnRjLT5waXBlOworCWNvbnN0IHVpbnQ4X3QgKmVsZCA9IGNvbm5lY3Rvci0+ZWxk OwogCXVpbnQzMl90IHRtcDsKIAlpbnQgbGVuLCBpOwotCWVudW0gcGlwZSBwaXBlID0gaW50ZWxf Y3J0Yy0+cGlwZTsKLQllbnVtIHBvcnQgcG9ydDsKLQlpbnQgaGRtaXdfaGRtaWVkaWQgPSBIU1df QVVEX0VESURfREFUQShwaXBlKTsKLQlpbnQgYXVkX2NudGxfc3QgPSBIU1dfQVVEX0RJUF9FTERf Q1RSTChwaXBlKTsKLQlpbnQgYXVkX2NvbmZpZyA9IEhTV19BVURfQ0ZHKHBpcGUpOwotCWludCBh dWRfY250cmxfc3QyID0gSFNXX0FVRF9QSU5fRUxEX0NQX1ZMRDsKIAotCS8qIEF1ZGlvIG91dHB1 dCBlbmFibGUgKi8KLQlEUk1fREVCVUdfRFJJVkVSKCJIRE1JIGF1ZGlvOiBlbmFibGUgY29kZWNc biIpOwotCXRtcCA9IEk5MTVfUkVBRChhdWRfY250cmxfc3QyKTsKLQl0bXAgfD0gKEFVRElPX09V VFBVVF9FTkFCTEVfQSA8PCAocGlwZSAqIDQpKTsKLQlJOTE1X1dSSVRFKGF1ZF9jbnRybF9zdDIs IHRtcCk7Ci0JUE9TVElOR19SRUFEKGF1ZF9jbnRybF9zdDIpOwotCi0JLyogU2V0IEVMRCB2YWxp ZCBzdGF0ZSAqLwotCXRtcCA9IEk5MTVfUkVBRChhdWRfY250cmxfc3QyKTsKLQlEUk1fREVCVUdf RFJJVkVSKCJIRE1JIGF1ZGlvOiBwaW4gZWxkIHZsZCBzdGF0dXM9MHglMDh4XG4iLCB0bXApOwot CXRtcCB8PSAoQVVESU9fRUxEX1ZBTElEX0EgPDwgKHBpcGUgKiA0KSk7Ci0JSTkxNV9XUklURShh dWRfY250cmxfc3QyLCB0bXApOwotCXRtcCA9IEk5MTVfUkVBRChhdWRfY250cmxfc3QyKTsKLQlE Uk1fREVCVUdfRFJJVkVSKCJIRE1JIGF1ZGlvOiBlbGQgdmxkIHN0YXR1cz0weCUwOHhcbiIsIHRt cCk7Ci0KLQkvKiBFbmFibGUgSERNSSBtb2RlICovCi0JdG1wID0gSTkxNV9SRUFEKGF1ZF9jb25m aWcpOwotCURSTV9ERUJVR19EUklWRVIoIkhETUkgYXVkaW86IGF1ZGlvIGNvbmY6IDB4JTA4eFxu IiwgdG1wKTsKLQkvKiBjbGVhciBOX3Byb2dyYW1pbmdfZW5hYmxlIGFuZCBOX3ZhbHVlX2luZGV4 ICovCi0JdG1wICY9IH4oQVVEX0NPTkZJR19OX1ZBTFVFX0lOREVYIHwgQVVEX0NPTkZJR19OX1BS T0dfRU5BQkxFKTsKLQlJOTE1X1dSSVRFKGF1ZF9jb25maWcsIHRtcCk7CisJRFJNX0RFQlVHX0tN UygiRW5hYmxlIGF1ZGlvIGNvZGVjIG9uIHBpcGUgJWMsICV1IGJ5dGVzIEVMRFxuIiwKKwkJICAg ICAgcGlwZV9uYW1lKHBpcGUpLCBlbGRbMl0pOwogCi0JRFJNX0RFQlVHX0RSSVZFUigiRUxEIG9u IHBpcGUgJWNcbiIsIHBpcGVfbmFtZShwaXBlKSk7Ci0KLQllbGR2ID0gQVVESU9fRUxEX1ZBTElE X0EgPDwgKHBpcGUgKiA0KTsKLQotCWlmIChpbnRlbF9waXBlX2hhc190eXBlKGludGVsX2NydGMs IElOVEVMX09VVFBVVF9ESVNQTEFZUE9SVCkpCi0JCUk5MTVfV1JJVEUoYXVkX2NvbmZpZywgQVVE X0NPTkZJR19OX1ZBTFVFX0lOREVYKTsgLyogMHgxID0gRFAgKi8KLQllbHNlCi0JCUk5MTVfV1JJ VEUoYXVkX2NvbmZpZywgYXVkaW9fY29uZmlnX2hkbWlfcGl4ZWxfY2xvY2sobW9kZSkpOwotCi0J aWYgKGludGVsX2VsZF91cHRvZGF0ZShjb25uZWN0b3IsCi0JCQkgICAgICAgYXVkX2NudHJsX3N0 MiwgZWxkdiwKLQkJCSAgICAgICBhdWRfY250bF9zdCwgSUJYX0VMRF9BRERSRVNTX01BU0ssCi0J CQkgICAgICAgaGRtaXdfaGRtaWVkaWQpKQotCQlyZXR1cm47CisJLyogRW5hYmxlIGF1ZGlvIHBy ZXNlbmNlIGRldGVjdCwgaW52YWxpZGF0ZSBFTEQgKi8KKwl0bXAgPSBJOTE1X1JFQUQoSFNXX0FV RF9QSU5fRUxEX0NQX1ZMRCk7CisJdG1wIHw9IEFVRElPX09VVFBVVF9FTkFCTEVfQSA8PCAocGlw ZSAqIDQpOworCXRtcCAmPSB+KEFVRElPX0VMRF9WQUxJRF9BIDw8IChwaXBlICogNCkpOworCUk5 MTVfV1JJVEUoSFNXX0FVRF9QSU5fRUxEX0NQX1ZMRCwgdG1wKTsKIAotCXRtcCA9IEk5MTVfUkVB RChhdWRfY250cmxfc3QyKTsKLQl0bXAgJj0gfmVsZHY7Ci0JSTkxNV9XUklURShhdWRfY250cmxf c3QyLCB0bXApOworCS8qIFhYWDogdmJsYW5rIHdhaXQgaGVyZSAqLwogCi0JdG1wID0gSTkxNV9S RUFEKGF1ZF9jbnRsX3N0KTsKKwkvKiBSZXNldCBFTEQgd3JpdGUgYWRkcmVzcyAqLworCXRtcCA9 IEk5MTVfUkVBRChIU1dfQVVEX0RJUF9FTERfQ1RSTChwaXBlKSk7CiAJdG1wICY9IH5JQlhfRUxE X0FERFJFU1NfTUFTSzsKLQlJOTE1X1dSSVRFKGF1ZF9jbnRsX3N0LCB0bXApOwotCXBvcnQgPSAo dG1wID4+IDI5KSAmIERJUF9QT1JUX1NFTF9NQVNLOwkJLyogRElQX1BvcnRfU2VsZWN0LCAweDEg PSBQb3J0QiAqLwotCURSTV9ERUJVR19EUklWRVIoInBvcnQgbnVtOiVkXG4iLCBwb3J0KTsKKwlJ OTE1X1dSSVRFKEhTV19BVURfRElQX0VMRF9DVFJMKHBpcGUpLCB0bXApOwogCi0JbGVuID0gbWlu X3QoaW50LCBlbGRbMl0sIDIxKTsJLyogODQgYnl0ZXMgb2YgaHcgRUxEIGJ1ZmZlciAqLwotCURS TV9ERUJVR19EUklWRVIoIkVMRCBzaXplICVkXG4iLCBsZW4pOworCS8qIFVwIHRvIDg0IGJ5dGVz IG9mIGh3IEVMRCBidWZmZXIgKi8KKwlsZW4gPSBtaW5fdChpbnQsIGVsZFsyXSwgMjEpOwogCWZv ciAoaSA9IDA7IGkgPCBsZW47IGkrKykKLQkJSTkxNV9XUklURShoZG1pd19oZG1pZWRpZCwgKigo dWludDMyX3QgKillbGQgKyBpKSk7Ci0KLQl0bXAgPSBJOTE1X1JFQUQoYXVkX2NudHJsX3N0Mik7 Ci0JdG1wIHw9IGVsZHY7Ci0JSTkxNV9XUklURShhdWRfY250cmxfc3QyLCB0bXApOworCQlJOTE1 X1dSSVRFKEhTV19BVURfRURJRF9EQVRBKHBpcGUpLCAqKCh1aW50MzJfdCAqKWVsZCArIGkpKTsK IAotCS8qIFhYWDogVHJhbnNpdGlvbmFsICovCisJLyogRUxEIHZhbGlkICovCiAJdG1wID0gSTkx NV9SRUFEKEhTV19BVURfUElOX0VMRF9DUF9WTEQpOwotCXRtcCB8PSAoKEFVRElPX09VVFBVVF9F TkFCTEVfQSB8IEFVRElPX0VMRF9WQUxJRF9BKSA8PCAocGlwZSAqIDQpKTsKKwl0bXAgfD0gQVVE SU9fRUxEX1ZBTElEX0EgPDwgKHBpcGUgKiA0KTsKIAlJOTE1X1dSSVRFKEhTV19BVURfUElOX0VM RF9DUF9WTEQsIHRtcCk7CisKKwkvKiBFbmFibGUgdGltZXN0YW1wcyAqLworCXRtcCA9IEk5MTVf UkVBRChIU1dfQVVEX0NGRyhwaXBlKSk7CisJdG1wICY9IH5BVURfQ09ORklHX05fVkFMVUVfSU5E RVg7CisJdG1wICY9IH5BVURfQ09ORklHX05fUFJPR19FTkFCTEU7CisJdG1wICY9IH5BVURfQ09O RklHX1BJWEVMX0NMT0NLX0hETUlfTUFTSzsKKwlpZiAoaW50ZWxfcGlwZV9oYXNfdHlwZShpbnRl bF9jcnRjLCBJTlRFTF9PVVRQVVRfRElTUExBWVBPUlQpKQorCQl0bXAgfD0gQVVEX0NPTkZJR19O X1ZBTFVFX0lOREVYOworCWVsc2UKKwkJdG1wIHw9IGF1ZGlvX2NvbmZpZ19oZG1pX3BpeGVsX2Ns b2NrKG1vZGUpOworCUk5MTVfV1JJVEUoSFNXX0FVRF9DRkcocGlwZSksIHRtcCk7CiB9CiAKIHN0 YXRpYyB2b2lkIGlsa19hdWRpb19jb2RlY19lbmFibGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciwKLS0gCjIuMS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=