Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp4909480imm; Mon, 14 May 2018 15:42:17 -0700 (PDT) X-Google-Smtp-Source: AB8JxZoLe/HMAU/cQBEHu7SjoMXul5jTg11CMNQ8jBkm6Bf7dMuK+umlWRjqRAyJGIHEaX9SUkwW X-Received: by 2002:a63:2ace:: with SMTP id q197-v6mr10012386pgq.60.1526337737116; Mon, 14 May 2018 15:42:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526337737; cv=none; d=google.com; s=arc-20160816; b=AUYSe2TVT8EFfKF+6nARNP4Q4PjiX6QQiwu4WDSo89LkAKXyNfYtcIPqjp2oDs8H5z FMMlTC1npzTQI8mSbCb6wU6aY+wK/L26go0tk/r3uTyA8vXKnwbvbbGZx57qTGB17CEP Md0oK9KpEe1XLrUQZDaXcK62+fjrp2MdBOuQnrw5H1MQgcZm8RiletTFYDYtIUywjTCH QocMq0nlul096QmC6OxGy30CJgn+UwKvHfhXrvyPgrdYr+a5+jI8SkpQ/MHZHjfub3Ff 1GcviBIc0yPONUIVkCp0pHWpWHxH96sxQHk03IzI02/jmWrfMdcjOLrzZ2jTh8hoHPym xmNg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=5YF0tQV2uGyKWvG7Keh4yPh7rhrw9i8a9K6f2M84kTM=; b=qiQauQnOj/+TKVDKFmdgwKpXJIHv02sfLEDATFFcLBmqnFx+IS1ZkkfDgYTh6hEwE7 jPdvo0ihmunnhNQhw8XwoaLRn99caL82CdvSnVSO10maRJbmt54sVoI3eQsYKOGYC41J E3DSMH2malm1WnXs7NLQ4/SXOrBwuYRiCXOW8ZE+xnhZwczE4MJQ17NAQx8k7VMV7L8W QX66aexihCauaiiuvOmmPPrfk9j7G8JxvwOUZqwzITF2/ECC/mc3pYySd+IgNKc+nwqY jAI0lzmDzys/pWSAQks9qlvCe7873KDcaGEKeUGY7aWRFqxeeXOpTfGG75Q6UN7O8vRp LKgg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=JtK9BHjo; 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 b25-v6si8266137pge.314.2018.05.14.15.42.02; Mon, 14 May 2018 15:42:17 -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=JtK9BHjo; 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 S1752483AbeENWkv (ORCPT + 99 others); Mon, 14 May 2018 18:40:51 -0400 Received: from mail-lf0-f66.google.com ([209.85.215.66]:36727 "EHLO mail-lf0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752049AbeENWks (ORCPT ); Mon, 14 May 2018 18:40:48 -0400 Received: by mail-lf0-f66.google.com with SMTP id t129-v6so20389094lff.3 for ; Mon, 14 May 2018 15:40:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=5YF0tQV2uGyKWvG7Keh4yPh7rhrw9i8a9K6f2M84kTM=; b=JtK9BHjoYnfW5gF3SqorRtV6zxILE96dZq01b8DKBN3b/3xxu5Hzw0QQQmTUdZFQRa UuOPEuxqYIibugIRahe90CH+U1k1c3vi8m8Q6eKwejSBx7F2NWIU5kMzA2Bk4ej4ARqX 6PXGBG0UTC0iGsNnI7IedYh9pIW2Emffe9EzgVHkv+QBpnPSqRsLrBrRGxO/oCRrEI+o LouGkdAMIBVTob3q2mp1cphdu0zMcC8p486I0wOK9UQXra6C5vv64A2dobLuTrlHeSuc 6Oq6mlc0UR+0iZPA8BeNiC2Fr9zzKTuvrAMSu0Q7WmjTRvkFFPGz/tt1hox3l73BDl82 4oYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=5YF0tQV2uGyKWvG7Keh4yPh7rhrw9i8a9K6f2M84kTM=; b=umBF2X+v8KTx87ZfbtIP66CkZZAzL+F5/dH3VR6mtoyhpjCrWMMIhh07AQVjm3fDGr qiWTl3efV6F0hF1+ciqx8PP23nE3d4HAUz+59zTx3CJwHrrx2CjOXsk7aosnf3lrvkWX 7DfMy9UV8d3DIsfR6khltUj+qhtE8O3R+6ArE5qRIFtCQ7pn9fZ6jEUS5y7NIyz6ymjA gijNJZ0afRvwk1acNV771MdDILxVlCsvQIF/hsZLPGsVBVP5lqsWc3Gc/qSfpZenq3xa DHnv+5jXd1mNizaMr821whwYejB9zLzOVBQXCwESIQ5xyui6J9PfWCwQp1AVmPGB7VFB 0ykA== X-Gm-Message-State: ALKqPwdUbA3OuMEjOQXwBUCot801MbEKOvDeDYp6IbK5CtSbBuNvmGk9 qvMIXY2LIGvsmgVjdlGhxF1+yA== X-Received: by 2002:a19:4f4c:: with SMTP id a12-v6mr9723591lfk.97.1526337646815; Mon, 14 May 2018 15:40:46 -0700 (PDT) Received: from bender.ownit.se (89-253-66-137.customers.ownit.se. [89.253.66.137]) by smtp.gmail.com with ESMTPSA id f196-v6sm2071149lff.59.2018.05.14.15.40.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 14 May 2018 15:40:46 -0700 (PDT) From: Neil Armstrong To: airlied@linux.ie, hans.verkuil@cisco.com, lee.jones@linaro.org, olof@lixom.net, seanpaul@google.com Cc: Neil Armstrong , sadolfsson@google.com, felixe@google.com, bleung@google.com, darekm@google.com, marcheu@chromium.org, fparent@baylibre.com, dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 3/5] drm/i915: hdmi: add CEC notifier to intel_hdmi Date: Tue, 15 May 2018 00:40:37 +0200 Message-Id: <1526337639-3568-4-git-send-email-narmstrong@baylibre.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1526337639-3568-1-git-send-email-narmstrong@baylibre.com> References: <1526337639-3568-1-git-send-email-narmstrong@baylibre.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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/intel_drv.h | 2 ++ drivers/gpu/drm/i915/intel_hdmi.c | 10 ++++++++++ 2 files changed, 12 insertions(+) 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..9b94d72 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; } @@ -2358,6 +2364,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); + 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