From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sasha Levin Subject: [PATCH AUTOSEL 4.4 41/56] fbdev: sm712fb: fix crashes and garbled display during DPMS modesetting Date: Sat, 1 Jun 2019 09:25:45 -0400 Message-ID: <20190601132600.27427-41-sashal@kernel.org> References: <20190601132600.27427-1-sashal@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7497E89B62 for ; Sat, 1 Jun 2019 13:27:11 +0000 (UTC) In-Reply-To: <20190601132600.27427-1-sashal@kernel.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sasha Levin , linux-fbdev@vger.kernel.org, Teddy Wang , Bartlomiej Zolnierkiewicz , dri-devel@lists.freedesktop.org, Yifeng Li , Sudip Mukherjee List-Id: dri-devel@lists.freedesktop.org RnJvbTogWWlmZW5nIExpIDx0b21saUB0b21saS5tZT4KClsgVXBzdHJlYW0gY29tbWl0IGY2Mjdj YWY1NWI4ZTczNWRjZWM4ZmE2NTM4ZTk2Njg2MzJiNTUyNzYgXQoKT24gYSBUaGlua3BhZCBzMzAg KFBlbnRpdW0gSUlJIC8gaTQ0ME1YLCBMeW54M0RNKSwgYmxhbmtpbmcgdGhlIGRpc3BsYXkKb3Ig c3RhcnRpbmcgdGhlIFggc2VydmVyIHdpbGwgY3Jhc2ggYW5kIGZyZWV6ZSB0aGUgc3lzdGVtLCBv ciBnYXJibGUgdGhlCmRpc3BsYXkuCgpFeHBlcmltZW50cyBzaG93ZWQgdGhpcyBwcm9ibGVtIGNh biBtb3N0bHkgYmUgc29sdmVkIGJ5IGFkanVzdGluZyB0aGUKb3JkZXIgb2YgcmVnaXN0ZXIgd3Jp dGVzLiBBbHNvLCBzbTcxMmZiIGZhaWxlZCB0byBjb25zaWRlciB0aGUgZGlmZmVyZW5jZQpvZiBj bG9jayBmcmVxdWVuY3kgd2hlbiB1bmJsYW5raW5nIHRoZSBkaXNwbGF5LCBhbmQgcHJvZ3JhbXMg dGhlIGNsb2NrIGZvcgpTTTcxMiB0byBTTTcyMC4KCkZpeCB0aGVtIGJ5IGFkanVzdGluZyB0aGUg b3JkZXIgb2YgcmVnaXN0ZXIgd3JpdGVzLCBhbmQgYWRkaW5nIGFuCmFkZGl0aW9uYWwgY2hlY2sg Zm9yIFNNNzIwIGZvciBwcm9ncmFtbWluZyB0aGUgY2xvY2sgZnJlcXVlbmN5LgoKU2lnbmVkLW9m Zi1ieTogWWlmZW5nIExpIDx0b21saUB0b21saS5tZT4KVGVzdGVkLWJ5OiBTdWRpcCBNdWtoZXJq ZWUgPHN1ZGlwbS5tdWtoZXJqZWVAZ21haWwuY29tPgpDYzogVGVkZHkgV2FuZyA8dGVkZHkud2Fu Z0BzaWxpY29ubW90aW9uLmNvbT4KQ2M6IDxzdGFibGVAdmdlci5rZXJuZWwub3JnPiAgIyB2NC40 KwpTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFpvbG5pZXJraWV3aWN6IDxiLnpvbG5pZXJraWVA c2Ftc3VuZy5jb20+ClNpZ25lZC1vZmYtYnk6IFNhc2hhIExldmluIDxzYXNoYWxAa2VybmVsLm9y Zz4KLS0tCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3NtNzEyZmIuYyB8IDY0ICsrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwg MjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9zbTcxMmZi LmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NtNzEyZmIuYwppbmRleCA4NmFlMWQ0NTU2ZmMxLi4y NTM5YzFlNmZhY2I0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NtNzEyZmIuYwor KysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NtNzEyZmIuYwpAQCAtODI3LDY3ICs4MjcsNzkgQEAg c3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgY2hhbl90b19maWVsZCh1bnNpZ25lZCBpbnQgY2hh biwKIAogc3RhdGljIGludCBzbXRjX2JsYW5rKGludCBibGFua19tb2RlLCBzdHJ1Y3QgZmJfaW5m byAqaW5mbykKIHsKKwlzdHJ1Y3Qgc210Y2ZiX2luZm8gKnNmYiA9IGluZm8tPnBhcjsKKwogCS8q IGNsZWFyIERQTVMgc2V0dGluZyAqLwogCXN3aXRjaCAoYmxhbmtfbW9kZSkgewogCWNhc2UgRkJf QkxBTktfVU5CTEFOSzoKIAkJLyogU2NyZWVuIE9uOiBIU3luYzogT24sIFZTeW5jIDogT24gKi8K KworCQlzd2l0Y2ggKHNmYi0+Y2hpcF9pZCkgeworCQljYXNlIDB4NzEwOgorCQljYXNlIDB4NzEy OgorCQkJc210Y19zZXF3KDB4NmEsIDB4MTYpOworCQkJc210Y19zZXF3KDB4NmIsIDB4MDIpOwor CQljYXNlIDB4NzIwOgorCQkJc210Y19zZXF3KDB4NmEsIDB4MGQpOworCQkJc210Y19zZXF3KDB4 NmIsIDB4MDIpOworCQkJYnJlYWs7CisJCX0KKworCQlzbXRjX3NlcXcoMHgyMywgKHNtdGNfc2Vx cigweDIzKSAmICh+MHhjMCkpKTsKIAkJc210Y19zZXF3KDB4MDEsIChzbXRjX3NlcXIoMHgwMSkg JiAofjB4MjApKSk7Ci0JCXNtdGNfc2VxdygweDZhLCAweDE2KTsKLQkJc210Y19zZXF3KDB4NmIs IDB4MDIpOwogCQlzbXRjX3NlcXcoMHgyMSwgKHNtdGNfc2VxcigweDIxKSAmIDB4NzcpKTsKIAkJ c210Y19zZXF3KDB4MjIsIChzbXRjX3NlcXIoMHgyMikgJiAofjB4MzApKSk7Ci0JCXNtdGNfc2Vx dygweDIzLCAoc210Y19zZXFyKDB4MjMpICYgKH4weGMwKSkpOwotCQlzbXRjX3NlcXcoMHgyNCwg KHNtdGNfc2VxcigweDI0KSB8IDB4MDEpKTsKIAkJc210Y19zZXF3KDB4MzEsIChzbXRjX3NlcXIo MHgzMSkgfCAweDAzKSk7CisJCXNtdGNfc2VxdygweDI0LCAoc210Y19zZXFyKDB4MjQpIHwgMHgw MSkpOwogCQlicmVhazsKIAljYXNlIEZCX0JMQU5LX05PUk1BTDoKIAkJLyogU2NyZWVuIE9mZjog SFN5bmM6IE9uLCBWU3luYyA6IE9uICAgU29mdCBibGFuayAqLworCQlzbXRjX3NlcXcoMHgyNCwg KHNtdGNfc2VxcigweDI0KSB8IDB4MDEpKTsKKwkJc210Y19zZXF3KDB4MzEsICgoc210Y19zZXFy KDB4MzEpICYgKH4weDA3KSkgfCAweDAwKSk7CisJCXNtdGNfc2VxdygweDIzLCAoc210Y19zZXFy KDB4MjMpICYgKH4weGMwKSkpOwogCQlzbXRjX3NlcXcoMHgwMSwgKHNtdGNfc2VxcigweDAxKSAm ICh+MHgyMCkpKTsKKwkJc210Y19zZXF3KDB4MjIsIChzbXRjX3NlcXIoMHgyMikgJiAofjB4MzAp KSk7CiAJCXNtdGNfc2VxdygweDZhLCAweDE2KTsKIAkJc210Y19zZXF3KDB4NmIsIDB4MDIpOwot CQlzbXRjX3NlcXcoMHgyMiwgKHNtdGNfc2VxcigweDIyKSAmICh+MHgzMCkpKTsKLQkJc210Y19z ZXF3KDB4MjMsIChzbXRjX3NlcXIoMHgyMykgJiAofjB4YzApKSk7Ci0JCXNtdGNfc2VxdygweDI0 LCAoc210Y19zZXFyKDB4MjQpIHwgMHgwMSkpOwotCQlzbXRjX3NlcXcoMHgzMSwgKChzbXRjX3Nl cXIoMHgzMSkgJiAofjB4MDcpKSB8IDB4MDApKTsKIAkJYnJlYWs7CiAJY2FzZSBGQl9CTEFOS19W U1lOQ19TVVNQRU5EOgogCQkvKiBTY3JlZW4gT246IEhTeW5jOiBPbiwgVlN5bmMgOiBPZmYgKi8K KwkJc210Y19zZXF3KDB4MjQsIChzbXRjX3NlcXIoMHgyNCkgJiAofjB4MDEpKSk7CisJCXNtdGNf c2VxdygweDMxLCAoKHNtdGNfc2VxcigweDMxKSAmICh+MHgwNykpIHwgMHgwMCkpOworCQlzbXRj X3NlcXcoMHgyMywgKChzbXRjX3NlcXIoMHgyMykgJiAofjB4YzApKSB8IDB4MjApKTsKIAkJc210 Y19zZXF3KDB4MDEsIChzbXRjX3NlcXIoMHgwMSkgfCAweDIwKSk7Ci0JCXNtdGNfc2VxdygweDIw LCAoc210Y19zZXFyKDB4MjApICYgKH4weEIwKSkpOwotCQlzbXRjX3NlcXcoMHg2YSwgMHgwYyk7 Ci0JCXNtdGNfc2VxdygweDZiLCAweDAyKTsKIAkJc210Y19zZXF3KDB4MjEsIChzbXRjX3NlcXIo MHgyMSkgfCAweDg4KSk7CisJCXNtdGNfc2VxdygweDIwLCAoc210Y19zZXFyKDB4MjApICYgKH4w eEIwKSkpOwogCQlzbXRjX3NlcXcoMHgyMiwgKChzbXRjX3NlcXIoMHgyMikgJiAofjB4MzApKSB8 IDB4MjApKTsKLQkJc210Y19zZXF3KDB4MjMsICgoc210Y19zZXFyKDB4MjMpICYgKH4weGMwKSkg fCAweDIwKSk7Ci0JCXNtdGNfc2VxdygweDI0LCAoc210Y19zZXFyKDB4MjQpICYgKH4weDAxKSkp OwotCQlzbXRjX3NlcXcoMHgzMSwgKChzbXRjX3NlcXIoMHgzMSkgJiAofjB4MDcpKSB8IDB4MDAp KTsKIAkJc210Y19zZXF3KDB4MzQsIChzbXRjX3NlcXIoMHgzNCkgfCAweDgwKSk7CisJCXNtdGNf c2VxdygweDZhLCAweDBjKTsKKwkJc210Y19zZXF3KDB4NmIsIDB4MDIpOwogCQlicmVhazsKIAlj YXNlIEZCX0JMQU5LX0hTWU5DX1NVU1BFTkQ6CiAJCS8qIFNjcmVlbiBPbjogSFN5bmM6IE9mZiwg VlN5bmMgOiBPbiAqLworCQlzbXRjX3NlcXcoMHgyNCwgKHNtdGNfc2VxcigweDI0KSAmICh+MHgw MSkpKTsKKwkJc210Y19zZXF3KDB4MzEsICgoc210Y19zZXFyKDB4MzEpICYgKH4weDA3KSkgfCAw eDAwKSk7CisJCXNtdGNfc2VxdygweDIzLCAoKHNtdGNfc2VxcigweDIzKSAmICh+MHhjMCkpIHwg MHhEOCkpOwogCQlzbXRjX3NlcXcoMHgwMSwgKHNtdGNfc2VxcigweDAxKSB8IDB4MjApKTsKLQkJ c210Y19zZXF3KDB4MjAsIChzbXRjX3NlcXIoMHgyMCkgJiAofjB4QjApKSk7Ci0JCXNtdGNfc2Vx dygweDZhLCAweDBjKTsKLQkJc210Y19zZXF3KDB4NmIsIDB4MDIpOwogCQlzbXRjX3NlcXcoMHgy MSwgKHNtdGNfc2VxcigweDIxKSB8IDB4ODgpKTsKKwkJc210Y19zZXF3KDB4MjAsIChzbXRjX3Nl cXIoMHgyMCkgJiAofjB4QjApKSk7CiAJCXNtdGNfc2VxdygweDIyLCAoKHNtdGNfc2VxcigweDIy KSAmICh+MHgzMCkpIHwgMHgxMCkpOwotCQlzbXRjX3NlcXcoMHgyMywgKChzbXRjX3NlcXIoMHgy MykgJiAofjB4YzApKSB8IDB4RDgpKTsKLQkJc210Y19zZXF3KDB4MjQsIChzbXRjX3NlcXIoMHgy NCkgJiAofjB4MDEpKSk7Ci0JCXNtdGNfc2VxdygweDMxLCAoKHNtdGNfc2VxcigweDMxKSAmICh+ MHgwNykpIHwgMHgwMCkpOwogCQlzbXRjX3NlcXcoMHgzNCwgKHNtdGNfc2VxcigweDM0KSB8IDB4 ODApKTsKKwkJc210Y19zZXF3KDB4NmEsIDB4MGMpOworCQlzbXRjX3NlcXcoMHg2YiwgMHgwMik7 CiAJCWJyZWFrOwogCWNhc2UgRkJfQkxBTktfUE9XRVJET1dOOgogCQkvKiBTY3JlZW4gT246IEhT eW5jOiBPZmYsIFZTeW5jIDogT2ZmICovCisJCXNtdGNfc2VxdygweDI0LCAoc210Y19zZXFyKDB4 MjQpICYgKH4weDAxKSkpOworCQlzbXRjX3NlcXcoMHgzMSwgKChzbXRjX3NlcXIoMHgzMSkgJiAo fjB4MDcpKSB8IDB4MDApKTsKKwkJc210Y19zZXF3KDB4MjMsICgoc210Y19zZXFyKDB4MjMpICYg KH4weGMwKSkgfCAweEQ4KSk7CiAJCXNtdGNfc2VxdygweDAxLCAoc210Y19zZXFyKDB4MDEpIHwg MHgyMCkpOwotCQlzbXRjX3NlcXcoMHgyMCwgKHNtdGNfc2VxcigweDIwKSAmICh+MHhCMCkpKTsK LQkJc210Y19zZXF3KDB4NmEsIDB4MGMpOwotCQlzbXRjX3NlcXcoMHg2YiwgMHgwMik7CiAJCXNt dGNfc2VxdygweDIxLCAoc210Y19zZXFyKDB4MjEpIHwgMHg4OCkpOworCQlzbXRjX3NlcXcoMHgy MCwgKHNtdGNfc2VxcigweDIwKSAmICh+MHhCMCkpKTsKIAkJc210Y19zZXF3KDB4MjIsICgoc210 Y19zZXFyKDB4MjIpICYgKH4weDMwKSkgfCAweDMwKSk7Ci0JCXNtdGNfc2VxdygweDIzLCAoKHNt dGNfc2VxcigweDIzKSAmICh+MHhjMCkpIHwgMHhEOCkpOwotCQlzbXRjX3NlcXcoMHgyNCwgKHNt dGNfc2VxcigweDI0KSAmICh+MHgwMSkpKTsKLQkJc210Y19zZXF3KDB4MzEsICgoc210Y19zZXFy KDB4MzEpICYgKH4weDA3KSkgfCAweDAwKSk7CiAJCXNtdGNfc2VxdygweDM0LCAoc210Y19zZXFy KDB4MzQpIHwgMHg4MCkpOworCQlzbXRjX3NlcXcoMHg2YSwgMHgwYyk7CisJCXNtdGNfc2Vxdygw eDZiLCAweDAyKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FSU5WQUw7Ci0tIAoy LjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==