Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp2378294imm; Wed, 16 May 2018 11:55:47 -0700 (PDT) X-Google-Smtp-Source: AB8JxZoIdeOSd6Um3MGoFBYGo+qEs4MBPGbOGS4MhJz1tBKqOi9dnkSZsekl2aFYML9YtyeUiOhD X-Received: by 2002:a17:902:70c9:: with SMTP id l9-v6mr2077300plt.382.1526496947643; Wed, 16 May 2018 11:55:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526496947; cv=none; d=google.com; s=arc-20160816; b=NOgd7SqVUPo5UjsLHgJ2hLygGVs8iLxM4D2O710Swczpgp7GwiHzjWmXyhVJszEmTQ STy0RqUsRERAcL3/VxYW6pIhY+XmY/Bmg6w7Ppad79fMnXoXLsO6Pyc9MQjl7bZmp2eG PIvF01xPsBMmnfNz+oUkra2dJGqz9M3AkBY6G3sKnZ8Y3IoygYsBaPEeJQnB/8ucglBp SAeOQH9oHGh+KrXqelwbRzPCnOYBMw+RSKr2132tM4LuSiaoXD4YvX9JiEm8oy3qX8OY NtE3egMyA5n7MCDmL95ANGZQNmyRu8w+2NIhMyaT4ATdToWMiEgM6D7E8oPMujhxw98M BZaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:organization:autocrypt:openpgp:from:references:cc:to :subject:dkim-signature:arc-authentication-results; bh=wWTu5Pny/Z3s+OjB97sDMhWaXLmHM9xvTB7lj2qZdqw=; b=nR8PdFWcBm/qDP/eg4HJ8xk2ZcjLLNbCC4L9ewfjkQi+Tct80WA2V0kgIFbuMC22PT K2FEArinoYt7R3RhtFbvFxLzNFWmLwV4rlR77/tvN8TmWqtMSypz4o9FbPtKB/bd4IYL OfICFrEJy4Ox+lGNt+rqzlnq3570g1mWB8Fb3EYcjeTFi/wG97jJRftFs43gr1hUPtVQ BgFS1KyWZRumX+4Y+ub0jgfZny40ypKBK5qvSp1PF3IHsnImxwPQT1iVbccVQQLoO3BR 902pUlB1Zza76beuf7/skbutQ9wpePkU3og8oj5QMOTUbY7DI2JTY5aTFrmJtmXewho+ 4dxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=ZnNGKY/I; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d3-v6si2548090pgc.323.2018.05.16.11.55.33; Wed, 16 May 2018 11:55:47 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=ZnNGKY/I; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751130AbeEPSxK (ORCPT + 99 others); Wed, 16 May 2018 14:53:10 -0400 Received: from mail-wm0-f68.google.com ([74.125.82.68]:36766 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750846AbeEPSxI (ORCPT ); Wed, 16 May 2018 14:53:08 -0400 Received: by mail-wm0-f68.google.com with SMTP id n10-v6so4253840wmc.1 for ; Wed, 16 May 2018 11:53:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=subject:to:cc:references:from:openpgp:autocrypt:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=wWTu5Pny/Z3s+OjB97sDMhWaXLmHM9xvTB7lj2qZdqw=; b=ZnNGKY/IUc9Z1c1kzyI4UBbo4yZX5mKOCkNmCmnlhnPFCTw7rg+1qjjkPGaJvgOXuM YnlnJtZeIW/hP11twl68p4cXi0SBg1SvnzOc34i2QKeNDO+7kPIyCgbQtYxMHdAzzxaA 64Dr09E3EwEurrQeOOMykbBejRncfZTEUm4xsbJBsa4QGEKyvqU2k19ARZK0Qed4Ohtf Fonef45+ymw7rvG3BklHV2SnRcOe+zMdqZmKRY//i+/XO6jNfVtEOH7tHjJiq2eLWNMD RGnjq7NEA/qUDtWsCeuJfcnR03K/m7Ms9dKyoEGlsNgrMU60qnPr7hyd0ND0o/ScF/NW wu/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:openpgp:autocrypt :organization:message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=wWTu5Pny/Z3s+OjB97sDMhWaXLmHM9xvTB7lj2qZdqw=; b=R7JjPKM60/jcUjEw5CjzE+gjwNmITk7+2GapIVqmVX19+97/lO2+mUFQp21/YNiQBy uMB0vRGRrXYrPXeWCTCnQlESaXGil5In5lcXk0BYHzvbxiXqb6FyXxpBXdpOTPo9tIhp Lh3b8pBg6oZXsiWOgXnKOJuq68y8xHNbkwNUqBq5xsglFLUroFsoWMbDWL5pLjm9+V1O +n4u+MEVVFPL/a5WTVpsim5OKkIXQdHXk4AkcK1kUR56ogEdmSQn3aPaj1MOGNW+oFbV fYBlHZWynpn0TSShPVhghRk5QEZT05xM3hXHvWwJEe2CY41sbn1lfDJapx8bDoLa8psn /+8g== X-Gm-Message-State: ALKqPwfu4YuznV7H9NtOpuB1mBrE8gG25lhZY/5P2ai9vCyMmFbUI+0T BiCjBwtiNxVSvCQHA8Y/vykFQQ== X-Received: by 2002:a50:934b:: with SMTP id n11-v6mr2622990eda.77.1526496786790; Wed, 16 May 2018 11:53:06 -0700 (PDT) Received: from [10.226.25.163] (80-254-69-35.dynamic.monzoon.net. [80.254.69.35]) by smtp.gmail.com with ESMTPSA id a2-v6sm1647784edd.39.2018.05.16.11.53.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 May 2018 11:53:05 -0700 (PDT) Subject: Re: [Intel-gfx] [PATCH v2 2/5] drm/i915: hdmi: add CEC notifier to intel_hdmi To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= 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 References: <1526395342-15481-1-git-send-email-narmstrong@baylibre.com> <1526395342-15481-3-git-send-email-narmstrong@baylibre.com> <20180515153521.GB23723@intel.com> <20180516140720.GD23723@intel.com> From: Neil Armstrong Openpgp: preference=signencrypt Autocrypt: addr=narmstrong@baylibre.com; prefer-encrypt=mutual; keydata= xsBNBE1ZBs8BCAD78xVLsXPwV/2qQx2FaO/7mhWL0Qodw8UcQJnkrWmgTFRobtTWxuRx8WWP GTjuhvbleoQ5Cxjr+v+1ARGCH46MxFP5DwauzPekwJUD5QKZlaw/bURTLmS2id5wWi3lqVH4 BVF2WzvGyyeV1o4RTCYDnZ9VLLylJ9bneEaIs/7cjCEbipGGFlfIML3sfqnIvMAxIMZrvcl9 qPV2k+KQ7q+aXavU5W+yLNn7QtXUB530Zlk/d2ETgzQ5FLYYnUDAaRl+8JUTjc0CNOTpCeik 80TZcE6f8M76Xa6yU8VcNko94Ck7iB4vj70q76P/J7kt98hklrr85/3NU3oti3nrIHmHABEB AAHNKE5laWwgQXJtc3Ryb25nIDxuYXJtc3Ryb25nQGJheWxpYnJlLmNvbT7CwHsEEwEKACUC GyMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheABQJXDO2CAhkBAAoJEBaat7Gkz/iubGIH/iyk RqvgB62oKOFlgOTYCMkYpm2aAOZZLf6VKHKc7DoVwuUkjHfIRXdslbrxi4pk5VKU6ZP9AKsN NtMZntB8WrBTtkAZfZbTF7850uwd3eU5cN/7N1Q6g0JQihE7w4GlIkEpQ8vwSg5W7hkx3yQ6 2YzrUZh/b7QThXbNZ7xOeSEms014QXazx8+txR7jrGF3dYxBsCkotO/8DNtZ1R+aUvRfpKg5 ZgABTC0LmAQnuUUf2PHcKFAHZo5KrdO+tyfL+LgTUXIXkK+tenkLsAJ0cagz1EZ5gntuheLD YJuzS4zN+1Asmb9kVKxhjSQOcIh6g2tw7vaYJgL/OzJtZi6JlIXOwE0ETVkGzwEIALyKDN/O GURaHBVzwjgYq+ZtifvekdrSNl8TIDH8g1xicBYpQTbPn6bbSZbdvfeQPNCcD4/EhXZuhQXM coJsQQQnO4vwVULmPGgtGf8PVc7dxKOeta+qUh6+SRh3vIcAUFHDT3f/Zdspz+e2E0hPV2hi SvICLk11qO6cyJE13zeNFoeY3ggrKY+IzbFomIZY4yG6xI99NIPEVE9lNBXBKIlewIyVlkOa YvJWSV+p5gdJXOvScNN1epm5YHmf9aE2ZjnqZGoMMtsyw18YoX9BqMFInxqYQQ3j/HpVgTSv mo5ea5qQDDUaCsaTf8UeDcwYOtgI8iL4oHcsGtUXoUk33HEAEQEAAcLAXwQYAQIACQUCTVkG zwIbDAAKCRAWmrexpM/4rrXiB/sGbkQ6itMrAIfnM7IbRuiSZS1unlySUVYu3SD6YBYnNi3G 5EpbwfBNuT3H8//rVvtOFK4OD8cRYkxXRQmTvqa33eDIHu/zr1HMKErm+2SD6PO9umRef8V8 2o2oaCLvf4WeIssFjwB0b6a12opuRP7yo3E3gTCSKmbUuLv1CtxKQF+fUV1cVaTPMyT25Od+ RC1K+iOR0F54oUJvJeq7fUzbn/KdlhA8XPGzwGRy4zcsPWvwnXgfe5tk680fEKZVwOZKIEuJ C3v+/yZpQzDvGYJvbyix0lHnrCzq43WefRHI5XTTQbM0WUIBIcGmq38+OgUsMYu4NzLu7uZF Acmp6h8g Organization: Baylibre Message-ID: <8d1abe8f-e18c-9557-6dae-1a82de29375c@baylibre.com> Date: Wed, 16 May 2018 20:53:04 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <20180516140720.GD23723@intel.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Ville, On 16/05/2018 16:07, Ville Syrjälä wrote: > On Wed, May 16, 2018 at 09:40:17AM +0200, Neil Armstrong wrote: >> On 16/05/2018 09:31, Neil Armstrong wrote: >>> Hi Ville, >>> >>> On 15/05/2018 17:35, Ville Syrjälä wrote: >>>> 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(+) >>>>> >>> >>> [..] >>> >>>>> } >>>>> >>>>> @@ -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. >>> >>> The i915 driver can expose multiple HDMI connectors, but each connected will >>> have a different EDID and CEC physical address, so we will need a different notifier >>> for each connector. >>> >>> The connector name is DRM dependent, but user-space actually uses this name for >>> operations, so I supposed it was kind of stable. >>> >>> Anyway, is there another stable id/name/whatever that can be used to make a name to >>> distinguish the HDMI connectors ? >> >> Would "HDMI %c", port_name(port) be OK to use ? > > Yeah, something like seems like a reasonable approach. That does mean > we have to be a little careful with changing enum port or port_name() > in the future, but I guess we could just add a small function to > generated the name/id specifically for this thing. > > We're also going to have to think what to do with enum port and > port_name() on ICL+ though. There we won't just have A-F but also > TC1-TC. Hmm. Looks like what we have for those ports in our > codebase ATM is a bit wonky since we haven't even changed > port_name() to give us the TC type names. > > Also we might not want "HDMI" in the identifier since the physical > port is not HDMI specific. There are different things we could call > these but I think we could just go with a generic "Port A-F" and > "Port TC1-TC" approach. I think something like that should work > fine for current and upcoming hardware. And in theory that could > then be used for other things as well which need a stable > identifier. > > Oh, and now I recall that input subsystem at least has some kind > of "physical path" property on devices. So I guess what we're > dicussing is a somewhat similar idea. I think input drivers > generally include the pci/usb/etc. device in the path as well. > Even though we currently only ever have the one pci device it > would seem like decent idea to include that information in our > identifiers as well. Or what do you think? > Thanks for the clarifications ! Having a "Port " will be great indeed, no need to specify HDMI since only HDMI connectors will get a CEC notifier anyway. The issue is that port_name() returns a character, which is lame. Would it be acceptable to introduce a : const char *port_identifier(struct drm_i915_private *dev_priv, enum port port) { char *id = devm_kzalloc(dev_priv->drm->dev, 16, GFP_KERNEL); if (id) return NULL; snprintf("Port %c", port_name(port)); return id; } and use the result of this for the cec_notifier connector name ? Neil