From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH] drm/atomic-helper: implement ->page_flip Date: Tue, 4 Nov 2014 23:09:32 +0100 Message-ID: <1415138972-13178-1-git-send-email-daniel.vetter@ffwll.ch> References: <1414934370-11924-15-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-wi0-f181.google.com (mail-wi0-f181.google.com [209.85.212.181]) by gabe.freedesktop.org (Postfix) with ESMTP id CCF866E59F for ; Tue, 4 Nov 2014 14:09:22 -0800 (PST) Received: by mail-wi0-f181.google.com with SMTP id n3so391203wiv.2 for ; Tue, 04 Nov 2014 14:09:22 -0800 (PST) In-Reply-To: <1414934370-11924-15-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 ZXN0ZWQgYnkgU2Vhbi4KCkNjOiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KQ2M6 IFBhdWxvIFphbm9uaSA8cHJ6YW5vbmlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwg VmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljX2hlbHBlci5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaCAgICAgfCAgNSArKwogMiBmaWxlcyBj aGFuZ2VkLCA5NyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwpp bmRleCA3OTBlZGMxOGIyY2IuLjM2Y2NjNDJkNDNkYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf aGVscGVyLmMKQEAgLTE2MzMsMyArMTYzMyw5NSBAQCBiYWNrb2ZmOgogCWdvdG8gcmV0cnk7CiB9 CiBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHkp OworCisvKioKKyAqIGRybV9hdG9taWNfaGVscGVyX3BhZ2VfZmxpcCAtIGV4ZWN1dGUgYSBsZWdh Y3kgcGFnZSBmbGlwCisgKiBAY3J0YzogRFJNIGNydGMKKyAqIEBmYjogRFJNIGZyYW1lYnVmZmVy CisgKiBAZXZlbnQ6IG9wdGlvbmFsIERSTSBldmVudCB0byBzaWduYWwgdXBvbiBjb21wbGV0aW9u CisgKiBAZmxhZ3M6IGZsaXAgZmxhZ3MgZm9yIG5vbi12Ymxhbmsgc3luYydlZCB1cGRhdGVzCisg KgorICogUHJvdmlkZXMgYSBkZWZhdWx0IHBhZ2UgZmxpcCBpbXBsZW1lbnRhdGlvbiB1c2luZyB0 aGUgYXRvbWljIGRyaXZlciBpbnRlcmZhY2UuCisgKgorICogTm90ZSB0aGF0IGZvciBub3cgc28g Y2FsbGVkIGFzeW5jIHBhZ2UgZmxpcHMgKGkuZS4gdXBkYXRlcyB3aGljaCBhcmUgbm90CisgKiBz eW5jaHJvbml6ZWQgdG8gdmJsYW5rKSBhcmUgbm90IHN1cHBvcnRlZCwgc2luY2UgdGhlIGF0b21p YyBpbnRlcmZhY2VzIGhhdmUKKyAqIG5vIHByb3Zpc2lvbnMgZm9yIHRoaXMgeWV0LgorICoKKyAq IFJldHVybnM6CisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJybm8gbnVtYmVy cyBvbiBmYWlsdXJlLgorICovCitpbnQgZHJtX2F0b21pY19oZWxwZXJfcGFnZV9mbGlwKHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKKwkJCQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKKwkJCQlz dHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudCwKKwkJCQl1aW50MzJfdCBmbGFn cykKK3sKKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSA9IGNydGMtPnByaW1hcnk7CisJc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOworCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlOworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKKwlpbnQgcmV0ID0g MDsKKworCWlmIChmbGFncyAmIERSTV9NT0RFX1BBR0VfRkxJUF9BU1lOQykKKwkJcmV0dXJuIC1F SU5WQUw7CisKKwlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxsb2MocGxhbmUtPmRldik7CisJ aWYgKCFzdGF0ZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlzdGF0ZS0+YWNxdWlyZV9jdHggPSBk cm1fbW9kZXNldF9sZWdhY3lfYWNxdWlyZV9jdHgoY3J0Yyk7CityZXRyeToKKwljcnRjX3N0YXRl ID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CisJaWYgKElTX0VSUihj cnRjX3N0YXRlKSkgeworCQlyZXQgPSBQVFJfRVJSKGNydGNfc3RhdGUpOworCQlpZiAocmV0ID09 IC1FREVBRExLKQorCQkJZ290byBiYWNrb2ZmOworCQllbHNlCisJCQlnb3RvIGZhaWw7CisJfQor CWNydGNfc3RhdGUtPmV2ZW50ID0gZXZlbnQ7CisKKwlwbGFuZV9zdGF0ZSA9IGRybV9hdG9taWNf Z2V0X3BsYW5lX3N0YXRlKHN0YXRlLCBwbGFuZSk7CisJaWYgKElTX0VSUihwbGFuZV9zdGF0ZSkp IHsKKwkJcmV0ID0gUFRSX0VSUihwbGFuZV9zdGF0ZSk7CisJCWlmIChyZXQgPT0gLUVERUFETEsp CisJCQlnb3RvIGJhY2tvZmY7CisJCWVsc2UKKwkJCWdvdG8gZmFpbDsKKwl9CisKKwlyZXQgPSBk cm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShwbGFuZV9zdGF0ZSwgY3J0Yyk7CisJaWYgKHJl dCA9PSAtRURFQURMSykKKwkJZ290byBiYWNrb2ZmOworCXBsYW5lX3N0YXRlLT5mYiA9IGZiOwor CisJcmV0ID0gZHJtX2F0b21pY19hc3luY19jb21taXQoc3RhdGUpOworCWlmIChyZXQgPT0gLUVE RUFETEspCisJCWdvdG8gYmFja29mZjsKKworCS8qIERyaXZlciB0YWtlcyBvd25lcnNoaXAgb2Yg c3RhdGUgb24gc3VjY2Vzc2Z1bCBhc3luYyBjb21taXQuICovCisJaWYgKHJldCA9PSAwKSB7CisJ CS8qIFRPRE86IC0+cGFnZV9mbGlwIGlzIHRoZSBvbmx5IGRyaXZlciBjYWxsYmFjayB3aGVyZSB0 aGUgY29yZQorCQkgKiBkb2Vzbid0IHVwZGF0ZSBwbGFuZS0+ZmIuIEZvciBub3cgcGF0Y2ggaXQg dXAgaGVyZS4gKi8KKwkJcGxhbmUtPmZiID0gcGxhbmUtPnN0YXRlLT5mYjsKKworCQlyZXR1cm4g MDsKKwl9CisKK2ZhaWw6CisJZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKKworCXJldHVy biByZXQ7CitiYWNrb2ZmOgorCWRybV9hdG9taWNfbGVnYWN5X2JhY2tvZmYoc3RhdGUpOworCWRy bV9hdG9taWNfc3RhdGVfY2xlYXIoc3RhdGUpOworCisJLyoKKwkgKiBTb21lb25lIG1pZ2h0IGhh dmUgZXhjaGFuZ2VkIHRoZSBmcmFtZWJ1ZmZlciB3aGlsZSB3ZSBkcm9wcGVkIGxvY2tzCisJICog aW4gdGhlIGJhY2tvZmYgY29kZS4gV2UgbmVlZCB0byBmaXggdXAgdGhlIGZiIHJlZmNvdW50IHRy YWNraW5nIHRoZQorCSAqIGNvcmUgZG9lcyBmb3IgdXMuCisJICovCisJcGxhbmUtPm9sZF9mYiA9 IHBsYW5lLT5mYjsKKworCWdvdG8gcmV0cnk7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNf aGVscGVyX3BhZ2VfZmxpcCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hl bHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAppbmRleCA4Y2Q2ZmU3YTQ4 ZTUuLjI4YTJmM2E4MTVmZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxw ZXIuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCkBAIC02OSw1ICs2OSwx MCBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAogaW50IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9zZXRfcHJvcGVy dHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJCQkJc3RydWN0IGRybV9wcm9w ZXJ0eSAqcHJvcGVydHksCiAJCQkJCXVpbnQ2NF90IHZhbCk7CitpbnQgZHJtX2F0b21pY19oZWxw ZXJfcGFnZV9mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJCQlzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiwKKwkJCQlzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudCwK KwkJCQl1aW50MzJfdCBmbGFncyk7CisKIAogI2VuZGlmIC8qIERSTV9BVE9NSUNfSEVMUEVSX0hf ICovCi0tIAoyLjEuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwK