From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH 08/36] drm/tegra: dc: Wait for idle when disabled Date: Tue, 20 Jan 2015 11:48:27 +0100 Message-ID: <1421750935-4023-9-git-send-email-thierry.reding@gmail.com> References: <1421750935-4023-1-git-send-email-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1421750935-4023-1-git-send-email-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org List-Id: linux-tegra@vger.kernel.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCldoZW4gZGlzYWJsaW5n IHRoZSBkaXNwbGF5IGNvbnRyb2xsZXIsIHN0b3AgaXQgYW5kIHdhaXQgZm9yIGl0IHRvIGJlY29t ZQppZGxlLiBEb2luZyBzbyBlbnN1cmVzIHRoYXQgbm8gZnVydGhlciBhY2Nlc3NlcyB0byB0aGUg ZnJhbWVidWZmZXIgb2NjdXIKYW5kIHRoZSBidWZmZXJzIGNhbiBiZSBzYWZlbHkgdW5tYXBwZWQg b3IgZnJlZWQuCgpTaWduZWQtb2ZmLWJ5OiBUaGllcnJ5IFJlZGluZyA8dHJlZGluZ0BudmlkaWEu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jIHwgNzAgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDY1IGluc2Vy dGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rl Z3JhL2RjLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYwppbmRleCBkYjc4NjVhYjg1Yzcu LjBjMjk3MmU0YjQxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMKQEAgLTYxLDYgKzYxLDI2IEBAIHN0YXRpYyB2 b2lkIHRlZ3JhX2RjX2N1cnNvcl9jb21taXQoc3RydWN0IHRlZ3JhX2RjICpkYykKIH0KIAogLyoK KyAqIFJlYWRzIHRoZSBhY3RpdmUgY29weSBvZiBhIHJlZ2lzdGVyLiBUaGlzIHRha2VzIHRoZSBk Yy0+bG9jayBzcGlubG9jayB0bworICogcHJldmVudCByYWNlcyB3aXRoIHRoZSBWQkxBTksgcHJv Y2Vzc2luZyB3aGljaCBhbHNvIG5lZWRzIGFjY2VzcyB0byB0aGUKKyAqIGFjdGl2ZSBjb3B5IG9m IHNvbWUgcmVnaXN0ZXJzLgorICovCitzdGF0aWMgdTMyIHRlZ3JhX2RjX3JlYWRsX2FjdGl2ZShz dHJ1Y3QgdGVncmFfZGMgKmRjLCB1bnNpZ25lZCBsb25nIG9mZnNldCkKK3sKKwl1bnNpZ25lZCBs b25nIGZsYWdzOworCXUzMiB2YWx1ZTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZkYy0+bG9jaywg ZmxhZ3MpOworCisJdGVncmFfZGNfd3JpdGVsKGRjLCBSRUFEX01VWCwgRENfQ01EX1NUQVRFX0FD Q0VTUyk7CisJdmFsdWUgPSB0ZWdyYV9kY19yZWFkbChkYywgb2Zmc2V0KTsKKwl0ZWdyYV9kY193 cml0ZWwoZGMsIDAsIERDX0NNRF9TVEFURV9BQ0NFU1MpOworCisJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmZGMtPmxvY2ssIGZsYWdzKTsKKwlyZXR1cm4gdmFsdWU7Cit9CisKKy8qCiAgKiBEb3Vi bGUtYnVmZmVyZWQgcmVnaXN0ZXJzIGhhdmUgdHdvIGNvcGllczogQVNTRU1CTFkgYW5kIEFDVElW RS4gV2hlbiB0aGUKICAqICpfQUNUX1JFUSBiaXRzIGFyZSBzZXQgdGhlIEFTU0VNQkxZIGNvcHkg aXMgbGF0Y2hlZCBpbnRvIHRoZSBBQ1RJVkUgY29weS4KICAqIExhdGNoaW5nIGhhcHBlbnMgbW1l ZGlhdGVseSBpZiB0aGUgZGlzcGxheSBjb250cm9sbGVyIGlzIGluIFNUT1AgbW9kZSBvcgpAQCAt OTQyLDEyICs5NjIsNDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5jcyB0ZWdy YV9jcnRjX2Z1bmNzID0gewogCS5kZXN0cm95ID0gdGVncmFfZGNfZGVzdHJveSwKIH07CiAKK3N0 YXRpYyB2b2lkIHRlZ3JhX2RjX3N0b3Aoc3RydWN0IHRlZ3JhX2RjICpkYykKK3sKKwl1MzIgdmFs dWU7CisKKwkvKiBzdG9wIHRoZSBkaXNwbGF5IGNvbnRyb2xsZXIgKi8KKwl2YWx1ZSA9IHRlZ3Jh X2RjX3JlYWRsKGRjLCBEQ19DTURfRElTUExBWV9DT01NQU5EKTsKKwl2YWx1ZSAmPSB+RElTUF9D VFJMX01PREVfTUFTSzsKKwl0ZWdyYV9kY193cml0ZWwoZGMsIHZhbHVlLCBEQ19DTURfRElTUExB WV9DT01NQU5EKTsKKworCXRlZ3JhX2RjX2NvbW1pdChkYyk7Cit9CisKK3N0YXRpYyBib29sIHRl Z3JhX2RjX2lkbGUoc3RydWN0IHRlZ3JhX2RjICpkYykKK3sKKwl1MzIgdmFsdWU7CisKKwl2YWx1 ZSA9IHRlZ3JhX2RjX3JlYWRsX2FjdGl2ZShkYywgRENfQ01EX0RJU1BMQVlfQ09NTUFORCk7CisK KwlyZXR1cm4gKHZhbHVlICYgRElTUF9DVFJMX01PREVfTUFTSykgPT0gMDsKK30KKworc3RhdGlj IGludCB0ZWdyYV9kY193YWl0X2lkbGUoc3RydWN0IHRlZ3JhX2RjICpkYywgdW5zaWduZWQgbG9u ZyB0aW1lb3V0KQoreworCXRpbWVvdXQgPSBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcyh0aW1l b3V0KTsKKworCXdoaWxlICh0aW1lX2JlZm9yZShqaWZmaWVzLCB0aW1lb3V0KSkgeworCQlpZiAo dGVncmFfZGNfaWRsZShkYykpCisJCQlyZXR1cm4gMDsKKworCQl1c2xlZXBfcmFuZ2UoMTAwMCwg MjAwMCk7CisJfQorCisJZGV2X2RiZyhkYy0+ZGV2LCAidGltZW91dCB3YWl0aW5nIGZvciBEQyB0 byBiZWNvbWUgaWRsZVxuIik7CisJcmV0dXJuIC1FVElNRURPVVQ7Cit9CisKIHN0YXRpYyB2b2lk IHRlZ3JhX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7CiAJc3RydWN0IHRl Z3JhX2RjICpkYyA9IHRvX3RlZ3JhX2RjKGNydGMpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0g PSBjcnRjLT5kZXY7CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Ci0JdTMyIHZhbHVlOwogCiAJ ZHJtX2Zvcl9lYWNoX2xlZ2FjeV9wbGFuZShwbGFuZSwgJmRybS0+bW9kZV9jb25maWcucGxhbmVf bGlzdCkgewogCQlpZiAocGxhbmUtPmNydGMgPT0gY3J0YykgewpAQCAtOTYxLDEwICsxMDE2LDE1 IEBAIHN0YXRpYyB2b2lkIHRlZ3JhX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMp CiAJCX0KIAl9CiAKLQkvKiBzdG9wIHRoZSBkaXNwbGF5IGNvbnRyb2xsZXIgKi8KLQl2YWx1ZSA9 IHRlZ3JhX2RjX3JlYWRsKGRjLCBEQ19DTURfRElTUExBWV9DT01NQU5EKTsKLQl2YWx1ZSAmPSB+ RElTUF9DVFJMX01PREVfTUFTSzsKLQl0ZWdyYV9kY193cml0ZWwoZGMsIHZhbHVlLCBEQ19DTURf RElTUExBWV9DT01NQU5EKTsKKwlpZiAoIXRlZ3JhX2RjX2lkbGUoZGMpKSB7CisJCXRlZ3JhX2Rj X3N0b3AoZGMpOworCisJCS8qCisJCSAqIElnbm9yZSB0aGUgcmV0dXJuIHZhbHVlLCB0aGVyZSBp c24ndCBhbnl0aGluZyB1c2VmdWwgdG8gZG8KKwkJICogaW4gY2FzZSB0aGlzIGZhaWxzLgorCQkg Ki8KKwkJdGVncmFfZGNfd2FpdF9pZGxlKGRjLCAxMDApOworCX0KIAogCWRybV9jcnRjX3ZibGFu a19vZmYoY3J0Yyk7CiAJdGVncmFfZGNfY29tbWl0KGRjKTsKLS0gCjIuMS4zCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=