From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH] drm/atomic-helper: implement ->page_flip Date: Wed, 5 Nov 2014 14:46:41 +0100 Message-ID: <1415195201-13441-1-git-send-email-daniel.vetter@ffwll.ch> References: <1415138972-13178-1-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f53.google.com (mail-wg0-f53.google.com [74.125.82.53]) by gabe.freedesktop.org (Postfix) with ESMTP id 059C76E784 for ; Wed, 5 Nov 2014 05:46:31 -0800 (PST) Received: by mail-wg0-f53.google.com with SMTP id b13so950616wgh.12 for ; Wed, 05 Nov 2014 05:46:31 -0800 (PST) In-Reply-To: <1415138972-13178-1-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: DRI Development Cc: Daniel Vetter , Intel Graphics Development List-Id: dri-devel@lists.freedesktop.org Q3VycmVudGx5IHRoZXJlIGlzIG5vIHdheSB0byBpbXBsZW1lbnQgYXN5bmMgZmxpcHMgdXNpbmcg YXRvbWljLCB0aGF0CmVzc2VudGlhbGx5IHJlcXVpcmVzIHVzIHRvIGJlIGFibGUgdG8gY2FuY2Vs IHBlbmRpbmcgcmVxdWVzdHMKbWlkLWZsaWdodC4KClRvIGJlIGFibGUgdG8gZG8gdGhhdCAoYW5k IEkgZ3Vlc3Mgd2Ugd2FudCB0aGlzIHNpbmNlIHZibGFuayBzeW5jZWQKdXBkYXRlcyB3aGljIG9w cG9ydHVuaXN0aWNhbGx5IGNhbmNlbCBzdGlsbCBwZW5kaW5nIHVwZGF0ZXMgc2VlbSB0byBiZQp3 YW50ZWQpIHdlJ2QgbmVlZCB0byBhZGQgYSBtYW5kYXRvcnkgY2FuY2VsbGF0aW9uIG1vZGUuIERl cGVuZGluZyB1cG9uCnRoZSBleGFjdCBzZW1hbnRpY3Mgd2UgZGVjaWRlIHVwb24gdGhhdCBjb3Vs ZCBtZWFuIHRoYXQgdXNlcnNwYWNlIHdpbGwKbm90IGdldCBjb21wbGV0aW9uIGV2ZW50cywgb3Ig d2lsbCBnZXQgdGhlbSBhbGwgc3RhY2tlZCB1cC4KClNvIHJlamVjdCBhc3luYyB1cGRhdGVzIGZv ciBub3cuIEFsc28gYXN5bmMgdXBkYXRlcyB1c3VhbGx5IG1lYW5zIG5vdAp2Ymxhbmsgc3luY2Vk IGF0IGFsbCwgYW5kIEkgZ3Vlc3MgZm9yIGRyaXZlcnMgd2hpY2ggd2FudCB0byBzdXBwb3J0CnRo aXMgdGhleSBzaG91bGQgc2ltcGx5IGFkZCBhIHNwZWNpYWwgcGFnZWZsaXAgaGFuZGxlciAoc2lu Y2UgdXN1YWxseQp5b3UgbmVlZCBhIHNwZWNpYWwgZmxpcCBjbWQgdG8gYWNoaWV2ZSB0aGlzKS4g VGhhdCBraW5kIG9mIGFzeW5jIGZsaXAKaXMgcHJldHR5IG11Y2ggZXhjbHVzaXZlbHkganVzdCB1 c2VkIGZvciBnYW1lcyBhbmQgYmVuY2htYXJrcyB3aGVyZQpkcm9wcGluZyBqdXN0IG9uZSBmcmFt ZSBtZWFucyB5b3UnbGwgZ2V0IGEgaGVhZHNob3Qgb3Igc29tZXRoaW5nIGJhZApsaWtlIHRoYXQg Li4uIEFuZCBzbyBzbGlnaHQgYW1vdW50cyBvZiB0ZWFyaW5nIGlzIGFjY2VwdGFibGUuCgp2Mjog Rml4dXAga2VybmVsZG9jLCByZXBvcnRlZCBieSBQYXVsby4KCnYzOiBVc2UgdGhlIHNldF9jcnRj X2Zvcl9wbGFuZSBmdW5jdGlvbiB0byBhc3NpZ24gdGhlIGNydGMsIHNpbmNlCm90aGVyd2lzZSB0 aGUgYm9vay1rZWVwaW5nIGlzIG9mZi4KCnY0OiBVcGRhdGUgY3J0Yy0+cHJpbWFyeS0+ZmIgc2lu Y2UgLT5wYWdlX2ZsaXAgaXMgdGhlIG9ubHkgZHJpdmVyCmNhbGxiYWNrIHdoZXJlIHRoZSBjb3Jl IHdvbid0IGRvIHRoaXMgaXRzZWxmLiBXZSBtaWdodCB3YW50IHRvIGZpeAp0aGlzIGluY29uc2lz dGVuY3kgZXZlbnR1YWxseS4KCnY1OiBVc2Ugc2V0X2NydGNfZm9yX2Nvbm5lY3RvciBhcyBzdWdn ZXN0ZWQgYnkgU2Vhbi4KCnY2OiBEYW5pZWwgVGhvbXBzb24gbm90aWNlZCB0aGF0IG15IGVycm9y IGhhbmRsaW5nIGlzIGluY29uc2lzdGVudAphbmQgdGhhdCBpbiBhIGZldyBjYXNlcyBJIGRpZG4n dCBoYW5kbGUgZmF0YWwgZXJyb3JzIChpLmUuIG5vdAotRURFQURMSykuIEZpeCB0aGlzIGJ5IGNv bnNvbGlkYXRlIHRoZSB3dyBtdXRleCBiYWNrb2ZmIGhhbmRsaW5nCmludG8gb25lIGNoZWNrIGlu IHRoZSBmYWlsOiBibG9jayBhbmQgZmxhdHRlbiB0aGUgZXJyb3IgY29udHJvbApmbG93IGV2ZXJ5 d2hlcmUgZWxzZS4KCkNjOiBEYW5pZWwgVGhvbXBzb24gPGRhbmllbC50aG9tcHNvbkBsaW5hcm8u b3JnPgpDYzogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+CkNjOiBQYXVsbyBaYW5v bmkgPHByemFub25pQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFu aWVsLnZldHRlckBmZndsbC5jaD4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxw ZXIuYyB8IDg2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUv ZHJtL2RybV9hdG9taWNfaGVscGVyLmggICAgIHwgIDUgKysrCiAyIGZpbGVzIGNoYW5nZWQsIDkx IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19o ZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCmluZGV4IGM3ZDE1 NTRiN2NlMS4uNmI0OTA1NzFjODAzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pY19oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwpA QCAtMTYwOCwzICsxNjA4LDg5IEBAIGJhY2tvZmY6CiAJZ290byByZXRyeTsKIH0KIEVYUE9SVF9T WU1CT0woZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX3NldF9wcm9wZXJ0eSk7CisKKy8qKgor ICogZHJtX2F0b21pY19oZWxwZXJfcGFnZV9mbGlwIC0gZXhlY3V0ZSBhIGxlZ2FjeSBwYWdlIGZs aXAKKyAqIEBjcnRjOiBEUk0gY3J0YworICogQGZiOiBEUk0gZnJhbWVidWZmZXIKKyAqIEBldmVu dDogb3B0aW9uYWwgRFJNIGV2ZW50IHRvIHNpZ25hbCB1cG9uIGNvbXBsZXRpb24KKyAqIEBmbGFn czogZmxpcCBmbGFncyBmb3Igbm9uLXZibGFuayBzeW5jJ2VkIHVwZGF0ZXMKKyAqCisgKiBQcm92 aWRlcyBhIGRlZmF1bHQgcGFnZSBmbGlwIGltcGxlbWVudGF0aW9uIHVzaW5nIHRoZSBhdG9taWMg ZHJpdmVyIGludGVyZmFjZS4KKyAqCisgKiBOb3RlIHRoYXQgZm9yIG5vdyBzbyBjYWxsZWQgYXN5 bmMgcGFnZSBmbGlwcyAoaS5lLiB1cGRhdGVzIHdoaWNoIGFyZSBub3QKKyAqIHN5bmNocm9uaXpl ZCB0byB2YmxhbmspIGFyZSBub3Qgc3VwcG9ydGVkLCBzaW5jZSB0aGUgYXRvbWljIGludGVyZmFj ZXMgaGF2ZQorICogbm8gcHJvdmlzaW9ucyBmb3IgdGhpcyB5ZXQuCisgKgorICogUmV0dXJuczoK KyAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJubyBudW1iZXJzIG9uIGZhaWx1 cmUuCisgKi8KK2ludCBkcm1fYXRvbWljX2hlbHBlcl9wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRj ICpjcnRjLAorCQkJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAorCQkJCXN0cnVjdCBkcm1f cGVuZGluZ192YmxhbmtfZXZlbnQgKmV2ZW50LAorCQkJCXVpbnQzMl90IGZsYWdzKQoreworCXN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gY3J0Yy0+cHJpbWFyeTsKKwlzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGU7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7CisJ c3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworCWludCByZXQgPSAwOworCisJaWYg KGZsYWdzICYgRFJNX01PREVfUEFHRV9GTElQX0FTWU5DKQorCQlyZXR1cm4gLUVJTlZBTDsKKwor CXN0YXRlID0gZHJtX2F0b21pY19zdGF0ZV9hbGxvYyhwbGFuZS0+ZGV2KTsKKwlpZiAoIXN0YXRl KQorCQlyZXR1cm4gLUVOT01FTTsKKworCXN0YXRlLT5hY3F1aXJlX2N0eCA9IGRybV9tb2Rlc2V0 X2xlZ2FjeV9hY3F1aXJlX2N0eChjcnRjKTsKK3JldHJ5OgorCWNydGNfc3RhdGUgPSBkcm1fYXRv bWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwlpZiAoSVNfRVJSKGNydGNfc3RhdGUp KSB7CisJCXJldCA9IFBUUl9FUlIoY3J0Y19zdGF0ZSk7CisJCWdvdG8gZmFpbDsKKwl9CisJY3J0 Y19zdGF0ZS0+ZXZlbnQgPSBldmVudDsKKworCXBsYW5lX3N0YXRlID0gZHJtX2F0b21pY19nZXRf cGxhbmVfc3RhdGUoc3RhdGUsIHBsYW5lKTsKKwlpZiAoSVNfRVJSKHBsYW5lX3N0YXRlKSkgewor CQlyZXQgPSBQVFJfRVJSKHBsYW5lX3N0YXRlKTsKKwkJZ290byBmYWlsOworCX0KKworCXJldCA9 IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX3BsYW5lKHBsYW5lX3N0YXRlLCBjcnRjKTsKKwlpZiAo cmV0ICE9IDApCisJCWdvdG8gZmFpbDsKKwlwbGFuZV9zdGF0ZS0+ZmIgPSBmYjsKKworCXJldCA9 IGRybV9hdG9taWNfYXN5bmNfY29tbWl0KHN0YXRlKTsKKwlpZiAocmV0ICE9IDApCisJCWdvdG8g ZmFpbDsKKworCS8qIFRPRE86IC0+cGFnZV9mbGlwIGlzIHRoZSBvbmx5IGRyaXZlciBjYWxsYmFj ayB3aGVyZSB0aGUgY29yZQorCSAqIGRvZXNuJ3QgdXBkYXRlIHBsYW5lLT5mYi4gRm9yIG5vdyBw YXRjaCBpdCB1cCBoZXJlLiAqLworCXBsYW5lLT5mYiA9IHBsYW5lLT5zdGF0ZS0+ZmI7CisKKwkv KiBEcml2ZXIgdGFrZXMgb3duZXJzaGlwIG9mIHN0YXRlIG9uIHN1Y2Nlc3NmdWwgYXN5bmMgY29t bWl0LiAqLworCXJldHVybiAwOworZmFpbDoKKwlpZiAocmV0ID09IC1FREVBRExLKQorCQlnb3Rv IGJhY2tvZmY7CisKKwlkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOworCisJcmV0dXJuIHJl dDsKK2JhY2tvZmY6CisJZHJtX2F0b21pY19sZWdhY3lfYmFja29mZihzdGF0ZSk7CisJZHJtX2F0 b21pY19zdGF0ZV9jbGVhcihzdGF0ZSk7CisKKwkvKgorCSAqIFNvbWVvbmUgbWlnaHQgaGF2ZSBl eGNoYW5nZWQgdGhlIGZyYW1lYnVmZmVyIHdoaWxlIHdlIGRyb3BwZWQgbG9ja3MKKwkgKiBpbiB0 aGUgYmFja29mZiBjb2RlLiBXZSBuZWVkIHRvIGZpeCB1cCB0aGUgZmIgcmVmY291bnQgdHJhY2tp bmcgdGhlCisJICogY29yZSBkb2VzIGZvciB1cy4KKwkgKi8KKwlwbGFuZS0+b2xkX2ZiID0gcGxh bmUtPmZiOworCisJZ290byByZXRyeTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxw ZXJfcGFnZV9mbGlwKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVy LmggYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCmluZGV4IDhjZDZmZTdhNDhlNS4u MjhhMmYzYTgxNWZkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5o CisrKyBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmgKQEAgLTY5LDUgKzY5LDEwIEBA IGludCBkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCiBpbnQgZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX3NldF9wcm9wZXJ0eShz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkJCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5 ICpwcm9wZXJ0eSwKIAkJCQkJdWludDY0X3QgdmFsKTsKK2ludCBkcm1fYXRvbWljX2hlbHBlcl9w YWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkJCXN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiLAorCQkJCXN0cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmV2ZW50LAorCQkJ CXVpbnQzMl90IGZsYWdzKTsKKwogCiAjZW5kaWYgLyogRFJNX0FUT01JQ19IRUxQRVJfSF8gKi8K LS0gCjIuMS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=