From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Subject: [PATCH xf86-video-amdgpu 5/6] Make all active CRTCs scan out an all-black framebuffer in LeaveVT Date: Tue, 29 Aug 2017 17:30:48 +0900 Message-ID: <20170829083049.16229-5-michel@daenzer.net> References: <20170829083049.16229-1-michel@daenzer.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170829083049.16229-1-michel-otUistvHUpPR7s880joybQ@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org RnJvbTogTWljaGVsIETDpG56ZXIgPG1pY2hlbC5kYWVuemVyQGFtZC5jb20+CgpBbmQgZGVzdHJv eSBhbGwgb3RoZXIgRkJzLiBUaGlzIGlzIHNvIHRoYXQgb3RoZXIgRFJNIG1hc3RlcnMgY2FuIG9u bHkKZ2V0IGFjY2VzcyB0byB0aGlzIGFsbC1ibGFjayBGQiwgbm90IHRvIGFueSBvdGhlciBGQiB3 ZSBjcmVhdGVkLCB3aGlsZQp3ZSdyZSBzd2l0Y2hlZCBhd2F5IGFuZCBub3QgRFJNIG1hc3Rlci4K CkZpeGVzOiBiMDlmZGUwZDgxZTAgKCJVc2UgcmVmZXJlbmNlIGNvdW50aW5nIGZvciB0cmFja2lu ZyBLTVMKICAgICAgICAgICAgICAgICAgICAgIGZyYW1lYnVmZmVyIGxpZmV0aW1lcyIpCihQb3J0 ZWQgZnJvbSByYWRlb24gY29tbWl0IDA2YTQ2NTQ4NDEwMWYyMWU5OWQzYTBhNjJmYjAzNDQwYmNh ZmY5M2UpCgpTaWduZWQtb2ZmLWJ5OiBNaWNoZWwgRMOkbnplciA8bWljaGVsLmRhZW56ZXJAYW1k LmNvbT4KLS0tCiBzcmMvYW1kZ3B1X2ttcy5jICAgICAgfCA5OSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIHNyYy9kcm1tb2RlX2Rpc3BsYXkuYyB8 ICA0ICstLQogc3JjL2RybW1vZGVfZGlzcGxheS5oIHwgIDQgKysrCiAzIGZpbGVzIGNoYW5nZWQs IDk3IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9hbWRn cHVfa21zLmMgYi9zcmMvYW1kZ3B1X2ttcy5jCmluZGV4IGUwYjczNTgxOS4uYzM2MTNlYjhkIDEw MDY0NAotLS0gYS9zcmMvYW1kZ3B1X2ttcy5jCisrKyBiL3NyYy9hbWRncHVfa21zLmMKQEAgLTMy LDYgKzMyLDcgQEAKICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KIC8qIERyaXZlciBkYXRhIHN0cnVj dHVyZXMgKi8KICNpbmNsdWRlICJhbWRncHVfZHJ2LmgiCisjaW5jbHVkZSAiYW1kZ3B1X2JvX2hl bHBlci5oIgogI2luY2x1ZGUgImFtZGdwdV9kcm1fcXVldWUuaCIKICNpbmNsdWRlICJhbWRncHVf Z2xhbW9yLmgiCiAjaW5jbHVkZSAiYW1kZ3B1X3Byb2JlLmgiCkBAIC0xMDUyLDExICsxMDUzLDEw IEBAIHN0YXRpYyB2b2lkIEFNREdQVUJsb2NrSGFuZGxlcl9LTVMoQkxPQ0tIQU5ETEVSX0FSR1Nf REVDTCkKIAkoKnBTY3JlZW4tPkJsb2NrSGFuZGxlcikgKEJMT0NLSEFORExFUl9BUkdTKTsKIAlw U2NyZWVuLT5CbG9ja0hhbmRsZXIgPSBBTURHUFVCbG9ja0hhbmRsZXJfS01TOwogCi0JaWYgKCFw U2Nybi0+dnRTZW1hKSB7Ci0jaWYgWE9SR19WRVJTSU9OX0NVUlJFTlQgPCBYT1JHX1ZFUlNJT05f TlVNRVJJQygxLDE5LDAsMCwwKQotCQlpZiAoaW5mby0+dXNlX2dsYW1vcikKLQkJCWFtZGdwdV9n bGFtb3JfZmx1c2gocFNjcm4pOwotI2VuZGlmCisJaWYgKCF4Zjg2U2NyZWVuVG9TY3JuKGFtZGdw dV9tYXN0ZXJfc2NyZWVuKHBTY3JlZW4pKS0+dnRTZW1hKSB7CisJCS8qIFVucmVmZXJlbmNlIHRo ZSBhbGwtYmxhY2sgRkIgY3JlYXRlZCBieSBBTURHUFVMZWF2ZVZUX0tNUy4gQWZ0ZXIKKwkJICog dGhpcywgdGhlcmUgc2hvdWxkIGJlIG5vIEZCIGxlZnQgY3JlYXRlZCBieSB0aGlzIGRyaXZlci4K KwkJICovCiAKIAkJZm9yIChjID0gMDsgYyA8IHhmODZfY29uZmlnLT5udW1fY3J0YzsgYysrKSB7 CiAJCQlkcm1tb2RlX2NydGNfcHJpdmF0ZV9wdHIgZHJtbW9kZV9jcnRjID0KQEAgLTE5NjcsMjEg KzE5NjcsMTA0IEBAIEJvb2wgQU1ER1BVRW50ZXJWVF9LTVMoVlRfRlVOQ19BUkdTX0RFQ0wpCiAJ cmV0dXJuIFRSVUU7CiB9CiAKK3N0YXRpYyB2b2lkCitwaXhtYXBfdW5yZWZfZmIodm9pZCAqdmFs dWUsIFhJRCBpZCwgdm9pZCAqY2RhdGEpCit7CisJUGl4bWFwUHRyIHBpeG1hcCA9IHZhbHVlOwor CUFNREdQVUVudFB0ciBwQU1ER1BVRW50ID0gY2RhdGE7CisJc3RydWN0IGRybW1vZGVfZmIgKipm Yl9wdHIgPSBhbWRncHVfcGl4bWFwX2dldF9mYl9wdHIocGl4bWFwKTsKKworCWlmIChmYl9wdHIp CisJCWRybW1vZGVfZmJfcmVmZXJlbmNlKHBBTURHUFVFbnQtPmZkLCBmYl9wdHIsIE5VTEwpOwor fQorCiB2b2lkIEFNREdQVUxlYXZlVlRfS01TKFZUX0ZVTkNfQVJHU19ERUNMKQogewogCVNDUk5f SU5GT19QVFIoYXJnKTsKKwlBTURHUFVJbmZvUHRyIGluZm8gPSBBTURHUFVQVFIocFNjcm4pOwor CUFNREdQVUVudFB0ciBwQU1ER1BVRW50ID0gQU1ER1BVRW50UHJpdihwU2Nybik7CisJU2NyZWVu UHRyIHBTY3JlZW4gPSBwU2Nybi0+cFNjcmVlbjsKKwl4Zjg2Q3J0Y0NvbmZpZ1B0ciB4Zjg2X2Nv bmZpZyA9IFhGODZfQ1JUQ19DT05GSUdfUFRSKHBTY3JuKTsKKwlzdHJ1Y3QgZHJtbW9kZV9zY2Fu b3V0IGJsYWNrX3NjYW5vdXQgPSB7IC5waXhtYXAgPSBOVUxMLCAuYm8gPSBOVUxMIH07CisJeGY4 NkNydGNQdHIgY3J0YzsKKwlkcm1tb2RlX2NydGNfcHJpdmF0ZV9wdHIgZHJtbW9kZV9jcnRjOwor CXVuc2lnbmVkIHcgPSAwLCBoID0gMDsKKwlpbnQgaTsKIAogCXhmODZEcnZNc2dWZXJiKHBTY3Ju LT5zY3JuSW5kZXgsIFhfSU5GTywgQU1ER1BVX0xPR0xFVkVMX0RFQlVHLAogCQkgICAgICAgIkFN REdQVUxlYXZlVlRfS01TXG4iKTsKIAotCWFtZGdwdV9kcm9wX2RybV9tYXN0ZXIocFNjcm4pOwor CS8qIENvbXB1dGUgbWF4aW11bSBzY2Fub3V0IGRpbWVuc2lvbnMgb2YgYWN0aXZlIENSVENzICov CisJZm9yIChpID0gMDsgaSA8IHhmODZfY29uZmlnLT5udW1fY3J0YzsgaSsrKSB7CisJCWNydGMg PSB4Zjg2X2NvbmZpZy0+Y3J0Y1tpXTsKKwkJZHJtbW9kZV9jcnRjID0gY3J0Yy0+ZHJpdmVyX3By aXZhdGU7CisKKwkJaWYgKCFkcm1tb2RlX2NydGMtPmZiKQorCQkJY29udGludWU7CisKKwkJdyA9 IG1heCh3LCBjcnRjLT5tb2RlLkhEaXNwbGF5KTsKKwkJaCA9IG1heChoLCBjcnRjLT5tb2RlLlZE aXNwbGF5KTsKKwl9CisKKwkvKiBNYWtlIGFsbCBhY3RpdmUgQ1JUQ3Mgc2NhbiBvdXQgZnJvbSBh biBhbGwtYmxhY2sgZnJhbWVidWZmZXIgKi8KKwlpZiAodyA+IDAgJiYgaCA+IDApIHsKKwkJaWYg KGRybW1vZGVfY3J0Y19zY2Fub3V0X2NyZWF0ZShjcnRjLCAmYmxhY2tfc2Nhbm91dCwgdywgaCkp IHsKKwkJCXN0cnVjdCBkcm1tb2RlX2ZiICpibGFja19mYiA9CisJCQkJYW1kZ3B1X3BpeG1hcF9n ZXRfZmIoYmxhY2tfc2Nhbm91dC5waXhtYXApOworCisJCQlhbWRncHVfcGl4bWFwX2NsZWFyKGJs YWNrX3NjYW5vdXQucGl4bWFwKTsKKwkJCWFtZGdwdV9nbGFtb3JfZmluaXNoKHBTY3JuKTsKKwor CQkJZm9yIChpID0gMDsgaSA8IHhmODZfY29uZmlnLT5udW1fY3J0YzsgaSsrKSB7CisJCQkJY3J0 YyA9IHhmODZfY29uZmlnLT5jcnRjW2ldOworCQkJCWRybW1vZGVfY3J0YyA9IGNydGMtPmRyaXZl cl9wcml2YXRlOworCisJCQkJaWYgKGRybW1vZGVfY3J0Yy0+ZmIpIHsKKwkJCQkJaWYgKGJsYWNr X2ZiKSB7CisJCQkJCQlkcm1tb2RlX3NldF9tb2RlKGNydGMsIGJsYWNrX2ZiLCAmY3J0Yy0+bW9k ZSwgMCwgMCk7CisJCQkJCX0gZWxzZSB7CisJCQkJCQlkcm1Nb2RlU2V0Q3J0YyhwQU1ER1BVRW50 LT5mZCwKKwkJCQkJCQkgICAgICAgZHJtbW9kZV9jcnRjLT5tb2RlX2NydGMtPmNydGNfaWQsIDAs IDAsCisJCQkJCQkJICAgICAgIDAsIE5VTEwsIDAsIE5VTEwpOworCQkJCQkJZHJtbW9kZV9mYl9y ZWZlcmVuY2UocEFNREdQVUVudC0+ZmQsICZkcm1tb2RlX2NydGMtPmZiLAorCQkJCQkJCQkgICAg IE5VTEwpOworCQkJCQl9CisKKwkJCQkJaWYgKHBTY3JuLT5pc19ncHUpIHsKKwkJCQkJCWlmIChk cm1tb2RlX2NydGMtPnNjYW5vdXRbMF0ucGl4bWFwKQorCQkJCQkJCXBpeG1hcF91bnJlZl9mYihk cm1tb2RlX2NydGMtPnNjYW5vdXRbMF0ucGl4bWFwLAorCQkJCQkJCQkJTm9uZSwgcEFNREdQVUVu dCk7CisJCQkJCQlpZiAoZHJtbW9kZV9jcnRjLT5zY2Fub3V0WzFdLnBpeG1hcCkKKwkJCQkJCQlw aXhtYXBfdW5yZWZfZmIoZHJtbW9kZV9jcnRjLT5zY2Fub3V0WzFdLnBpeG1hcCwKKwkJCQkJCQkJ CU5vbmUsIHBBTURHUFVFbnQpOworCQkJCQl9IGVsc2UgeworCQkJCQkJZHJtbW9kZV9jcnRjX3Nj YW5vdXRfZnJlZShkcm1tb2RlX2NydGMpOworCQkJCQl9CisJCQkJfQorCQkJfQorCQl9CisJfQog CiAJeGY4NlJvdGF0ZUZyZWVTaGFkb3cocFNjcm4pOwotCWlmICghcFNjcm4tPmlzX2dwdSkKLQkJ ZHJtbW9kZV9zY2Fub3V0X2ZyZWUocFNjcm4pOworCWRybW1vZGVfY3J0Y19zY2Fub3V0X2Rlc3Ry b3koJmluZm8tPmRybW1vZGUsICZibGFja19zY2Fub3V0KTsKKworCS8qIFVucmVmZXJlbmNlIEZC cyBvZiBhbGwgcGl4bWFwcy4gQWZ0ZXIgdGhpcywgdGhlIG9ubHkgRkIgcmVtYWluaW5nCisJICog c2hvdWxkIGJlIHRoZSBhbGwtYmxhY2sgb25lIGJlaW5nIHNjYW5uZWQgb3V0IGJ5IGFjdGl2ZSBD UlRDcworCSAqLworCWZvciAoaSA9IDA7IGkgPCBjdXJyZW50TWF4Q2xpZW50czsgaSsrKSB7CisJ CWlmIChpID4gMCAmJgorCQkgICAgKCFjbGllbnRzW2ldIHx8IGNsaWVudHNbaV0tPmNsaWVudFN0 YXRlICE9IENsaWVudFN0YXRlUnVubmluZykpCisJCQljb250aW51ZTsKKworCQlGaW5kQ2xpZW50 UmVzb3VyY2VzQnlUeXBlKGNsaWVudHNbaV0sIFJUX1BJWE1BUCwgcGl4bWFwX3VucmVmX2ZiLAor CQkJCQkgIHBBTURHUFVFbnQpOworCX0KKwlwaXhtYXBfdW5yZWZfZmIocFNjcmVlbi0+R2V0U2Ny ZWVuUGl4bWFwKHBTY3JlZW4pLCBOb25lLCBwQU1ER1BVRW50KTsKIAogCXhmODZfaGlkZV9jdXJz b3JzKHBTY3JuKTsKIAorCWFtZGdwdV9kcm9wX2RybV9tYXN0ZXIocFNjcm4pOworCiAJeGY4NkRy dk1zZ1ZlcmIocFNjcm4tPnNjcm5JbmRleCwgWF9JTkZPLCBBTURHUFVfTE9HTEVWRUxfREVCVUcs CiAJCSAgICAgICAiT2ssIGxlYXZpbmcgbm93Li4uXG4iKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9k cm1tb2RlX2Rpc3BsYXkuYyBiL3NyYy9kcm1tb2RlX2Rpc3BsYXkuYwppbmRleCA2MDkyODA1ZmQu LjYwNTc2OTliZiAxMDA2NDQKLS0tIGEvc3JjL2RybW1vZGVfZGlzcGxheS5jCisrKyBiL3NyYy9k cm1tb2RlX2Rpc3BsYXkuYwpAQCAtNDc4LDcgKzQ3OCw3IEBAIGRybW1vZGVfY3J0Y19zY2Fub3V0 X2Rlc3Ryb3koZHJtbW9kZV9wdHIgZHJtbW9kZSwKIAl9CiB9CiAKLXN0YXRpYyB2b2lkCit2b2lk CiBkcm1tb2RlX2NydGNfc2Nhbm91dF9mcmVlKGRybW1vZGVfY3J0Y19wcml2YXRlX3B0ciBkcm1t b2RlX2NydGMpCiB7CiAJZHJtbW9kZV9jcnRjX3NjYW5vdXRfZGVzdHJveShkcm1tb2RlX2NydGMt PmRybW1vZGUsCkBAIC01MDAsNyArNTAwLDcgQEAgZHJtbW9kZV9zY2Fub3V0X2ZyZWUoU2Nybklu Zm9QdHIgc2NybikKIAkJZHJtbW9kZV9jcnRjX3NjYW5vdXRfZnJlZSh4Zjg2X2NvbmZpZy0+Y3J0 Y1tjXS0+ZHJpdmVyX3ByaXZhdGUpOwogfQogCi1zdGF0aWMgUGl4bWFwUHRyCitQaXhtYXBQdHIK IGRybW1vZGVfY3J0Y19zY2Fub3V0X2NyZWF0ZSh4Zjg2Q3J0Y1B0ciBjcnRjLCBzdHJ1Y3QgZHJt bW9kZV9zY2Fub3V0ICpzY2Fub3V0LAogCQkJICAgIGludCB3aWR0aCwgaW50IGhlaWdodCkKIHsK ZGlmZiAtLWdpdCBhL3NyYy9kcm1tb2RlX2Rpc3BsYXkuaCBiL3NyYy9kcm1tb2RlX2Rpc3BsYXku aAppbmRleCAzNzJhNTM5N2MuLmVmZjM0Mjk0MiAxMDA2NDQKLS0tIGEvc3JjL2RybW1vZGVfZGlz cGxheS5oCisrKyBiL3NyYy9kcm1tb2RlX2Rpc3BsYXkuaApAQCAtMjA5LDYgKzIwOSwxMCBAQCBl eHRlcm4gQm9vbCBkcm1tb2RlX3NldHVwX2NvbG9ybWFwKFNjcmVlblB0ciBwU2NyZWVuLCBTY3Ju SW5mb1B0ciBwU2Nybik7CiBleHRlcm4gdm9pZCBkcm1tb2RlX2NydGNfc2Nhbm91dF9kZXN0cm95 KGRybW1vZGVfcHRyIGRybW1vZGUsCiAJCQkJCSBzdHJ1Y3QgZHJtbW9kZV9zY2Fub3V0ICpzY2Fu b3V0KTsKIGV4dGVybiB2b2lkIGRybW1vZGVfc2Nhbm91dF9mcmVlKFNjcm5JbmZvUHRyIHNjcm4p Owordm9pZCBkcm1tb2RlX2NydGNfc2Nhbm91dF9mcmVlKGRybW1vZGVfY3J0Y19wcml2YXRlX3B0 ciBkcm1tb2RlX2NydGMpOworUGl4bWFwUHRyIGRybW1vZGVfY3J0Y19zY2Fub3V0X2NyZWF0ZSh4 Zjg2Q3J0Y1B0ciBjcnRjLAorCQkJCSAgICAgIHN0cnVjdCBkcm1tb2RlX3NjYW5vdXQgKnNjYW5v dXQsCisJCQkJICAgICAgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKIAogZXh0ZXJuIHZvaWQgZHJt bW9kZV91ZXZlbnRfaW5pdChTY3JuSW5mb1B0ciBzY3JuLCBkcm1tb2RlX3B0ciBkcm1tb2RlKTsK IGV4dGVybiB2b2lkIGRybW1vZGVfdWV2ZW50X2ZpbmkoU2NybkluZm9QdHIgc2NybiwgZHJtbW9k ZV9wdHIgZHJtbW9kZSk7Ci0tIAoyLjE0LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vYW1kLWdmeAo=