From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mikulas Patocka Subject: [PATCH 12/21] udlfb: fix display corruption of the last line Date: Sun, 03 Jun 2018 16:41:05 +0200 Message-ID: <20180603144223.332517485@twibright.com> References: <20180603144053.875668929@twibright.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from leontynka.twibright.com (109-183-129-149.tmcz.cz [109.183.129.149]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4CE3D6E2C1 for ; Sun, 3 Jun 2018 15:20:03 +0000 (UTC) Content-Disposition: inline; filename=udl-append-zero-4.patch List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Mikulas Patocka , Bartlomiej Zolnierkiewicz , Dave Airlie , Bernie Thompson , Ladislav Michl Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhlIGRpc3BsYXlsaW5rIGhhcmR3YXJlIGhhcyBzdWNoIGEgcGVjdWxpYXJpdHkgdGhhdCBpdCBk b2Vzbid0IHJlbmRlciBhCmNvbW1hbmQgdW50aWwgbmV4dCBjb21tYW5kIGlzIHJlY2VpdmVkLiBU aGlzIHByb2R1Y2VzIG9jY2FzaW9uYWwKY29ycnVwdGlvbiwgc3VjaCBhcyB3aGVuIHNldHRpbmcg MjJ4MTEgZm9udCBvbiB0aGUgY29uc29sZSwgb25seSB0aGUgZmlyc3QKbGluZSBvZiB0aGUgY3Vy c29yIHdpbGwgYmUgYmxpbmtpbmcgaWYgdGhlIGN1cnNvciBpcyBsb2NhdGVkIGF0IHNvbWUKc3Bl Y2lmaWMgY29sdW1ucy4KCldoZW4gd2UgZW5kIHVwIHdpdGggYSByZXBlYXRpbmcgcGl4ZWwsIHRo ZSBkcml2ZXIgaGFzIGEgYnVnIHRoYXQgaXQgbGVhdmVzCm9uZSB1bmluaXRpYWxpemVkIGJ5dGUg YWZ0ZXIgdGhlIGNvbW1hbmQgKGFuZCB0aGlzIGJ5dGUgaXMgZW5vdWdoIHRvIGZsdXNoCnRoZSBj b21tYW5kIGFuZCByZW5kZXIgaXQgLSB0aHVzIGl0IGZpeGVzIHRoZSBzY3JlZW4gY29ycnVwdGlv biksIGhvd2V2ZXIKd2hlIHdlIGVuZCB1cCB3aXRoIGEgbm9uLXJlcGVhdGluZyBwaXhlbCwgdGhl cmUgaXMgbm8gYnl0ZSBhcHBlbmRlZCBhbmQKdGhpcyByZXN1bHRzIGluIHRlbXBvcmFyeSBzY3Jl ZW4gY29ycnVwdGlvbi4KClRoaXMgcGF0Y2ggZml4ZXMgdGhlIHNjcmVlbiBjb3JydXB0aW9uIGJ5 IGFsd2F5cyBhcHBlbmRpbmcgYSBieXRlIDB4QUYgYXQKdGhlIGVuZCBvZiBVUkIuIEl0IGFsc28g cmVtb3ZlcyB0aGUgdW5pbml0aWFsaXplZCBieXRlLgoKU2lnbmVkLW9mZi1ieTogTWlrdWxhcyBQ YXRvY2thIDxtcGF0b2NrYUByZWRoYXQuY29tPgpDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwoK LS0tCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3VkbGZiLmMgfCAgIDMwICsrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDEwIGRlbGV0 aW9ucygtKQoKSW5kZXg6IGxpbnV4LTQuMTctcmM3L2RyaXZlcnMvdmlkZW8vZmJkZXYvdWRsZmIu Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLSBsaW51eC00LjE3LXJjNy5vcmlnL2RyaXZlcnMvdmlkZW8vZmJkZXYv dWRsZmIuYwkyMDE4LTA1LTMxIDE0OjQzOjEzLjAwMDAwMDAwMCArMDIwMAorKysgbGludXgtNC4x Ny1yYzcvZHJpdmVycy92aWRlby9mYmRldi91ZGxmYi5jCTIwMTgtMDUtMzEgMTQ6NDY6MDMuMDAw MDAwMDAwICswMjAwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgog I2luY2x1ZGUgPGxpbnV4L3ByZWZldGNoLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNp bmNsdWRlIDxhc20vdW5hbGlnbmVkLmg+CiAjaW5jbHVkZSA8dmlkZW8vdWRsZmIuaD4KICNpbmNs dWRlICJlZGlkLmgiCiAKQEAgLTQ1MCwxNyArNDUxLDE3IEBAIHN0YXRpYyB2b2lkIGRsZmJfY29t cHJlc3NfaGxpbmUoCiAJCXJhd19waXhlbHNfY291bnRfYnl0ZSA9IGNtZCsrOyAvKiAgd2UnbGwg a25vdyB0aGlzIGxhdGVyICovCiAJCXJhd19waXhlbF9zdGFydCA9IHBpeGVsOwogCi0JCWNtZF9w aXhlbF9lbmQgPSBwaXhlbCArIG1pbihNQVhfQ01EX1BJWEVMUyArIDEsCi0JCQltaW4oKGludCko cGl4ZWxfZW5kIC0gcGl4ZWwpLAotCQkJICAgIChpbnQpKGNtZF9idWZmZXJfZW5kIC0gY21kKSAv IEJQUCkpOworCQljbWRfcGl4ZWxfZW5kID0gcGl4ZWwgKyBtaW4zKE1BWF9DTURfUElYRUxTICsg MVVMLAorCQkJCQkodW5zaWduZWQgbG9uZykocGl4ZWxfZW5kIC0gcGl4ZWwpLAorCQkJCQkodW5z aWduZWQgbG9uZykoY21kX2J1ZmZlcl9lbmQgLSAxIC0gY21kKSAvIEJQUCk7CiAKLQkJcHJlZmV0 Y2hfcmFuZ2UoKHZvaWQgKikgcGl4ZWwsIChjbWRfcGl4ZWxfZW5kIC0gcGl4ZWwpICogQlBQKTsK KwkJcHJlZmV0Y2hfcmFuZ2UoKHZvaWQgKikgcGl4ZWwsICh1OCAqKWNtZF9waXhlbF9lbmQgLSAo dTggKilwaXhlbCk7CiAKIAkJd2hpbGUgKHBpeGVsIDwgY21kX3BpeGVsX2VuZCkgewogCQkJY29u c3QgdWludDE2X3QgKiBjb25zdCByZXBlYXRpbmdfcGl4ZWwgPSBwaXhlbDsKIAotCQkJKmNtZCsr ID0gKnBpeGVsID4+IDg7Ci0JCQkqY21kKysgPSAqcGl4ZWw7CisJCQlwdXRfdW5hbGlnbmVkX2Jl MTYoKnBpeGVsLCBjbWQpOworCQkJY21kICs9IDI7CiAJCQlwaXhlbCsrOwogCiAJCQlpZiAodW5s aWtlbHkoKHBpeGVsIDwgY21kX3BpeGVsX2VuZCkgJiYKQEAgLTQ4NiwxMyArNDg3LDE2IEBAIHN0 YXRpYyB2b2lkIGRsZmJfY29tcHJlc3NfaGxpbmUoCiAJCWlmIChwaXhlbCA+IHJhd19waXhlbF9z dGFydCkgewogCQkJLyogZmluYWxpemUgbGFzdCBSQVcgc3BhbiAqLwogCQkJKnJhd19waXhlbHNf Y291bnRfYnl0ZSA9IChwaXhlbC1yYXdfcGl4ZWxfc3RhcnQpICYgMHhGRjsKKwkJfSBlbHNlIHsK KwkJCS8qIHVuZG8gdW51c2VkIGJ5dGUgKi8KKwkJCWNtZC0tOwogCQl9CiAKIAkJKmNtZF9waXhl bHNfY291bnRfYnl0ZSA9IChwaXhlbCAtIGNtZF9waXhlbF9zdGFydCkgJiAweEZGOwotCQlkZXZf YWRkciArPSAocGl4ZWwgLSBjbWRfcGl4ZWxfc3RhcnQpICogQlBQOworCQlkZXZfYWRkciArPSAo dTggKilwaXhlbCAtICh1OCAqKWNtZF9waXhlbF9zdGFydDsKIAl9CiAKLQlpZiAoY21kX2J1ZmZl cl9lbmQgPD0gTUlOX1JMWF9DTURfQllURVMgKyBjbWQpIHsKKwlpZiAoY21kX2J1ZmZlcl9lbmQg LSBNSU5fUkxYX0NNRF9CWVRFUyA8PSBjbWQpIHsKIAkJLyogRmlsbCBsZWZ0b3ZlciBieXRlcyB3 aXRoIG5vLW9wcyAqLwogCQlpZiAoY21kX2J1ZmZlcl9lbmQgPiBjbWQpCiAJCQltZW1zZXQoY21k LCAweEFGLCBjbWRfYnVmZmVyX2VuZCAtIGNtZCk7CkBAIC02MTAsOCArNjE0LDExIEBAIHN0YXRp YyBpbnQgZGxmYl9oYW5kbGVfZGFtYWdlKHN0cnVjdCBkbGYKIAl9CiAKIAlpZiAoY21kID4gKGNo YXIgKikgdXJiLT50cmFuc2Zlcl9idWZmZXIpIHsKKwkJaW50IGxlbjsKKwkJaWYgKGNtZCA8IChj aGFyICopIHVyYi0+dHJhbnNmZXJfYnVmZmVyICsgdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3Ro KQorCQkJKmNtZCsrID0gMHhBRjsKIAkJLyogU2VuZCBwYXJ0aWFsIGJ1ZmZlciByZW1haW5pbmcg YmVmb3JlIGV4aXRpbmcgKi8KLQkJaW50IGxlbiA9IGNtZCAtIChjaGFyICopIHVyYi0+dHJhbnNm ZXJfYnVmZmVyOworCQlsZW4gPSBjbWQgLSAoY2hhciAqKSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsK IAkJcmV0ID0gZGxmYl9zdWJtaXRfdXJiKGRsZmIsIHVyYiwgbGVuKTsKIAkJYnl0ZXNfc2VudCAr PSBsZW47CiAJfSBlbHNlCkBAIC03MzUsOCArNzQyLDExIEBAIHN0YXRpYyB2b2lkIGRsZmJfZHB5 X2RlZmVycmVkX2lvKHN0cnVjdAogCX0KIAogCWlmIChjbWQgPiAoY2hhciAqKSB1cmItPnRyYW5z ZmVyX2J1ZmZlcikgeworCQlpbnQgbGVuOworCQlpZiAoY21kIDwgKGNoYXIgKikgdXJiLT50cmFu c2Zlcl9idWZmZXIgKyB1cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGgpCisJCQkqY21kKysgPSAw eEFGOwogCQkvKiBTZW5kIHBhcnRpYWwgYnVmZmVyIHJlbWFpbmluZyBiZWZvcmUgZXhpdGluZyAq LwotCQlpbnQgbGVuID0gY21kIC0gKGNoYXIgKikgdXJiLT50cmFuc2Zlcl9idWZmZXI7CisJCWxl biA9IGNtZCAtIChjaGFyICopIHVyYi0+dHJhbnNmZXJfYnVmZmVyOwogCQlkbGZiX3N1Ym1pdF91 cmIoZGxmYiwgdXJiLCBsZW4pOwogCQlieXRlc19zZW50ICs9IGxlbjsKIAl9IGVsc2UKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=