From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shawn Guo Subject: [RFC PATCH v2 1/5] drm: add vblank hooks to struct drm_crtc_funcs Date: Sun, 22 Jan 2017 14:09:02 +0800 Message-ID: <1485065346-11578-2-git-send-email-shawnguo@kernel.org> References: <1485065346-11578-1-git-send-email-shawnguo@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.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id CBEF86E308 for ; Sun, 22 Jan 2017 06:09:36 +0000 (UTC) In-Reply-To: <1485065346-11578-1-git-send-email-shawnguo@kernel.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Daniel Vetter , Liviu Dudau , Laurent Pinchart List-Id: dri-devel@lists.freedesktop.org RnJvbTogU2hhd24gR3VvIDxzaGF3bi5ndW9AbGluYXJvLm9yZz4KClRoZSB2YmxhbmsgaXMgbW9z dGx5IENSVEMgc3BlY2lmaWMgYW5kIGltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ1JUQwpkcml2ZXIu ICBMZXQncyBrZWVwIHRoZSB2YmxhbmsgaG9va3Mgc3RydWN0IGRybV9kcml2ZXIgZm9yIGxlZ2Fj eQpkcml2ZXJzLCBhbmQgYWRkIGNvcnJlc3BvbmRpbmcgaG9va3MgaW4gc3RydWN0IGRybV9jcnRj X2Z1bmNzLiAgVGhlc2UKaG9va3MgdGFrZSBzdHJ1Y3QgZHJtX2NydGMgcG9pbnRlciBhcyBhcmd1 bWVudCwgYW5kIHdpbGwgYmUgY2FsbGVkIGJ5CmNvcmUgdmJsYW5rIGhhbmRsaW5nIGNvZGUgZm9y IE1PREVTRVQgZHJpdmVycy4KClNpZ25lZC1vZmYtYnk6IFNoYXduIEd1byA8c2hhd24uZ3VvQGxp bmFyby5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYyB8IDUzICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCiBpbmNsdWRlL2RybS9kcm1fY3J0 Yy5oICAgIHwgMzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL2RybS9k cm1fZHJ2LmggICAgIHwgIDkgKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgOTAgaW5zZXJ0aW9u cygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ly cS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYwppbmRleCA4OGM2OWU3MTEwMmUuLjYwNGEy YWNkYTlkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2lycS5jCkBAIC04OSw2ICs4OSwxOSBAQCBzdGF0aWMgdm9pZCBzdG9y ZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCiAJd3Jp dGVfc2VxdW5sb2NrKCZ2YmxhbmstPnNlcWxvY2spOwogfQogCitzdGF0aWMgdTMyIF9fZ2V0X3Zi bGFua19jb3VudGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQor eworCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX01PREVTRVQpKSB7CisJ CXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGRybV9jcnRjX2Zyb21faW5kZXgoZGV2LCBwaXBlKTsK KworCQlpZiAoY3J0Yy0+ZnVuY3MtPmdldF92YmxhbmtfY291bnRlcikKKwkJCXJldHVybiBjcnRj LT5mdW5jcy0+Z2V0X3ZibGFua19jb3VudGVyKGNydGMpOworCX0KKworCS8qIGZhbGxiYWNrIGZv ciBsZWdhY3kgZHJpdmVycyAqLworCXJldHVybiBkZXYtPmRyaXZlci0+Z2V0X3ZibGFua19jb3Vu dGVyKGRldiwgcGlwZSk7Cit9CisKIC8qCiAgKiBSZXNldCB0aGUgc3RvcmVkIHRpbWVzdGFtcCBm b3IgdGhlIGN1cnJlbnQgdmJsYW5rIGNvdW50IHRvIGNvcnJlc3BvbmQKICAqIHRvIHRoZSBsYXN0 IHZibGFuayBvY2N1cnJlZC4KQEAgLTExMiw5ICsxMjUsOSBAQCBzdGF0aWMgdm9pZCBkcm1fcmVz ZXRfdmJsYW5rX3RpbWVzdGFtcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQg cGlwZQogCSAqIHdoZW4gZHJtX3ZibGFua19lbmFibGUoKSBhcHBsaWVzIHRoZSBkaWZmCiAJICov CiAJZG8gewotCQljdXJfdmJsYW5rID0gZGV2LT5kcml2ZXItPmdldF92YmxhbmtfY291bnRlcihk ZXYsIHBpcGUpOworCQljdXJfdmJsYW5rID0gX19nZXRfdmJsYW5rX2NvdW50ZXIoZGV2LCBwaXBl KTsKIAkJcmMgPSBkcm1fZ2V0X2xhc3RfdmJsdGltZXN0YW1wKGRldiwgcGlwZSwgJnRfdmJsYW5r LCAwKTsKLQl9IHdoaWxlIChjdXJfdmJsYW5rICE9IGRldi0+ZHJpdmVyLT5nZXRfdmJsYW5rX2Nv dW50ZXIoZGV2LCBwaXBlKSAmJiAtLWNvdW50ID4gMCk7CisJfSB3aGlsZSAoY3VyX3ZibGFuayAh PSBfX2dldF92YmxhbmtfY291bnRlcihkZXYsIHBpcGUpICYmIC0tY291bnQgPiAwKTsKIAogCS8q CiAJICogT25seSByZWluaXRpYWxpemUgY29ycmVzcG9uZGluZyB2YmxhbmsgdGltZXN0YW1wIGlm IGhpZ2gtcHJlY2lzaW9uIHF1ZXJ5CkBAIC0xNjgsOSArMTgxLDkgQEAgc3RhdGljIHZvaWQgZHJt X3VwZGF0ZV92YmxhbmtfY291bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50 IHBpcGUsCiAJICogY29ycmVzcG9uZGluZyB2YmxhbmsgdGltZXN0YW1wLgogCSAqLwogCWRvIHsK LQkJY3VyX3ZibGFuayA9IGRldi0+ZHJpdmVyLT5nZXRfdmJsYW5rX2NvdW50ZXIoZGV2LCBwaXBl KTsKKwkJY3VyX3ZibGFuayA9IF9fZ2V0X3ZibGFua19jb3VudGVyKGRldiwgcGlwZSk7CiAJCXJj ID0gZHJtX2dldF9sYXN0X3ZibHRpbWVzdGFtcChkZXYsIHBpcGUsICZ0X3ZibGFuaywgZmxhZ3Mp OwotCX0gd2hpbGUgKGN1cl92YmxhbmsgIT0gZGV2LT5kcml2ZXItPmdldF92YmxhbmtfY291bnRl cihkZXYsIHBpcGUpICYmIC0tY291bnQgPiAwKTsKKwl9IHdoaWxlIChjdXJfdmJsYW5rICE9IF9f Z2V0X3ZibGFua19jb3VudGVyKGRldiwgcGlwZSkgJiYgLS1jb3VudCA+IDApOwogCiAJaWYgKGRl di0+bWF4X3ZibGFua19jb3VudCAhPSAwKSB7CiAJCS8qIHRydXN0IHRoZSBodyBjb3VudGVyIHdo ZW4gaXQncyBhcm91bmQgKi8KQEAgLTI3NSw2ICsyODgsMjEgQEAgdTMyIGRybV9hY2N1cmF0ZV92 YmxhbmtfY291bnQoc3RydWN0IGRybV9jcnRjICpjcnRjKQogfQogRVhQT1JUX1NZTUJPTChkcm1f YWNjdXJhdGVfdmJsYW5rX2NvdW50KTsKIAorc3RhdGljIHZvaWQgX19kaXNhYmxlX3ZibGFuayhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKK3sKKwlpZiAoZHJtX2Nv cmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9NT0RFU0VUKSkgeworCQlzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMgPSBkcm1fY3J0Y19mcm9tX2luZGV4KGRldiwgcGlwZSk7CisKKwkJaWYgKGNydGMt PmZ1bmNzLT5kaXNhYmxlX3ZibGFuaykgeworCQkJY3J0Yy0+ZnVuY3MtPmRpc2FibGVfdmJsYW5r KGNydGMpOworCQkJcmV0dXJuOworCQl9CisJfQorCisJLyogZmFsbGJhY2sgZm9yIGxlZ2FjeSBk cml2ZXJzICovCisJZGV2LT5kcml2ZXItPmRpc2FibGVfdmJsYW5rKGRldiwgcGlwZSk7Cit9CisK IC8qCiAgKiBEaXNhYmxlIHZibGFuayBpcnEncyBvbiBjcnRjLCBtYWtlIHN1cmUgdGhhdCBsYXN0 IHZibGFuayBjb3VudAogICogb2YgaGFyZHdhcmUgYW5kIGNvcnJlc3BvbmRpbmcgY29uc2lzdGVu dCBzb2Z0d2FyZSB2YmxhbmsgY291bnRlcgpAQCAtMjk4LDcgKzMyNiw3IEBAIHN0YXRpYyB2b2lk IHZibGFua19kaXNhYmxlX2FuZF9zYXZlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVk IGludCBwaXBlKQogCSAqIGhhcmR3YXJlIHBvdGVudGlhbGx5IHJ1bnRpbWUgc3VzcGVuZGVkLgog CSAqLwogCWlmICh2YmxhbmstPmVuYWJsZWQpIHsKLQkJZGV2LT5kcml2ZXItPmRpc2FibGVfdmJs YW5rKGRldiwgcGlwZSk7CisJCV9fZGlzYWJsZV92YmxhbmsoZGV2LCBwaXBlKTsKIAkJdmJsYW5r LT5lbmFibGVkID0gZmFsc2U7CiAJfQogCkBAIC0xMDU0LDYgKzEwODIsMTkgQEAgdm9pZCBkcm1f Y3J0Y19zZW5kX3ZibGFua19ldmVudChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiB9CiBFWFBPUlRf U1lNQk9MKGRybV9jcnRjX3NlbmRfdmJsYW5rX2V2ZW50KTsKIAorc3RhdGljIGludCBfX2VuYWJs ZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCit7CisJ aWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfTU9ERVNFVCkpIHsKKwkJc3Ry dWN0IGRybV9jcnRjICpjcnRjID0gZHJtX2NydGNfZnJvbV9pbmRleChkZXYsIHBpcGUpOworCisJ CWlmIChjcnRjLT5mdW5jcy0+ZW5hYmxlX3ZibGFuaykKKwkJCXJldHVybiBjcnRjLT5mdW5jcy0+ ZW5hYmxlX3ZibGFuayhjcnRjKTsKKwl9CisKKwkvKiBmYWxsYmFjayBmb3IgbGVnYWN5IGRyaXZl cnMgKi8KKwlyZXR1cm4gZGV2LT5kcml2ZXItPmVuYWJsZV92YmxhbmsoZGV2LCBwaXBlKTsKK30K KwogLyoqCiAgKiBkcm1fdmJsYW5rX2VuYWJsZSAtIGVuYWJsZSB0aGUgdmJsYW5rIGludGVycnVw dCBvbiBhIENSVEMKICAqIEBkZXY6IERSTSBkZXZpY2UKQEAgLTEwNzksNyArMTEyMCw3IEBAIHN0 YXRpYyBpbnQgZHJtX3ZibGFua19lbmFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWdu ZWQgaW50IHBpcGUpCiAJCSAqIHRpbWVzdGFtcHMuIEZpbHRlcmNvZGUgaW4gZHJtX2hhbmRsZV92 YmxhbmsoKSB3aWxsCiAJCSAqIHByZXZlbnQgZG91YmxlLWFjY291bnRpbmcgb2Ygc2FtZSB2Ymxh bmsgaW50ZXJ2YWwuCiAJCSAqLwotCQlyZXQgPSBkZXYtPmRyaXZlci0+ZW5hYmxlX3ZibGFuayhk ZXYsIHBpcGUpOworCQlyZXQgPSBfX2VuYWJsZV92YmxhbmsoZGV2LCBwaXBlKTsKIAkJRFJNX0RF QlVHKCJlbmFibGluZyB2Ymxhbmsgb24gY3J0YyAldSwgcmV0OiAlZFxuIiwgcGlwZSwgcmV0KTsK IAkJaWYgKHJldCkKIAkJCWF0b21pY19kZWMoJnZibGFuay0+cmVmY291bnQpOwpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKaW5kZXgg MDZjOTQzZDFlMDRjLi44YjJmNzI2NmVhZGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9j cnRjLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaApAQCAtNjAwLDYgKzYwMCw0MCBAQCBz dHJ1Y3QgZHJtX2NydGNfZnVuY3MgewogCSAqLwogCXZvaWQgKCphdG9taWNfcHJpbnRfc3RhdGUp KHN0cnVjdCBkcm1fcHJpbnRlciAqcCwKIAkJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfc3Rh dGUgKnN0YXRlKTsKKworCS8qKgorCSAqIEBnZXRfdmJsYW5rX2NvdW50ZXI6CisJICoKKwkgKiBE cml2ZXIgY2FsbGJhY2sgZm9yIGZldGNoaW5nIGEgcmF3IGhhcmR3YXJlIHZibGFuayBjb3VudGVy IGZvciB0aGUKKwkgKiBDUlRDLiBJdCdzIG1lYW50IHRvIGJlIHVzZWQgYnkgbmV3IGRyaXZlcnMg YXMgdGhlIHJlcGxhY2VtZW50IG9mCisJICogJmRybV9kcml2ZXIuZ2V0X3ZibGFua19jb3VudGVy IGhvb2suCisJICoKKwkgKiBSZXR1cm5zOgorCSAqCisJICogUmF3IHZibGFuayBjb3VudGVyIHZh bHVlLgorCSAqLworCXUzMiAoKmdldF92YmxhbmtfY291bnRlcikoc3RydWN0IGRybV9jcnRjICpj cnRjKTsKKworCS8qKgorCSAqIEBlbmFibGVfdmJsYW5rOgorCSAqCisJICogRW5hYmxlIHZibGFu ayBpbnRlcnJ1cHRzIGZvciB0aGUgQ1JUQy4gSXQncyBtZWFudCB0byBiZSB1c2VkIGJ5CisJICog bmV3IGRyaXZlcnMgYXMgdGhlIHJlcGxhY2VtZW50IG9mICZkcm1fZHJpdmVyLmVuYWJsZV92Ymxh bmsgaG9vay4KKwkgKgorCSAqIFJldHVybnM6CisJICoKKwkgKiBaZXJvIG9uIHN1Y2Nlc3MsIGFw cHJvcHJpYXRlIGVycm5vIGlmIHRoZSB2YmxhbmsgaW50ZXJydXB0IGNhbm5vdAorCSAqIGJlIGVu YWJsZWQuCisJICovCisJaW50ICgqZW5hYmxlX3ZibGFuaykoc3RydWN0IGRybV9jcnRjICpjcnRj KTsKKworCS8qKgorCSAqIEBkaXNhYmxlX3ZibGFuazoKKwkgKgorCSAqIERpc2FibGUgdmJsYW5r IGludGVycnVwdHMgZm9yIHRoZSBDUlRDLiBJdCdzIG1lYW50IHRvIGJlIHVzZWQgYnkKKwkgKiBu ZXcgZHJpdmVycyBhcyB0aGUgcmVwbGFjZW1lbnQgb2YgJmRybV9kcml2ZXIuZGlzYWJsZV92Ymxh bmsgaG9vay4KKwkgKi8KKwl2b2lkICgqZGlzYWJsZV92YmxhbmspKHN0cnVjdCBkcm1fY3J0YyAq Y3J0Yyk7CiB9OwogCiAvKioKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kcnYuaCBiL2lu Y2x1ZGUvZHJtL2RybV9kcnYuaAppbmRleCAzNGVjZTM5M2M2MzkuLjZjMzI1YmFkZGM0MCAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Rydi5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9kcnYu aApAQCAtMTIzLDYgKzEyMyw5IEBAIHN0cnVjdCBkcm1fZHJpdmVyIHsKIAkgKiBkcm1fY3J0Y192 Ymxhbmtfb2ZmKCkgYW5kIGRybV9jcnRjX3ZibGFua19vbigpIHdoZW4gZGlzYWJsaW5nIG9yCiAJ ICogZW5hYmxpbmcgYSBDUlRDLgogCSAqCisJICogVGhpcyBpcyBkZXByZWNhdGVkIGFuZCBzaG91 bGQgbm90IGJlIHVzZWQgYnkgbmV3IGRyaXZlcnMuCisJICogVXNlICZkcm1fY3J0Y19mdW5jcy5n ZXRfdmJsYW5rX2NvdW50ZXIgaW5zdGVhZC4KKwkgKgogCSAqIFJldHVybnM6CiAJICoKIAkgKiBS YXcgdmJsYW5rIGNvdW50ZXIgdmFsdWUuCkBAIC0xMzUsNiArMTM4LDkgQEAgc3RydWN0IGRybV9k cml2ZXIgewogCSAqIEVuYWJsZSB2YmxhbmsgaW50ZXJydXB0cyBmb3IgdGhlIENSVEMgc3BlY2lm aWVkIHdpdGggdGhlIHBpcGUKIAkgKiBhcmd1bWVudC4KIAkgKgorCSAqIFRoaXMgaXMgZGVwcmVj YXRlZCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGJ5IG5ldyBkcml2ZXJzLgorCSAqIFVzZSAmZHJt X2NydGNfZnVuY3MuZW5hYmxlX3ZibGFuayBpbnN0ZWFkLgorCSAqCiAJICogUmV0dXJuczoKIAkg KgogCSAqIFplcm8gb24gc3VjY2VzcywgYXBwcm9wcmlhdGUgZXJybm8gaWYgdGhlIGdpdmVuIEBj cnRjJ3MgdmJsYW5rCkBAIC0xNDcsNiArMTUzLDkgQEAgc3RydWN0IGRybV9kcml2ZXIgewogCSAq CiAJICogRGlzYWJsZSB2YmxhbmsgaW50ZXJydXB0cyBmb3IgdGhlIENSVEMgc3BlY2lmaWVkIHdp dGggdGhlIHBpcGUKIAkgKiBhcmd1bWVudC4KKwkgKgorCSAqIFRoaXMgaXMgZGVwcmVjYXRlZCBh bmQgc2hvdWxkIG5vdCBiZSB1c2VkIGJ5IG5ldyBkcml2ZXJzLgorCSAqIFVzZSAmZHJtX2NydGNf ZnVuY3MuZGlzYWJsZV92YmxhbmsgaW5zdGVhZC4KIAkgKi8KIAl2b2lkICgqZGlzYWJsZV92Ymxh bmspIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7CiAKLS0gCjEu OS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK