From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Hajda Subject: [PATCH 1/2] drm/exynos/vidi: use timer for vblanks instead of sleeping worker Date: Fri, 23 Sep 2016 10:15:23 +0200 Message-ID: <1474618524-8916-2-git-send-email-a.hajda@samsung.com> References: <1474618524-8916-1-git-send-email-a.hajda@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <1474618524-8916-1-git-send-email-a.hajda@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Inki Dae Cc: linux-samsung-soc@vger.kernel.org, Bartlomiej Zolnierkiewicz , Daniel Vetter , dri-devel@lists.freedesktop.org, Tobias Jakobi , Marek Szyprowski List-Id: linux-samsung-soc@vger.kernel.org VklESSBkcml2ZXIgdXNlcyBmYWtlIHZibGFuayBoYW5kbGVyIHRvIGdlbmVyYXRlIHZibGFuayBl dmVudHMuCkl0IHdhcyBpbXBsZW1lbnRlZCB1c2luZyB3b3JrZXIgd2hpY2ggc2xlcHQgZm9yIHZi bGFuayB0aW1lLCBhZGRpdGlvbmFsbHkKaXQgZGlkIG5vdCB3b3JrIGlmIHRoZXJlIHdlcmUgbm8g cGFnZSBmbGlwcy4gVGhlIHBhdGNoIHJlcGxhY2VzIGl0IHdpdGgKdGltZXIsIHVzZXMgZHJtX2Ny dGNfdmJsYW5rXyhvbnxvZmYpIGhlbHBlcnMgdG8gbWFuYWdlIGl0IGFuZCBmaXhlcwpiZWhhdmlv ciBmb3Igbm9uLXBhZ2UtZmxpcCBjYXNlcy4KVGhpcyBjaGFuZ2UgYWxsb3dzIGZ1cnRoZXIgaW1w cm92ZW1lbnRzIG9mIHZibGFuayBpbiBleHlub3MtZHJtIGZyYW1ld29yay4KClNpZ25lZC1vZmYt Ynk6IEFuZHJ6ZWogSGFqZGEgPGEuaGFqZGFAc2Ftc3VuZy5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2V4eW5vcy9leHlub3NfZHJtX3ZpZGkuYyB8IDY2ICsrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgNDYgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX3ZpZGku YyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV92aWRpLmMKaW5kZXggZThmNmM5 Mi4uYTkxZGFkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJt X3ZpZGkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fdmlkaS5jCkBA IC0xNSw2ICsxNSw3IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGlu dXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+CisjaW5j bHVkZSA8bGludXgvdGltZXIuaD4KIAogI2luY2x1ZGUgPGRybS9leHlub3NfZHJtLmg+CiAKQEAg LTI4LDYgKzI5LDkgQEAKICNpbmNsdWRlICJleHlub3NfZHJtX3BsYW5lLmgiCiAjaW5jbHVkZSAi ZXh5bm9zX2RybV92aWRpLmgiCiAKKy8qIFZJREkgdXNlcyBmaXhlZCByZWZyZXNoIHJhdGUgb2Yg NTBIeiAqLworI2RlZmluZSBWSURJX1JFRlJFU0hfVElNRSAoMTAwMCAvIDUwKQorCiAvKiB2aWRp IGhhcyB0b3RhbGx5IHRocmVlIHZpcnR1YWwgd2luZG93cy4gKi8KICNkZWZpbmUgV0lORE9XU19O UgkJMwogCkBAIC00MywxMiArNDcsOSBAQCBzdHJ1Y3QgdmlkaV9jb250ZXh0IHsKIAlzdHJ1Y3Qg ZXh5bm9zX2RybV9wbGFuZQkJcGxhbmVzW1dJTkRPV1NfTlJdOwogCXN0cnVjdCBlZGlkCQkJKnJh d19lZGlkOwogCXVuc2lnbmVkIGludAkJCWNsa2RpdjsKLQl1bnNpZ25lZCBsb25nCQkJaXJxX2Zs YWdzOwogCXVuc2lnbmVkIGludAkJCWNvbm5lY3RlZDsKLQlib29sCQkJCXZibGFua19vbjsKIAli b29sCQkJCXN1c3BlbmRlZDsKLQlib29sCQkJCWRpcmVjdF92Ymxhbms7Ci0Jc3RydWN0IHdvcmtf c3RydWN0CQl3b3JrOworCXN0cnVjdCB0aW1lcl9saXN0CQl0aW1lcjsKIAlzdHJ1Y3QgbXV0ZXgJ CQlsb2NrOwogCWludAkJCQlwaXBlOwogfTsKQEAgLTEwMiwzMCArMTAzLDE0IEBAIHN0YXRpYyBp bnQgdmlkaV9lbmFibGVfdmJsYW5rKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMpCiAJaWYg KGN0eC0+c3VzcGVuZGVkKQogCQlyZXR1cm4gLUVQRVJNOwogCi0JaWYgKCF0ZXN0X2FuZF9zZXRf Yml0KDAsICZjdHgtPmlycV9mbGFncykpCi0JCWN0eC0+dmJsYW5rX29uID0gdHJ1ZTsKLQotCWN0 eC0+ZGlyZWN0X3ZibGFuayA9IHRydWU7Ci0KLQkvKgotCSAqIGluIGNhc2Ugb2YgcGFnZSBmbGlw IHJlcXVlc3QsIHZpZGlfZmluaXNoX3BhZ2VmbGlwIGZ1bmN0aW9uCi0JICogd2lsbCBub3QgYmUg Y2FsbGVkIGJlY2F1c2UgZGlyZWN0X3ZibGFuayBpcyB0cnVlIGFuZCB0aGVuCi0JICogdGhhdCBm dW5jdGlvbiB3aWxsIGJlIGNhbGxlZCBieSBjcnRjX29wcy0+dXBkYXRlX3BsYW5lIGNhbGxiYWNr Ci0JICovCi0Jc2NoZWR1bGVfd29yaygmY3R4LT53b3JrKTsKKwltb2RfdGltZXIoJmN0eC0+dGlt ZXIsCisJCWppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVzKFZJRElfUkVGUkVTSF9USU1FKSAtIDEp OwogCiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIHZpZGlfZGlzYWJsZV92Ymxhbmsoc3Ry dWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKIHsKLQlzdHJ1Y3QgdmlkaV9jb250ZXh0ICpjdHgg PSBjcnRjLT5jdHg7Ci0KLQlpZiAoY3R4LT5zdXNwZW5kZWQpCi0JCXJldHVybjsKLQotCWlmICh0 ZXN0X2FuZF9jbGVhcl9iaXQoMCwgJmN0eC0+aXJxX2ZsYWdzKSkKLQkJY3R4LT52Ymxhbmtfb24g PSBmYWxzZTsKIH0KIAogc3RhdGljIHZvaWQgdmlkaV91cGRhdGVfcGxhbmUoc3RydWN0IGV4eW5v c19kcm1fY3J0YyAqY3J0YywKQEAgLTE0MCw5ICsxMjUsNiBAQCBzdGF0aWMgdm9pZCB2aWRpX3Vw ZGF0ZV9wbGFuZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjLAogCiAJYWRkciA9IGV4eW5v c19kcm1fZmJfZG1hX2FkZHIoc3RhdGUtPmZiLCAwKTsKIAlEUk1fREVCVUdfS01TKCJkbWFfYWRk ciA9ICVwYWRcbiIsICZhZGRyKTsKLQotCWlmIChjdHgtPnZibGFua19vbikKLQkJc2NoZWR1bGVf d29yaygmY3R4LT53b3JrKTsKIH0KIAogc3RhdGljIHZvaWQgdmlkaV9lbmFibGUoc3RydWN0IGV4 eW5vc19kcm1fY3J0YyAqY3J0YykKQEAgLTE1MywxNyArMTM1LDE3IEBAIHN0YXRpYyB2b2lkIHZp ZGlfZW5hYmxlKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMpCiAKIAljdHgtPnN1c3BlbmRl ZCA9IGZhbHNlOwogCi0JLyogaWYgdmJsYW5rIHdhcyBlbmFibGVkIHN0YXR1cywgZW5hYmxlIGl0 IGFnYWluLiAqLwotCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoMCwgJmN0eC0+aXJxX2ZsYWdzKSkK LQkJdmlkaV9lbmFibGVfdmJsYW5rKGN0eC0+Y3J0Yyk7Ci0KIAltdXRleF91bmxvY2soJmN0eC0+ bG9jayk7CisKKwlkcm1fY3J0Y192Ymxhbmtfb24oJmNydGMtPmJhc2UpOwogfQogCiBzdGF0aWMg dm9pZCB2aWRpX2Rpc2FibGUoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1 Y3QgdmlkaV9jb250ZXh0ICpjdHggPSBjcnRjLT5jdHg7CiAKKwlkcm1fY3J0Y192Ymxhbmtfb2Zm KCZjcnRjLT5iYXNlKTsKKwogCW11dGV4X2xvY2soJmN0eC0+bG9jayk7CiAKIAljdHgtPnN1c3Bl bmRlZCA9IHRydWU7CkBAIC0xOTAsMjggKzE3MiwxNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGV4 eW5vc19kcm1fY3J0Y19vcHMgdmlkaV9jcnRjX29wcyA9IHsKIAkudXBkYXRlX3BsYW5lID0gdmlk aV91cGRhdGVfcGxhbmUsCiB9OwogCi1zdGF0aWMgdm9pZCB2aWRpX2Zha2VfdmJsYW5rX2hhbmRs ZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQorc3RhdGljIHZvaWQgdmlkaV9mYWtlX3ZibGFu a190aW1lcih1bnNpZ25lZCBsb25nIGFyZykKIHsKLQlzdHJ1Y3QgdmlkaV9jb250ZXh0ICpjdHgg PSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHZpZGlfY29udGV4dCwKLQkJCQkJd29yayk7CisJ c3RydWN0IHZpZGlfY29udGV4dCAqY3R4ID0gKHZvaWQgKilhcmc7CiAJaW50IHdpbjsKIAogCWlm IChjdHgtPnBpcGUgPCAwKQogCQlyZXR1cm47CiAKLQkvKiByZWZyZXNoIHJhdGUgaXMgYWJvdXQg NTBIei4gKi8KLQl1c2xlZXBfcmFuZ2UoMTYwMDAsIDIwMDAwKTsKLQotCW11dGV4X2xvY2soJmN0 eC0+bG9jayk7Ci0KLQlpZiAoY3R4LT5kaXJlY3RfdmJsYW5rKSB7Ci0JCWRybV9jcnRjX2hhbmRs ZV92YmxhbmsoJmN0eC0+Y3J0Yy0+YmFzZSk7Ci0JCWN0eC0+ZGlyZWN0X3ZibGFuayA9IGZhbHNl OwotCQltdXRleF91bmxvY2soJmN0eC0+bG9jayk7Ci0JCXJldHVybjsKLQl9Ci0KLQltdXRleF91 bmxvY2soJmN0eC0+bG9jayk7CisJaWYgKGRybV9jcnRjX2hhbmRsZV92YmxhbmsoJmN0eC0+Y3J0 Yy0+YmFzZSkpCisJCW1vZF90aW1lcigmY3R4LT50aW1lciwKKwkJCWppZmZpZXMgKyBtc2Vjc190 b19qaWZmaWVzKFZJRElfUkVGUkVTSF9USU1FKSAtIDEpOwogCiAJZm9yICh3aW4gPSAwIDsgd2lu IDwgV0lORE9XU19OUiA7IHdpbisrKSB7CiAJCXN0cnVjdCBleHlub3NfZHJtX3BsYW5lICpwbGFu ZSA9ICZjdHgtPnBsYW5lc1t3aW5dOwpAQCAtNDg5LDYgKzQ2MCw5IEBAIHN0YXRpYyBpbnQgdmlk aV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpk YXRhKQogCiBzdGF0aWMgdm9pZCB2aWRpX3VuYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVj dCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKIHsKKwlzdHJ1Y3QgdmlkaV9jb250ZXh0ICpj dHggPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKworCWRlbF90aW1lcl9zeW5jKCZjdHgtPnRpbWVy KTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBjb21wb25lbnRfb3BzIHZpZGlfY29tcG9uZW50 X29wcyA9IHsKQEAgLTUwNyw3ICs0ODEsNyBAQCBzdGF0aWMgaW50IHZpZGlfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCWN0eC0+cGRldiA9IHBkZXY7CiAKLQlJTklUX1dP UksoJmN0eC0+d29yaywgdmlkaV9mYWtlX3ZibGFua19oYW5kbGVyKTsKKwlzZXR1cF90aW1lcigm Y3R4LT50aW1lciwgdmlkaV9mYWtlX3ZibGFua190aW1lciwgKHVuc2lnbmVkIGxvbmcpY3R4KTsK IAogCW11dGV4X2luaXQoJmN0eC0+bG9jayk7CiAKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK