Received: by 10.213.65.68 with SMTP id h4csp1056284imn; Wed, 4 Apr 2018 11:49:33 -0700 (PDT) X-Google-Smtp-Source: AIpwx49b2umIksS08JD2Sme+UWyXhXAAHpJ8QeYkpdjZUOqGlOrnVaqNRUjf9J4Eq6Jem1CFukuY X-Received: by 10.101.87.136 with SMTP id b8mr12580969pgr.282.1522867773592; Wed, 04 Apr 2018 11:49:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522867773; cv=none; d=google.com; s=arc-20160816; b=X9wqQ9tuuutU7WYSr9BtFivxcwyv68XulCH6uC6T+Aw47Kwg87qWxHzs3J1rt6a4dV SKPjDkXvOsEe62VJgorg39pI6dcdAG5pZseyWs76TvL7M8YccoTRTt7EnRvbQ/RKRxvr UssETbeNsX66m9ARPz7Y1Npi3HEChN3hg+y+70dtJEybkfXBNHQnEafr9+mmqTg/KTdy 3mB1JpcKZa9cvDsPieUMy/BqWA6D6ZDhYTkVUy5ZZ2DoOurRqUlUP5haT6zGO8nh25Wz mdAN7m9duttdpuOn67mWRenF41YNJ0YsPJUIZnIOyt9I8MXTO8kbcP4f0WOh8rRQbcdA vmiA== 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 :organization:references:in-reply-to:date:cc:to:from:subject :message-id:arc-authentication-results; bh=mpU4qs6N8VAIpT06k21nG03H1CpDIuVzW+yGCMz+mnc=; b=TCcJDvGbW+kM+7RkAPH35NeLRMrnNH36j7MHLataSYuzdFtUZOOx54dTkwNG10OtFn nNnOu2WzBSy4sbtNOnIw60TDGOgW/Mz7gR32eKOQenG6nxlBe+2b8wfadxAuibTxT2AU RnBV/xG8KD5EokBcdbs4Wjlw0of9XAl3OybOgwEobnphMIeZgBmZjsA6/udXsD5FCnFN IvdaQIchozbB8dRy5wHW/hAzIWxDJwiDarIJB9sWM00mv/9lnMI5E6ogpx55VTFn2r8D MbeE+G7ELEj1lD8pg5CiA6T3MVU5sFUSnHB3f/ATmzq6q2B1pHs2ZrNKcGbEcVlEjEHS sDrA== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f131si4198506pgc.437.2018.04.04.11.49.18; Wed, 04 Apr 2018 11:49:33 -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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751564AbeDDSsK (ORCPT + 99 others); Wed, 4 Apr 2018 14:48:10 -0400 Received: from mail-qk0-f195.google.com ([209.85.220.195]:39367 "EHLO mail-qk0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751417AbeDDSsI (ORCPT ); Wed, 4 Apr 2018 14:48:08 -0400 Received: by mail-qk0-f195.google.com with SMTP id j73so23612711qke.6 for ; Wed, 04 Apr 2018 11:48:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:organization:mime-version:content-transfer-encoding; bh=mpU4qs6N8VAIpT06k21nG03H1CpDIuVzW+yGCMz+mnc=; b=BSe/XXDXFEo4Ujb6y3OrQSyeo5nlrIUZ5HIZQoi5kHjq+tca1yQD2mZTvLHNxYd5w0 7sPRhfY4ndnEi0BlpimsQn/nyMI/69Z6iXOdbCbSFnv37cIilKoQBOOnDFwLs3/OxykS oHYbK9Zr9yQ7peAM7JMpq6YYxETkcmU+sZPDNzw2+tEE8mdSw1Kq5USSM3wfpltYoILB BwGBZ+Hhikd+P6YwvXAQD7su50N6veRoChogMJTrEJOOb5fekKhl3JR2ryuNXX3yA7ms BTrEkRVdjU578VM/wuIlFGlx+8TKjGOfrcEgX/u1BqcyiGt1rn1MYxy2EEVjqTXMZ4+n 2Z0g== X-Gm-Message-State: ALQs6tAtBCpjyRjAi9ZMBXU/JbZvaWAR9+4pD+pNA5H0J8R99/OGlEer myIRmzIzPuEk17ikC/nQXZYJeA== X-Received: by 10.55.105.195 with SMTP id e186mr26514615qkc.322.1522867687848; Wed, 04 Apr 2018 11:48:07 -0700 (PDT) Received: from dhcp-10-20-1-55.bss.redhat.com ([144.121.20.162]) by smtp.gmail.com with ESMTPSA id s184sm4380320qkd.78.2018.04.04.11.48.06 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 04 Apr 2018 11:48:07 -0700 (PDT) Message-ID: <1522867686.12403.8.camel@redhat.com> Subject: Re: [Intel-gfx] [PATCH v2] drm/i915: Keep AUX block running when disabling DPMS for MST From: Lyude Paul To: Manasi Navare , Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= Cc: dri-devel@lists.freedesktop.org, David Airlie , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dhinakaran Pandiyan , Rodrigo Vivi , stable@vger.kernel.org, Laura Abbott Date: Wed, 04 Apr 2018 14:48:06 -0400 In-Reply-To: <20180404184435.GA2804@intel.com> References: <20180402212142.19841-1-lyude@redhat.com> <20180402212617.21247-1-lyude@redhat.com> <20180404153429.GE5453@intel.com> <20180404184435.GA2804@intel.com> Organization: Red Hat Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.26.6 (3.26.6-1.fc27) 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 On Wed, 2018-04-04 at 11:44 -0700, Manasi Navare wrote: > On Wed, Apr 04, 2018 at 06:34:29PM +0300, Ville Syrjälä wrote: > > On Mon, Apr 02, 2018 at 05:26:16PM -0400, Lyude Paul wrote: > > > While enabling/disabling DPMS before link training with MST hubs is > > > perfectly valid; unfortunately disabling DPMS results in some devices > > > disabling their AUX CH block as well. For SST this isn't as much of a > > > problem, but for MST we need to be able to continue handling aux > > > transactions even when none of the sinks are turned on since it's > > > possible for us to have a single atomic commit which results in > > > disabling each downstream sink, followed by subsequently re-enabling > > > each sink. > > > > > > If we don't do this, we'll end up stalling any pending ESI interrupts > > > from the sink for up to 1ms. Unfortunately, dropping ESIs during this > > > timespan makes it so that link fallback retraining for MST (which I will > > > be submitting to the ML shortly) fails due to the channel EQ failure > > > interrupts potentially getting dropped. Additionally, when performing a > > > modeset that brings the hub status's link status from bad -> good having > > > ESIs disabled for that long causes us to miss the hub's response to us > > > trying to start link training as well. > > > > > > Since any sink with MST is going to support DisplayPort 1.2 anyway, save > > > us the hassle of trying to wait until the sink comes back up and just > > > never shut the aux block down. > > > > > > Changes since v2: > > > - Fix patch name, no functional changes > > > > > > Signed-off-by: Lyude Paul > > > Cc: Laura Abbott > > > Cc: Dhinakaran Pandiyan > > > Cc: Ville Syrjälä > > > Cc: stable@vger.kernel.org > > > Fixes: ad260ab32a4d9 ("drm/i915/dp: Write to SET_POWER dpcd to enable > > > MST hub.") > > > --- > > > drivers/gpu/drm/i915/intel_dp.c | 6 ++++-- > > > 1 file changed, 4 insertions(+), 2 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/i915/intel_dp.c > > > b/drivers/gpu/drm/i915/intel_dp.c > > > index 62f82c4298ac..0479c377981b 100644 > > > --- a/drivers/gpu/drm/i915/intel_dp.c > > > +++ b/drivers/gpu/drm/i915/intel_dp.c > > > @@ -2589,11 +2589,13 @@ void intel_dp_sink_dpms(struct intel_dp > > > *intel_dp, int mode) > > > return; > > > > > > if (mode != DRM_MODE_DPMS_ON) { > > > + unsigned char data = intel_dp->is_mst ? > > > + DP_SET_POWER_D3_AUX_ON : DP_SET_POWER_D3; > > > > This smells like a workaround for an actual bug somewhere. Why exactly > > is the slower wakeup or the AUX block a problem for MST but not for SST > > when the link training is exactly the same for SST and MST? > > > > The problem occurs only in case of MST because the Channel EQ failure is > notified > through ESI sideband AUX messages which potentially can get dropped because > of disabling > DPMS. But in case of SST, we detect the channel EQ failure write during the > EQ TPS sequence > which happens on the main link. mhm- that is the big problem it causes, at least with this patchset. I've been considering maybe looking into probing downstream sinks with remote dpcd reads to see their link training status, as I think that might actually be the real reason for why there's this weird difference between the channel eq status in the esi and the actual link training status of the hub in the dpcd registers that are shared with SST. but that's for a later date :) > > Manasi > > > > + > > > if (downstream_hpd_needs_d0(intel_dp)) > > > return; > > > > > > - ret = drm_dp_dpcd_writeb(&intel_dp->aux, DP_SET_POWER, > > > - DP_SET_POWER_D3); > > > + ret = drm_dp_dpcd_writeb(&intel_dp->aux, DP_SET_POWER, > > > data); > > > } else { > > > struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp); > > > > > > -- > > > 2.14.3 > > > > -- > > Ville Syrjälä > > Intel OTC > > _______________________________________________ > > Intel-gfx mailing list > > Intel-gfx@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Cheers, Lyude Paul