From patchwork Fri Apr 13 01:44:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AceLan Kao X-Patchwork-Id: 897828 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="S1lWgC/p"; dkim-atps=neutral Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) by ozlabs.org (Postfix) with ESMTP id 40MgYg1FlCz9s1P; Fri, 13 Apr 2018 11:44:23 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1f6nlB-0002dY-Ex; Fri, 13 Apr 2018 01:44:17 +0000 Received: from mail-pl0-f67.google.com ([209.85.160.67]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1f6nlA-0002dL-2A for kernel-team@lists.ubuntu.com; Fri, 13 Apr 2018 01:44:16 +0000 Received: by mail-pl0-f67.google.com with SMTP id a39-v6so5122607pla.10 for ; Thu, 12 Apr 2018 18:44:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=Ocpaxxi/d2405x7VGHVLY6G7qseqrCoswBBL2Fzt45U=; b=S1lWgC/py7t7rQ+uZdQo6FDPWPy/LM28Rb1ZQoiNgM+OtpDEkqduQLl5HyPya3+CH9 DrC6zoiJsvcuJhlOf2nwzouP5l3eEX1rAvf0YLM59jAws/OAaLSuR/Uz7ILjJ8SjLK0l t22g3jReX42zSNBEzH50io4LtJi1OoVFHTTz0x1GB0YSiuFwq/ae/ZhzMthjG4yOVHxT OJmTFjP5N+fwJ5k9fJOAgQzFL527Jh7O5BRSRGJW4261BkQoLddWkNsLJWd4dhVB0sEj SDMP2NI+hx+VSHyEQg3B3py6/4N3QJcgH+YHrsW1vFUC150TGuxCzdOCxu9Cu9fMCuXu zHCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=Ocpaxxi/d2405x7VGHVLY6G7qseqrCoswBBL2Fzt45U=; b=rYe6kkGnFAQ9T31eJswcpB+teZ9lqFx8OxS67xZhi2pdYd+yOerIgYH8XWILNDeEfY 1XHXsgaZmFjTJpl3gXsCaGAR+0sTUuyxn2yZUsTn9QUxmMC25Uaa8/lhzXmpNE4Re4Uw pnITBrKIP3lUaVH2mB0LbimCofm43TycmVMsumGUbsY4hgM42HzHB1QMF5KL/GMefHo6 D0JMCPCvuPaOxmvXtyFTsOnuNwzDksk+swBbEf5QLIXREIgfZhC0hxev6tKjtnhuakhK BpNWt90WLVUR8qNRzXYOIwCAKD7Ide4HwRFZd+I4iEixyg241gSzxvynvoPrNsF/EAWs oq5w== X-Gm-Message-State: ALQs6tB724k2zJfdIiABiRYj8WW6eQhUd+zqIQ1YXLqe8HsT2G0SAOcg HnqYaaAZVHIJb2FYnM5D2P/j+XuM X-Google-Smtp-Source: AIpwx4/wo271PEeLMT7lRb06Zz67+Md0eaADbmx3yVNEAmwBcurLVFsrUkVa7SQF1KZ1loo1INAfbQ== X-Received: by 2002:a17:902:24a5:: with SMTP id w34-v6mr3331576pla.328.1523583854315; Thu, 12 Apr 2018 18:44:14 -0700 (PDT) Received: from localhost ([175.41.48.77]) by smtp.gmail.com with ESMTPSA id g186sm8970338pfb.3.2018.04.12.18.44.11 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 12 Apr 2018 18:44:12 -0700 (PDT) From: AceLan Kao To: kernel-team@lists.ubuntu.com Subject: [PATCH][SRU][Bionic] drm/i915/edp: Do not do link training fallback or prune modes on EDP Date: Fri, 13 Apr 2018 09:44:06 +0800 Message-Id: <1523583846-8139-2-git-send-email-acelan.kao@canonical.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1523583846-8139-1-git-send-email-acelan.kao@canonical.com> References: <1523583846-8139-1-git-send-email-acelan.kao@canonical.com> X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Manasi Navare BugLink: https://bugs.launchpad.net/bugs/1763271 In case of eDP because the panel has a fixed mode, the link rate and lane count at which it is trained corresponds to the link BW required to support the native resolution of the panel. In case of panles with lower resolutions where fewer lanes are hooked up internally, that number is reflected in the MAX_LANE_COUNT DPCD register of the panel. So it is pointless to fallback to lower link rate/lane count in case of link training failure on eDP connector since the lower link BW will not support the native resolution of the panel and we cannot prune the preferred mode on the eDP connector. In case of Link training failure on the eDP panel, something is wrong in the HW internally and hence driver errors out with a loud and clear DRM_ERROR message. v2: * Fix the DEBUG_ERROR and add {} in else (Ville Syrjala) Cc: Clinton Taylor Cc: Jim Bride Cc: Jani Nikula Cc: Ville Syrjala Cc: Dave Airlie Cc: Daniel Vetter Signed-off-by: Manasi Navare Reviewed-by: Ville Syrjala Reference: https://bugs.freedesktop.org/show_bug.cgi?id=103369 Signed-off-by: Imre Deak Link: https://patchwork.freedesktop.org/patch/msgid/1507835618-23051-1-git-send-email-manasi.d.navare@intel.com (cherry picked from commit c0cfb10d9e1de490e36d3b9d4228c0ea0ca30677) Signed-off-by: Rodrigo Vivi (cherry picked from commit a306343bcd7df89d9d45a601929e26866e7b7a81) Signed-off-by: AceLan Kao --- drivers/gpu/drm/i915/intel_dp_link_training.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_dp_link_training.c b/drivers/gpu/drm/i915/intel_dp_link_training.c index 05907fa..cf8fef8 100644 --- a/drivers/gpu/drm/i915/intel_dp_link_training.c +++ b/drivers/gpu/drm/i915/intel_dp_link_training.c @@ -328,14 +328,22 @@ intel_dp_start_link_train(struct intel_dp *intel_dp) return; failure_handling: - DRM_DEBUG_KMS("[CONNECTOR:%d:%s] Link Training failed at link rate = %d, lane count = %d", - intel_connector->base.base.id, - intel_connector->base.name, - intel_dp->link_rate, intel_dp->lane_count); - if (!intel_dp_get_link_train_fallback_values(intel_dp, - intel_dp->link_rate, - intel_dp->lane_count)) - /* Schedule a Hotplug Uevent to userspace to start modeset */ - schedule_work(&intel_connector->modeset_retry_work); + /* Dont fallback and prune modes if its eDP */ + if (!intel_dp_is_edp(intel_dp)) { + DRM_DEBUG_KMS("[CONNECTOR:%d:%s] Link Training failed at link rate = %d, lane count = %d", + intel_connector->base.base.id, + intel_connector->base.name, + intel_dp->link_rate, intel_dp->lane_count); + if (!intel_dp_get_link_train_fallback_values(intel_dp, + intel_dp->link_rate, + intel_dp->lane_count)) + /* Schedule a Hotplug Uevent to userspace to start modeset */ + schedule_work(&intel_connector->modeset_retry_work); + } else { + DRM_ERROR("[CONNECTOR:%d:%s] Link Training failed at link rate = %d, lane count = %d", + intel_connector->base.base.id, + intel_connector->base.name, + intel_dp->link_rate, intel_dp->lane_count); + } return; }