From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sakari Ailus Subject: [PATCH v3 16/23] v4l: fwnode: Initialise the V4L2 fwnode endpoints to zero Date: Thu, 13 Sep 2018 00:29:35 +0300 Message-ID: <20180912212942.19641-17-sakari.ailus@linux.intel.com> References: <20180912212942.19641-1-sakari.ailus@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180912212942.19641-1-sakari.ailus@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-media@vger.kernel.org Cc: devicetree@vger.kernel.org, jacopo@jmondi.org, dri-devel@lists.freedesktop.org, slongerbeam@gmail.com, niklas.soderlund@ragnatech.se List-Id: devicetree@vger.kernel.org SW5pdGlhbGlzZSB0aGUgVjRMMiBmd25vZGUgZW5kcG9pbnRzIHRvIHplcm8gaW4gYWxsIGRyaXZl cnMgdXNpbmcKdjRsMl9md25vZGVfZW5kcG9pbnRfcGFyc2UoKS4gVGhpcyBwcmVwYXJlcyBmb3Ig c2V0dGluZyBkZWZhdWx0IGVuZHBvaW50CmZsYWdzIGFzIHdlbGwgYXMgdGhlIGJ1cyB0eXBlLiBT ZXR0aW5nIGJ1cyB0eXBlIHRvIHplcm8gd2lsbCBjb250aW51ZSB0bwpndWVzcyB0aGUgYnVzIGFt b25nIHRoZSBndWVzc2FibGUgc2V0IChwYXJhbGxlbCwgQnQuNjU2IGFuZCBDU0ktMiBELVBIWSku CgpTaWduZWQtb2ZmLWJ5OiBTYWthcmkgQWlsdXMgPHNha2FyaS5haWx1c0BsaW51eC5pbnRlbC5j b20+ClRlc3RlZC1ieTogU3RldmUgTG9uZ2VyYmVhbSA8c3RldmVfbG9uZ2VyYmVhbUBtZW50b3Iu Y29tPgotLS0KIGRyaXZlcnMvbWVkaWEvaTJjL2Fkdjc2MDQuYyAgICAgICAgICAgICAgICAgICB8 IDIgKy0KIGRyaXZlcnMvbWVkaWEvaTJjL210OXYwMzIuYyAgICAgICAgICAgICAgICAgICB8IDIg Ky0KIGRyaXZlcnMvbWVkaWEvaTJjL292NTY0Ny5jICAgICAgICAgICAgICAgICAgICB8IDIgKy0K IGRyaXZlcnMvbWVkaWEvaTJjL292NzY3MC5jICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRy aXZlcnMvbWVkaWEvaTJjL3M1YzczbTMvczVjNzNtMy1jb3JlLmMgICAgICB8IDIgKy0KIGRyaXZl cnMvbWVkaWEvaTJjL3M1azViYWYuYyAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMv bWVkaWEvaTJjL3RkYTE5OTd4LmMgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvbWVk aWEvaTJjL3R2cDUxNHguYyAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvbWVkaWEv aTJjL3R2cDUxNTAuYyAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvbWVkaWEvaTJj L3R2cDcwMDIuYyAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvbWVkaWEvcGxhdGZv cm0vYW00Mzd4L2FtNDM3eC12cGZlLmMgICB8IDIgKy0KIGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0v YXRtZWwvYXRtZWwtaXNjLmMgICAgICB8IDMgKystCiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0 bWVsL2F0bWVsLWlzaS5jICAgICAgfCAyICstCiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL2NhZGVu Y2UvY2Rucy1jc2kycnguYyAgfCAyICstCiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL2NhZGVuY2Uv Y2Rucy1jc2kydHguYyAgfCAyICstCiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL2RhdmluY2kvdnBp Zl9jYXB0dXJlLmMgfCAyICstCiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL2V4eW5vczQtaXMvbWVk aWEtZGV2LmMgfCAyICstCiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL2V4eW5vczQtaXMvbWlwaS1j c2lzLmMgfCAyICstCiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3B4YV9jYW1lcmEuYyAgICAgICAg ICAgfCAyICstCiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JjYXItdmluL3JjYXItY3NpMi5jICAg fCAyICstCiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMtY2V1LmMgICAgICAgICAgfCAz ICsrLQogZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zdG0zMi9zdG0zMi1kY21pLmMgICAgIHwgMiAr LQogZHJpdmVycy9zdGFnaW5nL21lZGlhL2lteC9pbXgtbWVkaWEtY3NpLmMgICAgIHwgOCArKysr LS0tLQogaW5jbHVkZS9tZWRpYS92NGwyLWZ3bm9kZS5oICAgICAgICAgICAgICAgICAgIHwgMiAr KwogMjQgZmlsZXMgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9pMmMvYWR2NzYwNC5jIGIvZHJpdmVycy9tZWRpYS9p MmMvYWR2NzYwNC5jCmluZGV4IDY2OGJlMmJjYTU3YS4uNDEzNTc4ZGMyM2EzIDEwMDY0NAotLS0g YS9kcml2ZXJzL21lZGlhL2kyYy9hZHY3NjA0LmMKKysrIGIvZHJpdmVycy9tZWRpYS9pMmMvYWR2 NzYwNC5jCkBAIC0zMDkzLDcgKzMwOTMsNyBAQCBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBhZHY3 Nnh4X29mX2lkKTsKIAogc3RhdGljIGludCBhZHY3Nnh4X3BhcnNlX2R0KHN0cnVjdCBhZHY3Nnh4 X3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgdjRsMl9md25vZGVfZW5kcG9pbnQgYnVzX2NmZzsK KwlzdHJ1Y3QgdjRsMl9md25vZGVfZW5kcG9pbnQgYnVzX2NmZyA9IHsgLmJ1c190eXBlID0gMCB9 OwogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZW5kcG9pbnQ7CiAJc3RydWN0IGRldmljZV9ub2RlICpu cDsKIAl1bnNpZ25lZCBpbnQgZmxhZ3M7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2kyYy9t dDl2MDMyLmMgYi9kcml2ZXJzL21lZGlhL2kyYy9tdDl2MDMyLmMKaW5kZXggZjc0NzMwZDI0ZDhm Li42N2Y2OWFkNmVjZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvaTJjL210OXYwMzIuYwor KysgYi9kcml2ZXJzL21lZGlhL2kyYy9tdDl2MDMyLmMKQEAgLTk4OSw3ICs5ODksNyBAQCBzdGF0 aWMgc3RydWN0IG10OXYwMzJfcGxhdGZvcm1fZGF0YSAqCiBtdDl2MDMyX2dldF9wZGF0YShzdHJ1 Y3QgaTJjX2NsaWVudCAqY2xpZW50KQogewogCXN0cnVjdCBtdDl2MDMyX3BsYXRmb3JtX2RhdGEg KnBkYXRhID0gTlVMTDsKLQlzdHJ1Y3QgdjRsMl9md25vZGVfZW5kcG9pbnQgZW5kcG9pbnQ7CisJ c3RydWN0IHY0bDJfZndub2RlX2VuZHBvaW50IGVuZHBvaW50ID0geyAuYnVzX3R5cGUgPSAwIH07 CiAJc3RydWN0IGRldmljZV9ub2RlICpucDsKIAlzdHJ1Y3QgcHJvcGVydHkgKnByb3A7CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvaTJjL292NTY0Ny5jIGIvZHJpdmVycy9tZWRpYS9pMmMv b3Y1NjQ3LmMKaW5kZXggZGEzOWM0OWRlNTAzLi40NTg5NjMxNzk4YzkgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbWVkaWEvaTJjL292NTY0Ny5jCisrKyBiL2RyaXZlcnMvbWVkaWEvaTJjL292NTY0Ny5j CkBAIC01MzIsNyArNTMyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2NGwyX3N1YmRldl9pbnRl cm5hbF9vcHMgb3Y1NjQ3X3N1YmRldl9pbnRlcm5hbF9vcHMgPSB7CiAKIHN0YXRpYyBpbnQgb3Y1 NjQ3X3BhcnNlX2R0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiB7Ci0Jc3RydWN0IHY0bDJfZndu b2RlX2VuZHBvaW50IGJ1c19jZmc7CisJc3RydWN0IHY0bDJfZndub2RlX2VuZHBvaW50IGJ1c19j ZmcgPSB7IC5idXNfdHlwZSA9IDAgfTsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKmVwOwogCiAJaW50 IHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvaTJjL292NzY3MC5jIGIvZHJpdmVycy9t ZWRpYS9pMmMvb3Y3NjcwLmMKaW5kZXggMzFiZjU3N2IwYmQzLi45MmY1OWFlMWI2MjQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbWVkaWEvaTJjL292NzY3MC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvaTJj L292NzY3MC5jCkBAIC0xNzI4LDcgKzE3MjgsNyBAQCBzdGF0aWMgaW50IG92NzY3MF9wYXJzZV9k dChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQkgICBzdHJ1Y3Qgb3Y3NjcwX2luZm8gKmluZm8pCiB7 CiAJc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSA9IGRldl9md25vZGUoZGV2KTsKLQlzdHJ1 Y3QgdjRsMl9md25vZGVfZW5kcG9pbnQgYnVzX2NmZzsKKwlzdHJ1Y3QgdjRsMl9md25vZGVfZW5k cG9pbnQgYnVzX2NmZyA9IHsgLmJ1c190eXBlID0gMCB9OwogCXN0cnVjdCBmd25vZGVfaGFuZGxl ICplcDsKIAlpbnQgcmV0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2kyYy9zNWM3M20z L3M1YzczbTMtY29yZS5jIGIvZHJpdmVycy9tZWRpYS9pMmMvczVjNzNtMy9zNWM3M20zLWNvcmUu YwppbmRleCA0NzljOTc1M2U4NjMuLjliYjI4ZmFhZDFiMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9t ZWRpYS9pMmMvczVjNzNtMy9zNWM3M20zLWNvcmUuYworKysgYi9kcml2ZXJzL21lZGlhL2kyYy9z NWM3M20zL3M1YzczbTMtY29yZS5jCkBAIC0xNjAzLDcgKzE2MDMsNyBAQCBzdGF0aWMgaW50IHM1 YzczbTNfZ2V0X3BsYXRmb3JtX2RhdGEoc3RydWN0IHM1YzczbTMgKnN0YXRlKQogCWNvbnN0IHN0 cnVjdCBzNWM3M20zX3BsYXRmb3JtX2RhdGEgKnBkYXRhID0gZGV2LT5wbGF0Zm9ybV9kYXRhOwog CXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IGRldi0+b2Zfbm9kZTsKIAlzdHJ1Y3QgZGV2aWNl X25vZGUgKm5vZGVfZXA7Ci0Jc3RydWN0IHY0bDJfZndub2RlX2VuZHBvaW50IGVwOworCXN0cnVj dCB2NGwyX2Z3bm9kZV9lbmRwb2ludCBlcCA9IHsgLmJ1c190eXBlID0gMCB9OwogCWludCByZXQ7 CiAKIAlpZiAoIW5vZGUpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvaTJjL3M1azViYWYu YyBiL2RyaXZlcnMvbWVkaWEvaTJjL3M1azViYWYuYwppbmRleCA0YzQxYTc3MGIxMzIuLjcyN2Ri N2MwNjcwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9pMmMvczVrNWJhZi5jCisrKyBiL2Ry aXZlcnMvbWVkaWEvaTJjL3M1azViYWYuYwpAQCAtMTg0MSw3ICsxODQxLDcgQEAgc3RhdGljIGlu dCBzNWs1YmFmX3BhcnNlX2RldmljZV9ub2RlKHN0cnVjdCBzNWs1YmFmICpzdGF0ZSwgc3RydWN0 IGRldmljZSAqZGV2KQogewogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IGRldi0+b2Zfbm9k ZTsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGVfZXA7Ci0Jc3RydWN0IHY0bDJfZndub2RlX2Vu ZHBvaW50IGVwOworCXN0cnVjdCB2NGwyX2Z3bm9kZV9lbmRwb2ludCBlcCA9IHsgLmJ1c190eXBl ID0gMCB9OwogCWludCByZXQ7CiAKIAlpZiAoIW5vZGUpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bWVkaWEvaTJjL3RkYTE5OTd4LmMgYi9kcml2ZXJzL21lZGlhL2kyYy90ZGExOTk3eC5jCmluZGV4 IGQxMTRhYzUyNDNlYy4uYzRjMmE2MTM0ZTFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2ky Yy90ZGExOTk3eC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvaTJjL3RkYTE5OTd4LmMKQEAgLTIyNjUs NyArMjI2NSw3IEBAIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHRkYTE5OTd4X29mX2lkKTsKIHN0 YXRpYyBpbnQgdGRhMTk5N3hfcGFyc2VfZHQoc3RydWN0IHRkYTE5OTd4X3N0YXRlICpzdGF0ZSkK IHsKIAlzdHJ1Y3QgdGRhMTk5N3hfcGxhdGZvcm1fZGF0YSAqcGRhdGEgPSAmc3RhdGUtPnBkYXRh OwotCXN0cnVjdCB2NGwyX2Z3bm9kZV9lbmRwb2ludCBidXNfY2ZnOworCXN0cnVjdCB2NGwyX2Z3 bm9kZV9lbmRwb2ludCBidXNfY2ZnID0geyAuYnVzX3R5cGUgPSAwIH07CiAJc3RydWN0IGRldmlj ZV9ub2RlICplcDsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wOwogCXVuc2lnbmVkIGludCBmbGFn czsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvaTJjL3R2cDUxNHguYyBiL2RyaXZlcnMvbWVk aWEvaTJjL3R2cDUxNHguYwppbmRleCA2NzViOWFlMjEyYWIuLjFjYzgzY2I5MzRlMiAxMDA2NDQK LS0tIGEvZHJpdmVycy9tZWRpYS9pMmMvdHZwNTE0eC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvaTJj L3R2cDUxNHguYwpAQCAtOTg5LDcgKzk4OSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdHZwNTE0eF9wbGF0 Zm9ybV9kYXRhICoKIHR2cDUxNHhfZ2V0X3BkYXRhKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQp CiB7CiAJc3RydWN0IHR2cDUxNHhfcGxhdGZvcm1fZGF0YSAqcGRhdGEgPSBOVUxMOwotCXN0cnVj dCB2NGwyX2Z3bm9kZV9lbmRwb2ludCBidXNfY2ZnOworCXN0cnVjdCB2NGwyX2Z3bm9kZV9lbmRw b2ludCBidXNfY2ZnID0geyAuYnVzX3R5cGUgPSAwIH07CiAJc3RydWN0IGRldmljZV9ub2RlICpl bmRwb2ludDsKIAl1bnNpZ25lZCBpbnQgZmxhZ3M7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVk aWEvaTJjL3R2cDUxNTAuYyBiL2RyaXZlcnMvbWVkaWEvaTJjL3R2cDUxNTAuYwppbmRleCA3NmU2 YmVkNWExZGEuLmEzMDVjMzAyMmM5ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9pMmMvdHZw NTE1MC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvaTJjL3R2cDUxNTAuYwpAQCAtMTM2Miw3ICsxMzYy LDcgQEAgc3RhdGljIGludCB0dnA1MTUwX2luaXQoc3RydWN0IGkyY19jbGllbnQgKmMpCiAKIHN0 YXRpYyBpbnQgdHZwNTE1MF9wYXJzZV9kdChzdHJ1Y3QgdHZwNTE1MCAqZGVjb2Rlciwgc3RydWN0 IGRldmljZV9ub2RlICpucCkKIHsKLQlzdHJ1Y3QgdjRsMl9md25vZGVfZW5kcG9pbnQgYnVzX2Nm ZzsKKwlzdHJ1Y3QgdjRsMl9md25vZGVfZW5kcG9pbnQgYnVzX2NmZyA9IHsgLmJ1c190eXBlID0g MCB9OwogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZXA7CiAjaWZkZWYgQ09ORklHX01FRElBX0NPTlRS T0xMRVIKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKmNvbm5lY3RvcnMsICpjaGlsZDsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbWVkaWEvaTJjL3R2cDcwMDIuYyBiL2RyaXZlcnMvbWVkaWEvaTJjL3R2cDcw MDIuYwppbmRleCA0ZjVjNjI3NTc5YzcuLmNhYjJmMmJkMGFhOSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9tZWRpYS9pMmMvdHZwNzAwMi5jCisrKyBiL2RyaXZlcnMvbWVkaWEvaTJjL3R2cDcwMDIuYwpA QCAtODg5LDcgKzg4OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdjRsMl9zdWJkZXZfb3BzIHR2 cDcwMDJfb3BzID0gewogc3RhdGljIHN0cnVjdCB0dnA3MDAyX2NvbmZpZyAqCiB0dnA3MDAyX2dl dF9wZGF0YShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQogewotCXN0cnVjdCB2NGwyX2Z3bm9k ZV9lbmRwb2ludCBidXNfY2ZnOworCXN0cnVjdCB2NGwyX2Z3bm9kZV9lbmRwb2ludCBidXNfY2Zn ID0geyAuYnVzX3R5cGUgPSAwIH07CiAJc3RydWN0IHR2cDcwMDJfY29uZmlnICpwZGF0YSA9IE5V TEw7CiAJc3RydWN0IGRldmljZV9ub2RlICplbmRwb2ludDsKIAl1bnNpZ25lZCBpbnQgZmxhZ3M7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtNDM3eC9hbTQzN3gtdnBmZS5j IGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbTQzN3gvYW00Mzd4LXZwZmUuYwppbmRleCAwYjFh MDNiNjRiMTkuLmUxM2QyYjNhNzE2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9y bS9hbTQzN3gvYW00Mzd4LXZwZmUuYworKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtNDM3 eC9hbTQzN3gtdnBmZS5jCkBAIC0yNDI2LDcgKzI0MjYsNiBAQCBzdGF0aWMgc3RydWN0IHZwZmVf Y29uZmlnICoKIHZwZmVfZ2V0X3BkYXRhKHN0cnVjdCB2cGZlX2RldmljZSAqdnBmZSkKIHsKIAlz dHJ1Y3QgZGV2aWNlX25vZGUgKmVuZHBvaW50ID0gTlVMTDsKLQlzdHJ1Y3QgdjRsMl9md25vZGVf ZW5kcG9pbnQgYnVzX2NmZzsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSB2cGZlLT5wZGV2OwogCXN0 cnVjdCB2cGZlX3N1YmRldl9pbmZvICpzZGluZm87CiAJc3RydWN0IHZwZmVfY29uZmlnICpwZGF0 YTsKQEAgLTI0NDYsNiArMjQ0NSw3IEBAIHZwZmVfZ2V0X3BkYXRhKHN0cnVjdCB2cGZlX2Rldmlj ZSAqdnBmZSkKIAkJcmV0dXJuIE5VTEw7CiAKIAlmb3IgKGkgPSAwOyA7IGkrKykgeworCQlzdHJ1 Y3QgdjRsMl9md25vZGVfZW5kcG9pbnQgYnVzX2NmZyA9IHsgLmJ1c190eXBlID0gMCB9OwogCQlz dHJ1Y3QgZGV2aWNlX25vZGUgKnJlbTsKIAogCQllbmRwb2ludCA9IG9mX2dyYXBoX2dldF9uZXh0 X2VuZHBvaW50KGRldi0+b2Zfbm9kZSwgZW5kcG9pbnQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2MuYyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v YXRtZWwvYXRtZWwtaXNjLmMKaW5kZXggMzM0ZGUwZjJlMzZhLi41MDE3ODk2OGI4YTYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtaXNjLmMKKysrIGIvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2MuYwpAQCAtMjAyOCw3ICsyMDI4LDYg QEAgc3RhdGljIGludCBpc2NfcGFyc2VfZHQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgaXNj X2RldmljZSAqaXNjKQogewogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBkZXYtPm9mX25vZGU7 CiAJc3RydWN0IGRldmljZV9ub2RlICplcG4gPSBOVUxMLCAqcmVtOwotCXN0cnVjdCB2NGwyX2Z3 bm9kZV9lbmRwb2ludCB2NGwyX2VwbjsKIAlzdHJ1Y3QgaXNjX3N1YmRldl9lbnRpdHkgKnN1YmRl dl9lbnRpdHk7CiAJdW5zaWduZWQgaW50IGZsYWdzOwogCWludCByZXQ7CkBAIC0yMDM2LDYgKzIw MzUsOCBAQCBzdGF0aWMgaW50IGlzY19wYXJzZV9kdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVj dCBpc2NfZGV2aWNlICppc2MpCiAJSU5JVF9MSVNUX0hFQUQoJmlzYy0+c3ViZGV2X2VudGl0aWVz KTsKIAogCXdoaWxlICgxKSB7CisJCXN0cnVjdCB2NGwyX2Z3bm9kZV9lbmRwb2ludCB2NGwyX2Vw biA9IHsgLmJ1c190eXBlID0gMCB9OworCiAJCWVwbiA9IG9mX2dyYXBoX2dldF9uZXh0X2VuZHBv aW50KG5wLCBlcG4pOwogCQlpZiAoIWVwbikKIAkJCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2kuYyBiL2RyaXZlcnMvbWVkaWEvcGxh dGZvcm0vYXRtZWwvYXRtZWwtaXNpLmMKaW5kZXggYzRkNWYwNTc4NmU4Li5mZGIyNTVlNGE5NTYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtaXNpLmMKKysr IGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2kuYwpAQCAtNzkwLDcgKzc5 MCw3IEBAIHN0YXRpYyBpbnQgYXRtZWxfaXNpX3BhcnNlX2R0KHN0cnVjdCBhdG1lbF9pc2kgKmlz aSwKIAkJCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7CiAJc3RydWN0IGRldmljZV9u b2RlICpucCA9IHBkZXYtPmRldi5vZl9ub2RlOwotCXN0cnVjdCB2NGwyX2Z3bm9kZV9lbmRwb2lu dCBlcDsKKwlzdHJ1Y3QgdjRsMl9md25vZGVfZW5kcG9pbnQgZXAgPSB7IC5idXNfdHlwZSA9IDAg fTsKIAlpbnQgZXJyOwogCiAJLyogRGVmYXVsdCBzZXR0aW5ncyBmb3IgSVNJICovCmRpZmYgLS1n aXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2NhZGVuY2UvY2Rucy1jc2kycnguYyBiL2RyaXZl cnMvbWVkaWEvcGxhdGZvcm0vY2FkZW5jZS9jZG5zLWNzaTJyeC5jCmluZGV4IDA3NzZhMzRmMjhl ZS4uMzFhY2UxMTRlZGExIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2NhZGVu Y2UvY2Rucy1jc2kycnguYworKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2NhZGVuY2UvY2Ru cy1jc2kycnguYwpAQCAtMzYxLDcgKzM2MSw3IEBAIHN0YXRpYyBpbnQgY3NpMnJ4X2dldF9yZXNv dXJjZXMoc3RydWN0IGNzaTJyeF9wcml2ICpjc2kycngsCiAKIHN0YXRpYyBpbnQgY3NpMnJ4X3Bh cnNlX2R0KHN0cnVjdCBjc2kycnhfcHJpdiAqY3NpMnJ4KQogewotCXN0cnVjdCB2NGwyX2Z3bm9k ZV9lbmRwb2ludCB2NGwyX2VwOworCXN0cnVjdCB2NGwyX2Z3bm9kZV9lbmRwb2ludCB2NGwyX2Vw ID0geyAuYnVzX3R5cGUgPSAwIH07CiAJc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3aDsKIAlzdHJ1 Y3QgZGV2aWNlX25vZGUgKmVwOwogCWludCByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlh L3BsYXRmb3JtL2NhZGVuY2UvY2Rucy1jc2kydHguYyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v Y2FkZW5jZS9jZG5zLWNzaTJ0eC5jCmluZGV4IDYyMjRkYWY4OTFkNy4uNTA0MmQwNTNiOTRlIDEw MDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2NhZGVuY2UvY2Rucy1jc2kydHguYwor KysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2NhZGVuY2UvY2Rucy1jc2kydHguYwpAQCAtNDMy LDcgKzQzMiw3IEBAIHN0YXRpYyBpbnQgY3NpMnR4X2dldF9yZXNvdXJjZXMoc3RydWN0IGNzaTJ0 eF9wcml2ICpjc2kydHgsCiAKIHN0YXRpYyBpbnQgY3NpMnR4X2NoZWNrX2xhbmVzKHN0cnVjdCBj c2kydHhfcHJpdiAqY3NpMnR4KQogewotCXN0cnVjdCB2NGwyX2Z3bm9kZV9lbmRwb2ludCB2NGwy X2VwOworCXN0cnVjdCB2NGwyX2Z3bm9kZV9lbmRwb2ludCB2NGwyX2VwID0geyAuYnVzX3R5cGUg PSAwIH07CiAJc3RydWN0IGRldmljZV9ub2RlICplcDsKIAlpbnQgcmV0OwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2RhdmluY2kvdnBpZl9jYXB0dXJlLmMgYi9kcml2ZXJz L21lZGlhL3BsYXRmb3JtL2RhdmluY2kvdnBpZl9jYXB0dXJlLmMKaW5kZXggMjNlMjM3YTVlYTFh Li42OWZlYzg4MDMxZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vZGF2aW5j aS92cGlmX2NhcHR1cmUuYworKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2RhdmluY2kvdnBp Zl9jYXB0dXJlLmMKQEAgLTE1MTEsNyArMTUxMSw2IEBAIHN0YXRpYyBzdHJ1Y3QgdnBpZl9jYXB0 dXJlX2NvbmZpZyAqCiB2cGlmX2NhcHR1cmVfZ2V0X3BkYXRhKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpCiB7CiAJc3RydWN0IGRldmljZV9ub2RlICplbmRwb2ludCA9IE5VTEw7Ci0Jc3Ry dWN0IHY0bDJfZndub2RlX2VuZHBvaW50IGJ1c19jZmc7CiAJc3RydWN0IHZwaWZfY2FwdHVyZV9j b25maWcgKnBkYXRhOwogCXN0cnVjdCB2cGlmX3N1YmRldl9pbmZvICpzZGluZm87CiAJc3RydWN0 IHZwaWZfY2FwdHVyZV9jaGFuX2NvbmZpZyAqY2hhbjsKQEAgLTE1NDEsNiArMTU0MCw3IEBAIHZw aWZfY2FwdHVyZV9nZXRfcGRhdGEoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJcmV0 dXJuIE5VTEw7CiAKIAlmb3IgKGkgPSAwOyBpIDwgVlBJRl9DQVBUVVJFX05VTV9DSEFOTkVMUzsg aSsrKSB7CisJCXN0cnVjdCB2NGwyX2Z3bm9kZV9lbmRwb2ludCBidXNfY2ZnID0geyAuYnVzX3R5 cGUgPSAwIH07CiAJCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcmVtOwogCQl1bnNpZ25lZCBpbnQgZmxh Z3M7CiAJCWludCBlcnI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2V4eW5v czQtaXMvbWVkaWEtZGV2LmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2V4eW5vczQtaXMvbWVk aWEtZGV2LmMKaW5kZXggZmJhZDA2MzVjNmI1Li44NzA1MDFiMGYzNTEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbWVkaWEvcGxhdGZvcm0vZXh5bm9zNC1pcy9tZWRpYS1kZXYuYworKysgYi9kcml2ZXJz L21lZGlhL3BsYXRmb3JtL2V4eW5vczQtaXMvbWVkaWEtZGV2LmMKQEAgLTM5MCw3ICszOTAsNyBA QCBzdGF0aWMgaW50IGZpbWNfbWRfcGFyc2VfcG9ydF9ub2RlKHN0cnVjdCBmaW1jX21kICpmbWQs CiB7CiAJc3RydWN0IGZpbWNfc291cmNlX2luZm8gKnBkID0gJmZtZC0+c2Vuc29yW2luZGV4XS5w ZGF0YTsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKnJlbSwgKmVwLCAqbnA7Ci0Jc3RydWN0IHY0bDJf Zndub2RlX2VuZHBvaW50IGVuZHBvaW50OworCXN0cnVjdCB2NGwyX2Z3bm9kZV9lbmRwb2ludCBl bmRwb2ludCA9IHsgLmJ1c190eXBlID0gMCB9OwogCWludCByZXQ7CiAKIAkvKiBBc3N1bWUgaGVy ZSBhIHBvcnQgbm9kZSBjYW4gaGF2ZSBvbmx5IG9uZSBlbmRwb2ludCBub2RlLiAqLwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9leHlub3M0LWlzL21pcGktY3Npcy5jIGIvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS9leHlub3M0LWlzL21pcGktY3Npcy5jCmluZGV4IGI0ZTI4YTI5 OWUyNi4uMzVjYjAxNjIwODViIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2V4 eW5vczQtaXMvbWlwaS1jc2lzLmMKKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9leHlub3M0 LWlzL21pcGktY3Npcy5jCkBAIC03MTgsNyArNzE4LDcgQEAgc3RhdGljIGludCBzNXBjc2lzX3Bh cnNlX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJCQkgICAgc3RydWN0IGNzaXNf c3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHBkZXYtPmRldi5v Zl9ub2RlOwotCXN0cnVjdCB2NGwyX2Z3bm9kZV9lbmRwb2ludCBlbmRwb2ludDsKKwlzdHJ1Y3Qg djRsMl9md25vZGVfZW5kcG9pbnQgZW5kcG9pbnQgPSB7IC5idXNfdHlwZSA9IDAgfTsKIAlpbnQg cmV0OwogCiAJaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5vZGUsICJjbG9jay1mcmVxdWVuY3ki LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9weGFfY2FtZXJhLmMgYi9kcml2 ZXJzL21lZGlhL3BsYXRmb3JtL3B4YV9jYW1lcmEuYwppbmRleCBhNDdiZTEyNDJjZjQuLmQxNmNh NjY3ZWM0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9weGFfY2FtZXJhLmMK KysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9weGFfY2FtZXJhLmMKQEAgLTIyOTgsNyArMjI5 OCw3IEBAIHN0YXRpYyBpbnQgcHhhX2NhbWVyYV9wZGF0YV9mcm9tX2R0KHN0cnVjdCBkZXZpY2Ug KmRldiwKIHsKIAl1MzIgbWNsa19yYXRlOwogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcmVtb3RlLCAq bnAgPSBkZXYtPm9mX25vZGU7Ci0Jc3RydWN0IHY0bDJfZndub2RlX2VuZHBvaW50IGVwOworCXN0 cnVjdCB2NGwyX2Z3bm9kZV9lbmRwb2ludCBlcCA9IHsgLmJ1c190eXBlID0gMCB9OwogCWludCBl cnIgPSBvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgImNsb2NrLWZyZXF1ZW5jeSIsCiAJCQkJICAg ICAgICZtY2xrX3JhdGUpOwogCWlmICghZXJyKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlh L3BsYXRmb3JtL3JjYXItdmluL3JjYXItY3NpMi5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9y Y2FyLXZpbi9yY2FyLWNzaTIuYwppbmRleCAyNWVkYzJlZGQxOTcuLmIwMDQ0YTA4ZTcxZSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yY2FyLXZpbi9yY2FyLWNzaTIuYworKysg Yi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JjYXItdmluL3JjYXItY3NpMi5jCkBAIC03NDMsNyAr NzQzLDcgQEAgc3RhdGljIGludCByY3NpMl9wYXJzZV92NGwyKHN0cnVjdCByY2FyX2NzaTIgKnBy aXYsCiBzdGF0aWMgaW50IHJjc2kyX3BhcnNlX2R0KHN0cnVjdCByY2FyX2NzaTIgKnByaXYpCiB7 CiAJc3RydWN0IGRldmljZV9ub2RlICplcDsKLQlzdHJ1Y3QgdjRsMl9md25vZGVfZW5kcG9pbnQg djRsMl9lcDsKKwlzdHJ1Y3QgdjRsMl9md25vZGVfZW5kcG9pbnQgdjRsMl9lcCA9IHsgLmJ1c190 eXBlID0gMCB9OwogCWludCByZXQ7CiAKIAllcCA9IG9mX2dyYXBoX2dldF9lbmRwb2ludF9ieV9y ZWdzKHByaXYtPmRldi0+b2Zfbm9kZSwgMCwgMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlh L3BsYXRmb3JtL3JlbmVzYXMtY2V1LmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMt Y2V1LmMKaW5kZXggZWVlNGFlNzIzNGJlLi4wMzVmMWQzZjEwZTUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy1jZXUuYworKysgYi9kcml2ZXJzL21lZGlhL3BsYXRm b3JtL3JlbmVzYXMtY2V1LmMKQEAgLTE1MzYsNyArMTUzNiw2IEBAIHN0YXRpYyBpbnQgY2V1X3Bh cnNlX3BsYXRmb3JtX2RhdGEoc3RydWN0IGNldV9kZXZpY2UgKmNldWRldiwKIHN0YXRpYyBpbnQg Y2V1X3BhcnNlX2R0KHN0cnVjdCBjZXVfZGV2aWNlICpjZXVkZXYpCiB7CiAJc3RydWN0IGRldmlj ZV9ub2RlICpvZiA9IGNldWRldi0+ZGV2LT5vZl9ub2RlOwotCXN0cnVjdCB2NGwyX2Z3bm9kZV9l bmRwb2ludCBmd19lcDsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKmVwLCAqcmVtb3RlOwogCXN0cnVj dCBjZXVfc3ViZGV2ICpjZXVfc2Q7CiAJdW5zaWduZWQgaW50IGk7CkBAIC0xNTUyLDYgKzE1NTEs OCBAQCBzdGF0aWMgaW50IGNldV9wYXJzZV9kdChzdHJ1Y3QgY2V1X2RldmljZSAqY2V1ZGV2KQog CQlyZXR1cm4gcmV0OwogCiAJZm9yIChpID0gMDsgaSA8IG51bV9lcDsgaSsrKSB7CisJCXN0cnVj dCB2NGwyX2Z3bm9kZV9lbmRwb2ludCBmd19lcCA9IHsgLmJ1c190eXBlID0gMCB9OworCiAJCWVw ID0gb2ZfZ3JhcGhfZ2V0X2VuZHBvaW50X2J5X3JlZ3Mob2YsIDAsIGkpOwogCQlpZiAoIWVwKSB7 CiAJCQlkZXZfZXJyKGNldWRldi0+ZGV2LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0 Zm9ybS9zdG0zMi9zdG0zMi1kY21pLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0bTMyL3N0 bTMyLWRjbWkuYwppbmRleCBkYTI5NmEyYWZjMmUuLjA3ZDE1NDAyNDE4MyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zdG0zMi9zdG0zMi1kY21pLmMKKysrIGIvZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS9zdG0zMi9zdG0zMi1kY21pLmMKQEAgLTE2MjEsNyArMTYyMSw3IEBAIHN0 YXRpYyBpbnQgZGNtaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCXN0 cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBwZGV2LT5kZXYub2Zfbm9kZTsKIAljb25zdCBzdHJ1Y3Qg b2ZfZGV2aWNlX2lkICptYXRjaCA9IE5VTEw7Ci0Jc3RydWN0IHY0bDJfZndub2RlX2VuZHBvaW50 IGVwOworCXN0cnVjdCB2NGwyX2Z3bm9kZV9lbmRwb2ludCBlcCA9IHsgLmJ1c190eXBlID0gMCB9 OwogCXN0cnVjdCBzdG0zMl9kY21pICpkY21pOwogCXN0cnVjdCB2YjJfcXVldWUgKnE7CiAJc3Ry dWN0IGRtYV9jaGFuICpjaGFuOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2lt eC9pbXgtbWVkaWEtY3NpLmMgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaW14L2lteC1tZWRpYS1j c2kuYwppbmRleCA1MzkxNTlkOWFmNmIuLmFjOWQ3MThkN2ZmMCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9zdGFnaW5nL21lZGlhL2lteC9pbXgtbWVkaWEtY3NpLmMKKysrIGIvZHJpdmVycy9zdGFnaW5n L21lZGlhL2lteC9pbXgtbWVkaWEtY3NpLmMKQEAgLTEwNTAsNyArMTA1MCw3IEBAIHN0YXRpYyBp bnQgY3NpX2xpbmtfdmFsaWRhdGUoc3RydWN0IHY0bDJfc3ViZGV2ICpzZCwKIAkJCSAgICAgc3Ry dWN0IHY0bDJfc3ViZGV2X2Zvcm1hdCAqc2lua19mbXQpCiB7CiAJc3RydWN0IGNzaV9wcml2ICpw cml2ID0gdjRsMl9nZXRfc3ViZGV2ZGF0YShzZCk7Ci0Jc3RydWN0IHY0bDJfZndub2RlX2VuZHBv aW50IHVwc3RyZWFtX2VwID0ge307CisJc3RydWN0IHY0bDJfZndub2RlX2VuZHBvaW50IHVwc3Ry ZWFtX2VwID0geyAuYnVzX3R5cGUgPSAwIH07CiAJYm9vbCBpc19jc2kyOwogCWludCByZXQ7CiAK QEAgLTExNjQsNyArMTE2NCw3IEBAIHN0YXRpYyBpbnQgY3NpX2VudW1fbWJ1c19jb2RlKHN0cnVj dCB2NGwyX3N1YmRldiAqc2QsCiAJCQkgICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfbWJ1c19jb2Rl X2VudW0gKmNvZGUpCiB7CiAJc3RydWN0IGNzaV9wcml2ICpwcml2ID0gdjRsMl9nZXRfc3ViZGV2 ZGF0YShzZCk7Ci0Jc3RydWN0IHY0bDJfZndub2RlX2VuZHBvaW50IHVwc3RyZWFtX2VwOworCXN0 cnVjdCB2NGwyX2Z3bm9kZV9lbmRwb2ludCB1cHN0cmVhbV9lcCA9IHsgLmJ1c190eXBlID0gMCB9 OwogCWNvbnN0IHN0cnVjdCBpbXhfbWVkaWFfcGl4Zm10ICppbmNjOwogCXN0cnVjdCB2NGwyX21i dXNfZnJhbWVmbXQgKmluZm10OwogCWludCByZXQgPSAwOwpAQCAtMTQwMyw3ICsxNDAzLDcgQEAg c3RhdGljIGludCBjc2lfc2V0X2ZtdChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLAogewogCXN0cnVj dCBjc2lfcHJpdiAqcHJpdiA9IHY0bDJfZ2V0X3N1YmRldmRhdGEoc2QpOwogCXN0cnVjdCBpbXhf bWVkaWFfdmlkZW9fZGV2ICp2ZGV2ID0gcHJpdi0+dmRldjsKLQlzdHJ1Y3QgdjRsMl9md25vZGVf ZW5kcG9pbnQgdXBzdHJlYW1fZXA7CisJc3RydWN0IHY0bDJfZndub2RlX2VuZHBvaW50IHVwc3Ry ZWFtX2VwID0geyAuYnVzX3R5cGUgPSAwIH07CiAJY29uc3Qgc3RydWN0IGlteF9tZWRpYV9waXhm bXQgKmNjOwogCXN0cnVjdCB2NGwyX3BpeF9mb3JtYXQgdmRldl9mbXQ7CiAJc3RydWN0IHY0bDJf bWJ1c19mcmFtZWZtdCAqZm10OwpAQCAtMTU0Miw3ICsxNTQyLDcgQEAgc3RhdGljIGludCBjc2lf c2V0X3NlbGVjdGlvbihzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLAogCQkJICAgICBzdHJ1Y3QgdjRs Ml9zdWJkZXZfc2VsZWN0aW9uICpzZWwpCiB7CiAJc3RydWN0IGNzaV9wcml2ICpwcml2ID0gdjRs Ml9nZXRfc3ViZGV2ZGF0YShzZCk7Ci0Jc3RydWN0IHY0bDJfZndub2RlX2VuZHBvaW50IHVwc3Ry ZWFtX2VwOworCXN0cnVjdCB2NGwyX2Z3bm9kZV9lbmRwb2ludCB1cHN0cmVhbV9lcCA9IHsgLmJ1 c190eXBlID0gMCB9OwogCXN0cnVjdCB2NGwyX21idXNfZnJhbWVmbXQgKmluZm10OwogCXN0cnVj dCB2NGwyX3JlY3QgKmNyb3AsICpjb21wb3NlOwogCWludCBwYWQsIHJldDsKZGlmZiAtLWdpdCBh L2luY2x1ZGUvbWVkaWEvdjRsMi1md25vZGUuaCBiL2luY2x1ZGUvbWVkaWEvdjRsMi1md25vZGUu aAppbmRleCA0YTM3MWMzYWQ4NmMuLjFlYTFhM2VjZjZkNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9t ZWRpYS92NGwyLWZ3bm9kZS5oCisrKyBiL2luY2x1ZGUvbWVkaWEvdjRsMi1md25vZGUuaApAQCAt MTM5LDYgKzEzOSw4IEBAIHN0cnVjdCB2NGwyX2Z3bm9kZV9saW5rIHsKICAqIHNldCB0aGUgVjRM Ml9NQlVTX0NTSTJfQ09OVElOVU9VU19DTE9DSyBmbGFnLiBUaGUgY2FsbGVyIHNob3VsZCBob2xk IGEKICAqIHJlZmVyZW5jZSB0byBAZndub2RlLgogICoKKyAqIFRoZSBjYWxsZXIgbXVzdCBzZXQg dGhlIGJ1c190eXBlIGZpZWxkIG9mIEB2ZXAgdG8gemVyby4KKyAqCiAgKiBOT1RFOiBUaGlzIGZ1 bmN0aW9uIGRvZXMgbm90IHBhcnNlIHByb3BlcnRpZXMgdGhlIHNpemUgb2Ygd2hpY2ggaXMgdmFy aWFibGUKICAqIHdpdGhvdXQgYSBsb3cgZml4ZWQgbGltaXQuIFBsZWFzZSB1c2UgdjRsMl9md25v ZGVfZW5kcG9pbnRfYWxsb2NfcGFyc2UoKSBpbgogICogbmV3IGRyaXZlcnMgaW5zdGVhZC4KLS0g CjIuMTEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from nblzone-211-213.nblnetworks.fi ([83.145.211.213]:40962 "EHLO hillosipuli.retiisi.org.uk" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728261AbeIMCgL (ORCPT ); Wed, 12 Sep 2018 22:36:11 -0400 From: Sakari Ailus To: linux-media@vger.kernel.org Cc: devicetree@vger.kernel.org, slongerbeam@gmail.com, niklas.soderlund@ragnatech.se, jacopo@jmondi.org, p.zabel@pengutronix.de, dri-devel@lists.freedesktop.org Subject: [PATCH v3 16/23] v4l: fwnode: Initialise the V4L2 fwnode endpoints to zero Date: Thu, 13 Sep 2018 00:29:35 +0300 Message-Id: <20180912212942.19641-17-sakari.ailus@linux.intel.com> In-Reply-To: <20180912212942.19641-1-sakari.ailus@linux.intel.com> References: <20180912212942.19641-1-sakari.ailus@linux.intel.com> Sender: linux-media-owner@vger.kernel.org List-ID: Initialise the V4L2 fwnode endpoints to zero in all drivers using v4l2_fwnode_endpoint_parse(). This prepares for setting default endpoint flags as well as the bus type. Setting bus type to zero will continue to guess the bus among the guessable set (parallel, Bt.656 and CSI-2 D-PHY). Signed-off-by: Sakari Ailus Tested-by: Steve Longerbeam --- drivers/media/i2c/adv7604.c | 2 +- drivers/media/i2c/mt9v032.c | 2 +- drivers/media/i2c/ov5647.c | 2 +- drivers/media/i2c/ov7670.c | 2 +- drivers/media/i2c/s5c73m3/s5c73m3-core.c | 2 +- drivers/media/i2c/s5k5baf.c | 2 +- drivers/media/i2c/tda1997x.c | 2 +- drivers/media/i2c/tvp514x.c | 2 +- drivers/media/i2c/tvp5150.c | 2 +- drivers/media/i2c/tvp7002.c | 2 +- drivers/media/platform/am437x/am437x-vpfe.c | 2 +- drivers/media/platform/atmel/atmel-isc.c | 3 ++- drivers/media/platform/atmel/atmel-isi.c | 2 +- drivers/media/platform/cadence/cdns-csi2rx.c | 2 +- drivers/media/platform/cadence/cdns-csi2tx.c | 2 +- drivers/media/platform/davinci/vpif_capture.c | 2 +- drivers/media/platform/exynos4-is/media-dev.c | 2 +- drivers/media/platform/exynos4-is/mipi-csis.c | 2 +- drivers/media/platform/pxa_camera.c | 2 +- drivers/media/platform/rcar-vin/rcar-csi2.c | 2 +- drivers/media/platform/renesas-ceu.c | 3 ++- drivers/media/platform/stm32/stm32-dcmi.c | 2 +- drivers/staging/media/imx/imx-media-csi.c | 8 ++++---- include/media/v4l2-fwnode.h | 2 ++ 24 files changed, 30 insertions(+), 26 deletions(-) diff --git a/drivers/media/i2c/adv7604.c b/drivers/media/i2c/adv7604.c index 668be2bca57a..413578dc23a3 100644 --- a/drivers/media/i2c/adv7604.c +++ b/drivers/media/i2c/adv7604.c @@ -3093,7 +3093,7 @@ MODULE_DEVICE_TABLE(of, adv76xx_of_id); static int adv76xx_parse_dt(struct adv76xx_state *state) { - struct v4l2_fwnode_endpoint bus_cfg; + struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 }; struct device_node *endpoint; struct device_node *np; unsigned int flags; diff --git a/drivers/media/i2c/mt9v032.c b/drivers/media/i2c/mt9v032.c index f74730d24d8f..67f69ad6ecf4 100644 --- a/drivers/media/i2c/mt9v032.c +++ b/drivers/media/i2c/mt9v032.c @@ -989,7 +989,7 @@ static struct mt9v032_platform_data * mt9v032_get_pdata(struct i2c_client *client) { struct mt9v032_platform_data *pdata = NULL; - struct v4l2_fwnode_endpoint endpoint; + struct v4l2_fwnode_endpoint endpoint = { .bus_type = 0 }; struct device_node *np; struct property *prop; diff --git a/drivers/media/i2c/ov5647.c b/drivers/media/i2c/ov5647.c index da39c49de503..4589631798c9 100644 --- a/drivers/media/i2c/ov5647.c +++ b/drivers/media/i2c/ov5647.c @@ -532,7 +532,7 @@ static const struct v4l2_subdev_internal_ops ov5647_subdev_internal_ops = { static int ov5647_parse_dt(struct device_node *np) { - struct v4l2_fwnode_endpoint bus_cfg; + struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 }; struct device_node *ep; int ret; diff --git a/drivers/media/i2c/ov7670.c b/drivers/media/i2c/ov7670.c index 31bf577b0bd3..92f59ae1b624 100644 --- a/drivers/media/i2c/ov7670.c +++ b/drivers/media/i2c/ov7670.c @@ -1728,7 +1728,7 @@ static int ov7670_parse_dt(struct device *dev, struct ov7670_info *info) { struct fwnode_handle *fwnode = dev_fwnode(dev); - struct v4l2_fwnode_endpoint bus_cfg; + struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 }; struct fwnode_handle *ep; int ret; diff --git a/drivers/media/i2c/s5c73m3/s5c73m3-core.c b/drivers/media/i2c/s5c73m3/s5c73m3-core.c index 479c9753e863..9bb28faad1b3 100644 --- a/drivers/media/i2c/s5c73m3/s5c73m3-core.c +++ b/drivers/media/i2c/s5c73m3/s5c73m3-core.c @@ -1603,7 +1603,7 @@ static int s5c73m3_get_platform_data(struct s5c73m3 *state) const struct s5c73m3_platform_data *pdata = dev->platform_data; struct device_node *node = dev->of_node; struct device_node *node_ep; - struct v4l2_fwnode_endpoint ep; + struct v4l2_fwnode_endpoint ep = { .bus_type = 0 }; int ret; if (!node) { diff --git a/drivers/media/i2c/s5k5baf.c b/drivers/media/i2c/s5k5baf.c index 4c41a770b132..727db7c0670a 100644 --- a/drivers/media/i2c/s5k5baf.c +++ b/drivers/media/i2c/s5k5baf.c @@ -1841,7 +1841,7 @@ static int s5k5baf_parse_device_node(struct s5k5baf *state, struct device *dev) { struct device_node *node = dev->of_node; struct device_node *node_ep; - struct v4l2_fwnode_endpoint ep; + struct v4l2_fwnode_endpoint ep = { .bus_type = 0 }; int ret; if (!node) { diff --git a/drivers/media/i2c/tda1997x.c b/drivers/media/i2c/tda1997x.c index d114ac5243ec..c4c2a6134e1e 100644 --- a/drivers/media/i2c/tda1997x.c +++ b/drivers/media/i2c/tda1997x.c @@ -2265,7 +2265,7 @@ MODULE_DEVICE_TABLE(of, tda1997x_of_id); static int tda1997x_parse_dt(struct tda1997x_state *state) { struct tda1997x_platform_data *pdata = &state->pdata; - struct v4l2_fwnode_endpoint bus_cfg; + struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 }; struct device_node *ep; struct device_node *np; unsigned int flags; diff --git a/drivers/media/i2c/tvp514x.c b/drivers/media/i2c/tvp514x.c index 675b9ae212ab..1cc83cb934e2 100644 --- a/drivers/media/i2c/tvp514x.c +++ b/drivers/media/i2c/tvp514x.c @@ -989,7 +989,7 @@ static struct tvp514x_platform_data * tvp514x_get_pdata(struct i2c_client *client) { struct tvp514x_platform_data *pdata = NULL; - struct v4l2_fwnode_endpoint bus_cfg; + struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 }; struct device_node *endpoint; unsigned int flags; diff --git a/drivers/media/i2c/tvp5150.c b/drivers/media/i2c/tvp5150.c index 76e6bed5a1da..a305c3022c9d 100644 --- a/drivers/media/i2c/tvp5150.c +++ b/drivers/media/i2c/tvp5150.c @@ -1362,7 +1362,7 @@ static int tvp5150_init(struct i2c_client *c) static int tvp5150_parse_dt(struct tvp5150 *decoder, struct device_node *np) { - struct v4l2_fwnode_endpoint bus_cfg; + struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 }; struct device_node *ep; #ifdef CONFIG_MEDIA_CONTROLLER struct device_node *connectors, *child; diff --git a/drivers/media/i2c/tvp7002.c b/drivers/media/i2c/tvp7002.c index 4f5c627579c7..cab2f2bd0aa9 100644 --- a/drivers/media/i2c/tvp7002.c +++ b/drivers/media/i2c/tvp7002.c @@ -889,7 +889,7 @@ static const struct v4l2_subdev_ops tvp7002_ops = { static struct tvp7002_config * tvp7002_get_pdata(struct i2c_client *client) { - struct v4l2_fwnode_endpoint bus_cfg; + struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 }; struct tvp7002_config *pdata = NULL; struct device_node *endpoint; unsigned int flags; diff --git a/drivers/media/platform/am437x/am437x-vpfe.c b/drivers/media/platform/am437x/am437x-vpfe.c index 0b1a03b64b19..e13d2b3a7168 100644 --- a/drivers/media/platform/am437x/am437x-vpfe.c +++ b/drivers/media/platform/am437x/am437x-vpfe.c @@ -2426,7 +2426,6 @@ static struct vpfe_config * vpfe_get_pdata(struct vpfe_device *vpfe) { struct device_node *endpoint = NULL; - struct v4l2_fwnode_endpoint bus_cfg; struct device *dev = vpfe->pdev; struct vpfe_subdev_info *sdinfo; struct vpfe_config *pdata; @@ -2446,6 +2445,7 @@ vpfe_get_pdata(struct vpfe_device *vpfe) return NULL; for (i = 0; ; i++) { + struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 }; struct device_node *rem; endpoint = of_graph_get_next_endpoint(dev->of_node, endpoint); diff --git a/drivers/media/platform/atmel/atmel-isc.c b/drivers/media/platform/atmel/atmel-isc.c index 334de0f2e36a..50178968b8a6 100644 --- a/drivers/media/platform/atmel/atmel-isc.c +++ b/drivers/media/platform/atmel/atmel-isc.c @@ -2028,7 +2028,6 @@ static int isc_parse_dt(struct device *dev, struct isc_device *isc) { struct device_node *np = dev->of_node; struct device_node *epn = NULL, *rem; - struct v4l2_fwnode_endpoint v4l2_epn; struct isc_subdev_entity *subdev_entity; unsigned int flags; int ret; @@ -2036,6 +2035,8 @@ static int isc_parse_dt(struct device *dev, struct isc_device *isc) INIT_LIST_HEAD(&isc->subdev_entities); while (1) { + struct v4l2_fwnode_endpoint v4l2_epn = { .bus_type = 0 }; + epn = of_graph_get_next_endpoint(np, epn); if (!epn) return 0; diff --git a/drivers/media/platform/atmel/atmel-isi.c b/drivers/media/platform/atmel/atmel-isi.c index c4d5f05786e8..fdb255e4a956 100644 --- a/drivers/media/platform/atmel/atmel-isi.c +++ b/drivers/media/platform/atmel/atmel-isi.c @@ -790,7 +790,7 @@ static int atmel_isi_parse_dt(struct atmel_isi *isi, struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; - struct v4l2_fwnode_endpoint ep; + struct v4l2_fwnode_endpoint ep = { .bus_type = 0 }; int err; /* Default settings for ISI */ diff --git a/drivers/media/platform/cadence/cdns-csi2rx.c b/drivers/media/platform/cadence/cdns-csi2rx.c index 0776a34f28ee..31ace114eda1 100644 --- a/drivers/media/platform/cadence/cdns-csi2rx.c +++ b/drivers/media/platform/cadence/cdns-csi2rx.c @@ -361,7 +361,7 @@ static int csi2rx_get_resources(struct csi2rx_priv *csi2rx, static int csi2rx_parse_dt(struct csi2rx_priv *csi2rx) { - struct v4l2_fwnode_endpoint v4l2_ep; + struct v4l2_fwnode_endpoint v4l2_ep = { .bus_type = 0 }; struct fwnode_handle *fwh; struct device_node *ep; int ret; diff --git a/drivers/media/platform/cadence/cdns-csi2tx.c b/drivers/media/platform/cadence/cdns-csi2tx.c index 6224daf891d7..5042d053b94e 100644 --- a/drivers/media/platform/cadence/cdns-csi2tx.c +++ b/drivers/media/platform/cadence/cdns-csi2tx.c @@ -432,7 +432,7 @@ static int csi2tx_get_resources(struct csi2tx_priv *csi2tx, static int csi2tx_check_lanes(struct csi2tx_priv *csi2tx) { - struct v4l2_fwnode_endpoint v4l2_ep; + struct v4l2_fwnode_endpoint v4l2_ep = { .bus_type = 0 }; struct device_node *ep; int ret; diff --git a/drivers/media/platform/davinci/vpif_capture.c b/drivers/media/platform/davinci/vpif_capture.c index 23e237a5ea1a..69fec88031fd 100644 --- a/drivers/media/platform/davinci/vpif_capture.c +++ b/drivers/media/platform/davinci/vpif_capture.c @@ -1511,7 +1511,6 @@ static struct vpif_capture_config * vpif_capture_get_pdata(struct platform_device *pdev) { struct device_node *endpoint = NULL; - struct v4l2_fwnode_endpoint bus_cfg; struct vpif_capture_config *pdata; struct vpif_subdev_info *sdinfo; struct vpif_capture_chan_config *chan; @@ -1541,6 +1540,7 @@ vpif_capture_get_pdata(struct platform_device *pdev) return NULL; for (i = 0; i < VPIF_CAPTURE_NUM_CHANNELS; i++) { + struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 }; struct device_node *rem; unsigned int flags; int err; diff --git a/drivers/media/platform/exynos4-is/media-dev.c b/drivers/media/platform/exynos4-is/media-dev.c index fbad0635c6b5..870501b0f351 100644 --- a/drivers/media/platform/exynos4-is/media-dev.c +++ b/drivers/media/platform/exynos4-is/media-dev.c @@ -390,7 +390,7 @@ static int fimc_md_parse_port_node(struct fimc_md *fmd, { struct fimc_source_info *pd = &fmd->sensor[index].pdata; struct device_node *rem, *ep, *np; - struct v4l2_fwnode_endpoint endpoint; + struct v4l2_fwnode_endpoint endpoint = { .bus_type = 0 }; int ret; /* Assume here a port node can have only one endpoint node. */ diff --git a/drivers/media/platform/exynos4-is/mipi-csis.c b/drivers/media/platform/exynos4-is/mipi-csis.c index b4e28a299e26..35cb0162085b 100644 --- a/drivers/media/platform/exynos4-is/mipi-csis.c +++ b/drivers/media/platform/exynos4-is/mipi-csis.c @@ -718,7 +718,7 @@ static int s5pcsis_parse_dt(struct platform_device *pdev, struct csis_state *state) { struct device_node *node = pdev->dev.of_node; - struct v4l2_fwnode_endpoint endpoint; + struct v4l2_fwnode_endpoint endpoint = { .bus_type = 0 }; int ret; if (of_property_read_u32(node, "clock-frequency", diff --git a/drivers/media/platform/pxa_camera.c b/drivers/media/platform/pxa_camera.c index a47be1242cf4..d16ca667ec44 100644 --- a/drivers/media/platform/pxa_camera.c +++ b/drivers/media/platform/pxa_camera.c @@ -2298,7 +2298,7 @@ static int pxa_camera_pdata_from_dt(struct device *dev, { u32 mclk_rate; struct device_node *remote, *np = dev->of_node; - struct v4l2_fwnode_endpoint ep; + struct v4l2_fwnode_endpoint ep = { .bus_type = 0 }; int err = of_property_read_u32(np, "clock-frequency", &mclk_rate); if (!err) { diff --git a/drivers/media/platform/rcar-vin/rcar-csi2.c b/drivers/media/platform/rcar-vin/rcar-csi2.c index 25edc2edd197..b0044a08e71e 100644 --- a/drivers/media/platform/rcar-vin/rcar-csi2.c +++ b/drivers/media/platform/rcar-vin/rcar-csi2.c @@ -743,7 +743,7 @@ static int rcsi2_parse_v4l2(struct rcar_csi2 *priv, static int rcsi2_parse_dt(struct rcar_csi2 *priv) { struct device_node *ep; - struct v4l2_fwnode_endpoint v4l2_ep; + struct v4l2_fwnode_endpoint v4l2_ep = { .bus_type = 0 }; int ret; ep = of_graph_get_endpoint_by_regs(priv->dev->of_node, 0, 0); diff --git a/drivers/media/platform/renesas-ceu.c b/drivers/media/platform/renesas-ceu.c index eee4ae7234be..035f1d3f10e5 100644 --- a/drivers/media/platform/renesas-ceu.c +++ b/drivers/media/platform/renesas-ceu.c @@ -1536,7 +1536,6 @@ static int ceu_parse_platform_data(struct ceu_device *ceudev, static int ceu_parse_dt(struct ceu_device *ceudev) { struct device_node *of = ceudev->dev->of_node; - struct v4l2_fwnode_endpoint fw_ep; struct device_node *ep, *remote; struct ceu_subdev *ceu_sd; unsigned int i; @@ -1552,6 +1551,8 @@ static int ceu_parse_dt(struct ceu_device *ceudev) return ret; for (i = 0; i < num_ep; i++) { + struct v4l2_fwnode_endpoint fw_ep = { .bus_type = 0 }; + ep = of_graph_get_endpoint_by_regs(of, 0, i); if (!ep) { dev_err(ceudev->dev, diff --git a/drivers/media/platform/stm32/stm32-dcmi.c b/drivers/media/platform/stm32/stm32-dcmi.c index da296a2afc2e..07d154024183 100644 --- a/drivers/media/platform/stm32/stm32-dcmi.c +++ b/drivers/media/platform/stm32/stm32-dcmi.c @@ -1621,7 +1621,7 @@ static int dcmi_probe(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; const struct of_device_id *match = NULL; - struct v4l2_fwnode_endpoint ep; + struct v4l2_fwnode_endpoint ep = { .bus_type = 0 }; struct stm32_dcmi *dcmi; struct vb2_queue *q; struct dma_chan *chan; diff --git a/drivers/staging/media/imx/imx-media-csi.c b/drivers/staging/media/imx/imx-media-csi.c index 539159d9af6b..ac9d718d7ff0 100644 --- a/drivers/staging/media/imx/imx-media-csi.c +++ b/drivers/staging/media/imx/imx-media-csi.c @@ -1050,7 +1050,7 @@ static int csi_link_validate(struct v4l2_subdev *sd, struct v4l2_subdev_format *sink_fmt) { struct csi_priv *priv = v4l2_get_subdevdata(sd); - struct v4l2_fwnode_endpoint upstream_ep = {}; + struct v4l2_fwnode_endpoint upstream_ep = { .bus_type = 0 }; bool is_csi2; int ret; @@ -1164,7 +1164,7 @@ static int csi_enum_mbus_code(struct v4l2_subdev *sd, struct v4l2_subdev_mbus_code_enum *code) { struct csi_priv *priv = v4l2_get_subdevdata(sd); - struct v4l2_fwnode_endpoint upstream_ep; + struct v4l2_fwnode_endpoint upstream_ep = { .bus_type = 0 }; const struct imx_media_pixfmt *incc; struct v4l2_mbus_framefmt *infmt; int ret = 0; @@ -1403,7 +1403,7 @@ static int csi_set_fmt(struct v4l2_subdev *sd, { struct csi_priv *priv = v4l2_get_subdevdata(sd); struct imx_media_video_dev *vdev = priv->vdev; - struct v4l2_fwnode_endpoint upstream_ep; + struct v4l2_fwnode_endpoint upstream_ep = { .bus_type = 0 }; const struct imx_media_pixfmt *cc; struct v4l2_pix_format vdev_fmt; struct v4l2_mbus_framefmt *fmt; @@ -1542,7 +1542,7 @@ static int csi_set_selection(struct v4l2_subdev *sd, struct v4l2_subdev_selection *sel) { struct csi_priv *priv = v4l2_get_subdevdata(sd); - struct v4l2_fwnode_endpoint upstream_ep; + struct v4l2_fwnode_endpoint upstream_ep = { .bus_type = 0 }; struct v4l2_mbus_framefmt *infmt; struct v4l2_rect *crop, *compose; int pad, ret; diff --git a/include/media/v4l2-fwnode.h b/include/media/v4l2-fwnode.h index 4a371c3ad86c..1ea1a3ecf6d5 100644 --- a/include/media/v4l2-fwnode.h +++ b/include/media/v4l2-fwnode.h @@ -139,6 +139,8 @@ struct v4l2_fwnode_link { * set the V4L2_MBUS_CSI2_CONTINUOUS_CLOCK flag. The caller should hold a * reference to @fwnode. * + * The caller must set the bus_type field of @vep to zero. + * * NOTE: This function does not parse properties the size of which is variable * without a low fixed limit. Please use v4l2_fwnode_endpoint_alloc_parse() in * new drivers instead. -- 2.11.0