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=-2.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,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 7A666C43613 for ; Mon, 24 Jun 2019 16:03:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 57F2120449 for ; Mon, 24 Jun 2019 16:03:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729572AbfFXQDi (ORCPT ); Mon, 24 Jun 2019 12:03:38 -0400 Received: from lb3-smtp-cloud7.xs4all.net ([194.109.24.31]:47239 "EHLO lb3-smtp-cloud7.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728416AbfFXQDi (ORCPT ); Mon, 24 Jun 2019 12:03:38 -0400 Received: from tschai.fritz.box ([46.9.252.75]) by smtp-cloud7.xs4all.net with ESMTPA id fRRKhHRxHF85OfRRNhZaZJ; Mon, 24 Jun 2019 18:03:36 +0200 From: Hans Verkuil To: linux-media@vger.kernel.org Cc: Dariusz Marcinkiewicz , dri-devel@lists.freedesktop.org, Cheng-yi Chiang Subject: [PATCHv8 00/13] cec: improve notifier support, add connector info Date: Mon, 24 Jun 2019 18:03:17 +0200 Message-Id: <20190624160330.38048-1-hverkuil-cisco@xs4all.nl> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CMAE-Envelope: MS4wfM5cfxY3qb1mJIOEfAgwxyzmneGu3DOIaGPtL1rXLfi9ZKPJS+IAvic+bCsU2HYwU9mQ1Jj1vHvFgU1ggcDsS/Y2kgf9iITUsRBXY3PD2phToQDCc7VC D9qy5VUksdVPfEmAoqdig/CkbbI/xZ2j0MrcjwW8YQziT3PqWeenUt1+RFIh0+Eh+xH7KibSdTcIg0ccNYqm8bhQAjQ8RRo4sTtbJnTn5yrH1qf0+Guwsnoz 8nTXUd04SWZfm+tRBY7dnPH8nG1tXOv4p3fhvKkKcadpR0mwrXrn5i76bhiBsKsu Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org This is a rework of Dariusz' v7 series: https://www.spinics.net/lists/linux-media/msg151117.html Rather than changing the existing CEC kAPI to allocate and register CEC adapters I left it as-is. Instead new notifiers functions are added to (un)register HDMI connector and CEC adapter notifiers. These replace the current cec_notifier_get_conn and _put functions. For drivers that don't use notifiers the cec_s_conn_info function was created so the connector info can be set directly as well. This split in separate connector and CEC adapter functions is needed since the notifier information is different between the two and this makes it future proof since we will need to eventually support more than one CEC adapter per HDMI connector. By carefully designing these functions it is possible to convert drivers to these new functions one-by-one, rather than as a painful big-bang patch. The plan is to merge the first three patches for kernel 5.3: these patches provide the infrastructure needed by drm and cec drivers to do the conversion during the 5.4 cycle, without requiring patches that touch on multiple subsystems. Once the conversion is done the new connector API can be exposed. A patch documenting the new API is included as well, but it is old and needs updating (the new CEC_CAP_CONNECTOR_INFO capability isn't documented, and neither is the new 'have_connector_info' field of the state changed event). Various drivers have been converted as well as an example. These are based on Dariusz' original series, but using the new notifier functions. Regards, Hans Dariusz Marcinkiewicz (9): cec: add struct cec_connector_info support cec: expose the new connector info API drm_dp_cec: add connector info support. drm/i915/intel_hdmi: use cec_notifier_conn_(un)register dw-hdmi-cec: use cec_notifier_cec_adap_(un)register dw-hdmi: use cec_notifier_conn_(un)register tda9950: use cec_notifier_cec_adap_(un)register tda998x: use cec_notifier_conn_(un)register drm/vc4/vc4_hdmi: fill in connector info Hans Verkuil (4): cec-notifier: rename variable, check kstrdup cec: add new notifier functions cec: document CEC_ADAP_G_CONNECTOR_INFO meson/ao-cec: use cec_notifier_cec_adap_(un)register Documentation/media/uapi/cec/cec-funcs.rst | 1 + .../uapi/cec/cec-ioc-adap-g-conn-info.rst | 109 +++++++++++++++++ .../display/amdgpu_dm/amdgpu_dm_mst_types.c | 2 +- drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c | 9 +- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 104 +++++++++------- drivers/gpu/drm/drm_dp_cec.c | 25 ++-- drivers/gpu/drm/i2c/tda9950.c | 11 +- drivers/gpu/drm/i2c/tda998x_drv.c | 56 ++++----- drivers/gpu/drm/i915/intel_dp.c | 4 +- drivers/gpu/drm/i915/intel_hdmi.c | 13 +- drivers/gpu/drm/nouveau/nouveau_connector.c | 3 +- drivers/gpu/drm/vc4/vc4_hdmi.c | 13 +- drivers/media/cec/cec-adap.c | 31 +++++ drivers/media/cec/cec-api.c | 16 +++ drivers/media/cec/cec-notifier.c | 115 ++++++++++++++++-- drivers/media/platform/meson/ao-cec.c | 37 +++--- include/drm/drm_dp_helper.h | 14 +-- include/media/cec-notifier.h | 78 ++++++++++++ include/media/cec.h | 19 +++ include/uapi/linux/cec.h | 33 +++++ 20 files changed, 550 insertions(+), 143 deletions(-) create mode 100644 Documentation/media/uapi/cec/cec-ioc-adap-g-conn-info.rst -- 2.20.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans Verkuil Subject: [PATCHv8 00/13] cec: improve notifier support, add connector info Date: Mon, 24 Jun 2019 18:03:17 +0200 Message-ID: <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 7276489CDF for ; Mon, 24 Jun 2019 16:10:46 +0000 (UTC) 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: Dariusz Marcinkiewicz , dri-devel@lists.freedesktop.org, Cheng-yi Chiang List-Id: dri-devel@lists.freedesktop.org VGhpcyBpcyBhIHJld29yayBvZiBEYXJpdXN6JyB2NyBzZXJpZXM6CgpodHRwczovL3d3dy5zcGlu aWNzLm5ldC9saXN0cy9saW51eC1tZWRpYS9tc2cxNTExMTcuaHRtbAoKUmF0aGVyIHRoYW4gY2hh bmdpbmcgdGhlIGV4aXN0aW5nIENFQyBrQVBJIHRvIGFsbG9jYXRlIGFuZApyZWdpc3RlciBDRUMg YWRhcHRlcnMgSSBsZWZ0IGl0IGFzLWlzLiBJbnN0ZWFkIG5ldyBub3RpZmllcnMKZnVuY3Rpb25z IGFyZSBhZGRlZCB0byAodW4pcmVnaXN0ZXIgSERNSSBjb25uZWN0b3IgYW5kIENFQyBhZGFwdGVy Cm5vdGlmaWVycy4gVGhlc2UgcmVwbGFjZSB0aGUgY3VycmVudCBjZWNfbm90aWZpZXJfZ2V0X2Nv bm4gYW5kIF9wdXQKZnVuY3Rpb25zLgoKRm9yIGRyaXZlcnMgdGhhdCBkb24ndCB1c2Ugbm90aWZp ZXJzIHRoZSBjZWNfc19jb25uX2luZm8gZnVuY3Rpb24Kd2FzIGNyZWF0ZWQgc28gdGhlIGNvbm5l Y3RvciBpbmZvIGNhbiBiZSBzZXQgZGlyZWN0bHkgYXMgd2VsbC4KClRoaXMgc3BsaXQgaW4gc2Vw YXJhdGUgY29ubmVjdG9yIGFuZCBDRUMgYWRhcHRlciBmdW5jdGlvbnMgaXMgbmVlZGVkCnNpbmNl IHRoZSBub3RpZmllciBpbmZvcm1hdGlvbiBpcyBkaWZmZXJlbnQgYmV0d2VlbiB0aGUgdHdvIGFu ZCB0aGlzCm1ha2VzIGl0IGZ1dHVyZSBwcm9vZiBzaW5jZSB3ZSB3aWxsIG5lZWQgdG8gZXZlbnR1 YWxseSBzdXBwb3J0IG1vcmUKdGhhbiBvbmUgQ0VDIGFkYXB0ZXIgcGVyIEhETUkgY29ubmVjdG9y LgoKQnkgY2FyZWZ1bGx5IGRlc2lnbmluZyB0aGVzZSBmdW5jdGlvbnMgaXQgaXMgcG9zc2libGUg dG8gY29udmVydApkcml2ZXJzIHRvIHRoZXNlIG5ldyBmdW5jdGlvbnMgb25lLWJ5LW9uZSwgcmF0 aGVyIHRoYW4gYXMgYSBwYWluZnVsCmJpZy1iYW5nIHBhdGNoLgoKVGhlIHBsYW4gaXMgdG8gbWVy Z2UgdGhlIGZpcnN0IHRocmVlIHBhdGNoZXMgZm9yIGtlcm5lbCA1LjM6IHRoZXNlCnBhdGNoZXMg cHJvdmlkZSB0aGUgaW5mcmFzdHJ1Y3R1cmUgbmVlZGVkIGJ5IGRybSBhbmQgY2VjIGRyaXZlcnMK dG8gZG8gdGhlIGNvbnZlcnNpb24gZHVyaW5nIHRoZSA1LjQgY3ljbGUsIHdpdGhvdXQgcmVxdWly aW5nCnBhdGNoZXMgdGhhdCB0b3VjaCBvbiBtdWx0aXBsZSBzdWJzeXN0ZW1zLgoKT25jZSB0aGUg Y29udmVyc2lvbiBpcyBkb25lIHRoZSBuZXcgY29ubmVjdG9yIEFQSSBjYW4gYmUgZXhwb3NlZC4K QSBwYXRjaCBkb2N1bWVudGluZyB0aGUgbmV3IEFQSSBpcyBpbmNsdWRlZCBhcyB3ZWxsLCBidXQg aXQgaXMKb2xkIGFuZCBuZWVkcyB1cGRhdGluZyAodGhlIG5ldyBDRUNfQ0FQX0NPTk5FQ1RPUl9J TkZPIGNhcGFiaWxpdHkKaXNuJ3QgZG9jdW1lbnRlZCwgYW5kIG5laXRoZXIgaXMgdGhlIG5ldyAn aGF2ZV9jb25uZWN0b3JfaW5mbycKZmllbGQgb2YgdGhlIHN0YXRlIGNoYW5nZWQgZXZlbnQpLgoK VmFyaW91cyBkcml2ZXJzIGhhdmUgYmVlbiBjb252ZXJ0ZWQgYXMgd2VsbCBhcyBhbiBleGFtcGxl LiBUaGVzZQphcmUgYmFzZWQgb24gRGFyaXVzeicgb3JpZ2luYWwgc2VyaWVzLCBidXQgdXNpbmcg dGhlIG5ldyBub3RpZmllcgpmdW5jdGlvbnMuCgpSZWdhcmRzLAoKCUhhbnMKCkRhcml1c3ogTWFy Y2lua2lld2ljeiAoOSk6CiAgY2VjOiBhZGQgc3RydWN0IGNlY19jb25uZWN0b3JfaW5mbyBzdXBw b3J0CiAgY2VjOiBleHBvc2UgdGhlIG5ldyBjb25uZWN0b3IgaW5mbyBBUEkKICBkcm1fZHBfY2Vj OiBhZGQgY29ubmVjdG9yIGluZm8gc3VwcG9ydC4KICBkcm0vaTkxNS9pbnRlbF9oZG1pOiB1c2Ug Y2VjX25vdGlmaWVyX2Nvbm5fKHVuKXJlZ2lzdGVyCiAgZHctaGRtaS1jZWM6IHVzZSBjZWNfbm90 aWZpZXJfY2VjX2FkYXBfKHVuKXJlZ2lzdGVyCiAgZHctaGRtaTogdXNlIGNlY19ub3RpZmllcl9j b25uXyh1bilyZWdpc3RlcgogIHRkYTk5NTA6IHVzZSBjZWNfbm90aWZpZXJfY2VjX2FkYXBfKHVu KXJlZ2lzdGVyCiAgdGRhOTk4eDogdXNlIGNlY19ub3RpZmllcl9jb25uXyh1bilyZWdpc3Rlcgog IGRybS92YzQvdmM0X2hkbWk6IGZpbGwgaW4gY29ubmVjdG9yIGluZm8KCkhhbnMgVmVya3VpbCAo NCk6CiAgY2VjLW5vdGlmaWVyOiByZW5hbWUgdmFyaWFibGUsIGNoZWNrIGtzdHJkdXAKICBjZWM6 IGFkZCBuZXcgbm90aWZpZXIgZnVuY3Rpb25zCiAgY2VjOiBkb2N1bWVudCBDRUNfQURBUF9HX0NP Tk5FQ1RPUl9JTkZPCiAgbWVzb24vYW8tY2VjOiB1c2UgY2VjX25vdGlmaWVyX2NlY19hZGFwXyh1 bilyZWdpc3RlcgoKIERvY3VtZW50YXRpb24vbWVkaWEvdWFwaS9jZWMvY2VjLWZ1bmNzLnJzdCAg ICB8ICAgMSArCiAuLi4vdWFwaS9jZWMvY2VjLWlvYy1hZGFwLWctY29ubi1pbmZvLnJzdCAgICAg fCAxMDkgKysrKysrKysrKysrKysrKysKIC4uLi9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1f bXN0X3R5cGVzLmMgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9k dy1oZG1pLWNlYy5jIHwgICA5ICstCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3 LWhkbWkuYyAgICAgfCAxMDQgKysrKysrKysrLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9k cF9jZWMuYyAgICAgICAgICAgICAgICAgIHwgIDI1ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pMmMv dGRhOTk1MC5jICAgICAgICAgICAgICAgICB8ICAxMSArLQogZHJpdmVycy9ncHUvZHJtL2kyYy90 ZGE5OTh4X2Rydi5jICAgICAgICAgICAgIHwgIDU2ICsrKystLS0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYyAgICAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9oZG1pLmMgICAgICAgICAgICAgfCAgMTMgKy0KIGRyaXZlcnMvZ3B1L2RybS9u b3V2ZWF1L25vdXZlYXVfY29ubmVjdG9yLmMgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL3Zj NC92YzRfaGRtaS5jICAgICAgICAgICAgICAgIHwgIDEzICstCiBkcml2ZXJzL21lZGlhL2NlYy9j ZWMtYWRhcC5jICAgICAgICAgICAgICAgICAgfCAgMzEgKysrKysKIGRyaXZlcnMvbWVkaWEvY2Vj L2NlYy1hcGkuYyAgICAgICAgICAgICAgICAgICB8ICAxNiArKysKIGRyaXZlcnMvbWVkaWEvY2Vj L2NlYy1ub3RpZmllci5jICAgICAgICAgICAgICB8IDExNSArKysrKysrKysrKysrKysrLS0KIGRy aXZlcnMvbWVkaWEvcGxhdGZvcm0vbWVzb24vYW8tY2VjLmMgICAgICAgICB8ICAzNyArKystLS0K IGluY2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaCAgICAgICAgICAgICAgICAgICB8ICAxNCArLS0K IGluY2x1ZGUvbWVkaWEvY2VjLW5vdGlmaWVyLmggICAgICAgICAgICAgICAgICB8ICA3OCArKysr KysrKysrKysKIGluY2x1ZGUvbWVkaWEvY2VjLmggICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAxOSArKysKIGluY2x1ZGUvdWFwaS9saW51eC9jZWMuaCAgICAgICAgICAgICAgICAgICAgICB8 ICAzMyArKysrKwogMjAgZmlsZXMgY2hhbmdlZCwgNTUwIGluc2VydGlvbnMoKyksIDE0MyBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL21lZGlhL3VhcGkvY2Vj L2NlYy1pb2MtYWRhcC1nLWNvbm4taW5mby5yc3QKCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==