From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from lb3-smtp-cloud6.xs4all.net ([194.109.24.31]:33643 "EHLO lb3-smtp-cloud6.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753583AbdC2Pou (ORCPT ); Wed, 29 Mar 2017 11:44:50 -0400 Subject: [PATCHv5.1 03/11] cec: integrate CEC notifier support To: linux-media@vger.kernel.org References: <20170329141543.32935-1-hverkuil@xs4all.nl> <20170329141543.32935-4-hverkuil@xs4all.nl> Cc: Daniel Vetter , Russell King , dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Inki Dae , Marek Szyprowski , Javier Martinez Canillas , Benjamin Gaignard , Hans Verkuil From: Hans Verkuil Message-ID: Date: Wed, 29 Mar 2017 17:44:44 +0200 MIME-Version: 1.0 In-Reply-To: <20170329141543.32935-4-hverkuil@xs4all.nl> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-media-owner@vger.kernel.org List-ID: Support the CEC notifier framework, simplifying drivers that depend on this. Signed-off-by: Hans Verkuil Tested-by: Marek Szyprowski --- Accidentally removed adap->notifier causing this to fail. Fixed this stupid mistake. --- drivers/media/cec/cec-core.c | 22 ++++++++++++++++++++++ include/media/cec.h | 10 ++++++++++ 2 files changed, 32 insertions(+) diff --git a/drivers/media/cec/cec-core.c b/drivers/media/cec/cec-core.c index 37217e205040..e5070b374276 100644 --- a/drivers/media/cec/cec-core.c +++ b/drivers/media/cec/cec-core.c @@ -195,6 +195,24 @@ static void cec_devnode_unregister(struct cec_devnode *devnode) put_device(&devnode->dev); } +#ifdef CONFIG_MEDIA_CEC_NOTIFIER +static void cec_cec_notify(struct cec_adapter *adap, u16 pa) +{ + cec_s_phys_addr(adap, pa, false); +} + +void cec_register_cec_notifier(struct cec_adapter *adap, + struct cec_notifier *notifier) +{ + if (WARN_ON(!adap->devnode.registered)) + return; + + adap->notifier = notifier; + cec_notifier_register(adap->notifier, adap, cec_cec_notify); +} +EXPORT_SYMBOL_GPL(cec_register_cec_notifier); +#endif + struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops, void *priv, const char *name, u32 caps, u8 available_las) @@ -343,6 +361,10 @@ void cec_unregister_adapter(struct cec_adapter *adap) adap->rc = NULL; #endif debugfs_remove_recursive(adap->cec_dir); +#ifdef CONFIG_MEDIA_CEC_NOTIFIER + if (adap->notifier) + cec_notifier_unregister(adap->notifier); +#endif cec_devnode_unregister(&adap->devnode); } EXPORT_SYMBOL_GPL(cec_unregister_adapter); diff --git a/include/media/cec.h b/include/media/cec.h index 96a0aa770d61..307f5dcaf034 100644 --- a/include/media/cec.h +++ b/include/media/cec.h @@ -30,6 +30,7 @@ #include #include #include +#include /** * struct cec_devnode - cec device node @@ -173,6 +174,10 @@ struct cec_adapter { bool passthrough; struct cec_log_addrs log_addrs; +#ifdef CONFIG_MEDIA_CEC_NOTIFIER + struct cec_notifier *notifier; +#endif + struct dentry *cec_dir; struct dentry *status_file; @@ -213,6 +218,11 @@ void cec_transmit_done(struct cec_adapter *adap, u8 status, u8 arb_lost_cnt, u8 nack_cnt, u8 low_drive_cnt, u8 error_cnt); void cec_received_msg(struct cec_adapter *adap, struct cec_msg *msg); +#ifdef CONFIG_MEDIA_CEC_NOTIFIER +void cec_register_cec_notifier(struct cec_adapter *adap, + struct cec_notifier *notifier); +#endif + #else static inline int cec_register_adapter(struct cec_adapter *adap, -- 2.11.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans Verkuil Subject: [PATCHv5.1 03/11] cec: integrate CEC notifier support Date: Wed, 29 Mar 2017 17:44:44 +0200 Message-ID: References: <20170329141543.32935-1-hverkuil@xs4all.nl> <20170329141543.32935-4-hverkuil@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170329141543.32935-4-hverkuil@xs4all.nl> 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: linux-samsung-soc@vger.kernel.org, Russell King , Krzysztof Kozlowski , Javier Martinez Canillas , Hans Verkuil , dri-devel@lists.freedesktop.org, Daniel Vetter , Marek Szyprowski List-Id: linux-samsung-soc@vger.kernel.org U3VwcG9ydCB0aGUgQ0VDIG5vdGlmaWVyIGZyYW1ld29yaywgc2ltcGxpZnlpbmcgZHJpdmVycyB0 aGF0CmRlcGVuZCBvbiB0aGlzLgoKU2lnbmVkLW9mZi1ieTogSGFucyBWZXJrdWlsIDxoYW5zLnZl cmt1aWxAY2lzY28uY29tPgpUZXN0ZWQtYnk6IE1hcmVrIFN6eXByb3dza2kgPG0uc3p5cHJvd3Nr aUBzYW1zdW5nLmNvbT4KLS0tCkFjY2lkZW50YWxseSByZW1vdmVkIGFkYXAtPm5vdGlmaWVyIGNh dXNpbmcgdGhpcyB0byBmYWlsLiBGaXhlZCB0aGlzCnN0dXBpZCBtaXN0YWtlLgotLS0KIGRyaXZl cnMvbWVkaWEvY2VjL2NlYy1jb3JlLmMgfCAyMiArKysrKysrKysrKysrKysrKysrKysrCiBpbmNs dWRlL21lZGlhL2NlYy5oICAgICAgICAgIHwgMTAgKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2Vk LCAzMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9jZWMvY2VjLWNv cmUuYyBiL2RyaXZlcnMvbWVkaWEvY2VjL2NlYy1jb3JlLmMKaW5kZXggMzcyMTdlMjA1MDQwLi5l NTA3MGIzNzQyNzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvY2VjL2NlYy1jb3JlLmMKKysr IGIvZHJpdmVycy9tZWRpYS9jZWMvY2VjLWNvcmUuYwpAQCAtMTk1LDYgKzE5NSwyNCBAQCBzdGF0 aWMgdm9pZCBjZWNfZGV2bm9kZV91bnJlZ2lzdGVyKHN0cnVjdCBjZWNfZGV2bm9kZSAqZGV2bm9k ZSkKIAlwdXRfZGV2aWNlKCZkZXZub2RlLT5kZXYpOwogfQoKKyNpZmRlZiBDT05GSUdfTUVESUFf Q0VDX05PVElGSUVSCitzdGF0aWMgdm9pZCBjZWNfY2VjX25vdGlmeShzdHJ1Y3QgY2VjX2FkYXB0 ZXIgKmFkYXAsIHUxNiBwYSkKK3sKKwljZWNfc19waHlzX2FkZHIoYWRhcCwgcGEsIGZhbHNlKTsK K30KKwordm9pZCBjZWNfcmVnaXN0ZXJfY2VjX25vdGlmaWVyKHN0cnVjdCBjZWNfYWRhcHRlciAq YWRhcCwKKwkJCSAgICAgICBzdHJ1Y3QgY2VjX25vdGlmaWVyICpub3RpZmllcikKK3sKKwlpZiAo V0FSTl9PTighYWRhcC0+ZGV2bm9kZS5yZWdpc3RlcmVkKSkKKwkJcmV0dXJuOworCisJYWRhcC0+ bm90aWZpZXIgPSBub3RpZmllcjsKKwljZWNfbm90aWZpZXJfcmVnaXN0ZXIoYWRhcC0+bm90aWZp ZXIsIGFkYXAsIGNlY19jZWNfbm90aWZ5KTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGNlY19yZWdp c3Rlcl9jZWNfbm90aWZpZXIpOworI2VuZGlmCisKIHN0cnVjdCBjZWNfYWRhcHRlciAqY2VjX2Fs bG9jYXRlX2FkYXB0ZXIoY29uc3Qgc3RydWN0IGNlY19hZGFwX29wcyAqb3BzLAogCQkJCQkgdm9p ZCAqcHJpdiwgY29uc3QgY2hhciAqbmFtZSwgdTMyIGNhcHMsCiAJCQkJCSB1OCBhdmFpbGFibGVf bGFzKQpAQCAtMzQzLDYgKzM2MSwxMCBAQCB2b2lkIGNlY191bnJlZ2lzdGVyX2FkYXB0ZXIoc3Ry dWN0IGNlY19hZGFwdGVyICphZGFwKQogCWFkYXAtPnJjID0gTlVMTDsKICNlbmRpZgogCWRlYnVn ZnNfcmVtb3ZlX3JlY3Vyc2l2ZShhZGFwLT5jZWNfZGlyKTsKKyNpZmRlZiBDT05GSUdfTUVESUFf Q0VDX05PVElGSUVSCisJaWYgKGFkYXAtPm5vdGlmaWVyKQorCQljZWNfbm90aWZpZXJfdW5yZWdp c3RlcihhZGFwLT5ub3RpZmllcik7CisjZW5kaWYKIAljZWNfZGV2bm9kZV91bnJlZ2lzdGVyKCZh ZGFwLT5kZXZub2RlKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGNlY191bnJlZ2lzdGVyX2FkYXB0 ZXIpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tZWRpYS9jZWMuaCBiL2luY2x1ZGUvbWVkaWEvY2Vj LmgKaW5kZXggOTZhMGFhNzcwZDYxLi4zMDdmNWRjYWYwMzQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv bWVkaWEvY2VjLmgKKysrIGIvaW5jbHVkZS9tZWRpYS9jZWMuaApAQCAtMzAsNiArMzAsNyBAQAog I2luY2x1ZGUgPGxpbnV4L2NlYy1mdW5jcy5oPgogI2luY2x1ZGUgPG1lZGlhL3JjLWNvcmUuaD4K ICNpbmNsdWRlIDxtZWRpYS9jZWMtZWRpZC5oPgorI2luY2x1ZGUgPG1lZGlhL2NlYy1ub3RpZmll ci5oPgoKIC8qKgogICogc3RydWN0IGNlY19kZXZub2RlIC0gY2VjIGRldmljZSBub2RlCkBAIC0x NzMsNiArMTc0LDEwIEBAIHN0cnVjdCBjZWNfYWRhcHRlciB7CiAJYm9vbCBwYXNzdGhyb3VnaDsK IAlzdHJ1Y3QgY2VjX2xvZ19hZGRycyBsb2dfYWRkcnM7CgorI2lmZGVmIENPTkZJR19NRURJQV9D RUNfTk9USUZJRVIKKwlzdHJ1Y3QgY2VjX25vdGlmaWVyICpub3RpZmllcjsKKyNlbmRpZgorCiAJ c3RydWN0IGRlbnRyeSAqY2VjX2RpcjsKIAlzdHJ1Y3QgZGVudHJ5ICpzdGF0dXNfZmlsZTsKCkBA IC0yMTMsNiArMjE4LDExIEBAIHZvaWQgY2VjX3RyYW5zbWl0X2RvbmUoc3RydWN0IGNlY19hZGFw dGVyICphZGFwLCB1OCBzdGF0dXMsIHU4IGFyYl9sb3N0X2NudCwKIAkJICAgICAgIHU4IG5hY2tf Y250LCB1OCBsb3dfZHJpdmVfY250LCB1OCBlcnJvcl9jbnQpOwogdm9pZCBjZWNfcmVjZWl2ZWRf bXNnKHN0cnVjdCBjZWNfYWRhcHRlciAqYWRhcCwgc3RydWN0IGNlY19tc2cgKm1zZyk7CgorI2lm ZGVmIENPTkZJR19NRURJQV9DRUNfTk9USUZJRVIKK3ZvaWQgY2VjX3JlZ2lzdGVyX2NlY19ub3Rp ZmllcihzdHJ1Y3QgY2VjX2FkYXB0ZXIgKmFkYXAsCisJCQkgICAgICAgc3RydWN0IGNlY19ub3Rp ZmllciAqbm90aWZpZXIpOworI2VuZGlmCisKICNlbHNlCgogc3RhdGljIGlubGluZSBpbnQgY2Vj X3JlZ2lzdGVyX2FkYXB0ZXIoc3RydWN0IGNlY19hZGFwdGVyICphZGFwLAotLSAKMi4xMS4wCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==