From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [RFC v4 21/25] drm/fb-helper: Add drm_fb_helper_fb_open/release() Date: Thu, 12 Apr 2018 18:12:33 +0200 Message-ID: <20180412161237.9314-10-noralf@tronnes.org> References: <20180412161237.9314-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180412161237.9314-1-noralf@tronnes.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= , laurent.pinchart@ideasonboard.com, mstaudt@suse.de, dh.herrmann@gmail.com List-Id: dri-devel@lists.freedesktop.org VGhlc2UgaGVscGVycyBrZWVwIHRyYWNrIG9mIGZiZGV2IHVzZXJzIGFuZCBkcm1fZHJpdmVyLmxh c3RfY2xvc2Ugd2lsbApvbmx5IHJlc3RvcmUgZmJkZXYgd2hlbiBhY3R1YWxseSBpbiB1c2UuIEFk ZGl0aW9uYWxseSB0aGUgZGlzcGxheSBpcwp0dXJuZWQgb2ZmIHdoZW4gdGhlIGxhc3QgdXNlciBp cyBjbG9zaW5nLiBmYmNvbiBpcyBhIHVzZXIgaW4gdGhpcyBjb250ZXh0LgoKSWYgc3RydWN0IGZi X29wcyBpcyBkZWZpbmVkIGluIGEgbGlicmFyeSwgZmJfb3BlbigpIHRha2VzIGEgcmVmIG9uIHRo ZQpsaWJyYXJ5IChmYl9vcHMub3duZXIpIGluc3RlYWQgb2YgdGhlIGRyaXZlciBtb2R1bGUuIEZp eCB0aGF0IGJ5IGVuc3VyaW5nCnRoYXQgdGhlIGRyaXZlciBtb2R1bGUgaXMgcGlubmVkLgoKVGhl IGZ1bmN0aW9ucyBhcmUgbm90IGFkZGVkIHRvIHRoZSBEUk1fRkJfSEVMUEVSX0RFRkFVTFRfT1BT KCkgbWFjcm8sCmJlY2F1c2Ugc29tZSBvZiBpdHMgdXNlcnMgZG8gc2V0IGZiX29wZW4vcmVsZWFz ZSB0aGVtc2VsdmVzLgoKU2lnbmVkLW9mZi1ieTogTm9yYWxmIFRyw7hubmVzIDxub3JhbGZAdHJv bm5lcy5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyB8IDU0ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBpbmNsdWRlL2RybS9kcm1fZmJf aGVscGVyLmggICAgIHwgMjkgKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2Vk LCA4MiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9mYl9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMK aW5kZXggOThlNWJjOTJjOWYyLi5iMTEyNGMwOGIxZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZmJfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIu YwpAQCAtMTc3LDcgKzE3Nyw3IEBAIGludCBkcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJkZXZfbW9k ZV91bmxvY2tlZChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKQogCWlmICghZHJtX2Zi ZGV2X2VtdWxhdGlvbiB8fCAhZmJfaGVscGVyKQogCQlyZXR1cm4gLUVOT0RFVjsKIAotCWlmIChS RUFEX09OQ0UoZmJfaGVscGVyLT5kZWZlcnJlZF9zZXR1cCkpCisJaWYgKFJFQURfT05DRShmYl9o ZWxwZXItPmRlZmVycmVkX3NldHVwKSB8fCAhUkVBRF9PTkNFKGZiX2hlbHBlci0+b3Blbl9jb3Vu dCkpCiAJCXJldHVybiAwOwogCiAJbXV0ZXhfbG9jaygmZmJfaGVscGVyLT5sb2NrKTsKQEAgLTM2 OCw2ICszNjgsNyBAQCB2b2lkIGRybV9mYl9oZWxwZXJfcHJlcGFyZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAogCUlOSVRfV09SSygmaGVscGVy LT5kaXJ0eV93b3JrLCBkcm1fZmJfaGVscGVyX2RpcnR5X3dvcmspOwogCWhlbHBlci0+ZGlydHlf Y2xpcC54MSA9IGhlbHBlci0+ZGlydHlfY2xpcC55MSA9IH4wOwogCW11dGV4X2luaXQoJmhlbHBl ci0+bG9jayk7CisJaGVscGVyLT5vcGVuX2NvdW50ID0gMTsKIAloZWxwZXItPmZ1bmNzID0gZnVu Y3M7CiAJaGVscGVyLT5kZXYgPSBkZXY7CiB9CkBAIC02MjAsNiArNjIxLDUzIEBAIGludCBkcm1f ZmJfaGVscGVyX2RlZmlvX2luaXQoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcikKIH0K IEVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9kZWZpb19pbml0KTsKIAorLyoqCisgKiBkcm1f ZmJfaGVscGVyX2ZiX29wZW4gLSBpbXBsZW1lbnRhdGlvbiBmb3IgJmZiX29wcy5mYl9vcGVuCisg KiBAaW5mbzogZmJkZXYgcmVnaXN0ZXJlZCBieSB0aGUgaGVscGVyCisgKiBAdXNlcjogMT11c2Vy c3BhY2UsIDA9ZmJjb24KKyAqCisgKiBJbmNyZWFzZSBmYmRldiB1c2UgY291bnQuCisgKiBJZiAm ZmJfb3BzIGlzIHdyYXBwZWQgaW4gYSBsaWJyYXJ5LCBwaW4gdGhlIGRyaXZlciBtb2R1bGUuCisg Ki8KK2ludCBkcm1fZmJfaGVscGVyX2ZiX29wZW4oc3RydWN0IGZiX2luZm8gKmluZm8sIGludCB1 c2VyKQoreworCXN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLT5wYXI7CisJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGZiX2hlbHBlci0+ZGV2OworCisJaWYgKGluZm8tPmZi b3BzLT5vd25lciAhPSBkZXYtPmRyaXZlci0+Zm9wcy0+b3duZXIpIHsKKwkJaWYgKCF0cnlfbW9k dWxlX2dldChkZXYtPmRyaXZlci0+Zm9wcy0+b3duZXIpKQorCQkJcmV0dXJuIC1FTk9ERVY7CisJ fQorCisJZmJfaGVscGVyLT5vcGVuX2NvdW50Kys7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9T WU1CT0woZHJtX2ZiX2hlbHBlcl9mYl9vcGVuKTsKKworLyoqCisgKiBkcm1fZmJfaGVscGVyX2Zi X3JlbGVhc2UgLSBpbXBsZW1lbnRhdGlvbiBmb3IgJmZiX29wcy5mYl9yZWxlYXNlCisgKiBAaW5m bzogZmJkZXYgcmVnaXN0ZXJlZCBieSB0aGUgaGVscGVyCisgKiBAdXNlcjogMT11c2Vyc3BhY2Us IDA9ZmJjb24KKyAqCisgKiBEZWNyZWFzZSBmYmRldiB1c2UgY291bnQgYW5kIHR1cm4gb2ZmIGlm IHRoZXJlIGFyZSBubyB1c2VycyBsZWZ0LgorICogSWYgJmZiX29wcyBpcyB3cmFwcGVkIGluIGEg bGlicmFyeSwgdW5waW4gdGhlIGRyaXZlciBtb2R1bGUuCisgKi8KK2ludCBkcm1fZmJfaGVscGVy X2ZiX3JlbGVhc2Uoc3RydWN0IGZiX2luZm8gKmluZm8sIGludCB1c2VyKQoreworCXN0cnVjdCBk cm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLT5wYXI7CisJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGZiX2hlbHBlci0+ZGV2OworCisJaWYgKCEoLS1mYl9oZWxwZXItPm9wZW5fY291bnQp KQorCQlkcm1fZmJfaGVscGVyX2RwbXMoaW5mbywgRFJNX01PREVfRFBNU19PRkYpOworCisJaWYg KGluZm8tPmZib3BzLT5vd25lciAhPSBkZXYtPmRyaXZlci0+Zm9wcy0+b3duZXIpCisJCW1vZHVs ZV9wdXQoZGV2LT5kcml2ZXItPmZvcHMtPm93bmVyKTsKKworCXJldHVybiAwOworfQorRVhQT1JU X1NZTUJPTChkcm1fZmJfaGVscGVyX2ZiX3JlbGVhc2UpOworCiAvKioKICAqIGRybV9mYl9oZWxw ZXJfc3lzX3JlYWQgLSB3cmFwcGVyIGFyb3VuZCBmYl9zeXNfcmVhZAogICogQGluZm86IGZiX2lu Zm8gc3RydWN0IHBvaW50ZXIKQEAgLTE0MzYsNiArMTQ4NCwxMCBAQCBzdGF0aWMgaW50IGRybV9m Yl9oZWxwZXJfc2luZ2xlX2ZiX3Byb2JlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIs CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKKwkvKiBCbG9jayByZXN0b3JlIHdpdGhv dXQgdXNlcnMgaWYgd2UgZG8gdHJhY2sgaXQgKi8KKwlpZiAoZmJfaGVscGVyLT5mYmRldi0+ZmJv cHMtPmZiX29wZW4gPT0gZHJtX2ZiX2hlbHBlcl9mYl9vcGVuKQorCQlmYl9oZWxwZXItPm9wZW5f Y291bnQgPSAwOworCiAJc3RyY3B5KGZiX2hlbHBlci0+ZmItPmNvbW0sICJbZmJjb25dIik7CiAJ cmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmggYi9p bmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmgKaW5kZXggNWY2NmYyNTNhOTdiLi4zMzA5ODM5NzVk NWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaAorKysgYi9pbmNsdWRl L2RybS9kcm1fZmJfaGVscGVyLmgKQEAgLTE4NCw2ICsxODQsMjIgQEAgc3RydWN0IGRybV9mYl9o ZWxwZXIgewogCSAqIFNlZSBhbHNvOiBAZGVmZXJyZWRfc2V0dXAKIAkgKi8KIAlpbnQgcHJlZmVy cmVkX2JwcDsKKworCS8qKgorCSAqIEBvcGVuX2NvdW50OgorCSAqCisJICogS2VlcHMgdHJhY2sg b2YgZmJkZXYgdXNlIHRvIGtub3cgd2hlbiB0byBub3QgcmVzdG9yZSBmYmRldiBhbmQgdG8KKwkg KiBkaXNhYmxlIHRoZSBwaXBlbGluZSB3aGVuIHRoZSBsYXN0IHVzZXIgaXMgZ29uZS4KKwkgKgor CSAqIERyaXZlcnMgdGhhdCB1c2UgZHJtX2ZiX2hlbHBlcl9mYl9vcGVuKCkgYXMgdGhlaXIgXC5m Yl9vcGVuCisJICogY2FsbGJhY2sgd2lsbCBnZXQgYW4gaW5pdGlhbCB2YWx1ZSBvZiAwIGFuZCBn ZXQgcmVzdG9yZSBiYXNlZCBvbgorCSAqIGFjdHVhbCB1c2UuIE90aGVycyB3aWxsIGdldCBhbiBp bml0aWFsIHZhbHVlIG9mIDEgd2hpY2ggbWVhbnMgdGhhdAorCSAqIGZiZGV2IHdpbGwgYWx3YXlz IGJlIHJlc3RvcmVkLiBEcml2ZXJzIHRoYXQgY2FsbAorCSAqIGRybV9mYl9oZWxwZXJfZmJfb3Bl bigpIGluIHRoZWlyIFwuZmJfb3BlbiwgdGh1cyBuZWVkcyB0byBzZXQgdGhlCisJICogaW5pdGlh bCB2YWx1ZSB0byAwIHRoZW1zZWx2ZXMgaW4gdGhlaXIgJmRybV9mYl9oZWxwZXJfZnVuY3MtPmZi X3Byb2JlCisJICogY2FsbGJhY2suCisJICovCisJdW5zaWduZWQgaW50IG9wZW5fY291bnQ7CiB9 OwogCiAvKioKQEAgLTIzMCw2ICsyNDYsOSBAQCB2b2lkIGRybV9mYl9oZWxwZXJfZGVmZXJyZWRf aW8oc3RydWN0IGZiX2luZm8gKmluZm8sCiAJCQkgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqcGFn ZWxpc3QpOwogaW50IGRybV9mYl9oZWxwZXJfZGVmaW9faW5pdChzdHJ1Y3QgZHJtX2ZiX2hlbHBl ciAqZmJfaGVscGVyKTsKIAoraW50IGRybV9mYl9oZWxwZXJfZmJfb3BlbihzdHJ1Y3QgZmJfaW5m byAqaW5mbywgaW50IHVzZXIpOworaW50IGRybV9mYl9oZWxwZXJfZmJfcmVsZWFzZShzdHJ1Y3Qg ZmJfaW5mbyAqaW5mbywgaW50IHVzZXIpOworCiBzc2l6ZV90IGRybV9mYl9oZWxwZXJfc3lzX3Jl YWQoc3RydWN0IGZiX2luZm8gKmluZm8sIGNoYXIgX191c2VyICpidWYsCiAJCQkgICAgICAgc2l6 ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpOwogc3NpemVfdCBkcm1fZmJfaGVscGVyX3N5c193cml0 ZShzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKQEAgLTM3Niw2 ICszOTUsMTYgQEAgc3RhdGljIGlubGluZSBpbnQgZHJtX2ZiX2hlbHBlcl9kZWZpb19pbml0KHN0 cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpCiAJcmV0dXJuIC1FTk9ERVY7CiB9CiAKK3N0 YXRpYyBpbmxpbmUgaW50IGRybV9mYl9oZWxwZXJfZmJfb3BlbihzdHJ1Y3QgZmJfaW5mbyAqaW5m bywgaW50IHVzZXIpCit7CisJcmV0dXJuIC1FTk9ERVY7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50 IGRybV9mYl9oZWxwZXJfZmJfcmVsZWFzZShzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgaW50IHVzZXIp Cit7CisJcmV0dXJuIC1FTk9ERVY7Cit9CisKIHN0YXRpYyBpbmxpbmUgc3NpemVfdCBkcm1fZmJf aGVscGVyX3N5c19yZWFkKHN0cnVjdCBmYl9pbmZvICppbmZvLAogCQkJCQkgICAgIGNoYXIgX191 c2VyICpidWYsIHNpemVfdCBjb3VudCwKIAkJCQkJICAgICBsb2ZmX3QgKnBwb3MpCi0tIAoyLjE1 LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=