Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp7308074ybp; Wed, 16 Oct 2019 06:58:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqyV90xS7EQw1ww/OhxV/9xcuB7oIkGed7e4H5SucSVTUqG9uO3B7u5pX8jpxf4VjQW81Sek X-Received: by 2002:a17:906:b817:: with SMTP id dv23mr39882009ejb.22.1571234310832; Wed, 16 Oct 2019 06:58:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571234310; cv=none; d=google.com; s=arc-20160816; b=D8a2sI2nawomnmxiaYa56WoyfCZbfxPHtQuX21CZe7kdOuOaEz+1f6GhckAMvLPFdf 47uaom+pr5xoxnNBf1xflCF3FLfy6fFhm9DpJC9nXPX7mZagl9EKKtfsKbPHUP1WXhrF OWsQm5ud+diwoJvycNvK3oh2WB+M4MVYAzxHBfSpEsXMOAtzdIy4pUEe/nkTXMKhW3hf bIchiFwngLMI2Ih9pQ8VqfFUH7h51PqzyOaqBtx+ATynPfYHZiO5r6PqOaoIXM1dqDrW CmSIOgFNgZNUsp0sSI2Qe9QgY/OH16yXbjPr8LPcH/VgE8D4RH/ROluhFJ4aCDyOfssU adIw== 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:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=2UHiq+bpKpYTZfFCDKz/wHMdPBwb8otM78+THN0Zfxc=; b=hi8Jo7ZOZeRKesLETWEiTbGBTbN3VUSkozXK7CSJQu3H98/jRFbMu+eS40O09RFIG0 tmoPTAexxfDTdfO9kd+Z+bZOGmIqKahtXq5eBG+pgw1QBYmwVw2zkLNAJvmw/Jn6JHGS YHLlG/8FVKCVFpn+7AcjW4ijvS5qJUByl7NZM9AgAkv9RC3QCtH3CB4X+NwSLy9/7MYf Hmmldcj4LR9QvhETaj8sZAt00vFK0JfGwHujrHuH9FfZTsNLb8MDMkpJKdxkTbd3l/yp CJjQdFK2qcZXmb9QBzKIAyZIz0rLYV7CgSy3ZUSOXZCEodhv4lDZsQPiImG29JHhw4Xk boGQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@endlessm-com.20150623.gappssmtp.com header.s=20150623 header.b=TlmWQr2o; 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 c9si16469394edv.304.2019.10.16.06.58.07; Wed, 16 Oct 2019 06:58:30 -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=@endlessm-com.20150623.gappssmtp.com header.s=20150623 header.b=TlmWQr2o; 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 S2404440AbfJPJ7h (ORCPT + 99 others); Wed, 16 Oct 2019 05:59:37 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:34944 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727167AbfJPJ7g (ORCPT ); Wed, 16 Oct 2019 05:59:36 -0400 Received: by mail-pg1-f195.google.com with SMTP id p30so13992900pgl.2 for ; Wed, 16 Oct 2019 02:59:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=endlessm-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=2UHiq+bpKpYTZfFCDKz/wHMdPBwb8otM78+THN0Zfxc=; b=TlmWQr2oZsXsdXMZxuaRHpzO0t6KpXZ1HsiWTKX2m54q+A2Rp1yOdP46uEcRqDOXZD Xx8ePK9bNrndXkfM9xbnC4y12z4SanvCtLaaC2LUSSbWP8Zl23hxd9xv9v6/ci+aPu7Q N9rrDEtQTuizJjcWieCFpLFZhhFfbwiCIfzTORLJlrHH0CO52xbwMnoQFzDpIh6tt1CT 2Cc4GWp7DpYFv6A3MoRmmsXBxm0I5lEv09a4FfO66c0SCjlnzYkI16LjJObsM1WQyQpY my8enjoqkUcKPq7wjcu1dOuI1tLps2cIVHwUn0V4r3i37N74svEicLAiYZv0xCHWTilB gD0w== 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:mime-version :content-transfer-encoding; bh=2UHiq+bpKpYTZfFCDKz/wHMdPBwb8otM78+THN0Zfxc=; b=QsuYJrTvoRtPBO4kNbApGRPrQHXhuxeTfc4aUe5K0FWF+xqOcQk0qkNm4rHIs+56V9 ROidezQbD+1vxakvvxe/MZQWbEOUiMw3sZO/4kJhMllNCYX2SqRPH61jFrJ+EL4MV7T7 ZELAjfrdHWQU/Ia8jKqSCVnTETPE1sxVhiV1GUempw6pckhIXSAHQkDvyOfA6eKXbbCg Vhlp2GSwoHEMXNvWQ1hTGSH74awNT7NT9mr8vlvrF6BHoQByK1+rVNbXI+riXax1svvC vwd783Ko4ag4uZdwGLy6h8g5MAgcSiYCevZTYAiXRv+TWk0HjXBwhEbMUgeVQNh8YDGI caXQ== X-Gm-Message-State: APjAAAVYRVYsSmrjOFjtQJ4jSbV4rB0gLgq4KLRwDnfKbv6iFWrasCdx r5+ewh21fW4TvCAWdFE69ED37g== X-Received: by 2002:aa7:87d9:: with SMTP id i25mr4990873pfo.244.1571219975917; Wed, 16 Oct 2019 02:59:35 -0700 (PDT) Received: from localhost.localdomain (123-204-46-122.static.seed.net.tw. [123.204.46.122]) by smtp.gmail.com with ESMTPSA id p17sm23021423pfn.50.2019.10.16.02.59.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Oct 2019 02:59:35 -0700 (PDT) From: Jian-Hong Pan To: Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , David Airlie , Daniel Vetter , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Chris Wilson , Maarten Lankhorst , Ramalingam C , Uma Shankar Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux@endlessm.com, Jian-Hong Pan Subject: [PATCH] drm/i915/hdmi: enable resolution 3840x2160 for type 1 HDMI Date: Wed, 16 Oct 2019 17:57:58 +0800 Message-Id: <20191016095757.4919-1-jian-hong@endlessm.com> X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Type 1 HDMI may be version 1.3 or upper, which supports higher max TMDS clock for higher resolutions, like 3840x2160. This patch sets max TMDS clock according to the chip, if the adapter is type 1 HDMI. Buglink: https://bugs.freedesktop.org/show_bug.cgi?id=112018 Fixes: b1ba124d8e95 ("drm/i915: Respect DP++ adaptor TMDS clock limit") Signed-off-by: Jian-Hong Pan --- drivers/gpu/drm/i915/display/intel_hdmi.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c index e02f0faecf02..74e4426ffcad 100644 --- a/drivers/gpu/drm/i915/display/intel_hdmi.c +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c @@ -2454,6 +2454,7 @@ intel_hdmi_dp_dual_mode_detect(struct drm_connector *connector, bool has_edid) { struct drm_i915_private *dev_priv = to_i915(connector->dev); struct intel_hdmi *hdmi = intel_attached_hdmi(connector); + struct intel_encoder *encoder = &hdmi_to_dig_port(hdmi)->base; enum port port = hdmi_to_dig_port(hdmi)->base.port; struct i2c_adapter *adapter = intel_gmbus_get_adapter(dev_priv, hdmi->ddc_bus); @@ -2488,8 +2489,16 @@ intel_hdmi_dp_dual_mode_detect(struct drm_connector *connector, bool has_edid) return; hdmi->dp_dual_mode.type = type; - hdmi->dp_dual_mode.max_tmds_clock = - drm_dp_dual_mode_max_tmds_clock(type, adapter); + /* Type 1 HDMI may be version 1.3 or upper, which supports higher max + * TMDS clock for higher resolutions, like 3840x2160. So, set it + * according to the chip, if the adapter is type 1 HDMI. + */ + if (type == DRM_DP_DUAL_MODE_TYPE1_HDMI) + hdmi->dp_dual_mode.max_tmds_clock = + intel_hdmi_source_max_tmds_clock(encoder); + else + hdmi->dp_dual_mode.max_tmds_clock = + drm_dp_dual_mode_max_tmds_clock(type, adapter); DRM_DEBUG_KMS("DP dual mode adaptor (%s) detected (max TMDS clock: %d kHz)\n", drm_dp_get_dual_mode_type_name(type), -- 2.23.0