From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 2/5] drm/i915: hdmi: add CEC notifier to intel_hdmi Date: Tue, 15 May 2018 18:35:21 +0300 Message-ID: <20180515153521.GB23723@intel.com> References: <1526395342-15481-1-git-send-email-narmstrong@baylibre.com> <1526395342-15481-3-git-send-email-narmstrong@baylibre.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1526395342-15481-3-git-send-email-narmstrong@baylibre.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Neil Armstrong Cc: felixe@google.com, seanpaul@google.com, airlied@linux.ie, sadolfsson@google.com, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, fparent@baylibre.com, hans.verkuil@cisco.com, olof@lixom.net, bleung@google.com, darekm@google.com, lee.jones@linaro.org, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBNYXkgMTUsIDIwMTggYXQgMDQ6NDI6MTlQTSArMDIwMCwgTmVpbCBBcm1zdHJvbmcg d3JvdGU6Cj4gVGhpcyBwYXRjaHMgYWRkcyB0aGUgY2VjX25vdGlmaWVyIGZlYXR1cmUgdG8gdGhl IGludGVsX2hkbWkgcGFydAo+IG9mIHRoZSBpOTE1IERSTSBkcml2ZXIuIEl0IHVzZXMgdGhlIEhE TUkgRFJNIGNvbm5lY3RvciBuYW1lIHRvIGRpZmZlcmVudGlhdGUKPiBiZXR3ZWVuIGVhY2ggSERN SSBwb3J0cy4KPiBUaGUgY2hhbmdlcyB3aWxsIGFsbG93IHRoZSBpOTE1IEhETUkgY29kZSB0byBu b3RpZnkgRURJRCBhbmQgSFBEIGNoYW5nZXMKPiB0byBhbiBldmVudHVhbCBDRUMgYWRhcHRlci4K PiAKPiBTaWduZWQtb2ZmLWJ5OiBOZWlsIEFybXN0cm9uZyA8bmFybXN0cm9uZ0BiYXlsaWJyZS5j b20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcgICAgICB8ICAxICsKPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggIHwgIDIgKysKPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfaGRtaS5jIHwgMTIgKysrKysrKysrKysrCj4gIDMgZmlsZXMgY2hhbmdl ZCwgMTUgaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZwo+IGluZGV4IGRmZDk1ODgu LjJkNjVkNTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcKPiBAQCAtMjMsNiArMjMsNyBAQCBjb25m aWcgRFJNX0k5MTUKPiAgCXNlbGVjdCBTWU5DX0ZJTEUKPiAgCXNlbGVjdCBJT1NGX01CSQo+ICAJ c2VsZWN0IENSQzMyCj4gKwlzZWxlY3QgQ0VDX0NPUkUgaWYgQ0VDX05PVElGSUVSCj4gIAloZWxw Cj4gIAkgIENob29zZSB0aGlzIG9wdGlvbiBpZiB5b3UgaGF2ZSBhIHN5c3RlbSB0aGF0IGhhcyAi SW50ZWwgR3JhcGhpY3MKPiAgCSAgTWVkaWEgQWNjZWxlcmF0b3IiIG9yICJIRCBHcmFwaGljcyIg aW50ZWdyYXRlZCBncmFwaGljcywKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGQ0 MzY4NTguLmI1MGU1MWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0zOSw2 ICszOSw3IEBACj4gICNpbmNsdWRlIDxkcm0vZHJtX2RwX21zdF9oZWxwZXIuaD4KPiAgI2luY2x1 ZGUgPGRybS9kcm1fcmVjdC5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KPiArI2lu Y2x1ZGUgPG1lZGlhL2NlYy1ub3RpZmllci5oPgo+ICAKPiAgLyoqCj4gICAqIF9fd2FpdF9mb3Ig LSBtYWdpYyB3YWl0IG1hY3JvCj4gQEAgLTEwMDEsNiArMTAwMiw3IEBAIHN0cnVjdCBpbnRlbF9o ZG1pIHsKPiAgCWJvb2wgaGFzX2F1ZGlvOwo+ICAJYm9vbCByZ2JfcXVhbnRfcmFuZ2Vfc2VsZWN0 YWJsZTsKPiAgCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmF0dGFjaGVkX2Nvbm5lY3RvcjsKPiAr CXN0cnVjdCBjZWNfbm90aWZpZXIgKm5vdGlmaWVyOwo+ICB9Owo+ICAKPiAgc3RydWN0IGludGVs X2RwX21zdF9lbmNvZGVyOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiBpbmRleCAxYmFl ZjRhLi5lOTgxMDNkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hk bWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+IEBAIC0xODY4 LDYgKzE4NjgsOCBAQCBpbnRlbF9oZG1pX3NldF9lZGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IpCj4gIAkJY29ubmVjdGVkID0gdHJ1ZTsKPiAgCX0KPiAgCj4gKwljZWNfbm90aWZp ZXJfc2V0X3BoeXNfYWRkcl9mcm9tX2VkaWQoaW50ZWxfaGRtaS0+bm90aWZpZXIsIGVkaWQpOwo+ ICsKPiAgCXJldHVybiBjb25uZWN0ZWQ7Cj4gIH0KPiAgCj4gQEAgLTE4NzYsNiArMTg3OCw3IEBA IGludGVsX2hkbWlfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wg Zm9yY2UpCj4gIHsKPiAgCWVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgc3RhdHVzOwo+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmRldik7 Cj4gKwlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGludGVsX2F0dGFjaGVkX2hkbWko Y29ubmVjdG9yKTsKPiAgCj4gIAlEUk1fREVCVUdfS01TKCJbQ09OTkVDVE9SOiVkOiVzXVxuIiwK PiAgCQkgICAgICBjb25uZWN0b3ItPmJhc2UuaWQsIGNvbm5lY3Rvci0+bmFtZSk7Cj4gQEAgLTE4 OTEsNiArMTg5NCw5IEBAIGludGVsX2hkbWlfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IsIGJvb2wgZm9yY2UpCj4gIAo+ICAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2 X3ByaXYsIFBPV0VSX0RPTUFJTl9HTUJVUyk7Cj4gIAo+ICsJaWYgKHN0YXR1cyAhPSBjb25uZWN0 b3Jfc3RhdHVzX2Nvbm5lY3RlZCkKPiArCQljZWNfbm90aWZpZXJfcGh5c19hZGRyX2ludmFsaWRh dGUoaW50ZWxfaGRtaS0+bm90aWZpZXIpOwo+ICsKPiAgCXJldHVybiBzdGF0dXM7Cj4gIH0KPiAg Cj4gQEAgLTIwMzEsNiArMjAzNyw4IEBAIHN0YXRpYyB2b2lkIGNodl9oZG1pX3ByZV9lbmFibGUo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAo+ICBzdGF0aWMgdm9pZCBpbnRlbF9o ZG1pX2Rlc3Ryb3koc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgewo+ICsJaWYg KGludGVsX2F0dGFjaGVkX2hkbWkoY29ubmVjdG9yKS0+bm90aWZpZXIpCj4gKwkJY2VjX25vdGlm aWVyX3B1dChpbnRlbF9hdHRhY2hlZF9oZG1pKGNvbm5lY3RvciktPm5vdGlmaWVyKTsKPiAgCWtm cmVlKHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uZWN0b3IpLT5kZXRlY3RfZWRpZCk7Cj4gIAlkcm1f Y29ubmVjdG9yX2NsZWFudXAoY29ubmVjdG9yKTsKPiAgCWtmcmVlKGNvbm5lY3Rvcik7Cj4gQEAg LTIzNTgsNiArMjM2NiwxMCBAQCB2b2lkIGludGVsX2hkbWlfaW5pdF9jb25uZWN0b3Ioc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gIAkJdTMyIHRlbXAgPSBJOTE1 X1JFQUQoUEVHX0JBTkRfR0FQX0RBVEEpOwo+ICAJCUk5MTVfV1JJVEUoUEVHX0JBTkRfR0FQX0RB VEEsICh0ZW1wICYgfjB4ZikgfCAweGQpOwo+ICAJfQo+ICsKPiArCWludGVsX2hkbWktPm5vdGlm aWVyID0gY2VjX25vdGlmaWVyX2dldF9jb25uKGRldi0+ZGV2LCBjb25uZWN0b3ItPm5hbWUpOwoK V2hhdCBhcmUgd2UgZG9pbmcgd2l0aCB0aGUgY29ubmVjdG9yIG5hbWUgaGVyZT8gVGhvc2UgYXJl IG5vdCBhY3R1YWxseQpndWFyYW50ZWVkIHRvIGJlIHN0YWJsZSwgYW5kIGFueSBjaGFuZ2UgaW4g dGhlIGNvbm5lY3RvciBwcm9iZSBvcmRlcgptYXkgY2F1c2UgdGhlIG5hbWUgdG8gY2hhbmdlLgoK PiArCWlmICghaW50ZWxfaGRtaS0+bm90aWZpZXIpCj4gKwkJRFJNX0RFQlVHX0tNUygiQ0VDIG5v dGlmaWVyIGdldCBmYWlsZWRcbiIpOwo+ICB9Cj4gIAo+ICB2b2lkIGludGVsX2hkbWlfaW5pdChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLS0gCj4gMi43LjQKPiAKPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBt YWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApWaWxs ZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mga11.intel.com ([192.55.52.93]:57647 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753987AbeEOPf1 (ORCPT ); Tue, 15 May 2018 11:35:27 -0400 Date: Tue, 15 May 2018 18:35:21 +0300 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Neil Armstrong Cc: airlied@linux.ie, hans.verkuil@cisco.com, lee.jones@linaro.org, olof@lixom.net, seanpaul@google.com, sadolfsson@google.com, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, fparent@baylibre.com, felixe@google.com, bleung@google.com, darekm@google.com, linux-media@vger.kernel.org Subject: Re: [Intel-gfx] [PATCH v2 2/5] drm/i915: hdmi: add CEC notifier to intel_hdmi Message-ID: <20180515153521.GB23723@intel.com> References: <1526395342-15481-1-git-send-email-narmstrong@baylibre.com> <1526395342-15481-3-git-send-email-narmstrong@baylibre.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1526395342-15481-3-git-send-email-narmstrong@baylibre.com> Sender: linux-media-owner@vger.kernel.org List-ID: On Tue, May 15, 2018 at 04:42:19PM +0200, Neil Armstrong wrote: > This patchs adds the cec_notifier feature to the intel_hdmi part > of the i915 DRM driver. It uses the HDMI DRM connector name to differentiate > between each HDMI ports. > The changes will allow the i915 HDMI code to notify EDID and HPD changes > to an eventual CEC adapter. > > Signed-off-by: Neil Armstrong > --- > drivers/gpu/drm/i915/Kconfig | 1 + > drivers/gpu/drm/i915/intel_drv.h | 2 ++ > drivers/gpu/drm/i915/intel_hdmi.c | 12 ++++++++++++ > 3 files changed, 15 insertions(+) > > diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig > index dfd9588..2d65d56 100644 > --- a/drivers/gpu/drm/i915/Kconfig > +++ b/drivers/gpu/drm/i915/Kconfig > @@ -23,6 +23,7 @@ config DRM_I915 > select SYNC_FILE > select IOSF_MBI > select CRC32 > + select CEC_CORE if CEC_NOTIFIER > help > Choose this option if you have a system that has "Intel Graphics > Media Accelerator" or "HD Graphics" integrated graphics, > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > index d436858..b50e51b 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -39,6 +39,7 @@ > #include > #include > #include > +#include > > /** > * __wait_for - magic wait macro > @@ -1001,6 +1002,7 @@ struct intel_hdmi { > bool has_audio; > bool rgb_quant_range_selectable; > struct intel_connector *attached_connector; > + struct cec_notifier *notifier; > }; > > struct intel_dp_mst_encoder; > diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c > index 1baef4a..e98103d 100644 > --- a/drivers/gpu/drm/i915/intel_hdmi.c > +++ b/drivers/gpu/drm/i915/intel_hdmi.c > @@ -1868,6 +1868,8 @@ intel_hdmi_set_edid(struct drm_connector *connector) > connected = true; > } > > + cec_notifier_set_phys_addr_from_edid(intel_hdmi->notifier, edid); > + > return connected; > } > > @@ -1876,6 +1878,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool force) > { > enum drm_connector_status status; > struct drm_i915_private *dev_priv = to_i915(connector->dev); > + struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector); > > DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n", > connector->base.id, connector->name); > @@ -1891,6 +1894,9 @@ intel_hdmi_detect(struct drm_connector *connector, bool force) > > intel_display_power_put(dev_priv, POWER_DOMAIN_GMBUS); > > + if (status != connector_status_connected) > + cec_notifier_phys_addr_invalidate(intel_hdmi->notifier); > + > return status; > } > > @@ -2031,6 +2037,8 @@ static void chv_hdmi_pre_enable(struct intel_encoder *encoder, > > static void intel_hdmi_destroy(struct drm_connector *connector) > { > + if (intel_attached_hdmi(connector)->notifier) > + cec_notifier_put(intel_attached_hdmi(connector)->notifier); > kfree(to_intel_connector(connector)->detect_edid); > drm_connector_cleanup(connector); > kfree(connector); > @@ -2358,6 +2366,10 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port, > u32 temp = I915_READ(PEG_BAND_GAP_DATA); > I915_WRITE(PEG_BAND_GAP_DATA, (temp & ~0xf) | 0xd); > } > + > + intel_hdmi->notifier = cec_notifier_get_conn(dev->dev, connector->name); What are we doing with the connector name here? Those are not actually guaranteed to be stable, and any change in the connector probe order may cause the name to change. > + if (!intel_hdmi->notifier) > + DRM_DEBUG_KMS("CEC notifier get failed\n"); > } > > void intel_hdmi_init(struct drm_i915_private *dev_priv, > -- > 2.7.4 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Ville Syrjälä Intel