From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: [RFC PATCH] drm/vblanks: Deal with HW vblank counter resets. Date: Mon, 6 Nov 2017 22:26:17 -0800 Message-ID: <20171107062617.4227-1-dhinakaran.pandiyan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org Cc: Daniel Vetter , Rodrigo Vivi , dri-devel@lists.freedesktop.org, Dhinakaran Pandiyan List-Id: dri-devel@lists.freedesktop.org U29tZSBIVyB2YmxhbmsgY291bnRlcnMgcmVzZXQgZHVlIHRvIHBvd2VyIG1hbmFnZW1lbnQgZXZl bnRzLCB3aGljaCBtZXNzZXMKdXAgdGhlIHZibGFuayBjb3VudGluZyBsb2dpYy4gVGhpcyBsZWFk cyB0byBzY3JlZW4gZnJlZXplcyB3aXRoIHVzZXIgc3BhY2UKd2FpdGluZyBvbiB2YmxhbmsgZXZl bnRzIHRoYXQgbWF5IG5vdCBvY2N1ciBpZiB0aGUgY291bnRlciBrZWVwcyByZXNldHRpbmcuCgpG b3IgZS5nLiwgQWZ0ZXIgdGhlIEhXIHZibGFuayBjb3VudGVyIHJlc2V0cwpbICAgIDkuMDA3MzU5 XSBbZHJtOmRybV91cGRhdGVfdmJsYW5rX2NvdW50IFtkcm1dXSB1cGRhdGluZyB2YmxhbmsgY291 bnQKb24gY3J0YyAwOiBjdXJyZW50PTI5NywgZGlmZj00Mjk0OTY1Mzg5LCBodz01IGh3X2xhc3Q9 MTkxMgoKU28sIGZhbGwgYmFjayB0byB0aGUgU1cgY291bnRlciwgY29tcHV0ZWQgdXNpbmcgIHZi bGFuayB0aW1lc3RhbXBzCmFuZCBmcmFtZSBkdXJhdGlvbiwgd2hlbiB0aGUgSFcgY291bnRlciB2 YWx1ZSBkZXZpYXRlcyBieSA1MCUgb2YgdGhlIFNXCmNvbXB1dGVkIHZhbHVlLgoKSSBoYXZlIHRl c3RlZCB0aGlzIHBhdGNoIG9uIG15IFNLTCBsYXB0b3Agd2l0aCBpOTE1LmVuYWJsZV9wc3I9MSBh bmQgaXQKKnNlZW1zKiB0byBzb2x2ZSB0aGUgc2NyZWVuIGZyZWV6ZSBpc3N1ZSBzZWVuIHdpdGgg UFNSIHdoZW4gRE1DIGlzIGxvYWRlZC4KCktub3duIGlzc3VlczoKMSkgVGhlIDUwJSBkZXZpYXRp b24gbWFyZ2luIGlzIGFyYml0cmFyeS4KMikgIlJlZHVuZGFudCB2YmxpcnEgaWdub3JlZCIgbWVz c2FnZXMgYXJlIG1vcmUgZnJlcXVlbnQuCgpJIGFtIHNlbmRpbmcgdGhpcyBhcyBhbiBSRkMgdG8g Z2V0IGZlZWRiYWNrIG9uIHdoZXRoZXIgdGhlIGZhbGwgYmFjawphcHByb2FjaCBpcyBzYW5lIGFu ZCBpZiBpdCBzaG91bGQgYmUgaW1wbGVtZW50ZWQgaW4gdGhlIGNvcmUuCgpDYzogRGFuaWVsIFZl dHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52 aXZpQGludGVsLmNvbT4KQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4u cGFuZGl5YW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMgfCAy NiArKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlv bnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f dmJsYW5rLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jCmluZGV4IDU3Y2M2ZTM3Yzgx MC4uODAwMGFhZTVmMWY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMKQEAgLTE5MCwxMSArMTkwLDEyIEBA IHN0YXRpYyB2b2lkIGRybV91cGRhdGVfdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHVuc2lnbmVkIGludCBwaXBlLAogCQkJCSAgICBib29sIGluX3ZibGFua19pcnEpCiB7CiAJ c3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gJmRldi0+dmJsYW5rW3BpcGVdOwotCXUz MiBjdXJfdmJsYW5rLCBkaWZmOworCXUzMiBjdXJfdmJsYW5rOwogCWJvb2wgcmM7CiAJa3RpbWVf dCB0X3ZibGFuazsKIAlpbnQgY291bnQgPSBEUk1fVElNRVNUQU1QX01BWFJFVFJJRVM7CiAJaW50 IGZyYW1lZHVyX25zID0gdmJsYW5rLT5mcmFtZWR1cl9uczsKKwl1MzIgZGlmZiA9IGluX3ZibGFu a19pcnEgPyAxIDogMDsKIAogCS8qCiAJICogSW50ZXJydXB0cyB3ZXJlIGRpc2FibGVkIHByaW9y IHRvIHRoaXMgY2FsbCwgc28gZGVhbCB3aXRoIGNvdW50ZXIKQEAgLTIxMywyNiArMjE0LDMxIEBA IHN0YXRpYyB2b2lkIGRybV91cGRhdGVfdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHVuc2lnbmVkIGludCBwaXBlLAogCQlyYyA9IGRybV9nZXRfbGFzdF92Ymx0aW1lc3RhbXAo ZGV2LCBwaXBlLCAmdF92YmxhbmssIGluX3ZibGFua19pcnEpOwogCX0gd2hpbGUgKGN1cl92Ymxh bmsgIT0gX19nZXRfdmJsYW5rX2NvdW50ZXIoZGV2LCBwaXBlKSAmJiAtLWNvdW50ID4gMCk7CiAK LQlpZiAoZGV2LT5tYXhfdmJsYW5rX2NvdW50ICE9IDApIHsKLQkJLyogdHJ1c3QgdGhlIGh3IGNv dW50ZXIgd2hlbiBpdCdzIGFyb3VuZCAqLworCWlmIChkZXYtPm1heF92YmxhbmtfY291bnQpCiAJ CWRpZmYgPSAoY3VyX3ZibGFuayAtIHZibGFuay0+bGFzdCkgJiBkZXYtPm1heF92YmxhbmtfY291 bnQ7Ci0JfSBlbHNlIGlmIChyYyAmJiBmcmFtZWR1cl9ucykgeworCisJaWYgKHJjICYmIGZyYW1l ZHVyX25zKSB7CiAJCXU2NCBkaWZmX25zID0ga3RpbWVfdG9fbnMoa3RpbWVfc3ViKHRfdmJsYW5r LCB2YmxhbmstPnRpbWUpKTsKKwkJdTMyIHN3X2RpZmY7CiAKIAkJLyoKIAkJICogRmlndXJlIG91 dCBob3cgbWFueSB2YmxhbmtzIHdlJ3ZlIG1pc3NlZCBiYXNlZAogCQkgKiBvbiB0aGUgZGlmZmVy ZW5jZSBpbiB0aGUgdGltZXN0YW1wcyBhbmQgdGhlCiAJCSAqIGZyYW1lL2ZpZWxkIGR1cmF0aW9u LgogCQkgKi8KLQkJZGlmZiA9IERJVl9ST1VORF9DTE9TRVNUX1VMTChkaWZmX25zLCBmcmFtZWR1 cl9ucyk7Ci0KLQkJaWYgKGRpZmYgPT0gMCAmJiBpbl92YmxhbmtfaXJxKQorCQlzd19kaWZmID0g RElWX1JPVU5EX0NMT1NFU1RfVUxMKGRpZmZfbnMsIGZyYW1lZHVyX25zKTsKKwkJaWYgKHN3X2Rp ZmYgPT0gMCAmJiBpbl92YmxhbmtfaXJxKQogCQkJRFJNX0RFQlVHX1ZCTCgiY3J0YyAldTogUmVk dW5kYW50IHZibGlycSBpZ25vcmVkLiIKIAkJCQkgICAgICAiIGRpZmZfbnMgPSAlbGxkLCBmcmFt ZWR1cl9ucyA9ICVkKVxuIiwKIAkJCQkgICAgICBwaXBlLCAobG9uZyBsb25nKSBkaWZmX25zLCBm cmFtZWR1cl9ucyk7Ci0JfSBlbHNlIHsKLQkJLyogc29tZSBraW5kIG9mIGRlZmF1bHQgZm9yIGRy aXZlcnMgdy9vIGFjY3VyYXRlIHZibCB0aW1lc3RhbXBpbmcgKi8KLQkJZGlmZiA9IGluX3ZibGFu a19pcnEgPyAxIDogMDsKKworCQlpZiAoIWRldi0+bWF4X3ZibGFua19jb3VudCkKKwkJCWRpZmYg PSBzd19kaWZmOworCQllbHNlIGlmIChzd19kaWZmICYmIGFicyhkaWZmIC0gc3dfZGlmZikgPiBE SVZfUk9VTkRfQ0xPU0VTVChzd19kaWZmLCAyKSkgeworCQkJRFJNX0RFQlVHX1ZCTCgiaHcgdmJs YW5rIGNvdW50ZXIoJXUpIGRldmlhdGVzIGZyb20gc3cgKCV1KVxuIiwKKwkJCQkgICAgICBkaWZm LCBzd19kaWZmKTsKKwkJCWRpZmYgPSBzd19kaWZmOworCQl9CiAJfQogCiAJLyoKLS0gCjIuMTEu MAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==