Received: by 2002:ab2:710b:0:b0:1ef:a325:1205 with SMTP id z11csp1410737lql; Tue, 12 Mar 2024 17:14:36 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVH2VL5tbud1a9sgmJ6JI9sM7rGBmrSk8mVqyOfI1f6p9qI3enfdsh0/W+caPHPgL0HFqfDztISK5ztjU5YYRYGVFO/eEpAjgBbCfR4qQ== X-Google-Smtp-Source: AGHT+IG/fKX8t/Qe07mpgpXFyy2hzn6ug0xQZD901TMy8viwwiOmrNPivqL4Z6r4ZOtclbsxL1Gf X-Received: by 2002:a05:6808:6194:b0:3c2:283f:2fe7 with SMTP id dn20-20020a056808619400b003c2283f2fe7mr2748450oib.58.1710288875760; Tue, 12 Mar 2024 17:14:35 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1710288875; cv=pass; d=google.com; s=arc-20160816; b=jGsVO46fVU5qnlZ15ShEMkkdLsPZtA4/2KtnXAj4nrzuOJp9IZHYJIai6Q1t2pLgPN hakVQsREgqid3monQHkkrnRB7IsdsLrnj2XXp4NtadyX3uMhcPwGARFVQ7b8QPsLtN6c OxrcXcbQ6Nw4bncJFrK43N09gPX2U/0jMeb5BE8X1UVKDaspRzaAp70LgoqCyklvGPNO qcDB5XI/fs5xWT9p+D4k7RpW4IYuJIuOVyFiyHve6NhlRVwj+uQ0NGkw2dv6u+UwL6Fv vLXfKnYW8tER60yealxzp7thyXrdcJcOQaMjs1h4/D81AN4swnklvUyoDzit1FZCt/8L PZ1Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=zguE7sLhSNq0icr0rFs1uvOVo5Tuv7IbCk7xIUt0MUw=; fh=hoBKBZpm9rSj2hxvYD5DSqNI6O4wbM8B7a7a5nmcg3s=; b=BfL9+3qxQxo1iOHbxyScAtsQLR461P9Qizp2ccaC0r6AM13+7Jzcwp1XV7MOLWi7jb mkswFsE7M3vDp6XG9KrBW/XAGhZrEoQ+mfa7PJHpzvcEyftTNutP5tNHHIhFqNvVemBh l9VfDoF0C/9xY7Mo6fCwPcGkxKyBX17BlHjFYb31RkPGPDEiepIgp0cqdfja1eQJi04B jG4CPuiFwU1MxKVl6ziCuBOJVeTzDQ4ZPZkzhgSDydIP3OGlRMOyGshHzvGyk11MEnYL FdkiYr6w8Kkk9WtvkPjG3GxPY9B8vqk6fRVM6+xDhv1i0GkO+XEWXJML+v2VIW/V9y/l XpPw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=msnTkEpK; arc=pass (i=1 spf=pass spfdomain=chromium.org dkim=pass dkdomain=chromium.org dmarc=pass fromdomain=chromium.org); spf=pass (google.com: domain of linux-kernel+bounces-100957-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-100957-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id h2-20020a05620a244200b007891e4b92d9si2087601qkn.427.2024.03.12.17.14.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Mar 2024 17:14:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-100957-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=msnTkEpK; arc=pass (i=1 spf=pass spfdomain=chromium.org dkim=pass dkdomain=chromium.org dmarc=pass fromdomain=chromium.org); spf=pass (google.com: domain of linux-kernel+bounces-100957-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-100957-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 6A9BD1C224E5 for ; Wed, 13 Mar 2024 00:14:35 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4B5A88C09; Wed, 13 Mar 2024 00:14:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="msnTkEpK" Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D99104A11 for ; Wed, 13 Mar 2024 00:14:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710288843; cv=none; b=TJhv0kbFhcLFGP4plUIa88al/LGnWsn5evHp+CQOLSI7mAiJxt03SwA9MuQaw+a8b/Hwx4K0RudyibS5TM6EkPkd8Hpxt6JwvK3B+RarjANZX6OJoJmrCp/x3hl6S9YV4lJZiJCZaoHVHvFR2Y1RK7JkMx0GPxbIT2oWGdMA3nE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710288843; c=relaxed/simple; bh=bElXbKIJI7YYYdnLkLwCaCTRKoWU1jPMgaEDYI03NW0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WOfPr9Jm/U/+N+UMyniyO7TuMOSbAIUxeTvNrcMyWsD6OIMLlsih/v+xtFMQcMFMZZ6KrXCjEzc3ofPRqoBo00QeSFN0XOkEK33j5R8cmsRSi3+kUmbpS46ih7BrkHbOzftEAvJKqdnbCTEcooGBxNUo3aqpJDsOqB+xokYOh4g= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=msnTkEpK; arc=none smtp.client-ip=209.85.214.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-1dda51bb52eso18136925ad.3 for ; Tue, 12 Mar 2024 17:14:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1710288841; x=1710893641; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=zguE7sLhSNq0icr0rFs1uvOVo5Tuv7IbCk7xIUt0MUw=; b=msnTkEpKtWBV/8JlK3MIjGjBS0aAYNgAZKK1nV555aIRKhtcXoVWqswRInOWlh2hYp uqC8HRH881UzixiUUeTKYhHHU0M5qQOqqtRZz5IXA3fRCt03he8JcPTaTzfJK2LBak3Y wXmQulhCty8suM9RD7m6HfCjVl8frxSaGmhPU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710288841; x=1710893641; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zguE7sLhSNq0icr0rFs1uvOVo5Tuv7IbCk7xIUt0MUw=; b=m/xBUiYzPtMbOIfSOuS3TRLLsfjKeb4FZxn/qG6Omr28ml6qQBPWvpkV3ZJKtgaX0Z wIvbve//vPOblHtlETK1+D/umEV7PWKtSvoFOoqr6uKiB2C9eUdcfhnP6sMYAfvKSKXF MCOf7OQE38/T7rInaZqx4NOeth8Hw+vXrdCzFa7utd1LL0ocG8kIZQv6zadgJXbI+vcT umd6KbUAZ1qFuMcnO59UXsB6zAkDTCwrYy9ZAImxn7InXdQ44TUhXxqA0+1M3EAG7nR/ 6UcbE4lMBNyskzdEw8kvg66UnzZ+TB5NdzqZTFZbdV+Hu2YA76UUZDZBzmmPoQpyvtbk YwUA== X-Forwarded-Encrypted: i=1; AJvYcCUWLI+1lDarLdntoDz4NF8t2c4cNv9Xt1HaeT2LJE5jxD1UtbVxuqo9vwOEdASgWT4n3dZDjWG9i7i/c5vvj0PvgnouOWU+awmhzQsx X-Gm-Message-State: AOJu0Ywi1dkWOtRp/cnGLD0t8W2k5U1PepbWMlXtIusXQf/yKks4Vrvq vqhBJ1I1OJF9xszFWvQU9k0sWWmsBycb8sEHfYI0MZHA4JqYbbEV0ldhKTUZzg== X-Received: by 2002:a17:903:258b:b0:1dc:728d:b1de with SMTP id jb11-20020a170903258b00b001dc728db1demr2427447plb.56.1710288841166; Tue, 12 Mar 2024 17:14:01 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:f8dd:895c:e876:6edb]) by smtp.gmail.com with ESMTPSA id x8-20020a170902a38800b001dd761faec3sm7432924pla.251.2024.03.12.17.13.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Mar 2024 17:13:59 -0700 (PDT) From: Douglas Anderson To: Rob Clark , Abhinav Kumar , Dmitry Baryshkov Cc: Douglas Anderson , Daniel Vetter , David Airlie , Kuogee Hsieh , Marijn Suijten , Sankeerth Billakanti , Sean Paul , Vinod Polimera , dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/3] drm/msm/dp: Account for the timeout in wait_hpd_asserted() callback Date: Tue, 12 Mar 2024 17:13:17 -0700 Message-ID: <20240312171305.2.I7758d18a1773821fa39c034b16a12ef3f18a51ee@changeid> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog In-Reply-To: <20240313001345.2623074-1-dianders@chromium.org> References: <20240313001345.2623074-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The DP wait_hpd_asserted() callback is passed a timeout which indicates how long we should wait for HPD. This timeout was being ignored in the MSM DP implementation and instead a hardcoded 500 ms timeout was used. Fix it to use the proper timeout. As part of this we move the hardcoded 500 ms number into the AUX transfer function, which isn't given a timeout. The wait in the AUX transfer function will be removed in a future commit. Fixes: e2969ee30252 ("drm/msm/dp: move of_dp_aux_populate_bus() to eDP probe()") Signed-off-by: Douglas Anderson --- drivers/gpu/drm/msm/dp/dp_aux.c | 5 +++-- drivers/gpu/drm/msm/dp/dp_catalog.c | 7 ++++--- drivers/gpu/drm/msm/dp/dp_catalog.h | 3 ++- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/msm/dp/dp_aux.c b/drivers/gpu/drm/msm/dp/dp_aux.c index de0b0eabced9..fc398e8a69a7 100644 --- a/drivers/gpu/drm/msm/dp/dp_aux.c +++ b/drivers/gpu/drm/msm/dp/dp_aux.c @@ -311,7 +311,8 @@ static ssize_t dp_aux_transfer(struct drm_dp_aux *dp_aux, * directly. */ if (aux->is_edp) { - ret = dp_catalog_aux_wait_for_hpd_connect_state(aux->catalog); + ret = dp_catalog_aux_wait_for_hpd_connect_state(aux->catalog, + 500000); if (ret) { DRM_DEBUG_DP("Panel not ready for aux transactions\n"); goto exit; @@ -516,7 +517,7 @@ static int dp_wait_hpd_asserted(struct drm_dp_aux *dp_aux, aux = container_of(dp_aux, struct dp_aux_private, dp_aux); pm_runtime_get_sync(aux->dev); - ret = dp_catalog_aux_wait_for_hpd_connect_state(aux->catalog); + ret = dp_catalog_aux_wait_for_hpd_connect_state(aux->catalog, wait_us); pm_runtime_put_sync(aux->dev); return ret; diff --git a/drivers/gpu/drm/msm/dp/dp_catalog.c b/drivers/gpu/drm/msm/dp/dp_catalog.c index 93e2d413a1e7..b45cf3174aa0 100644 --- a/drivers/gpu/drm/msm/dp/dp_catalog.c +++ b/drivers/gpu/drm/msm/dp/dp_catalog.c @@ -253,17 +253,18 @@ void dp_catalog_aux_update_cfg(struct dp_catalog *dp_catalog) phy_calibrate(phy); } -int dp_catalog_aux_wait_for_hpd_connect_state(struct dp_catalog *dp_catalog) +int dp_catalog_aux_wait_for_hpd_connect_state(struct dp_catalog *dp_catalog, + unsigned long wait_us) { u32 state; struct dp_catalog_private *catalog = container_of(dp_catalog, struct dp_catalog_private, dp_catalog); - /* poll for hpd connected status every 2ms and timeout after 500ms */ + /* poll for hpd connected status every 2ms and timeout after wait_us */ return readl_poll_timeout(catalog->io->dp_controller.aux.base + REG_DP_DP_HPD_INT_STATUS, state, state & DP_DP_HPD_STATE_STATUS_CONNECTED, - 2000, 500000); + min(wait_us, 2000), wait_us); } bool dp_catalog_aux_is_hpd_connected(struct dp_catalog *dp_catalog) diff --git a/drivers/gpu/drm/msm/dp/dp_catalog.h b/drivers/gpu/drm/msm/dp/dp_catalog.h index 1694040c530f..4248c8de5cf7 100644 --- a/drivers/gpu/drm/msm/dp/dp_catalog.h +++ b/drivers/gpu/drm/msm/dp/dp_catalog.h @@ -85,7 +85,8 @@ int dp_catalog_aux_clear_hw_interrupts(struct dp_catalog *dp_catalog); void dp_catalog_aux_reset(struct dp_catalog *dp_catalog); void dp_catalog_aux_enable(struct dp_catalog *dp_catalog, bool enable); void dp_catalog_aux_update_cfg(struct dp_catalog *dp_catalog); -int dp_catalog_aux_wait_for_hpd_connect_state(struct dp_catalog *dp_catalog); +int dp_catalog_aux_wait_for_hpd_connect_state(struct dp_catalog *dp_catalog, + unsigned long wait_us); bool dp_catalog_aux_is_hpd_connected(struct dp_catalog *dp_catalog); u32 dp_catalog_aux_get_irq(struct dp_catalog *dp_catalog); -- 2.44.0.278.ge034bb2e1d-goog