From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [RFC v4 11/25] drm/connector: Add connector array functions Date: Thu, 12 Apr 2018 15:17:13 +0200 Message-ID: <20180412131727.8914-12-noralf@tronnes.org> References: <20180412131727.8914-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180412131727.8914-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 QWRkIGZ1bmN0aW9ucyB0byBkZWFsIHdpdGggdGhlIHJlZ2lzdHJlZCBjb25uZWN0b3JzIGFzIGFu IGFycmF5OgotIGRybV9jb25uZWN0b3JfZ2V0X2FsbCgpCi0gZHJtX2Nvbm5lY3Rvcl9wdXRfYWxs KCkKCkFuZCB0byBnZXQgdGhlIGVuYWJsZWQgc3RhdHVzIG9mIHRob3NlIGNvbm5lY3RvcnM6CmRy bV9jb25uZWN0b3JfZ2V0X2VuYWJsZWRfc3RhdHVzKCkKClRoaXMgaXMgcHJlcCB3b3JrIHRvIHJl bW92ZSBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9jb25uZWN0b3IuCgpTaWduZWQtb2ZmLWJ5OiBOb3Jh bGYgVHLDuG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJt X2Nvbm5lY3Rvci5jIHwgMTA1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKIGluY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCAgICAgfCAgIDUgKysKIDIgZmlsZXMgY2hh bmdlZCwgMTEwIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwppbmRleCBiOWVi MTQzZDcwZmMuLjI1YzMzM2MwNWE0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9j b25uZWN0b3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCkBAIC0xODU0 LDMgKzE4NTQsMTA4IEBAIGRybV9jb25uZWN0b3JfcGlja19jbWRsaW5lX21vZGUoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAlyZXR1cm4gbW9kZTsKIH0KIEVYUE9SVF9TWU1CT0wo ZHJtX2Nvbm5lY3Rvcl9waWNrX2NtZGxpbmVfbW9kZSk7CisKKy8qKgorICogZHJtX2Nvbm5lY3Rv cl9nZXRfYWxsIC0gR2V0IGFsbCBjb25uZWN0b3JzIGludG8gYW4gYXJyYXkKKyAqIEBkZXY6IERS TSBkZXZpY2UKKyAqIEBjb25uZWN0b3JzOiBSZXR1cm5lZCBjb25uZWN0b3IgYXJyYXkKKyAqCisg KiBUaGlzIGZ1bmN0aW9uIGl0ZXJhdGVzIHRocm91Z2ggYWxsIHJlZ2lzdGVyZWQgY29ubmVjdG9y cyBhbmQgYWRkcyB0aGVtIHRvIGFuCisgKiBhcnJheSBhbGxvY2F0ZWQgYnkgdGhpcyBmdW5jdGlv bi4gQSByZWYgaXMgdGFrZW4gb24gdGhlIGNvbm5lY3RvcnMuCisgKgorICogVXNlIGRybV9jb25u ZWN0b3JfcHV0X2FsbCgpIHRvIGRyb3AgcmVmcyBhbmQgZnJlZSB0aGUgYXJyYXkuCisgKgorICog UmV0dXJuczoKKyAqIE51bWJlciBvZiBjb25uZWN0b3JzIG9yIC1FTk9NRU0gb24gZmFpbHVyZS4K KyAqLworaW50IGRybV9jb25uZWN0b3JfZ2V0X2FsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqKipjb25uZWN0b3JzKQoreworCXN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IsICoqdGVtcCwgKipjb25ucyA9IE5VTEw7CisJc3RydWN0IGRybV9jb25u ZWN0b3JfbGlzdF9pdGVyIGNvbm5faXRlcjsKKwlpbnQgY29ubmVjdG9yX2NvdW50ID0gMDsKKwor CWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJmNvbm5faXRlcik7CisJZHJtX2Zv cl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJmNvbm5faXRlcikgeworCQl0ZW1wID0g a3JlYWxsb2MoY29ubnMsIChjb25uZWN0b3JfY291bnQgKyAxKSAqIHNpemVvZigqY29ubnMpLCBH RlBfS0VSTkVMKTsKKwkJaWYgKCF0ZW1wKQorCQkJZ290byBlcnJfcHV0X2ZyZWU7CisKKwkJY29u bnMgPSB0ZW1wOworCQljb25uc1tjb25uZWN0b3JfY291bnQrK10gPSBjb25uZWN0b3I7CisJCWRy bV9jb25uZWN0b3JfZ2V0KGNvbm5lY3Rvcik7CisJfQorCWRybV9jb25uZWN0b3JfbGlzdF9pdGVy X2VuZCgmY29ubl9pdGVyKTsKKworCSpjb25uZWN0b3JzID0gY29ubnM7CisKKwlyZXR1cm4gY29u bmVjdG9yX2NvdW50OworCitlcnJfcHV0X2ZyZWU6CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJf ZW5kKCZjb25uX2l0ZXIpOworCWRybV9jb25uZWN0b3JfcHV0X2FsbChjb25ucywgY29ubmVjdG9y X2NvdW50KTsKKworCXJldHVybiAtRU5PTUVNOworfQorRVhQT1JUX1NZTUJPTChkcm1fY29ubmVj dG9yX2dldF9hbGwpOworCisvKioKKyAqIGRybV9jb25uZWN0b3JfcHV0X2FsbCAtIFB1dCBhbmQg ZnJlZSBjb25uZWN0b3IgYXJyYXkKKyAqIEBjb25uZWN0b3JzOiBBcnJheSBvZiBjb25uZWN0b3Jz CisgKiBAY29ubmVjdG9yX2NvdW50OiBOdW1iZXIgb2YgY29ubmVjdG9ycyBpbiB0aGUgYXJyYXkg KGNhbiBiZSBuZWdhdGl2ZSBvciB6ZXJvKQorICoKKyAqIFRoaXMgZnVuY3Rpb24gZHJvcHMgdGhl IHJlZiBvbiB0aGUgY29ubmVjdG9ycyBhbiBmcmVlcyB0aGUgYXJyYXkuCisgKi8KK3ZvaWQgZHJt X2Nvbm5lY3Rvcl9wdXRfYWxsKHN0cnVjdCBkcm1fY29ubmVjdG9yICoqY29ubmVjdG9ycywgaW50 IGNvbm5lY3Rvcl9jb3VudCkKK3sKKwlpbnQgaTsKKworCWlmIChjb25uZWN0b3JfY291bnQgPCAx KQorCQlyZXR1cm47CisKKwlmb3IgKGkgPSAwOyBpIDwgY29ubmVjdG9yX2NvdW50OyBpKyspCisJ CWRybV9jb25uZWN0b3JfcHV0KGNvbm5lY3RvcnNbaV0pOworCWtmcmVlKGNvbm5lY3RvcnMpOwor fQorRVhQT1JUX1NZTUJPTChkcm1fY29ubmVjdG9yX3B1dF9hbGwpOworCisvKioKKyAqIGRybV9j b25uZWN0b3JfZ2V0X2VuYWJsZWRfc3RhdHVzIC0gR2V0IGVuYWJsZWQgc3RhdHVzIG9uIGNvbm5l Y3RvcnMKKyAqIEBjb25uZWN0b3JzOiBBcnJheSBvZiBjb25uZWN0b3JzCisgKiBAY29ubmVjdG9y X2NvdW50OiBOdW1iZXIgb2YgY29ubmVjdG9ycyBpbiB0aGUgYXJyYXkKKyAqCisgKiBUaGlzIGxv b3BzIG92ZXIgdGhlIGNvbm5lY3RvciBhcnJheSBhbmQgc2V0cyBlbmFibGVkIGlmIGNvbm5lY3Rv ciBzdGF0dXMgaXMKKyAqIF9jb25uZWN0ZWRfLiBJZiBubyBjb25uZWN0b3JzIGFyZSBjb25uZWN0 ZWQsIGEgbmV3IHBhc3MgaXMgZG9uZSBhbmQKKyAqIGNvbm5lY3RvcnMgdGhhdCBhcmUgbm90IF9k aXNjb25uZWN0ZWRfIGFyZSBzZXQgZW5hYmxlZC4KKyAqCisgKiBUaGUgY2FsbGVyIGlzIHJlc3Bv bnNpYmxlIGZvciBmcmVlaW5nIHRoZSBhcnJheSB1c2luZyBrZnJlZSgpLgorICoKKyAqIFJldHVy bnM6CisgKiBBIGJvb2xlYW4gYXJyYXkgb2YgY29ubmVjdG9yIGVuYWJsZWQgc3RhdHVzZXMgb3Ig TlVMTCBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuCisgKi8KK2Jvb2wgKmRybV9jb25uZWN0b3JfZ2V0 X2VuYWJsZWRfc3RhdHVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICoqY29ubmVjdG9ycywKKwkJCQkg ICAgICAgdW5zaWduZWQgaW50IGNvbm5lY3Rvcl9jb3VudCkKK3sKKwlib29sICplbmFibGVkLCBh bnlfZW5hYmxlZCA9IGZhbHNlOworCXVuc2lnbmVkIGludCBpOworCisJZW5hYmxlZCA9IGtjYWxs b2MoY29ubmVjdG9yX2NvdW50LCBzaXplb2YoKmVuYWJsZWQpLCBHRlBfS0VSTkVMKTsKKwlpZiAo IWVuYWJsZWQpCisJCXJldHVybiBOVUxMOworCisJZm9yIChpID0gMDsgaSA8IGNvbm5lY3Rvcl9j b3VudDsgaSsrKSB7CisJCWlmIChjb25uZWN0b3JzW2ldLT5zdGF0dXMgPT0gY29ubmVjdG9yX3N0 YXR1c19jb25uZWN0ZWQpIHsKKwkJCWVuYWJsZWRbaV0gPSB0cnVlOworCQkJYW55X2VuYWJsZWQg PSB0cnVlOworCQl9CisJfQorCisJaWYgKGFueV9lbmFibGVkKQorCQlyZXR1cm4gZW5hYmxlZDsK KworCWZvciAoaSA9IDA7IGkgPCBjb25uZWN0b3JfY291bnQ7IGkrKykKKwkJaWYgKGNvbm5lY3Rv cnNbaV0tPnN0YXR1cyAhPSBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZCkKKwkJCWVuYWJs ZWRbaV0gPSB0cnVlOworCisJcmV0dXJuIGVuYWJsZWQ7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9j b25uZWN0b3JfZ2V0X2VuYWJsZWRfc3RhdHVzKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2Ry bV9jb25uZWN0b3IuaCBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAppbmRleCA5Y2I0Y2E0 MjM3M2MuLmMzNTU2YTVmNDBjOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rv ci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaApAQCAtMTE2OSw0ICsxMTY5LDkg QEAgZHJtX2Nvbm5lY3Rvcl9oYXNfcHJlZmVycmVkX21vZGUoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwKIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICoKIGRybV9jb25uZWN0b3JfcGlj a19jbWRsaW5lX21vZGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7CiAKK2ludCBk cm1fY29ubmVjdG9yX2dldF9hbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9j b25uZWN0b3IgKioqY29ubmVjdG9ycyk7Cit2b2lkIGRybV9jb25uZWN0b3JfcHV0X2FsbChzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqKmNvbm5lY3RvcnMsIGludCBjb25uZWN0b3JfY291bnQpOworYm9v bCAqZHJtX2Nvbm5lY3Rvcl9nZXRfZW5hYmxlZF9zdGF0dXMoc3RydWN0IGRybV9jb25uZWN0b3Ig Kipjb25uZWN0b3JzLAorCQkJCSAgICAgICB1bnNpZ25lZCBpbnQgY29ubmVjdG9yX2NvdW50KTsK KwogI2VuZGlmCi0tIAoyLjE1LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=