Received: by 2002:a05:7412:b995:b0:f9:9502:5bb8 with SMTP id it21csp439594rdb; Thu, 21 Dec 2023 13:56:27 -0800 (PST) X-Google-Smtp-Source: AGHT+IHwBu0Ha2A/HOuYjMMdC1UJMGp0YTauATjgbzGULOdvY019R7k0dtYOqvZMpgNAjLcT3Pob X-Received: by 2002:a17:902:7ed7:b0:1d4:1a0b:560 with SMTP id p23-20020a1709027ed700b001d41a0b0560mr151261plb.89.1703195787267; Thu, 21 Dec 2023 13:56:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703195787; cv=none; d=google.com; s=arc-20160816; b=rxt8O88xXerdg96qJrWaFeFvjDN5FrihKSwnEtL5CIv27wxhq8FikUDp/NFk1El6QV vVq2L6eudrpiaHb4L0M4u08txyCYK0You+3hbY59ywwTsRGvYIqM/8YSX82wU/hX2J3X SV/O4Bioi2piqmnc+2dc+uNrtkZiPIH7BI+mtT5fKItNrDcMvQmo/aoTY3hM/Yt3JzBh tWccZyiO+XnE27GMLrgIXjD52xLTBG311JBoKkhttfK1ARTuWOdiI/Gm6XJRUjJHF38L qSxni9J/zOMZH/IFB62LqyrG3l/E4dE22DwMBXA/70pHd2HLYquEllvcG7tkgRPLkjte Gd/w== ARC-Message-Signature: i=1; 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:message-id:date:subject:cc:to :from:dkim-signature; bh=d5sCfVn0Rl/7lsdspIykh4i2JHByLubzZbSyK4Lu5I0=; fh=ioT16pzLW0piUBBhxXvWxXS2Ou63WpLdKFBE673QY08=; b=VmN1gH0/Aeq6OzhPOJxfs+C18+77kjb8SHEBROQpRhdglLbUa6ppMnqp9GiIYqXmba L70dd2vcWlGUq/Cf+QcR/2fEbgW39rq2BqfnXFh81DaUlwqgeWWpF+/d64TRVxPzLsoP KMv4PqIESHvTKtggIq78lZ2Sy7nUaAlbQcTjR/96jvpWff+xFgVOD79HOpy+r+IKkI1u HBKJcRNINKOv3I+AtakyXjHc5MmE/ewTLIGbAf2WwlarGlHsCE8e3gL83rI56JLSmXc8 uxyOiZXSkYvn+0nktlcvet3VtedB3kVWZsbR0JSKVV+0Nfuu4JlxS9tiWa4ZVcBppyx7 iGhA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=AZqJqpSl; spf=pass (google.com: domain of linux-kernel+bounces-9106-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-9106-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id bc7-20020a170902930700b001d352a49698si2085289plb.397.2023.12.21.13.56.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 21 Dec 2023 13:56:27 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-9106-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=AZqJqpSl; spf=pass (google.com: domain of linux-kernel+bounces-9106-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-9106-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 sv.mirrors.kernel.org (Postfix) with ESMTPS id E8A862861FC for ; Thu, 21 Dec 2023 21:56:26 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A425F7765C; Thu, 21 Dec 2023 21:56:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="AZqJqpSl" X-Original-To: linux-kernel@vger.kernel.org Received: from mail-il1-f177.google.com (mail-il1-f177.google.com [209.85.166.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 6669876DB6 for ; Thu, 21 Dec 2023 21:56:18 +0000 (UTC) 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-il1-f177.google.com with SMTP id e9e14a558f8ab-35d57e88c1dso6197735ab.2 for ; Thu, 21 Dec 2023 13:56:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1703195777; x=1703800577; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=d5sCfVn0Rl/7lsdspIykh4i2JHByLubzZbSyK4Lu5I0=; b=AZqJqpSlkenfYLXXnwXpoaXHnIjw5Z82YofpgZobaUo7/YJQPHX/eiS+Q+TOQIF9yY egaqfAx4BDc7M33MC1DYIh2t0Lk4lYOoDGZIcxNBpSbHRGt7j3n3xbPCWZ9MEYz4BozV EpFbaj8A9Clqr/0yb92lur0VqjbLuYKreibfg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703195777; x=1703800577; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=d5sCfVn0Rl/7lsdspIykh4i2JHByLubzZbSyK4Lu5I0=; b=WBjVXQeQi6ikSlJAcasIQzeU0I+Zx4bW6SQrm0ETAdO/iLmdrX8VXUZ1LdCqhMe2uJ 1QdUnfPaA5LCc5wQoU6btfPi/Q145T1Pn97+o5qK2nKgM0lfuMr48vEoNeUyG8BwTgKK nDAN5KJnPGvY75ONDS/UNnkDlVy9qRjkUs3uBJiH7VZ+IcCFK0Xrnmyu3UZSuYtYvj/A kaivX9Rhiga/CN2uIYsGYxfhEx32LbriRqxwxdcS3MQeGqEKFzjuGFcCB0vM1QIniBNC QcgWnYaYYL4sygZV148pa0QxqEG//VInJ0DhmYs80zmwReIzhNl49ApcAMVSRzwFVbgX loEg== X-Gm-Message-State: AOJu0YzwGIdVwi3scPSLvSgDU3DhQyyTf2r/ruMAkbKnVE6s4IYAW5q4 Ie9yQJL24wMl2GShzlMi1DQyHArn8Lkj X-Received: by 2002:a05:6e02:2688:b0:35f:b958:29f3 with SMTP id bz8-20020a056e02268800b0035fb95829f3mr299519ilb.124.1703195777479; Thu, 21 Dec 2023 13:56:17 -0800 (PST) Received: from tictac2.mtv.corp.google.com ([2620:15c:9d:2:153:ce57:e73a:ec3a]) by smtp.gmail.com with ESMTPSA id l30-20020a63ba5e000000b005cda2559351sm1756817pgu.88.2023.12.21.13.56.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 21 Dec 2023 13:56:16 -0800 (PST) From: Douglas Anderson To: dri-devel@lists.freedesktop.org Cc: treapking@chromium.org, hsinyi@chromium.org, Douglas Anderson , Andrzej Hajda , Daniel Vetter , David Airlie , Dmitry Baryshkov , Jernej Skrabec , Jonas Karlman , Laurent Pinchart , Maarten Lankhorst , Maxime Ripard , Neil Armstrong , Robert Foss , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH] drm/bridge: parade-ps8640: Wait for HPD when doing an AUX transfer Date: Thu, 21 Dec 2023 13:55:48 -0800 Message-ID: <20231221135548.1.I10f326a9305d57ad32cee7f8d9c60518c8be20fb@changeid> X-Mailer: git-send-email 2.43.0.472.g3155946c3a-goog Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Unlike what is claimed in commit f5aa7d46b0ee ("drm/bridge: parade-ps8640: Provide wait_hpd_asserted() in struct drm_dp_aux"), if someone manually tries to do an AUX transfer (like via `i2cdump ${bus} 0x50 i`) while the panel is off we don't just get a simple transfer error. Instead, the whole ps8640 gets thrown for a loop and goes into a bad state. Let's put the function to wait for the HPD (and the magical 50 ms after first reset) back in when we're doing an AUX transfer. This shouldn't actually make things much slower (assuming the panel is on) because we should immediately poll and see the HPD high. Mostly this is just an extra i2c transfer to the bridge. Fixes: f5aa7d46b0ee ("drm/bridge: parade-ps8640: Provide wait_hpd_asserted() in struct drm_dp_aux") Signed-off-by: Douglas Anderson --- drivers/gpu/drm/bridge/parade-ps8640.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/gpu/drm/bridge/parade-ps8640.c b/drivers/gpu/drm/bridge/parade-ps8640.c index 541e4f5afc4c..fb5e9ae9ad81 100644 --- a/drivers/gpu/drm/bridge/parade-ps8640.c +++ b/drivers/gpu/drm/bridge/parade-ps8640.c @@ -346,6 +346,11 @@ static ssize_t ps8640_aux_transfer(struct drm_dp_aux *aux, int ret; pm_runtime_get_sync(dev); + ret = _ps8640_wait_hpd_asserted(ps_bridge, 200 * 1000); + if (ret) { + pm_runtime_put_sync_suspend(dev); + return ret; + } ret = ps8640_aux_transfer_msg(aux, msg); pm_runtime_mark_last_busy(dev); pm_runtime_put_autosuspend(dev); -- 2.43.0.472.g3155946c3a-goog