From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arnd Bergmann Subject: [PATCH 14/14] [media] fix warning on v4l2_subdev_call() result interpreted as bool Date: Fri, 14 Jul 2017 11:36:56 +0200 Message-ID: <20170714093938.1469319-1-arnd@arndb.de> References: <20170714092540.1217397-1-arnd@arndb.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170714092540.1217397-1-arnd@arndb.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-kernel@vger.kernel.org, Mauro Carvalho Chehab , Hans Verkuil Cc: devel@driverdev.osuosl.org, =?UTF-8?q?Niklas=20S=C3=B6derlund?= , Arnd Bergmann , Greg Kroah-Hartman , Robert Jarzmik , adi-buildroot-devel@lists.sourceforge.net, dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, linux-ide@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Tejun Heo , akpm@linux-foundation.org, Alan Cox , Linus Torvalds , Daeseok Youn , Guenter Roeck , linux-media@vger.kernel.org List-Id: linux-ide@vger.kernel.org djRsMl9zdWJkZXZfY2FsbCBpcyBhIG1hY3JvIHJldHVybmluZyB3aGF0ZXZlciB0aGUgY2FsbGJh Y2sgcmV0dXJuCnR5cGUgaXMsIHVzdWFsbHkgJ2ludCcuIFdpdGggZ2NjLTcgYW5kIGNjYWNoZSwg dGhpcyBjYW4gbGVhZCB0bwptYW55IHdhbmluZ3MgbGlrZToKCm1lZGlhL3BsYXRmb3JtL3B4YV9j YW1lcmEuYzogSW4gZnVuY3Rpb24gJ3B4YV9tYnVzX2J1aWxkX2ZtdHNfeGxhdGUnOgptZWRpYS9w bGF0Zm9ybS9weGFfY2FtZXJhLmM6NzY2OjI3OiBlcnJvcjogPzogdXNpbmcgaW50ZWdlciBjb25z dGFudHMgaW4gYm9vbGVhbiBjb250ZXh0IFstV2Vycm9yPWludC1pbi1ib29sLWNvbnRleHRdCiAg d2hpbGUgKCF2NGwyX3N1YmRldl9jYWxsKHN1YmRldiwgcGFkLCBlbnVtX21idXNfY29kZSwgTlVM TCwgJmNvZGUpKSB7Cm1lZGlhL2F0b21pc3AvcGNpL2F0b21pc3AyL2F0b21pc3BfY21kLmM6IElu IGZ1bmN0aW9uICdhdG9taXNwX3NfYWVfd2luZG93JzoKbWVkaWEvYXRvbWlzcC9wY2kvYXRvbWlz cDIvYXRvbWlzcF9jbWQuYzo2NDE0OjUyOiBlcnJvcjogPzogdXNpbmcgaW50ZWdlciBjb25zdGFu dHMgaW4gYm9vbGVhbiBjb250ZXh0IFstV2Vycm9yPWludC1pbi1ib29sLWNvbnRleHRdCiAgaWYg KHY0bDJfc3ViZGV2X2NhbGwoaXNwLT5pbnB1dHNbYXNkLT5pbnB1dF9jdXJyXS5jYW1lcmEsCgpU aGUgYmVzdCB3b3JrYXJvdW5kIEkgY291bGQgY29tZSB1cCB3aXRoIGlzIHRvIGNoYW5nZSBhbGwg dGhlCmNhbGxlcnMgdGhhdCB1c2UgdGhlIHJldHVybiBjb2RlIGZyb20gdjRsMl9zdWJkZXZfY2Fs bCgpIGluIGFuCidpZicgb3IgJ3doaWxlJyBjb25kaXRpb24uCgpJbiBjYXNlIG9mIHNpbXBsZSAn aWYnIGNoZWNrcywgYWRkaW5nIGEgdGVtcG9yYXJ5IHZhcmlhYmxlIGlzCnVzdWFsbHkgb2ssIGFu ZCBzb21ldGltZXMgdGhpcyBjYW4gYmUgdXNlZCB0byBwcm9wYWdhdGUgb3IKcHJpbnQgYW4gZXJy b3IgY29kZSwgc28gSSBkbyB0aGF0LgoKRm9yIHRoZSAnd2hpbGUnIGxvb3BzLCBJIGVuZGVkIHVw IGFkZGluZyBhbiBvdGhlcndpc2UgdXNlbGVzcwpjb21wYXJpc29uIHdpdGggemVybywgd2hpY2gg dW5mb3J0dW5hdGVseSBtYWtlcyB0aGUgY29kZSBhIGxpdHRsZQp1Z2xpZWQuCgpTaWduZWQtb2Zm LWJ5OiBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPgotLS0KIGRyaXZlcnMvbWVkaWEvcGNp L2N4MTgvY3gxOC1pb2N0bC5jICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrKy0tCiBkcml2 ZXJzL21lZGlhL3BjaS9zYWE3MTQ2L214Yi5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1 ICsrKy0tCiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy5jICAgICAgICAg ICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtaXNp LmMgICAgICAgICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9ibGFj a2Zpbi9iZmluX2NhcHR1cmUuYyAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL21lZGlhL3Bs YXRmb3JtL29tYXAzaXNwL2lzcGNjZGMuYyAgICAgICAgICAgICAgICB8ICA1ICsrKy0tCiBkcml2 ZXJzL21lZGlhL3BsYXRmb3JtL3B4YV9jYW1lcmEuYyAgICAgICAgICAgICAgICAgICAgICB8ICAz ICsrLQogZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yY2FyLXZpbi9yY2FyLWNvcmUuYyAgICAgICAg ICAgICAgfCAgMiArLQogZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yY2FyLXZpbi9yY2FyLWRtYS5j ICAgICAgICAgICAgICAgfCAgNCArKystCiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3NvY19jYW1l cmEvc29jX2NhbWVyYS5jICAgICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvbWVkaWEvcGxhdGZv cm0vc3RtMzIvc3RtMzItZGNtaS5jICAgICAgICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS90aS12cGUvY2FsLmMgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKysr LS0KIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9hdG9taXNwL3BjaS9hdG9taXNwMi9hdG9taXNwX2Nt ZC5jIHwgMTMgKysrKysrKy0tLS0tLQogMTMgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygr KSwgMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wY2kvY3gxOC9j eDE4LWlvY3RsLmMgYi9kcml2ZXJzL21lZGlhL3BjaS9jeDE4L2N4MTgtaW9jdGwuYwppbmRleCA4 MGI5MDJiMTJhNzguLjE4MDNmMjhmYzUwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9wY2kv Y3gxOC9jeDE4LWlvY3RsLmMKKysrIGIvZHJpdmVycy9tZWRpYS9wY2kvY3gxOC9jeDE4LWlvY3Rs LmMKQEAgLTE4OCw2ICsxODgsNyBAQCBzdGF0aWMgaW50IGN4MThfZ19mbXRfc2xpY2VkX3ZiaV9j YXAoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKmZoLAogewogCXN0cnVjdCBjeDE4ICpjeCA9IGZo MmlkKGZoKS0+Y3g7CiAJc3RydWN0IHY0bDJfc2xpY2VkX3ZiaV9mb3JtYXQgKnZiaWZtdCA9ICZm bXQtPmZtdC5zbGljZWQ7CisJaW50IHJldDsKIAogCS8qIHNhbmUsIFY0TDIgc3BlYyBjb21wbGlh bnQsIGRlZmF1bHRzICovCiAJdmJpZm10LT5yZXNlcnZlZFswXSA9IDA7CkBAIC0yMDEsOCArMjAy LDkgQEAgc3RhdGljIGludCBjeDE4X2dfZm10X3NsaWNlZF92YmlfY2FwKHN0cnVjdCBmaWxlICpm aWxlLCB2b2lkICpmaCwKIAkgKiBkaWdpdGl6ZXIvc2xpY2VyLiAgTm90ZSwgY3gxOF9hdl92Ymko KSB3aXBlcyB0aGUgcGFzc2VkIGluCiAJICogZm10LT5mbXQuc2xpY2VkIHVuZGVyIHZhbGlkIGNh bGxpbmcgY29uZGl0aW9ucwogCSAqLwotCWlmICh2NGwyX3N1YmRldl9jYWxsKGN4LT5zZF9hdiwg dmJpLCBnX3NsaWNlZF9mbXQsICZmbXQtPmZtdC5zbGljZWQpKQotCQlyZXR1cm4gLUVJTlZBTDsK KwlyZXQgPSB2NGwyX3N1YmRldl9jYWxsKGN4LT5zZF9hdiwgdmJpLCBnX3NsaWNlZF9mbXQsICZm bXQtPmZtdC5zbGljZWQpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKIAl2YmlmbXQtPnNl cnZpY2Vfc2V0ID0gY3gxOF9nZXRfc2VydmljZV9zZXQodmJpZm10KTsKIAlyZXR1cm4gMDsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGNpL3NhYTcxNDYvbXhiLmMgYi9kcml2ZXJzL21lZGlh L3BjaS9zYWE3MTQ2L214Yi5jCmluZGV4IDUwNGQ3ODgwNzYzOS4uZDJkODQzYzM4NTc5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL21lZGlhL3BjaS9zYWE3MTQ2L214Yi5jCisrKyBiL2RyaXZlcnMvbWVk aWEvcGNpL3NhYTcxNDYvbXhiLmMKQEAgLTUyNSw4ICs1MjUsOSBAQCBzdGF0aWMgaW50IHZpZGlv Y19zX2lucHV0KHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpmaCwgdW5zaWduZWQgaW50IGlucHV0 KQogCQlyZXR1cm4gZXJyOwogCiAJLyogc3dpdGNoIHZpZGVvIGluIHNhYTcxMTFhICovCi0JaWYg KHNhYTcxMTFhX2NhbGwobXhiLCB2aWRlbywgc19yb3V0aW5nLCBpLCBTQUE3MTExX0ZNVF9DQ0lS LCAwKSkKLQkJcHJfZXJyKCJWSURJT0NfU19JTlBVVDogY291bGQgbm90IGFkZHJlc3Mgc2FhNzEx MWFcbiIpOworCWVyciA9IHNhYTcxMTFhX2NhbGwobXhiLCB2aWRlbywgc19yb3V0aW5nLCBpLCBT QUE3MTExX0ZNVF9DQ0lSLCAwKTsKKwlpZiAoZXJyKQorCQlwcl9lcnIoIlZJRElPQ19TX0lOUFVU OiBjb3VsZCBub3QgYWRkcmVzcyBzYWE3MTExYTogJWRcbiIsIGVycik7CiAKIAlteGItPmN1cl9h dWRpbnB1dCA9IHZpZGVvX2F1ZGlvX2Nvbm5lY3RbaW5wdXRdOwogCS8qIHN3aXRjaCB0aGUgYXVk aW8tc291cmNlIG9ubHkgaWYgbmVjZXNzYXJ5ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlh L3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1l bC9hdG1lbC1pc2MuYwppbmRleCBkNjUzNDI1MmNkY2QuLjcwNGIzNGEwY2MwMCAxMDA2NDQKLS0t IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2MuYworKysgYi9kcml2ZXJz L21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy5jCkBAIC0xNDc1LDggKzE0NzUsOCBAQCBz dGF0aWMgaW50IGlzY19mb3JtYXRzX2luaXQoc3RydWN0IGlzY19kZXZpY2UgKmlzYykKIAkJZm10 Kys7CiAJfQogCi0Jd2hpbGUgKCF2NGwyX3N1YmRldl9jYWxsKHN1YmRldiwgcGFkLCBlbnVtX21i dXNfY29kZSwKLQkgICAgICAgTlVMTCwgJm1idXNfY29kZSkpIHsKKwl3aGlsZSAodjRsMl9zdWJk ZXZfY2FsbChzdWJkZXYsIHBhZCwgZW51bV9tYnVzX2NvZGUsCisJICAgICAgIE5VTEwsICZtYnVz X2NvZGUpID09IDApIHsKIAkJbWJ1c19jb2RlLmluZGV4Kys7CiAJCWZtdCA9IGZpbmRfZm9ybWF0 X2J5X2NvZGUobWJ1c19jb2RlLmNvZGUsICZpKTsKIAkJaWYgKCFmbXQpCmRpZmYgLS1naXQgYS9k cml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzaS5jIGIvZHJpdmVycy9tZWRpYS9w bGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2kuYwppbmRleCA4OTFmYTI1MDVlZmEuLjMwYjdlNmYyOThl ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2kuYwor KysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzaS5jCkBAIC0xMDEzLDgg KzEwMTMsOCBAQCBzdGF0aWMgaW50IGlzaV9mb3JtYXRzX2luaXQoc3RydWN0IGF0bWVsX2lzaSAq aXNpKQogCQkud2hpY2ggPSBWNEwyX1NVQkRFVl9GT1JNQVRfQUNUSVZFLAogCX07CiAKLQl3aGls ZSAoIXY0bDJfc3ViZGV2X2NhbGwoc3ViZGV2LCBwYWQsIGVudW1fbWJ1c19jb2RlLAotCQkJCSBO VUxMLCAmbWJ1c19jb2RlKSkgeworCXdoaWxlICh2NGwyX3N1YmRldl9jYWxsKHN1YmRldiwgcGFk LCBlbnVtX21idXNfY29kZSwKKwkJCQlOVUxMLCAmbWJ1c19jb2RlKSA9PSAwKSB7CiAJCWZvciAo aSA9IDA7IGkgPCBBUlJBWV9TSVpFKGlzaV9mb3JtYXRzKTsgaSsrKSB7CiAJCQlpZiAoaXNpX2Zv cm1hdHNbaV0ubWJ1c19jb2RlICE9IG1idXNfY29kZS5jb2RlKQogCQkJCWNvbnRpbnVlOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9ibGFja2Zpbi9iZmluX2NhcHR1cmUuYyBi L2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYmxhY2tmaW4vYmZpbl9jYXB0dXJlLmMKaW5kZXggMWM1 MTY2ZGY0NmY1Li44NjRjOThmMjFhMGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vYmxhY2tmaW4vYmZpbl9jYXB0dXJlLmMKKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9i bGFja2Zpbi9iZmluX2NhcHR1cmUuYwpAQCAtMTU3LDggKzE1Nyw4IEBAIHN0YXRpYyBpbnQgYmNh cF9pbml0X3NlbnNvcl9mb3JtYXRzKHN0cnVjdCBiY2FwX2RldmljZSAqYmNhcF9kZXYpCiAJdW5z aWduZWQgaW50IG51bV9mb3JtYXRzID0gMDsKIAlpbnQgaSwgajsKIAotCXdoaWxlICghdjRsMl9z dWJkZXZfY2FsbChiY2FwX2Rldi0+c2QsIHBhZCwKLQkJCQllbnVtX21idXNfY29kZSwgTlVMTCwg JmNvZGUpKSB7CisJd2hpbGUgKHY0bDJfc3ViZGV2X2NhbGwoYmNhcF9kZXYtPnNkLCBwYWQsCisJ CQkJZW51bV9tYnVzX2NvZGUsIE5VTEwsICZjb2RlKSA9PSAwKSB7CiAJCW51bV9mb3JtYXRzKys7 CiAJCWNvZGUuaW5kZXgrKzsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3Jt L29tYXAzaXNwL2lzcGNjZGMuYyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vb21hcDNpc3AvaXNw Y2NkYy5jCmluZGV4IDcyMDc1NThkNzIyYy4uYTk0MTU3NDYxZjU4IDEwMDY0NAotLS0gYS9kcml2 ZXJzL21lZGlhL3BsYXRmb3JtL29tYXAzaXNwL2lzcGNjZGMuYworKysgYi9kcml2ZXJzL21lZGlh L3BsYXRmb3JtL29tYXAzaXNwL2lzcGNjZGMuYwpAQCAtMTEzMiw2ICsxMTMyLDcgQEAgc3RhdGlj IHZvaWQgY2NkY19jb25maWd1cmUoc3RydWN0IGlzcF9jY2RjX2RldmljZSAqY2NkYykKIAl1bnNp Z25lZCBpbnQgc3BoOwogCXUzMiBzeW5fbW9kZTsKIAl1MzIgY2NkY19wYXR0ZXJuOworCWludCBy ZXQ7CiAKIAljY2RjLT5idDY1NiA9IGZhbHNlOwogCWNjZGMtPmZpZWxkcyA9IDA7CkBAIC0xMTQw LDcgKzExNDEsNiBAQCBzdGF0aWMgdm9pZCBjY2RjX2NvbmZpZ3VyZShzdHJ1Y3QgaXNwX2NjZGNf ZGV2aWNlICpjY2RjKQogCXNlbnNvciA9IG1lZGlhX2VudGl0eV90b192NGwyX3N1YmRldihwYWQt PmVudGl0eSk7CiAJaWYgKGNjZGMtPmlucHV0ID09IENDRENfSU5QVVRfUEFSQUxMRUwpIHsKIAkJ c3RydWN0IHY0bDJfbWJ1c19jb25maWcgY2ZnOwotCQlpbnQgcmV0OwogCiAJCXJldCA9IHY0bDJf c3ViZGV2X2NhbGwoc2Vuc29yLCB2aWRlbywgZ19tYnVzX2NvbmZpZywgJmNmZyk7CiAJCWlmICgh cmV0KQpAQCAtMTE1OCw3ICsxMTU4LDggQEAgc3RhdGljIHZvaWQgY2NkY19jb25maWd1cmUoc3Ry dWN0IGlzcF9jY2RjX2RldmljZSAqY2NkYykKIAkgKi8KIAlmbXRfc3JjLnBhZCA9IHBhZC0+aW5k ZXg7CiAJZm10X3NyYy53aGljaCA9IFY0TDJfU1VCREVWX0ZPUk1BVF9BQ1RJVkU7Ci0JaWYgKCF2 NGwyX3N1YmRldl9jYWxsKHNlbnNvciwgcGFkLCBnZXRfZm10LCBOVUxMLCAmZm10X3NyYykpIHsK KwlyZXQgPSB2NGwyX3N1YmRldl9jYWxsKHNlbnNvciwgcGFkLCBnZXRfZm10LCBOVUxMLCAmZm10 X3NyYyk7CisJaWYgKCFyZXQpIHsKIAkJZm10X2luZm8gPSBvbWFwM2lzcF92aWRlb19mb3JtYXRf aW5mbyhmbXRfc3JjLmZvcm1hdC5jb2RlKTsKIAkJZGVwdGhfaW4gPSBmbXRfaW5mby0+d2lkdGg7 CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9weGFfY2FtZXJhLmMgYi9k cml2ZXJzL21lZGlhL3BsYXRmb3JtL3B4YV9jYW1lcmEuYwppbmRleCAzOTkwOTUxNzBiNmUuLjUy MzZjN2IxNzFlYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9weGFfY2FtZXJh LmMKKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9weGFfY2FtZXJhLmMKQEAgLTc2Myw3ICs3 NjMsOCBAQCBzdGF0aWMgc3RydWN0IHNvY19jYW1lcmFfZm9ybWF0X3hsYXRlICpweGFfbWJ1c19i dWlsZF9mbXRzX3hsYXRlKAogCX07CiAJc3RydWN0IHNvY19jYW1lcmFfZm9ybWF0X3hsYXRlICp1 c2VyX2Zvcm1hdHM7CiAKLQl3aGlsZSAoIXY0bDJfc3ViZGV2X2NhbGwoc3ViZGV2LCBwYWQsIGVu dW1fbWJ1c19jb2RlLCBOVUxMLCAmY29kZSkpIHsKKwl3aGlsZSAodjRsMl9zdWJkZXZfY2FsbChz dWJkZXYsIHBhZCwgZW51bV9tYnVzX2NvZGUsIE5VTEwsICZjb2RlKSA9PQorICAgICAgICAgICAg ICAgMCkgewogCQlyYXdfZm10cysrOwogCQljb2RlLmluZGV4Kys7CiAJfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yY2FyLXZpbi9yY2FyLWNvcmUuYyBiL2RyaXZlcnMvbWVk aWEvcGxhdGZvcm0vcmNhci12aW4vcmNhci1jb3JlLmMKaW5kZXggNzdkZmYwNDdjNDFjLi5hNDFm NGEzZDliNjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmNhci12aW4vcmNh ci1jb3JlLmMKKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yY2FyLXZpbi9yY2FyLWNvcmUu YwpAQCAtNTQsNyArNTQsNyBAQCBzdGF0aWMgYm9vbCBydmluX21idXNfc3VwcG9ydGVkKHN0cnVj dCBydmluX2dyYXBoX2VudGl0eSAqZW50aXR5KQogCiAJY29kZS5pbmRleCA9IDA7CiAJY29kZS5w YWQgPSBlbnRpdHktPnNvdXJjZV9wYWQ7Ci0Jd2hpbGUgKCF2NGwyX3N1YmRldl9jYWxsKHNkLCBw YWQsIGVudW1fbWJ1c19jb2RlLCBOVUxMLCAmY29kZSkpIHsKKwl3aGlsZSAodjRsMl9zdWJkZXZf Y2FsbChzZCwgcGFkLCBlbnVtX21idXNfY29kZSwgTlVMTCwgJmNvZGUpID09IDApIHsKIAkJY29k ZS5pbmRleCsrOwogCQlzd2l0Y2ggKGNvZGUuY29kZSkgewogCQljYXNlIE1FRElBX0JVU19GTVRf WVVZVjhfMVgxNjoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmNhci12aW4v cmNhci1kbWEuYyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmNhci12aW4vcmNhci1kbWEuYwpp bmRleCBiMTM2ODQ0NDk5ZjYuLmVlMTZlOTg4NjA0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRp YS9wbGF0Zm9ybS9yY2FyLXZpbi9yY2FyLWRtYS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vcmNhci12aW4vcmNhci1kbWEuYwpAQCAtMTQzLDYgKzE0Myw3IEBAIHN0YXRpYyBpbnQgcnZp bl9zZXR1cChzdHJ1Y3QgcnZpbl9kZXYgKnZpbikKIAl1MzIgdm5tYywgZG1yLCBkbXIyLCBpbnRl cnJ1cHRzOwogCXY0bDJfc3RkX2lkIHN0ZDsKIAlib29sIHByb2dyZXNzaXZlID0gZmFsc2UsIG91 dHB1dF9pc195dXYgPSBmYWxzZSwgaW5wdXRfaXNfeXV2ID0gZmFsc2U7CisJaW50IHJldDsKIAog CXN3aXRjaCAodmluLT5mb3JtYXQuZmllbGQpIHsKIAljYXNlIFY0TDJfRklFTERfVE9QOgpAQCAt MTU1LDcgKzE1Niw4IEBAIHN0YXRpYyBpbnQgcnZpbl9zZXR1cChzdHJ1Y3QgcnZpbl9kZXYgKnZp bikKIAkJLyogRGVmYXVsdCB0byBUQiAqLwogCQl2bm1jID0gVk5NQ19JTV9GVUxMOwogCQkvKiBV c2UgQlQgaWYgdmlkZW8gc3RhbmRhcmQgY2FuIGJlIHJlYWQgYW5kIGlzIDYwIEh6IGZvcm1hdCAq LwotCQlpZiAoIXY0bDJfc3ViZGV2X2NhbGwodmluX3RvX3NvdXJjZSh2aW4pLCB2aWRlbywgZ19z dGQsICZzdGQpKSB7CisJCXJldCA9IHY0bDJfc3ViZGV2X2NhbGwodmluX3RvX3NvdXJjZSh2aW4p LCB2aWRlbywgZ19zdGQsICZzdGQpOworCQlpZiAocmV0KSB7CiAJCQlpZiAoc3RkICYgVjRMMl9T VERfNTI1XzYwKQogCQkJCXZubWMgPSBWTk1DX0lNX0ZVTEwgfCBWTk1DX0ZPQzsKIAkJfQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zb2NfY2FtZXJhL3NvY19jYW1lcmEuYyBi L2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc29jX2NhbWVyYS9zb2NfY2FtZXJhLmMKaW5kZXggNDVh MDQyOWQ3NWJiLi4zZWY2NDhmYzJkYjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vc29jX2NhbWVyYS9zb2NfY2FtZXJhLmMKKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9z b2NfY2FtZXJhL3NvY19jYW1lcmEuYwpAQCAtNDU0LDcgKzQ1NCw3IEBAIHN0YXRpYyBpbnQgc29j X2NhbWVyYV9pbml0X3VzZXJfZm9ybWF0cyhzdHJ1Y3Qgc29jX2NhbWVyYV9kZXZpY2UgKmljZCkK IAkJLndoaWNoID0gVjRMMl9TVUJERVZfRk9STUFUX0FDVElWRSwKIAl9OwogCi0Jd2hpbGUgKCF2 NGwyX3N1YmRldl9jYWxsKHNkLCBwYWQsIGVudW1fbWJ1c19jb2RlLCBOVUxMLCAmY29kZSkpIHsK Kwl3aGlsZSAodjRsMl9zdWJkZXZfY2FsbChzZCwgcGFkLCBlbnVtX21idXNfY29kZSwgTlVMTCwg JmNvZGUpID09IDApIHsKIAkJcmF3X2ZtdHMrKzsKIAkJY29kZS5pbmRleCsrOwogCX0KQEAgLTEy MDIsNyArMTIwMiw3IEBAIHN0YXRpYyBpbnQgc29jX2NhbWVyYV9wcm9iZV9maW5pc2goc3RydWN0 IHNvY19jYW1lcmFfZGV2aWNlICppY2QpCiAJCWdvdG8gZXZpZHN0YXJ0OwogCiAJLyogVHJ5IHRv IGltcHJvdmUgb3VyIGd1ZXNzIG9mIGEgcmVhc29uYWJsZSB3aW5kb3cgZm9ybWF0ICovCi0JaWYg KCF2NGwyX3N1YmRldl9jYWxsKHNkLCBwYWQsIGdldF9mbXQsIE5VTEwsICZmbXQpKSB7CisJaWYg KHY0bDJfc3ViZGV2X2NhbGwoc2QsIHBhZCwgZ2V0X2ZtdCwgTlVMTCwgJmZtdCkgPT0gMCkgewog CQlpY2QtPnVzZXJfd2lkdGgJCT0gbWYtPndpZHRoOwogCQlpY2QtPnVzZXJfaGVpZ2h0CT0gbWYt PmhlaWdodDsKIAkJaWNkLT5jb2xvcnNwYWNlCQk9IG1mLT5jb2xvcnNwYWNlOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zdG0zMi9zdG0zMi1kY21pLmMgYi9kcml2ZXJzL21l ZGlhL3BsYXRmb3JtL3N0bTMyL3N0bTMyLWRjbWkuYwppbmRleCA4M2QzMmE1ZDBmNDAuLjk2MDg0 ZGZkNWQxMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zdG0zMi9zdG0zMi1k Y21pLmMKKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zdG0zMi9zdG0zMi1kY21pLmMKQEAg LTEwMzQsOCArMTAzNCw4IEBAIHN0YXRpYyBpbnQgZGNtaV9mb3JtYXRzX2luaXQoc3RydWN0IHN0 bTMyX2RjbWkgKmRjbWkpCiAJCS53aGljaCA9IFY0TDJfU1VCREVWX0ZPUk1BVF9BQ1RJVkUsCiAJ fTsKIAotCXdoaWxlICghdjRsMl9zdWJkZXZfY2FsbChzdWJkZXYsIHBhZCwgZW51bV9tYnVzX2Nv ZGUsCi0JCQkJIE5VTEwsICZtYnVzX2NvZGUpKSB7CisJd2hpbGUgKHY0bDJfc3ViZGV2X2NhbGwo c3ViZGV2LCBwYWQsIGVudW1fbWJ1c19jb2RlLAorCQkJCSBOVUxMLCAmbWJ1c19jb2RlKSA9PSAw KSB7CiAJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGRjbWlfZm9ybWF0cyk7IGkrKykgewog CQkJaWYgKGRjbWlfZm9ybWF0c1tpXS5tYnVzX2NvZGUgIT0gbWJ1c19jb2RlLmNvZGUpCiAJCQkJ Y29udGludWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3RpLXZwZS9jYWwu YyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdGktdnBlL2NhbC5jCmluZGV4IDE3N2ZhYTM2YmMx Ni4uZGYwMjE2YTYzNjdjIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3RpLXZw ZS9jYWwuYworKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3RpLXZwZS9jYWwuYwpAQCAtMTM0 OCw5ICsxMzQ4LDExIEBAIHN0YXRpYyB2b2lkIGNhbF9zdG9wX3N0cmVhbWluZyhzdHJ1Y3QgdmIy X3F1ZXVlICp2cSkKIAlzdHJ1Y3QgY2FsX2RtYXF1ZXVlICpkbWFfcSA9ICZjdHgtPnZpZHE7CiAJ c3RydWN0IGNhbF9idWZmZXIgKmJ1ZiwgKnRtcDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOworCWlu dCByZXQ7CiAKLQlpZiAodjRsMl9zdWJkZXZfY2FsbChjdHgtPnNlbnNvciwgdmlkZW8sIHNfc3Ry ZWFtLCAwKSkKLQkJY3R4X2VycihjdHgsICJzdHJlYW0gb2ZmIGZhaWxlZCBpbiBzdWJkZXZcbiIp OworCXJldCA9IHY0bDJfc3ViZGV2X2NhbGwoY3R4LT5zZW5zb3IsIHZpZGVvLCBzX3N0cmVhbSwg MCk7CisJaWYgKHJldCkKKwkJY3R4X2VycihjdHgsICJzdHJlYW0gb2ZmIGZhaWxlZCBpbiBzdWJk ZXY6ICVkXG4iLCByZXQpOwogCiAJY3NpMl9wcGlfZGlzYWJsZShjdHgpOwogCWRpc2FibGVfaXJx cyhjdHgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2F0b21pc3AvcGNpL2F0 b21pc3AyL2F0b21pc3BfY21kLmMgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvYXRvbWlzcC9wY2kv YXRvbWlzcDIvYXRvbWlzcF9jbWQuYwppbmRleCA5NzA5M2JhZjI4YWMuLmZlNTZhMDM3ZjA2NSAx MDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2F0b21pc3AvcGNpL2F0b21pc3AyL2F0 b21pc3BfY21kLmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL2F0b21pc3AvcGNpL2F0b21p c3AyL2F0b21pc3BfY21kLmMKQEAgLTY0MDUsMTkgKzY0MDUsMjAgQEAgaW50IGF0b21pc3Bfc19h ZV93aW5kb3coc3RydWN0IGF0b21pc3Bfc3ViX2RldmljZSAqYXNkLAogCXN0cnVjdCBhdG9taXNw X2RldmljZSAqaXNwID0gYXNkLT5pc3A7CiAJLyogQ292ZXJpdHkgQ0lEIDI5ODA3MSAtIGluaXRp YWx6aXplIHN0cnVjdCAqLwogCXN0cnVjdCB2NGwyX3N1YmRldl9zZWxlY3Rpb24gc2VsID0geyAw IH07CisJaW50IHJldDsKIAogCXNlbC5yLmxlZnQgPSBhcmctPnhfbGVmdDsKIAlzZWwuci50b3Ag PSBhcmctPnlfdG9wOwogCXNlbC5yLndpZHRoID0gYXJnLT54X3JpZ2h0IC0gYXJnLT54X2xlZnQg KyAxOwogCXNlbC5yLmhlaWdodCA9IGFyZy0+eV9ib3R0b20gLSBhcmctPnlfdG9wICsgMTsKIAot CWlmICh2NGwyX3N1YmRldl9jYWxsKGlzcC0+aW5wdXRzW2FzZC0+aW5wdXRfY3Vycl0uY2FtZXJh LAotCQkJICAgICBwYWQsIHNldF9zZWxlY3Rpb24sIE5VTEwsICZzZWwpKSB7Ci0JCWRldl9lcnIo aXNwLT5kZXYsICJmYWlsZWQgdG8gY2FsbCBzZW5zb3Igc2V0X3NlbGVjdGlvbi5cbiIpOwotCQly ZXR1cm4gLUVJTlZBTDsKLQl9CisJcmV0ID0gdjRsMl9zdWJkZXZfY2FsbChpc3AtPmlucHV0c1th c2QtPmlucHV0X2N1cnJdLmNhbWVyYSwKKwkJCSAgICAgICBwYWQsIHNldF9zZWxlY3Rpb24sIE5V TEwsICZzZWwpOworCWlmIChyZXQpCisJCWRldl9lcnIoaXNwLT5kZXYsICJmYWlsZWQgdG8gY2Fs bCBzZW5zb3Igc2V0X3NlbGVjdGlvbjogJWRcbiIsCisJCQlyZXQpOwogCi0JcmV0dXJuIDA7CisJ cmV0dXJuIHJldDsKIH0KIAogaW50IGF0b21pc3BfZmxhc2hfZW5hYmxlKHN0cnVjdCBhdG9taXNw X3N1Yl9kZXZpY2UgKmFzZCwgaW50IG51bV9mcmFtZXMpCi0tIAoyLjkuMAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753824AbdGNJlY (ORCPT ); Fri, 14 Jul 2017 05:41:24 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:61405 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751403AbdGNJlT (ORCPT ); Fri, 14 Jul 2017 05:41:19 -0400 From: Arnd Bergmann To: linux-kernel@vger.kernel.org, Mauro Carvalho Chehab , Hans Verkuil Cc: Greg Kroah-Hartman , Linus Torvalds , Tejun Heo , Guenter Roeck , linux-ide@vger.kernel.org, linux-media@vger.kernel.org, akpm@linux-foundation.org, dri-devel@lists.freedesktop.org, Arnd Bergmann , =?UTF-8?q?Niklas=20S=C3=B6derlund?= , Robert Jarzmik , Daeseok Youn , Alan Cox , adi-buildroot-devel@lists.sourceforge.net, linux-renesas-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devel@driverdev.osuosl.org Subject: [PATCH 14/14] [media] fix warning on v4l2_subdev_call() result interpreted as bool Date: Fri, 14 Jul 2017 11:36:56 +0200 Message-Id: <20170714093938.1469319-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20170714092540.1217397-1-arnd@arndb.de> References: <20170714092540.1217397-1-arnd@arndb.de> X-Provags-ID: V03:K0:ZN0AtT+AY2HEC2jE46WbE6DS5vUL4Ra+2quqPcll7d1KGTkNzg5 CQ0nz4RBGZRlE/EBHqz9ZboIucaEYvNKkFNRejIpzYRew4DzosKuhVCOpMyim5AW6yZ1Pi6 G0U5A51PklP7ObyDqzI3T6oA3Px47JP5dS1cQvLabl4LuBrfe0biG5eVeeXe30xSaS6tEJn ySBuG3KDX6uGyKeHXdkbQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:QwMFRpSGul4=:TMQJd1yE8jdAE65dt7orl3 9omV9yj7tzyhdKmUvVNttt/ZGnzTyTw2ThsAJSL49lqfoigG3Q40v9LKwMvqhJ19SgSZDslcq PmVWuEDaeEwTidQGCS3P/uH9ZM+nnPmojiigTMf0+eJ3CWrY6mtbnjpbSEmpSzw/3Pb/avQgt VDEwDSwhG59hWbP2n3pk96jRURrtdo7ow/J7WT9HoV/SQ24jECBFW6vtMereLlgp6/1x3p6Fp LfYlqaSB3dKC7hzkNaaVohFUF6li+OHZnyTxNp4YgVzARQsl6Zn6LNex4xZ0gElFnVAi/Kfoy +VF0rRDN+dp4K+DswEPleRBeCpXLFCjIabsZosoah1yDaM0tqNW24zKJ02SIzFvOJcASqpMHW QJfXe2gaRjsOJIiU5W5lL4ODmsDn26RIH0lttGdTY6AR4fxsAr+L2wb4cOK5tF5Fcj6/A9ch4 83pD5enTXEULw1ASCOXugOuPx92JBFYj5an4tlCWtRuhb2bZTUjlnNzuu61eOB5FAntmRd5QW NDxgf9fcGB0mS92dK2RgyrI8EP/jyCMq8X2fNs4tt9cIVEHz7yDV0Z+ox5wnT6dgJF+0qvk6o c37g2jyu6rLBVEmjYyK/B+MPDGOJ3kEESM+45qbOhwjbjf7UoCM8yUDQt+Y/qCSYsV5rOyhIq HGWwfoM9kKax6yzOzZcj+lbF/g7hDUSanWlaHH450DH+GYTaIB6KDiSXuT1Ckmt7/W1RHScn9 /qG578zJGhcIUCGIaAltgvZbmSMJ93Vg4Sw3zw== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org v4l2_subdev_call is a macro returning whatever the callback return type is, usually 'int'. With gcc-7 and ccache, this can lead to many wanings like: media/platform/pxa_camera.c: In function 'pxa_mbus_build_fmts_xlate': media/platform/pxa_camera.c:766:27: error: ?: using integer constants in boolean context [-Werror=int-in-bool-context] while (!v4l2_subdev_call(subdev, pad, enum_mbus_code, NULL, &code)) { media/atomisp/pci/atomisp2/atomisp_cmd.c: In function 'atomisp_s_ae_window': media/atomisp/pci/atomisp2/atomisp_cmd.c:6414:52: error: ?: using integer constants in boolean context [-Werror=int-in-bool-context] if (v4l2_subdev_call(isp->inputs[asd->input_curr].camera, The best workaround I could come up with is to change all the callers that use the return code from v4l2_subdev_call() in an 'if' or 'while' condition. In case of simple 'if' checks, adding a temporary variable is usually ok, and sometimes this can be used to propagate or print an error code, so I do that. For the 'while' loops, I ended up adding an otherwise useless comparison with zero, which unfortunately makes the code a little uglied. Signed-off-by: Arnd Bergmann --- drivers/media/pci/cx18/cx18-ioctl.c | 6 ++++-- drivers/media/pci/saa7146/mxb.c | 5 +++-- drivers/media/platform/atmel/atmel-isc.c | 4 ++-- drivers/media/platform/atmel/atmel-isi.c | 4 ++-- drivers/media/platform/blackfin/bfin_capture.c | 4 ++-- drivers/media/platform/omap3isp/ispccdc.c | 5 +++-- drivers/media/platform/pxa_camera.c | 3 ++- drivers/media/platform/rcar-vin/rcar-core.c | 2 +- drivers/media/platform/rcar-vin/rcar-dma.c | 4 +++- drivers/media/platform/soc_camera/soc_camera.c | 4 ++-- drivers/media/platform/stm32/stm32-dcmi.c | 4 ++-- drivers/media/platform/ti-vpe/cal.c | 6 ++++-- drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c | 13 +++++++------ 13 files changed, 37 insertions(+), 27 deletions(-) diff --git a/drivers/media/pci/cx18/cx18-ioctl.c b/drivers/media/pci/cx18/cx18-ioctl.c index 80b902b12a78..1803f28fc501 100644 --- a/drivers/media/pci/cx18/cx18-ioctl.c +++ b/drivers/media/pci/cx18/cx18-ioctl.c @@ -188,6 +188,7 @@ static int cx18_g_fmt_sliced_vbi_cap(struct file *file, void *fh, { struct cx18 *cx = fh2id(fh)->cx; struct v4l2_sliced_vbi_format *vbifmt = &fmt->fmt.sliced; + int ret; /* sane, V4L2 spec compliant, defaults */ vbifmt->reserved[0] = 0; @@ -201,8 +202,9 @@ static int cx18_g_fmt_sliced_vbi_cap(struct file *file, void *fh, * digitizer/slicer. Note, cx18_av_vbi() wipes the passed in * fmt->fmt.sliced under valid calling conditions */ - if (v4l2_subdev_call(cx->sd_av, vbi, g_sliced_fmt, &fmt->fmt.sliced)) - return -EINVAL; + ret = v4l2_subdev_call(cx->sd_av, vbi, g_sliced_fmt, &fmt->fmt.sliced); + if (ret) + return ret; vbifmt->service_set = cx18_get_service_set(vbifmt); return 0; diff --git a/drivers/media/pci/saa7146/mxb.c b/drivers/media/pci/saa7146/mxb.c index 504d78807639..d2d843c38579 100644 --- a/drivers/media/pci/saa7146/mxb.c +++ b/drivers/media/pci/saa7146/mxb.c @@ -525,8 +525,9 @@ static int vidioc_s_input(struct file *file, void *fh, unsigned int input) return err; /* switch video in saa7111a */ - if (saa7111a_call(mxb, video, s_routing, i, SAA7111_FMT_CCIR, 0)) - pr_err("VIDIOC_S_INPUT: could not address saa7111a\n"); + err = saa7111a_call(mxb, video, s_routing, i, SAA7111_FMT_CCIR, 0); + if (err) + pr_err("VIDIOC_S_INPUT: could not address saa7111a: %d\n", err); mxb->cur_audinput = video_audio_connect[input]; /* switch the audio-source only if necessary */ diff --git a/drivers/media/platform/atmel/atmel-isc.c b/drivers/media/platform/atmel/atmel-isc.c index d6534252cdcd..704b34a0cc00 100644 --- a/drivers/media/platform/atmel/atmel-isc.c +++ b/drivers/media/platform/atmel/atmel-isc.c @@ -1475,8 +1475,8 @@ static int isc_formats_init(struct isc_device *isc) fmt++; } - while (!v4l2_subdev_call(subdev, pad, enum_mbus_code, - NULL, &mbus_code)) { + while (v4l2_subdev_call(subdev, pad, enum_mbus_code, + NULL, &mbus_code) == 0) { mbus_code.index++; fmt = find_format_by_code(mbus_code.code, &i); if (!fmt) diff --git a/drivers/media/platform/atmel/atmel-isi.c b/drivers/media/platform/atmel/atmel-isi.c index 891fa2505efa..30b7e6f298ed 100644 --- a/drivers/media/platform/atmel/atmel-isi.c +++ b/drivers/media/platform/atmel/atmel-isi.c @@ -1013,8 +1013,8 @@ static int isi_formats_init(struct atmel_isi *isi) .which = V4L2_SUBDEV_FORMAT_ACTIVE, }; - while (!v4l2_subdev_call(subdev, pad, enum_mbus_code, - NULL, &mbus_code)) { + while (v4l2_subdev_call(subdev, pad, enum_mbus_code, + NULL, &mbus_code) == 0) { for (i = 0; i < ARRAY_SIZE(isi_formats); i++) { if (isi_formats[i].mbus_code != mbus_code.code) continue; diff --git a/drivers/media/platform/blackfin/bfin_capture.c b/drivers/media/platform/blackfin/bfin_capture.c index 1c5166df46f5..864c98f21a0e 100644 --- a/drivers/media/platform/blackfin/bfin_capture.c +++ b/drivers/media/platform/blackfin/bfin_capture.c @@ -157,8 +157,8 @@ static int bcap_init_sensor_formats(struct bcap_device *bcap_dev) unsigned int num_formats = 0; int i, j; - while (!v4l2_subdev_call(bcap_dev->sd, pad, - enum_mbus_code, NULL, &code)) { + while (v4l2_subdev_call(bcap_dev->sd, pad, + enum_mbus_code, NULL, &code) == 0) { num_formats++; code.index++; } diff --git a/drivers/media/platform/omap3isp/ispccdc.c b/drivers/media/platform/omap3isp/ispccdc.c index 7207558d722c..a94157461f58 100644 --- a/drivers/media/platform/omap3isp/ispccdc.c +++ b/drivers/media/platform/omap3isp/ispccdc.c @@ -1132,6 +1132,7 @@ static void ccdc_configure(struct isp_ccdc_device *ccdc) unsigned int sph; u32 syn_mode; u32 ccdc_pattern; + int ret; ccdc->bt656 = false; ccdc->fields = 0; @@ -1140,7 +1141,6 @@ static void ccdc_configure(struct isp_ccdc_device *ccdc) sensor = media_entity_to_v4l2_subdev(pad->entity); if (ccdc->input == CCDC_INPUT_PARALLEL) { struct v4l2_mbus_config cfg; - int ret; ret = v4l2_subdev_call(sensor, video, g_mbus_config, &cfg); if (!ret) @@ -1158,7 +1158,8 @@ static void ccdc_configure(struct isp_ccdc_device *ccdc) */ fmt_src.pad = pad->index; fmt_src.which = V4L2_SUBDEV_FORMAT_ACTIVE; - if (!v4l2_subdev_call(sensor, pad, get_fmt, NULL, &fmt_src)) { + ret = v4l2_subdev_call(sensor, pad, get_fmt, NULL, &fmt_src); + if (!ret) { fmt_info = omap3isp_video_format_info(fmt_src.format.code); depth_in = fmt_info->width; } diff --git a/drivers/media/platform/pxa_camera.c b/drivers/media/platform/pxa_camera.c index 399095170b6e..5236c7b171ea 100644 --- a/drivers/media/platform/pxa_camera.c +++ b/drivers/media/platform/pxa_camera.c @@ -763,7 +763,8 @@ static struct soc_camera_format_xlate *pxa_mbus_build_fmts_xlate( }; struct soc_camera_format_xlate *user_formats; - while (!v4l2_subdev_call(subdev, pad, enum_mbus_code, NULL, &code)) { + while (v4l2_subdev_call(subdev, pad, enum_mbus_code, NULL, &code) == + 0) { raw_fmts++; code.index++; } diff --git a/drivers/media/platform/rcar-vin/rcar-core.c b/drivers/media/platform/rcar-vin/rcar-core.c index 77dff047c41c..a41f4a3d9b69 100644 --- a/drivers/media/platform/rcar-vin/rcar-core.c +++ b/drivers/media/platform/rcar-vin/rcar-core.c @@ -54,7 +54,7 @@ static bool rvin_mbus_supported(struct rvin_graph_entity *entity) code.index = 0; code.pad = entity->source_pad; - while (!v4l2_subdev_call(sd, pad, enum_mbus_code, NULL, &code)) { + while (v4l2_subdev_call(sd, pad, enum_mbus_code, NULL, &code) == 0) { code.index++; switch (code.code) { case MEDIA_BUS_FMT_YUYV8_1X16: diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c index b136844499f6..ee16e9886041 100644 --- a/drivers/media/platform/rcar-vin/rcar-dma.c +++ b/drivers/media/platform/rcar-vin/rcar-dma.c @@ -143,6 +143,7 @@ static int rvin_setup(struct rvin_dev *vin) u32 vnmc, dmr, dmr2, interrupts; v4l2_std_id std; bool progressive = false, output_is_yuv = false, input_is_yuv = false; + int ret; switch (vin->format.field) { case V4L2_FIELD_TOP: @@ -155,7 +156,8 @@ static int rvin_setup(struct rvin_dev *vin) /* Default to TB */ vnmc = VNMC_IM_FULL; /* Use BT if video standard can be read and is 60 Hz format */ - if (!v4l2_subdev_call(vin_to_source(vin), video, g_std, &std)) { + ret = v4l2_subdev_call(vin_to_source(vin), video, g_std, &std); + if (ret) { if (std & V4L2_STD_525_60) vnmc = VNMC_IM_FULL | VNMC_FOC; } diff --git a/drivers/media/platform/soc_camera/soc_camera.c b/drivers/media/platform/soc_camera/soc_camera.c index 45a0429d75bb..3ef648fc2db6 100644 --- a/drivers/media/platform/soc_camera/soc_camera.c +++ b/drivers/media/platform/soc_camera/soc_camera.c @@ -454,7 +454,7 @@ static int soc_camera_init_user_formats(struct soc_camera_device *icd) .which = V4L2_SUBDEV_FORMAT_ACTIVE, }; - while (!v4l2_subdev_call(sd, pad, enum_mbus_code, NULL, &code)) { + while (v4l2_subdev_call(sd, pad, enum_mbus_code, NULL, &code) == 0) { raw_fmts++; code.index++; } @@ -1202,7 +1202,7 @@ static int soc_camera_probe_finish(struct soc_camera_device *icd) goto evidstart; /* Try to improve our guess of a reasonable window format */ - if (!v4l2_subdev_call(sd, pad, get_fmt, NULL, &fmt)) { + if (v4l2_subdev_call(sd, pad, get_fmt, NULL, &fmt) == 0) { icd->user_width = mf->width; icd->user_height = mf->height; icd->colorspace = mf->colorspace; diff --git a/drivers/media/platform/stm32/stm32-dcmi.c b/drivers/media/platform/stm32/stm32-dcmi.c index 83d32a5d0f40..96084dfd5d11 100644 --- a/drivers/media/platform/stm32/stm32-dcmi.c +++ b/drivers/media/platform/stm32/stm32-dcmi.c @@ -1034,8 +1034,8 @@ static int dcmi_formats_init(struct stm32_dcmi *dcmi) .which = V4L2_SUBDEV_FORMAT_ACTIVE, }; - while (!v4l2_subdev_call(subdev, pad, enum_mbus_code, - NULL, &mbus_code)) { + while (v4l2_subdev_call(subdev, pad, enum_mbus_code, + NULL, &mbus_code) == 0) { for (i = 0; i < ARRAY_SIZE(dcmi_formats); i++) { if (dcmi_formats[i].mbus_code != mbus_code.code) continue; diff --git a/drivers/media/platform/ti-vpe/cal.c b/drivers/media/platform/ti-vpe/cal.c index 177faa36bc16..df0216a6367c 100644 --- a/drivers/media/platform/ti-vpe/cal.c +++ b/drivers/media/platform/ti-vpe/cal.c @@ -1348,9 +1348,11 @@ static void cal_stop_streaming(struct vb2_queue *vq) struct cal_dmaqueue *dma_q = &ctx->vidq; struct cal_buffer *buf, *tmp; unsigned long flags; + int ret; - if (v4l2_subdev_call(ctx->sensor, video, s_stream, 0)) - ctx_err(ctx, "stream off failed in subdev\n"); + ret = v4l2_subdev_call(ctx->sensor, video, s_stream, 0); + if (ret) + ctx_err(ctx, "stream off failed in subdev: %d\n", ret); csi2_ppi_disable(ctx); disable_irqs(ctx); diff --git a/drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c b/drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c index 97093baf28ac..fe56a037f065 100644 --- a/drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c +++ b/drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c @@ -6405,19 +6405,20 @@ int atomisp_s_ae_window(struct atomisp_sub_device *asd, struct atomisp_device *isp = asd->isp; /* Coverity CID 298071 - initialzize struct */ struct v4l2_subdev_selection sel = { 0 }; + int ret; sel.r.left = arg->x_left; sel.r.top = arg->y_top; sel.r.width = arg->x_right - arg->x_left + 1; sel.r.height = arg->y_bottom - arg->y_top + 1; - if (v4l2_subdev_call(isp->inputs[asd->input_curr].camera, - pad, set_selection, NULL, &sel)) { - dev_err(isp->dev, "failed to call sensor set_selection.\n"); - return -EINVAL; - } + ret = v4l2_subdev_call(isp->inputs[asd->input_curr].camera, + pad, set_selection, NULL, &sel); + if (ret) + dev_err(isp->dev, "failed to call sensor set_selection: %d\n", + ret); - return 0; + return ret; } int atomisp_flash_enable(struct atomisp_sub_device *asd, int num_frames) -- 2.9.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: arnd@arndb.de (Arnd Bergmann) Date: Fri, 14 Jul 2017 11:36:56 +0200 Subject: [PATCH 14/14] [media] fix warning on v4l2_subdev_call() result interpreted as bool In-Reply-To: <20170714092540.1217397-1-arnd@arndb.de> References: <20170714092540.1217397-1-arnd@arndb.de> Message-ID: <20170714093938.1469319-1-arnd@arndb.de> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org v4l2_subdev_call is a macro returning whatever the callback return type is, usually 'int'. With gcc-7 and ccache, this can lead to many wanings like: media/platform/pxa_camera.c: In function 'pxa_mbus_build_fmts_xlate': media/platform/pxa_camera.c:766:27: error: ?: using integer constants in boolean context [-Werror=int-in-bool-context] while (!v4l2_subdev_call(subdev, pad, enum_mbus_code, NULL, &code)) { media/atomisp/pci/atomisp2/atomisp_cmd.c: In function 'atomisp_s_ae_window': media/atomisp/pci/atomisp2/atomisp_cmd.c:6414:52: error: ?: using integer constants in boolean context [-Werror=int-in-bool-context] if (v4l2_subdev_call(isp->inputs[asd->input_curr].camera, The best workaround I could come up with is to change all the callers that use the return code from v4l2_subdev_call() in an 'if' or 'while' condition. In case of simple 'if' checks, adding a temporary variable is usually ok, and sometimes this can be used to propagate or print an error code, so I do that. For the 'while' loops, I ended up adding an otherwise useless comparison with zero, which unfortunately makes the code a little uglied. Signed-off-by: Arnd Bergmann --- drivers/media/pci/cx18/cx18-ioctl.c | 6 ++++-- drivers/media/pci/saa7146/mxb.c | 5 +++-- drivers/media/platform/atmel/atmel-isc.c | 4 ++-- drivers/media/platform/atmel/atmel-isi.c | 4 ++-- drivers/media/platform/blackfin/bfin_capture.c | 4 ++-- drivers/media/platform/omap3isp/ispccdc.c | 5 +++-- drivers/media/platform/pxa_camera.c | 3 ++- drivers/media/platform/rcar-vin/rcar-core.c | 2 +- drivers/media/platform/rcar-vin/rcar-dma.c | 4 +++- drivers/media/platform/soc_camera/soc_camera.c | 4 ++-- drivers/media/platform/stm32/stm32-dcmi.c | 4 ++-- drivers/media/platform/ti-vpe/cal.c | 6 ++++-- drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c | 13 +++++++------ 13 files changed, 37 insertions(+), 27 deletions(-) diff --git a/drivers/media/pci/cx18/cx18-ioctl.c b/drivers/media/pci/cx18/cx18-ioctl.c index 80b902b12a78..1803f28fc501 100644 --- a/drivers/media/pci/cx18/cx18-ioctl.c +++ b/drivers/media/pci/cx18/cx18-ioctl.c @@ -188,6 +188,7 @@ static int cx18_g_fmt_sliced_vbi_cap(struct file *file, void *fh, { struct cx18 *cx = fh2id(fh)->cx; struct v4l2_sliced_vbi_format *vbifmt = &fmt->fmt.sliced; + int ret; /* sane, V4L2 spec compliant, defaults */ vbifmt->reserved[0] = 0; @@ -201,8 +202,9 @@ static int cx18_g_fmt_sliced_vbi_cap(struct file *file, void *fh, * digitizer/slicer. Note, cx18_av_vbi() wipes the passed in * fmt->fmt.sliced under valid calling conditions */ - if (v4l2_subdev_call(cx->sd_av, vbi, g_sliced_fmt, &fmt->fmt.sliced)) - return -EINVAL; + ret = v4l2_subdev_call(cx->sd_av, vbi, g_sliced_fmt, &fmt->fmt.sliced); + if (ret) + return ret; vbifmt->service_set = cx18_get_service_set(vbifmt); return 0; diff --git a/drivers/media/pci/saa7146/mxb.c b/drivers/media/pci/saa7146/mxb.c index 504d78807639..d2d843c38579 100644 --- a/drivers/media/pci/saa7146/mxb.c +++ b/drivers/media/pci/saa7146/mxb.c @@ -525,8 +525,9 @@ static int vidioc_s_input(struct file *file, void *fh, unsigned int input) return err; /* switch video in saa7111a */ - if (saa7111a_call(mxb, video, s_routing, i, SAA7111_FMT_CCIR, 0)) - pr_err("VIDIOC_S_INPUT: could not address saa7111a\n"); + err = saa7111a_call(mxb, video, s_routing, i, SAA7111_FMT_CCIR, 0); + if (err) + pr_err("VIDIOC_S_INPUT: could not address saa7111a: %d\n", err); mxb->cur_audinput = video_audio_connect[input]; /* switch the audio-source only if necessary */ diff --git a/drivers/media/platform/atmel/atmel-isc.c b/drivers/media/platform/atmel/atmel-isc.c index d6534252cdcd..704b34a0cc00 100644 --- a/drivers/media/platform/atmel/atmel-isc.c +++ b/drivers/media/platform/atmel/atmel-isc.c @@ -1475,8 +1475,8 @@ static int isc_formats_init(struct isc_device *isc) fmt++; } - while (!v4l2_subdev_call(subdev, pad, enum_mbus_code, - NULL, &mbus_code)) { + while (v4l2_subdev_call(subdev, pad, enum_mbus_code, + NULL, &mbus_code) == 0) { mbus_code.index++; fmt = find_format_by_code(mbus_code.code, &i); if (!fmt) diff --git a/drivers/media/platform/atmel/atmel-isi.c b/drivers/media/platform/atmel/atmel-isi.c index 891fa2505efa..30b7e6f298ed 100644 --- a/drivers/media/platform/atmel/atmel-isi.c +++ b/drivers/media/platform/atmel/atmel-isi.c @@ -1013,8 +1013,8 @@ static int isi_formats_init(struct atmel_isi *isi) .which = V4L2_SUBDEV_FORMAT_ACTIVE, }; - while (!v4l2_subdev_call(subdev, pad, enum_mbus_code, - NULL, &mbus_code)) { + while (v4l2_subdev_call(subdev, pad, enum_mbus_code, + NULL, &mbus_code) == 0) { for (i = 0; i < ARRAY_SIZE(isi_formats); i++) { if (isi_formats[i].mbus_code != mbus_code.code) continue; diff --git a/drivers/media/platform/blackfin/bfin_capture.c b/drivers/media/platform/blackfin/bfin_capture.c index 1c5166df46f5..864c98f21a0e 100644 --- a/drivers/media/platform/blackfin/bfin_capture.c +++ b/drivers/media/platform/blackfin/bfin_capture.c @@ -157,8 +157,8 @@ static int bcap_init_sensor_formats(struct bcap_device *bcap_dev) unsigned int num_formats = 0; int i, j; - while (!v4l2_subdev_call(bcap_dev->sd, pad, - enum_mbus_code, NULL, &code)) { + while (v4l2_subdev_call(bcap_dev->sd, pad, + enum_mbus_code, NULL, &code) == 0) { num_formats++; code.index++; } diff --git a/drivers/media/platform/omap3isp/ispccdc.c b/drivers/media/platform/omap3isp/ispccdc.c index 7207558d722c..a94157461f58 100644 --- a/drivers/media/platform/omap3isp/ispccdc.c +++ b/drivers/media/platform/omap3isp/ispccdc.c @@ -1132,6 +1132,7 @@ static void ccdc_configure(struct isp_ccdc_device *ccdc) unsigned int sph; u32 syn_mode; u32 ccdc_pattern; + int ret; ccdc->bt656 = false; ccdc->fields = 0; @@ -1140,7 +1141,6 @@ static void ccdc_configure(struct isp_ccdc_device *ccdc) sensor = media_entity_to_v4l2_subdev(pad->entity); if (ccdc->input == CCDC_INPUT_PARALLEL) { struct v4l2_mbus_config cfg; - int ret; ret = v4l2_subdev_call(sensor, video, g_mbus_config, &cfg); if (!ret) @@ -1158,7 +1158,8 @@ static void ccdc_configure(struct isp_ccdc_device *ccdc) */ fmt_src.pad = pad->index; fmt_src.which = V4L2_SUBDEV_FORMAT_ACTIVE; - if (!v4l2_subdev_call(sensor, pad, get_fmt, NULL, &fmt_src)) { + ret = v4l2_subdev_call(sensor, pad, get_fmt, NULL, &fmt_src); + if (!ret) { fmt_info = omap3isp_video_format_info(fmt_src.format.code); depth_in = fmt_info->width; } diff --git a/drivers/media/platform/pxa_camera.c b/drivers/media/platform/pxa_camera.c index 399095170b6e..5236c7b171ea 100644 --- a/drivers/media/platform/pxa_camera.c +++ b/drivers/media/platform/pxa_camera.c @@ -763,7 +763,8 @@ static struct soc_camera_format_xlate *pxa_mbus_build_fmts_xlate( }; struct soc_camera_format_xlate *user_formats; - while (!v4l2_subdev_call(subdev, pad, enum_mbus_code, NULL, &code)) { + while (v4l2_subdev_call(subdev, pad, enum_mbus_code, NULL, &code) == + 0) { raw_fmts++; code.index++; } diff --git a/drivers/media/platform/rcar-vin/rcar-core.c b/drivers/media/platform/rcar-vin/rcar-core.c index 77dff047c41c..a41f4a3d9b69 100644 --- a/drivers/media/platform/rcar-vin/rcar-core.c +++ b/drivers/media/platform/rcar-vin/rcar-core.c @@ -54,7 +54,7 @@ static bool rvin_mbus_supported(struct rvin_graph_entity *entity) code.index = 0; code.pad = entity->source_pad; - while (!v4l2_subdev_call(sd, pad, enum_mbus_code, NULL, &code)) { + while (v4l2_subdev_call(sd, pad, enum_mbus_code, NULL, &code) == 0) { code.index++; switch (code.code) { case MEDIA_BUS_FMT_YUYV8_1X16: diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c index b136844499f6..ee16e9886041 100644 --- a/drivers/media/platform/rcar-vin/rcar-dma.c +++ b/drivers/media/platform/rcar-vin/rcar-dma.c @@ -143,6 +143,7 @@ static int rvin_setup(struct rvin_dev *vin) u32 vnmc, dmr, dmr2, interrupts; v4l2_std_id std; bool progressive = false, output_is_yuv = false, input_is_yuv = false; + int ret; switch (vin->format.field) { case V4L2_FIELD_TOP: @@ -155,7 +156,8 @@ static int rvin_setup(struct rvin_dev *vin) /* Default to TB */ vnmc = VNMC_IM_FULL; /* Use BT if video standard can be read and is 60 Hz format */ - if (!v4l2_subdev_call(vin_to_source(vin), video, g_std, &std)) { + ret = v4l2_subdev_call(vin_to_source(vin), video, g_std, &std); + if (ret) { if (std & V4L2_STD_525_60) vnmc = VNMC_IM_FULL | VNMC_FOC; } diff --git a/drivers/media/platform/soc_camera/soc_camera.c b/drivers/media/platform/soc_camera/soc_camera.c index 45a0429d75bb..3ef648fc2db6 100644 --- a/drivers/media/platform/soc_camera/soc_camera.c +++ b/drivers/media/platform/soc_camera/soc_camera.c @@ -454,7 +454,7 @@ static int soc_camera_init_user_formats(struct soc_camera_device *icd) .which = V4L2_SUBDEV_FORMAT_ACTIVE, }; - while (!v4l2_subdev_call(sd, pad, enum_mbus_code, NULL, &code)) { + while (v4l2_subdev_call(sd, pad, enum_mbus_code, NULL, &code) == 0) { raw_fmts++; code.index++; } @@ -1202,7 +1202,7 @@ static int soc_camera_probe_finish(struct soc_camera_device *icd) goto evidstart; /* Try to improve our guess of a reasonable window format */ - if (!v4l2_subdev_call(sd, pad, get_fmt, NULL, &fmt)) { + if (v4l2_subdev_call(sd, pad, get_fmt, NULL, &fmt) == 0) { icd->user_width = mf->width; icd->user_height = mf->height; icd->colorspace = mf->colorspace; diff --git a/drivers/media/platform/stm32/stm32-dcmi.c b/drivers/media/platform/stm32/stm32-dcmi.c index 83d32a5d0f40..96084dfd5d11 100644 --- a/drivers/media/platform/stm32/stm32-dcmi.c +++ b/drivers/media/platform/stm32/stm32-dcmi.c @@ -1034,8 +1034,8 @@ static int dcmi_formats_init(struct stm32_dcmi *dcmi) .which = V4L2_SUBDEV_FORMAT_ACTIVE, }; - while (!v4l2_subdev_call(subdev, pad, enum_mbus_code, - NULL, &mbus_code)) { + while (v4l2_subdev_call(subdev, pad, enum_mbus_code, + NULL, &mbus_code) == 0) { for (i = 0; i < ARRAY_SIZE(dcmi_formats); i++) { if (dcmi_formats[i].mbus_code != mbus_code.code) continue; diff --git a/drivers/media/platform/ti-vpe/cal.c b/drivers/media/platform/ti-vpe/cal.c index 177faa36bc16..df0216a6367c 100644 --- a/drivers/media/platform/ti-vpe/cal.c +++ b/drivers/media/platform/ti-vpe/cal.c @@ -1348,9 +1348,11 @@ static void cal_stop_streaming(struct vb2_queue *vq) struct cal_dmaqueue *dma_q = &ctx->vidq; struct cal_buffer *buf, *tmp; unsigned long flags; + int ret; - if (v4l2_subdev_call(ctx->sensor, video, s_stream, 0)) - ctx_err(ctx, "stream off failed in subdev\n"); + ret = v4l2_subdev_call(ctx->sensor, video, s_stream, 0); + if (ret) + ctx_err(ctx, "stream off failed in subdev: %d\n", ret); csi2_ppi_disable(ctx); disable_irqs(ctx); diff --git a/drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c b/drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c index 97093baf28ac..fe56a037f065 100644 --- a/drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c +++ b/drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c @@ -6405,19 +6405,20 @@ int atomisp_s_ae_window(struct atomisp_sub_device *asd, struct atomisp_device *isp = asd->isp; /* Coverity CID 298071 - initialzize struct */ struct v4l2_subdev_selection sel = { 0 }; + int ret; sel.r.left = arg->x_left; sel.r.top = arg->y_top; sel.r.width = arg->x_right - arg->x_left + 1; sel.r.height = arg->y_bottom - arg->y_top + 1; - if (v4l2_subdev_call(isp->inputs[asd->input_curr].camera, - pad, set_selection, NULL, &sel)) { - dev_err(isp->dev, "failed to call sensor set_selection.\n"); - return -EINVAL; - } + ret = v4l2_subdev_call(isp->inputs[asd->input_curr].camera, + pad, set_selection, NULL, &sel); + if (ret) + dev_err(isp->dev, "failed to call sensor set_selection: %d\n", + ret); - return 0; + return ret; } int atomisp_flash_enable(struct atomisp_sub_device *asd, int num_frames) -- 2.9.0