From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brian Starkey Subject: [RFC PATCH 04/11] drm: Add __drm_framebuffer_remove_atomic Date: Tue, 11 Oct 2016 15:54:01 +0100 Message-ID: <1476197648-24918-5-git-send-email-brian.starkey@arm.com> References: <1476197648-24918-1-git-send-email-brian.starkey@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by gabe.freedesktop.org (Postfix) with ESMTP id 4CD886E6AD for ; Tue, 11 Oct 2016 14:54:22 +0000 (UTC) In-Reply-To: <1476197648-24918-1-git-send-email-brian.starkey@arm.com> 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: liviu.dudau@arm.com, linux-kernel@vger.kernel.org, hverkuil@xs4all.nl, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org SW1wbGVtZW50IHRoZSBDUlRDL1BsYW5lIGRpc2FibGUgZnVuY3Rpb25hbGl0eSBvZiBkcm1fZnJh bWVidWZmZXJfcmVtb3ZlCnVzaW5nIHRoZSBhdG9taWMgQVBJLCBhbmQgdXNlIGl0IGlmIHBvc3Np YmxlLgoKRm9yIGF0b21pYyBkcml2ZXJzLCB0aGlzIHJlbW92ZXMgdGhlIHBvc3NpYmlsaXR5IG9m IHNldmVyYWwgY29tbWl0cyB3aGVuCmEgZnJhbWVidWZmZXIgaXMgaW4gdXNlIGJ5IG1vcmUgdGhh biBvbmUgQ1JUQy9wbGFuZS4KCkFkZGl0aW9uYWxseSwgdGhpcyB3aWxsIHByb3ZpZGUgYSBzdWl0 YWJsZSBwbGFjZSB0byBzdXBwb3J0IHRoZSByZW1vdmFsCm9mIGEgZnJhbWVidWZmZXIgZnJvbSBh IHdyaXRlYmFjayBjb25uZWN0b3IsIGluIHRoZSBjYXNlIHRoYXQgYQp3cml0ZWJhY2sgY29ubmVj dG9yIGlzIHN0aWxsIGFjdGl2ZWx5IHVzaW5nIGEgZnJhbWVidWZmZXIgd2hlbiBpdCBpcwpyZW1v dmVkIGJ5IHVzZXJzcGFjZS4KClNpZ25lZC1vZmYtYnk6IEJyaWFuIFN0YXJrZXkgPGJyaWFuLnN0 YXJrZXlAYXJtLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMgfCAg MTU0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2Vk LCAxNTIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVm ZmVyLmMKaW5kZXggNTI4Zjc1ZC4uYjAyY2Y3MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9mcmFtZWJ1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIu YwpAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+CiAjaW5jbHVk ZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2luY2x1ZGUgPGRy bS9kcm1fYXV0aC5oPgogI2luY2x1ZGUgPGRybS9kcm1fZnJhbWVidWZmZXIuaD4KIApAQCAtNzk1 LDYgKzc5NiwxNDggQEAgdm9pZCBkcm1fZnJhbWVidWZmZXJfY2xlYW51cChzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYikKIEVYUE9SVF9TWU1CT0woZHJtX2ZyYW1lYnVmZmVyX2NsZWFudXApOwog CiAvKioKKyAqIF9fZHJtX2ZyYW1lYnVmZmVyX3JlbW92ZV9hdG9taWMgLSBhdG9taWMgdmVyc2lv biBvZiBfX2RybV9mcmFtZWJ1ZmZlcl9yZW1vdmUKKyAqIEBkZXY6IGRybSBkZXZpY2UKKyAqIEBm YjogZnJhbWVidWZmZXIgdG8gcmVtb3ZlCisgKgorICogSWYgdGhlIGRyaXZlciBpbXBsZW1lbnRz IHRoZSBhdG9taWMgQVBJLCB3ZSBjYW4gaGFuZGxlIHRoZSBkaXNhYmxpbmcgb2YgYWxsCisgKiBD UlRDcy9wbGFuZXMgd2hpY2ggdXNlIGEgZnJhbWVidWZmZXIgd2hpY2ggaXMgZ29pbmcgYXdheSBp biBhIHNpbmdsZSBhdG9taWMKKyAqIGNvbW1pdC4KKyAqCisgKiBUaGlzIHNjYW5zIGFsbCBDUlRD cyBhbmQgcGxhbmVzIGluIEBkZXYncyBtb2RlX2NvbmZpZy4gSWYgdGhleSdyZSB1c2luZyBAZmIs CisgKiBpdCBpcyByZW1vdmVkIGFuZCB0aGUgQ1JUQy9wbGFuZSBkaXNhYmxlZC4KKyAqIFRoZSBs ZWdhY3kgcmVmZXJlbmNlcyBhcmUgZHJvcHBlZCBhbmQgdGhlIC0+ZmIgcG9pbnRlcnMgc2V0IHRv IE5VTEwKKyAqIGFjY29yZGluZ2x5LgorICoKKyAqIFJldHVybnM6CisgKiB0cnVlIGlmIHRoZSBm cmFtZWJ1ZmZlciB3YXMgc3VjY2Vzc2Z1bGx5IHJlbW92ZWQgZnJvbSB1c2UKKyAqLworc3RhdGlj IGJvb2wgX19kcm1fZnJhbWVidWZmZXJfcmVtb3ZlX2F0b21pYyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAorCQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKK3sKKwlzdHJ1Y3QgZHJtX21vZGVz ZXRfYWNxdWlyZV9jdHggY3R4OworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKKwlz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yOworCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOworCXN0cnVjdCBkcm1f Y3J0YyAqY3J0YzsKKwl1bnNpZ25lZCBwbGFuZV9tYXNrOworCWludCBpLCByZXQ7CisKKwlkcm1f bW9kZXNldF9hY3F1aXJlX2luaXQoJmN0eCwgMCk7CisKKwlzdGF0ZSA9IGRybV9hdG9taWNfc3Rh dGVfYWxsb2MoZGV2KTsKKwlpZiAoIXN0YXRlKQorCQlyZXR1cm4gZmFsc2U7CisKKwlzdGF0ZS0+ YWNxdWlyZV9jdHggPSAmY3R4OworCityZXRyeToKKwlkcm1fZm9yX2VhY2hfY3J0YyhjcnRjLCBk ZXYpIHsKKwkJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcHJpbWFyeV9zdGF0ZTsKKwkJc3RydWN0 IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworCisJCXByaW1hcnlfc3RhdGUgPSBkcm1fYXRv bWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgY3J0Yy0+cHJpbWFyeSk7CisJCWlmIChJU19FUlIo cHJpbWFyeV9zdGF0ZSkpIHsKKwkJCXJldCA9IFBUUl9FUlIocHJpbWFyeV9zdGF0ZSk7CisJCQln b3RvIGZhaWw7CisJCX0KKworCQlpZiAocHJpbWFyeV9zdGF0ZS0+ZmIgIT0gZmIpCisJCQljb250 aW51ZTsKKworCQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwg Y3J0Yyk7CisJCWlmIChJU19FUlIoY3J0Y19zdGF0ZSkpIHsKKwkJCXJldCA9IFBUUl9FUlIoY3J0 Y19zdGF0ZSk7CisJCQlnb3RvIGZhaWw7CisJCX0KKworCQkvKiBPbmx5IGhhbmRsZSB0aGUgQ1JU QyBpdHNlbGYgaGVyZSwgaGFuZGxlIHRoZSBwbGFuZSBsYXRlciAqLworCQlyZXQgPSBkcm1fYXRv bWljX3NldF9tb2RlX2Zvcl9jcnRjKGNydGNfc3RhdGUsIE5VTEwpOworCQlpZiAocmV0ICE9IDAp CisJCQlnb3RvIGZhaWw7CisKKwkJY3J0Y19zdGF0ZS0+YWN0aXZlID0gZmFsc2U7CisKKwkJLyog R2V0IHRoZSBjb25uZWN0b3JzIGluIG9yZGVyIHRvIGRpc2FibGUgdGhlbSAqLworCQlyZXQgPSBk cm1fYXRvbWljX2FkZF9hZmZlY3RlZF9jb25uZWN0b3JzKHN0YXRlLCBjcnRjKTsKKwkJaWYgKHJl dCkKKwkJCWdvdG8gZmFpbDsKKwl9CisKKwlwbGFuZV9tYXNrID0gMDsKKwlkcm1fZm9yX2VhY2hf cGxhbmUocGxhbmUsIGRldikgeworCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0 ZTsKKworCQlwbGFuZV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0YXRlLCBw bGFuZSk7CisJCWlmIChJU19FUlIocGxhbmVfc3RhdGUpKSB7CisJCQlyZXQgPSBQVFJfRVJSKHBs YW5lX3N0YXRlKTsKKwkJCWdvdG8gZmFpbDsKKwkJfQorCisJCWlmIChwbGFuZV9zdGF0ZS0+ZmIg IT0gZmIpCisJCQljb250aW51ZTsKKworCQlwbGFuZS0+b2xkX2ZiID0gcGxhbmUtPmZiOworCQlw bGFuZV9tYXNrIHw9IDEgPDwgZHJtX3BsYW5lX2luZGV4KHBsYW5lKTsKKworCQkvKgorCQkgKiBP cGVuLWNvZGVkIGNvcHkgb2YgX19kcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lIHRvIGF2 b2lkCisJCSAqIGEgZGVwZW5kZW5jeSBvbiBhdG9taWMtaGVscGVyCisJCSAqLworCQlyZXQgPSBk cm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShwbGFuZV9zdGF0ZSwgTlVMTCk7CisJCWlmIChy ZXQgIT0gMCkKKwkJCWdvdG8gZmFpbDsKKworCQlkcm1fYXRvbWljX3NldF9mYl9mb3JfcGxhbmUo cGxhbmVfc3RhdGUsIE5VTEwpOworCQlwbGFuZV9zdGF0ZS0+Y3J0Y194ID0gMDsKKwkJcGxhbmVf c3RhdGUtPmNydGNfeSA9IDA7CisJCXBsYW5lX3N0YXRlLT5jcnRjX3cgPSAwOworCQlwbGFuZV9z dGF0ZS0+Y3J0Y19oID0gMDsKKwkJcGxhbmVfc3RhdGUtPnNyY194ID0gMDsKKwkJcGxhbmVfc3Rh dGUtPnNyY195ID0gMDsKKwkJcGxhbmVfc3RhdGUtPnNyY193ID0gMDsKKwkJcGxhbmVfc3RhdGUt PnNyY19oID0gMDsKKwl9CisKKwkvKiBBbGwgb2YgdGhlIGNvbm5lY3RvcnMgaW4gc3RhdGUgbmVl ZCBkaXNhYmxpbmcgKi8KKwlmb3JfZWFjaF9jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5l Y3RvciwgY29ubl9zdGF0ZSwgaSkgeworCQlyZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9j b25uZWN0b3IoY29ubl9zdGF0ZSwKKwkJCQkJCQlOVUxMKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8g ZmFpbDsKKwl9CisKKwlpZiAoV0FSTl9PTighcGxhbmVfbWFzaykpIHsKKwkJRFJNX0VSUk9SKCJD b3VsZG4ndCBmaW5kIGFueSB1c2FnZSBvZiBbRkI6JWRdXG4iLCBmYi0+YmFzZS5pZCk7CisJCXJl dCA9IC1FTk9FTlQ7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlyZXQgPSBkcm1fYXRvbWljX2NvbW1p dChzdGF0ZSk7CisKK2ZhaWw6CisJZHJtX2F0b21pY19jbGVhbl9vbGRfZmIoZGV2LCBwbGFuZV9t YXNrLCByZXQpOworCisJaWYgKHJldCA9PSAtRURFQURMSykKKwkJZ290byBiYWNrb2ZmOworCisJ aWYgKHJldCAhPSAwKQorCQlkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOworCisJZHJtX21v ZGVzZXRfZHJvcF9sb2NrcygmY3R4KTsKKwlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7 CisKKwlyZXR1cm4gcmV0ID8gZmFsc2UgOiB0cnVlOworCitiYWNrb2ZmOgorCWRybV9hdG9taWNf c3RhdGVfY2xlYXIoc3RhdGUpOworCWRybV9tb2Rlc2V0X2JhY2tvZmYoJmN0eCk7CisKKwlnb3Rv IHJldHJ5OworfQorCisvKioKICAqIF9fZHJtX2ZyYW1lYnVmZmVyX3JlbW92ZSAtIHJlbW92ZSBh bGwgdXNhZ2Ugb2YgYSBmcmFtZWJ1ZmZlciBvYmplY3QKICAqIEBkZXY6IGRybSBkZXZpY2UKICAq IEBmYjogZnJhbWVidWZmZXIgdG8gcmVtb3ZlCkBAIC04NjksOSArMTAxMiwxNiBAQCB2b2lkIGRy bV9mcmFtZWJ1ZmZlcl9yZW1vdmUoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpCiAJICogaW4t dXNlIGZiIHdpdGggZmItaWQgPT0gMC4gVXNlcnNwYWNlIGlzIGFsbG93ZWQgdG8gc2hvb3QgaXRz IG93biBmb290CiAJICogaW4gdGhpcyBtYW5uZXIuCiAJICovCi0JaWYgKGRybV9mcmFtZWJ1ZmZl cl9yZWFkX3JlZmNvdW50KGZiKSA+IDEpCi0JCWlmICghX19kcm1fZnJhbWVidWZmZXJfcmVtb3Zl KGRldiwgZmIpKQorCWlmIChkcm1fZnJhbWVidWZmZXJfcmVhZF9yZWZjb3VudChmYikgPiAxKSB7 CisJCWJvb2wgcmVtb3ZlZDsKKwkJaWYgKGRldi0+bW9kZV9jb25maWcuZnVuY3MtPmF0b21pY19j b21taXQpCisJCQlyZW1vdmVkID0gX19kcm1fZnJhbWVidWZmZXJfcmVtb3ZlX2F0b21pYyhkZXYs IGZiKTsKKwkJZWxzZQorCQkJcmVtb3ZlZCA9IF9fZHJtX2ZyYW1lYnVmZmVyX3JlbW92ZShkZXYs IGZiKTsKKworCQlpZiAoIXJlbW92ZWQpCiAJCQlEUk1fRVJST1IoImZhaWxlZCB0byByZW1vdmUg ZmIgZnJvbSBhY3RpdmUgdXNhZ2VcbiIpOworCX0KIAogCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVy ZW5jZShmYik7CiB9Ci0tIAoxLjcuOS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK