From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3AEEDC48BE8 for ; Mon, 24 Jun 2019 16:03:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1DF2F20663 for ; Mon, 24 Jun 2019 16:03:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731505AbfFXQDq (ORCPT ); Mon, 24 Jun 2019 12:03:46 -0400 Received: from lb1-smtp-cloud7.xs4all.net ([194.109.24.24]:41047 "EHLO lb1-smtp-cloud7.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731482AbfFXQDm (ORCPT ); Mon, 24 Jun 2019 12:03:42 -0400 Received: from tschai.fritz.box ([46.9.252.75]) by smtp-cloud7.xs4all.net with ESMTPA id fRRKhHRxHF85OfRRUhZace; Mon, 24 Jun 2019 18:03:41 +0200 From: Hans Verkuil To: linux-media@vger.kernel.org Cc: Dariusz Marcinkiewicz , dri-devel@lists.freedesktop.org, Cheng-yi Chiang , Hans Verkuil Subject: [PATCHv8 12/13] tda998x: use cec_notifier_conn_(un)register Date: Mon, 24 Jun 2019 18:03:29 +0200 Message-Id: <20190624160330.38048-13-hverkuil-cisco@xs4all.nl> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190624160330.38048-1-hverkuil-cisco@xs4all.nl> References: <20190624160330.38048-1-hverkuil-cisco@xs4all.nl> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CMAE-Envelope: MS4wfOIEYMngRDIwgK74lnlvOXIt+9xy5ZfdkyY50fEwdUfHLW3a6HQUX9qOjaoewFZqmrrw97CMmILYvYcruHFXffRTdMS8h1EKdAXjyCM+KJiPP3i3kA/l qbLIqY3uC0qPtLV/o7kL0awPNFc9OKys1ntf6O23b4W7fj04WjYHw2DGvGepT6Wik/vmWq4BwiW315yaB2gGUOKXRc8N0MHw9k57P8wa91Rnj6J8J37y2RfB SONLuSvtwaGLT4XJDRjRQQmP0X9/oh3fYjonz8QEg5cTYANXwxJc9mU2sj2fXQYYNde+ac6na/uTLAwU7nBVKiVT2g5DREcVczC7BpIllgQ= Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org From: Dariusz Marcinkiewicz Use the new cec_notifier_conn_(un)register() functions to (un)register the notifier for the HDMI connector, and fill in the cec_connector_info. Signed-off-by: Dariusz Marcinkiewicz Signed-off-by: Hans Verkuil --- drivers/gpu/drm/i2c/tda998x_drv.c | 56 +++++++++++++++---------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c index 7f34601bb515..019e1f2f008c 100644 --- a/drivers/gpu/drm/i2c/tda998x_drv.c +++ b/drivers/gpu/drm/i2c/tda998x_drv.c @@ -1253,6 +1253,8 @@ static int tda998x_connector_init(struct tda998x_priv *priv, struct drm_device *drm) { struct drm_connector *connector = &priv->connector; + struct cec_connector_info conn_info; + struct i2c_board_info cec_info; int ret; connector->interlace_allowed = 1; @@ -1269,6 +1271,31 @@ static int tda998x_connector_init(struct tda998x_priv *priv, if (ret) return ret; + /* + * Some TDA998x are actually two I2C devices merged onto one piece + * of silicon: TDA9989 and TDA19989 combine the HDMI transmitter + * with a slightly modified TDA9950 CEC device. The CEC device + * is at the TDA9950 address, with the address pins strapped across + * to the TDA998x address pins. Hence, it always has the same + * offset. + */ + memset(&cec_info, 0, sizeof(cec_info)); + strlcpy(cec_info.type, "tda9950", sizeof(cec_info.type)); + cec_info.addr = priv->cec_addr; + cec_info.platform_data = &priv->cec_glue; + cec_info.irq = priv->hdmi->irq; + + priv->cec = i2c_new_device(priv->hdmi->adapter, &cec_info); + if (!priv->cec) + return -ENODEV; + + cec_fill_conn_info_from_drm(&conn_info, connector); + + priv->cec_notify = cec_notifier_conn_register(priv->cec_glue.parent, + NULL, &conn_info); + if (!priv->cec_notify) + return -ENOMEM; + drm_connector_attach_encoder(&priv->connector, priv->bridge.encoder); @@ -1651,14 +1678,13 @@ static void tda998x_destroy(struct device *dev) i2c_unregister_device(priv->cec); if (priv->cec_notify) - cec_notifier_put(priv->cec_notify); + cec_notifier_conn_unregister(priv->cec_notify); } static int tda998x_create(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); struct device_node *np = client->dev.of_node; - struct i2c_board_info cec_info; struct tda998x_priv *priv; u32 video; int rev_lo, rev_hi, ret; @@ -1776,12 +1802,6 @@ static int tda998x_create(struct device *dev) cec_write(priv, REG_CEC_RXSHPDINTENA, CEC_RXSHPDLEV_HPD); } - priv->cec_notify = cec_notifier_get(dev); - if (!priv->cec_notify) { - ret = -ENOMEM; - goto fail; - } - priv->cec_glue.parent = dev; priv->cec_glue.data = priv; priv->cec_glue.init = tda998x_cec_hook_init; @@ -1789,26 +1809,6 @@ static int tda998x_create(struct device *dev) priv->cec_glue.open = tda998x_cec_hook_open; priv->cec_glue.release = tda998x_cec_hook_release; - /* - * Some TDA998x are actually two I2C devices merged onto one piece - * of silicon: TDA9989 and TDA19989 combine the HDMI transmitter - * with a slightly modified TDA9950 CEC device. The CEC device - * is at the TDA9950 address, with the address pins strapped across - * to the TDA998x address pins. Hence, it always has the same - * offset. - */ - memset(&cec_info, 0, sizeof(cec_info)); - strlcpy(cec_info.type, "tda9950", sizeof(cec_info.type)); - cec_info.addr = priv->cec_addr; - cec_info.platform_data = &priv->cec_glue; - cec_info.irq = client->irq; - - priv->cec = i2c_new_device(client->adapter, &cec_info); - if (!priv->cec) { - ret = -ENODEV; - goto fail; - } - /* enable EDID read irq: */ reg_set(priv, REG_INT_FLAGS_2, INT_FLAGS_2_EDID_BLK_RD); -- 2.20.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans Verkuil Subject: [PATCHv8 12/13] tda998x: use cec_notifier_conn_(un)register Date: Mon, 24 Jun 2019 18:03:29 +0200 Message-ID: <20190624160330.38048-13-hverkuil-cisco@xs4all.nl> References: <20190624160330.38048-1-hverkuil-cisco@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from lb1-smtp-cloud7.xs4all.net (lb1-smtp-cloud7.xs4all.net [194.109.24.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 530FE89CCE for ; Mon, 24 Jun 2019 16:10:47 +0000 (UTC) In-Reply-To: <20190624160330.38048-1-hverkuil-cisco@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: Hans Verkuil , Dariusz Marcinkiewicz , dri-devel@lists.freedesktop.org, Cheng-yi Chiang List-Id: dri-devel@lists.freedesktop.org RnJvbTogRGFyaXVzeiBNYXJjaW5raWV3aWN6IDxkYXJla21AZ29vZ2xlLmNvbT4KClVzZSB0aGUg bmV3IGNlY19ub3RpZmllcl9jb25uXyh1bilyZWdpc3RlcigpIGZ1bmN0aW9ucyB0bwoodW4pcmVn aXN0ZXIgdGhlIG5vdGlmaWVyIGZvciB0aGUgSERNSSBjb25uZWN0b3IsIGFuZCBmaWxsIGluCnRo ZSBjZWNfY29ubmVjdG9yX2luZm8uCgpTaWduZWQtb2ZmLWJ5OiBEYXJpdXN6IE1hcmNpbmtpZXdp Y3ogPGRhcmVrbUBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBIYW5zIFZlcmt1aWwgPGh2ZXJr dWlsLWNpc2NvQHhzNGFsbC5ubD4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTJjL3RkYTk5OHhfZHJ2 LmMgfCA1NiArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MjggaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2kyYy90ZGE5OTh4X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2kyYy90ZGE5OTh4X2Ry di5jCmluZGV4IDdmMzQ2MDFiYjUxNS4uMDE5ZTFmMmYwMDhjIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTJjL3RkYTk5OHhfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2kyYy90ZGE5 OTh4X2Rydi5jCkBAIC0xMjUzLDYgKzEyNTMsOCBAQCBzdGF0aWMgaW50IHRkYTk5OHhfY29ubmVj dG9yX2luaXQoc3RydWN0IHRkYTk5OHhfcHJpdiAqcHJpdiwKIAkJCQkgIHN0cnVjdCBkcm1fZGV2 aWNlICpkcm0pCiB7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZwcml2LT5j b25uZWN0b3I7CisJc3RydWN0IGNlY19jb25uZWN0b3JfaW5mbyBjb25uX2luZm87CisJc3RydWN0 IGkyY19ib2FyZF9pbmZvIGNlY19pbmZvOwogCWludCByZXQ7CiAKIAljb25uZWN0b3ItPmludGVy bGFjZV9hbGxvd2VkID0gMTsKQEAgLTEyNjksNiArMTI3MSwzMSBAQCBzdGF0aWMgaW50IHRkYTk5 OHhfY29ubmVjdG9yX2luaXQoc3RydWN0IHRkYTk5OHhfcHJpdiAqcHJpdiwKIAlpZiAocmV0KQog CQlyZXR1cm4gcmV0OwogCisJLyoKKwkgKiBTb21lIFREQTk5OHggYXJlIGFjdHVhbGx5IHR3byBJ MkMgZGV2aWNlcyBtZXJnZWQgb250byBvbmUgcGllY2UKKwkgKiBvZiBzaWxpY29uOiBUREE5OTg5 IGFuZCBUREExOTk4OSBjb21iaW5lIHRoZSBIRE1JIHRyYW5zbWl0dGVyCisJICogd2l0aCBhIHNs aWdodGx5IG1vZGlmaWVkIFREQTk5NTAgQ0VDIGRldmljZS4gIFRoZSBDRUMgZGV2aWNlCisJICog aXMgYXQgdGhlIFREQTk5NTAgYWRkcmVzcywgd2l0aCB0aGUgYWRkcmVzcyBwaW5zIHN0cmFwcGVk IGFjcm9zcworCSAqIHRvIHRoZSBUREE5OTh4IGFkZHJlc3MgcGlucy4gIEhlbmNlLCBpdCBhbHdh eXMgaGFzIHRoZSBzYW1lCisJICogb2Zmc2V0LgorCSAqLworCW1lbXNldCgmY2VjX2luZm8sIDAs IHNpemVvZihjZWNfaW5mbykpOworCXN0cmxjcHkoY2VjX2luZm8udHlwZSwgInRkYTk5NTAiLCBz aXplb2YoY2VjX2luZm8udHlwZSkpOworCWNlY19pbmZvLmFkZHIgPSBwcml2LT5jZWNfYWRkcjsK KwljZWNfaW5mby5wbGF0Zm9ybV9kYXRhID0gJnByaXYtPmNlY19nbHVlOworCWNlY19pbmZvLmly cSA9IHByaXYtPmhkbWktPmlycTsKKworCXByaXYtPmNlYyA9IGkyY19uZXdfZGV2aWNlKHByaXYt PmhkbWktPmFkYXB0ZXIsICZjZWNfaW5mbyk7CisJaWYgKCFwcml2LT5jZWMpCisJCXJldHVybiAt RU5PREVWOworCisJY2VjX2ZpbGxfY29ubl9pbmZvX2Zyb21fZHJtKCZjb25uX2luZm8sIGNvbm5l Y3Rvcik7CisKKwlwcml2LT5jZWNfbm90aWZ5ID0gY2VjX25vdGlmaWVyX2Nvbm5fcmVnaXN0ZXIo cHJpdi0+Y2VjX2dsdWUucGFyZW50LAorCQkJCQkJICAgICAgTlVMTCwgJmNvbm5faW5mbyk7CisJ aWYgKCFwcml2LT5jZWNfbm90aWZ5KQorCQlyZXR1cm4gLUVOT01FTTsKKwogCWRybV9jb25uZWN0 b3JfYXR0YWNoX2VuY29kZXIoJnByaXYtPmNvbm5lY3RvciwKIAkJCQkgICAgIHByaXYtPmJyaWRn ZS5lbmNvZGVyKTsKIApAQCAtMTY1MSwxNCArMTY3OCwxMyBAQCBzdGF0aWMgdm9pZCB0ZGE5OTh4 X2Rlc3Ryb3koc3RydWN0IGRldmljZSAqZGV2KQogCWkyY191bnJlZ2lzdGVyX2RldmljZShwcml2 LT5jZWMpOwogCiAJaWYgKHByaXYtPmNlY19ub3RpZnkpCi0JCWNlY19ub3RpZmllcl9wdXQocHJp di0+Y2VjX25vdGlmeSk7CisJCWNlY19ub3RpZmllcl9jb25uX3VucmVnaXN0ZXIocHJpdi0+Y2Vj X25vdGlmeSk7CiB9CiAKIHN0YXRpYyBpbnQgdGRhOTk4eF9jcmVhdGUoc3RydWN0IGRldmljZSAq ZGV2KQogewogCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSB0b19pMmNfY2xpZW50KGRldik7 CiAJc3RydWN0IGRldmljZV9ub2RlICpucCA9IGNsaWVudC0+ZGV2Lm9mX25vZGU7Ci0Jc3RydWN0 IGkyY19ib2FyZF9pbmZvIGNlY19pbmZvOwogCXN0cnVjdCB0ZGE5OTh4X3ByaXYgKnByaXY7CiAJ dTMyIHZpZGVvOwogCWludCByZXZfbG8sIHJldl9oaSwgcmV0OwpAQCAtMTc3NiwxMiArMTgwMiw2 IEBAIHN0YXRpYyBpbnQgdGRhOTk4eF9jcmVhdGUoc3RydWN0IGRldmljZSAqZGV2KQogCQljZWNf d3JpdGUocHJpdiwgUkVHX0NFQ19SWFNIUERJTlRFTkEsIENFQ19SWFNIUERMRVZfSFBEKTsKIAl9 CiAKLQlwcml2LT5jZWNfbm90aWZ5ID0gY2VjX25vdGlmaWVyX2dldChkZXYpOwotCWlmICghcHJp di0+Y2VjX25vdGlmeSkgewotCQlyZXQgPSAtRU5PTUVNOwotCQlnb3RvIGZhaWw7Ci0JfQotCiAJ cHJpdi0+Y2VjX2dsdWUucGFyZW50ID0gZGV2OwogCXByaXYtPmNlY19nbHVlLmRhdGEgPSBwcml2 OwogCXByaXYtPmNlY19nbHVlLmluaXQgPSB0ZGE5OTh4X2NlY19ob29rX2luaXQ7CkBAIC0xNzg5 LDI2ICsxODA5LDYgQEAgc3RhdGljIGludCB0ZGE5OTh4X2NyZWF0ZShzdHJ1Y3QgZGV2aWNlICpk ZXYpCiAJcHJpdi0+Y2VjX2dsdWUub3BlbiA9IHRkYTk5OHhfY2VjX2hvb2tfb3BlbjsKIAlwcml2 LT5jZWNfZ2x1ZS5yZWxlYXNlID0gdGRhOTk4eF9jZWNfaG9va19yZWxlYXNlOwogCi0JLyoKLQkg KiBTb21lIFREQTk5OHggYXJlIGFjdHVhbGx5IHR3byBJMkMgZGV2aWNlcyBtZXJnZWQgb250byBv bmUgcGllY2UKLQkgKiBvZiBzaWxpY29uOiBUREE5OTg5IGFuZCBUREExOTk4OSBjb21iaW5lIHRo ZSBIRE1JIHRyYW5zbWl0dGVyCi0JICogd2l0aCBhIHNsaWdodGx5IG1vZGlmaWVkIFREQTk5NTAg Q0VDIGRldmljZS4gIFRoZSBDRUMgZGV2aWNlCi0JICogaXMgYXQgdGhlIFREQTk5NTAgYWRkcmVz cywgd2l0aCB0aGUgYWRkcmVzcyBwaW5zIHN0cmFwcGVkIGFjcm9zcwotCSAqIHRvIHRoZSBUREE5 OTh4IGFkZHJlc3MgcGlucy4gIEhlbmNlLCBpdCBhbHdheXMgaGFzIHRoZSBzYW1lCi0JICogb2Zm c2V0LgotCSAqLwotCW1lbXNldCgmY2VjX2luZm8sIDAsIHNpemVvZihjZWNfaW5mbykpOwotCXN0 cmxjcHkoY2VjX2luZm8udHlwZSwgInRkYTk5NTAiLCBzaXplb2YoY2VjX2luZm8udHlwZSkpOwot CWNlY19pbmZvLmFkZHIgPSBwcml2LT5jZWNfYWRkcjsKLQljZWNfaW5mby5wbGF0Zm9ybV9kYXRh ID0gJnByaXYtPmNlY19nbHVlOwotCWNlY19pbmZvLmlycSA9IGNsaWVudC0+aXJxOwotCi0JcHJp di0+Y2VjID0gaTJjX25ld19kZXZpY2UoY2xpZW50LT5hZGFwdGVyLCAmY2VjX2luZm8pOwotCWlm ICghcHJpdi0+Y2VjKSB7Ci0JCXJldCA9IC1FTk9ERVY7Ci0JCWdvdG8gZmFpbDsKLQl9Ci0KIAkv KiBlbmFibGUgRURJRCByZWFkIGlycTogKi8KIAlyZWdfc2V0KHByaXYsIFJFR19JTlRfRkxBR1Nf MiwgSU5UX0ZMQUdTXzJfRURJRF9CTEtfUkQpOwogCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==