From patchwork Sun Feb 25 14:12:46 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 206020 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp1593918dyb; Sun, 25 Feb 2024 06:13:40 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCVwVtRngJMK1Uhbyl/go+xWjFkMcFKqhe+5tyNe5RsFlpWr4zSoq/tDkpSQkmM0BQwthHHoGyHx2xu2zGf+aYgOK34d1w== X-Google-Smtp-Source: AGHT+IFXNh07YMgdaWL+VTRl9mtO2bHFsXfXpM0iaysB2tP356AtnqBl2SZekS68gPEISyb7WHEX X-Received: by 2002:aa7:c542:0:b0:565:ebf2:f31a with SMTP id s2-20020aa7c542000000b00565ebf2f31amr272055edr.19.1708870420063; Sun, 25 Feb 2024 06:13:40 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708870420; cv=pass; d=google.com; s=arc-20160816; b=Xj/L5Gb66NcKZj1+/qaC3nA9Akmp9UwFRh8tE2r2zUWXl0VqrWBGq82eFqCBT7jQ3x dI7O4McFCRQgUfaO6a115xlUDoHCTDOvl/CHUeRccep+E54coYRos9i9DU47DzswWI1n LbTlgXFNtkp5VxP52n8AXhRj/DqAd/iDAV4TAeQGyx6G7p1sXXDf27lfP//bMmbfWFhk 0NV7XNGlRkk3SubIMMUD3ypBE2K9l23wYezDiBuETHpCLUrDDkh3joIiXz7KhNCak1Mq cFZAb30l565f/ke99bvhNdwUb18xqOpbyitXCtnim25V8q/dgQjsvoUiBtCLk5BKeOnY M4Lg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :subject:date:from:dkim-signature; bh=IXkFidtqGVYDP8/cl+5cTf/LoCCSdGW5wG6DXUHuPiw=; fh=8pPsSELqTS6Lqenle5bzGnGNFbWhxYRHsiIvIoi7qTo=; b=DKlzAopJKrVTGOGC14QNSnQDzhhrgDd9W7NRrmJhwF9fh8IdaG8iitoRtiTAs5xPWn ZdJ9D53aP0ARFI5XpukVNywqn0fygePRHrbJPsHE7p9b/9cZxQwxfq5Fmgl2WTHYkfU0 Z3nlwNjL+aL2AWryeNb5KqAVKAn/5wZ9qvLq87kaNWg0iBvL9ZxnKQVbVrvE7JwpyRn/ 7zW8ku05iyMDDj+bTCjRL7lcg8Uf8uBK1tLcSeqr/KQN5061Lmm8koYf7kctbuxvHmfI cwxEs/RvD2wsxMz/Xz4wO3i/DIUzMz6cw74UfSW3hZjcDxbpetTg7wRz2LEpVNv3e5Nq LdcA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=L6GgmmRJ; arc=pass (i=1 spf=pass spfdomain=linaro.org dkim=pass dkdomain=linaro.org dmarc=pass fromdomain=linaro.org); spf=pass (google.com: domain of linux-kernel+bounces-80089-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-80089-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id n21-20020aa7db55000000b005657eefa8fcsi1212294edt.172.2024.02.25.06.13.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Feb 2024 06:13:40 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-80089-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=L6GgmmRJ; arc=pass (i=1 spf=pass spfdomain=linaro.org dkim=pass dkdomain=linaro.org dmarc=pass fromdomain=linaro.org); spf=pass (google.com: domain of linux-kernel+bounces-80089-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-80089-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.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 am.mirrors.kernel.org (Postfix) with ESMTPS id A9B7C1F214D6 for ; Sun, 25 Feb 2024 14:13:39 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A02D616427; Sun, 25 Feb 2024 14:12:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="L6GgmmRJ" Received: from mail-lf1-f47.google.com (mail-lf1-f47.google.com [209.85.167.47]) (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 BFB6E12E6D for ; Sun, 25 Feb 2024 14:12:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708870373; cv=none; b=ev7ltbvsrH3iHxkc5mn7N/o7pu/k458GZU9/tCnYRmlort4UAbXQsGV8hmzL2e9m/t9HVMnWslFWOMsEt0BNGfqZEBuux3nEzE7lpWTjI91vSaSV6Sd+Sk6oxInR3FMSyUmqSGcUxcjTFG1Mi18VYbuPwyrw+oxy3W7KF5qO2gs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708870373; c=relaxed/simple; bh=A4/oTwY5JpAU9dbsu93L7dZvCPx7K/2ZR18bKOeKyl0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=arG/Q/ep1S03LHt9aB0Fv36gyTsGsue5FAS0reYj062E16MbXKIwRh3poj02O7ZHLHQr6rlabn1YcLGnTpD7MyNWnp+Ag56xr3gfz6dam/jzfRcJfNKUonAAhb/iSJ+qA1nRkPLHgK3JNvXGyo9gL68hZruavVdpe0Iy8CripKQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=L6GgmmRJ; arc=none smtp.client-ip=209.85.167.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-lf1-f47.google.com with SMTP id 2adb3069b0e04-512fb30dbc9so223073e87.2 for ; Sun, 25 Feb 2024 06:12:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1708870370; x=1709475170; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=IXkFidtqGVYDP8/cl+5cTf/LoCCSdGW5wG6DXUHuPiw=; b=L6GgmmRJhNanYrJ5R04m4b3jVj0CrURPk8lw67HJcdubb4L8bs/mGNGXZZXahZwy1Q KPYrEbp+c8iznKUq9TzGWZPuv4pFzm4LRe9P95IuXfmbrhZMtIQbLkEDJ9280gCeIWts Jr3SMIKO5zlfsVivvCT8+x0mihhp0D71escc/d05PGJPw7ICTnqy6xnRRH1lpAxFhXeX 3jroP3dzYQV4hJvm6yMdchTMX35VHVEqXsM7XlJOr99RQiBAvVhVK5F7HIS2/HL9U82W xny1MIV2sbqmmsX/OQfqLZxOd2RlHQVizn+l4etiAWssC5rAwq9HVlPCyE3vslYUIWVB kGRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708870370; x=1709475170; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IXkFidtqGVYDP8/cl+5cTf/LoCCSdGW5wG6DXUHuPiw=; b=W4/urwIe0XK/C+71MBUbSeAJ81W4SWL3iSmSZZIuNaczal6m09ITIjGAhAPZjTE2Qi S+EYPZ9lZr2Zm7SQS+dn9M2pC13lpqYOUHRl6Fafu97DIRSuvNE/69PnXQnswJ1mJaes SpuRJqMCFFH8V2gqYU/deBCOM0OlRsrzdSh918F+ca2vLXUolmwnoFO+5hWky7R0alH9 mQNspNMSA0LSsMpIUzW7yLmO3ljAfDloWf5TFADIsn2Vcbh//rYtCBm7Ryx1oF7MRBxh QZjgsaMA/67q1OKU+/qr4C2GLY8J4cUOEr7U8YYUdMoCkCj2t9S0bwlJO6eT/WlfJPfp hnWg== X-Forwarded-Encrypted: i=1; AJvYcCVH3iehzbboZiVTCvZEvlh0dct78DUqko8kzMWJ6FYReM9X8uX/SZHQ4AK04aTtwh8skO/Zzq6HbVmwKta8ySPQJY32cBfOAPYlvCFi X-Gm-Message-State: AOJu0YxxDtYa5kPVdD3hwPKYg8vPzPTiZJuuYIk6w7STJk/k6Ign+rmH aqHHjckgSSbtMsm9ghmED3wvd6oEU5fTQQJs2i/lv82dnV68DL//kboh1+7lcig= X-Received: by 2002:ac2:5388:0:b0:512:ec6e:9f2a with SMTP id g8-20020ac25388000000b00512ec6e9f2amr2791473lfh.19.1708870369931; Sun, 25 Feb 2024 06:12:49 -0800 (PST) Received: from umbar.lan (dzyjmhybhls-s--zn36gy-3.rev.dnainternet.fi. [2001:14ba:a00e:a300:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id w13-20020ac254ad000000b00512e5bd2296sm522931lfk.217.2024.02.25.06.12.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Feb 2024 06:12:48 -0800 (PST) From: Dmitry Baryshkov Date: Sun, 25 Feb 2024 16:12:46 +0200 Subject: [PATCH v3 1/3] drm/msm/dpu: make "vblank timeout" more useful Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240225-fd-dpu-debug-timeout-v3-1-252f2b21cdcc@linaro.org> References: <20240225-fd-dpu-debug-timeout-v3-0-252f2b21cdcc@linaro.org> In-Reply-To: <20240225-fd-dpu-debug-timeout-v3-0-252f2b21cdcc@linaro.org> To: Rob Clark , Abhinav Kumar , Sean Paul , Marijn Suijten , David Airlie , Daniel Vetter Cc: Steev Klimaszewski , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dmitry Baryshkov X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1057; i=dmitry.baryshkov@linaro.org; h=from:subject:message-id; bh=A4/oTwY5JpAU9dbsu93L7dZvCPx7K/2ZR18bKOeKyl0=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBl20rfZOXUMpqNliF8fh0oH/0RuleHVyeXPPDGe FISdoya/+aJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCZdtK3wAKCRCLPIo+Aiko 1TuEB/0Z/hHj29uzA3HA/VxFscGLzDGqyZUj4/ANTvm9EjAYa0jQ1LJccv3i1tiK0jnqxIWiFoc wnYLHUf5Gnp42YrF0h8S+uPIOX5nmPadqvtKmBuY8GzoZs9/IYY7ggAMzbGf3HnQHDc4y6/kAbH 1QNNrifLpUq5wHtBq3a5QE/uZO+cXGp4ozHDQM04cEUW26qvjCcR6bMADk0Ft777z41tCostXqI VLDhiefC7by6PVbjx5VTY5fVKqRr1rDR7DNWIy75ZRDDVSml1SirAMOr9nydO1UNltGDhVZgcGu ucU+IKr4qLybtRBJaNN67n4kqWQAKakPMqnsRgbLBCnrO3nT X-Developer-Key: i=dmitry.baryshkov@linaro.org; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791880509512450632 X-GMAIL-MSGID: 1791880509512450632 We have several reports of vblank timeout messages. However after some debugging it was found that there might be different causes to that. To allow us to identify the DPU block that gets stuck, include the actual CTL_FLUSH value into the timeout message. Signed-off-by: Dmitry Baryshkov Reviewed-by: Abhinav Kumar --- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c index 2aa72b578764..6058706f03e4 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c @@ -480,7 +480,7 @@ static int dpu_encoder_phys_vid_wait_for_commit_done( (hw_ctl->ops.get_flush_register(hw_ctl) == 0), msecs_to_jiffies(50)); if (ret <= 0) { - DPU_ERROR("vblank timeout\n"); + DPU_ERROR("vblank timeout: %x\n", hw_ctl->ops.get_flush_register(hw_ctl)); return -ETIMEDOUT; } From patchwork Sun Feb 25 14:12:47 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 206022 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp1594067dyb; Sun, 25 Feb 2024 06:14:00 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCUJ692M53TCNASuc8c3JvOh8cORaxQ+xYLrXx5q/V1WoClQH2Y8cv6fbyVlTJBLwx6nFf/usnVuxPPjTqhkkC4v0o9m4Q== X-Google-Smtp-Source: AGHT+IGwON5LJVe2AqkeEugUijs5qzi4h6eP/hv75F351ZY+3OswpWbq5ZOgyw8cp+Ne0nzZP4F+ X-Received: by 2002:a2e:a363:0:b0:2d2:64a3:fb2c with SMTP id i3-20020a2ea363000000b002d264a3fb2cmr2350899ljn.36.1708870440679; Sun, 25 Feb 2024 06:14:00 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708870440; cv=pass; d=google.com; s=arc-20160816; b=zWL2V+emTIBcfejfhkV6hl99Zrh1skOs+LKtzr3zeZCMbt6GZjEdSJjhKcRFfPLxrw NO5II86PtGyiYfBpPlpOIdvtwqGh5/W1UzQdLSn5a5EgkWCtd8sX9PhY3OuO5YUEiqXZ pC+fOU1Ev2qRzmy2f4356uhWBeKB4NsmlljDScElANtl8U/LrruphW2kkHqaxR14E59S kwLkTA8Pza1q6G10zvGGdf6btjltBlDCLAatSyEI9zeE3ojbbWYiu7obtCE3EqdQXo/p E9iQyRcN8D9kbhYoJNOUdJUicJPDAplQAHMsceNNeE66aXpDyLx1gE2BDJ/SXw8rwRn3 3m5w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :subject:date:from:dkim-signature; bh=Tjno7HMc44jNAwGe0pRLX3fSYJzYBO6KHE8KOaNyqJk=; fh=W+0SP3cGqNzmB+WRGrWrkJvSK9FnNFR0VtSTGHZ6vP4=; b=hFuHwVRrEq8nR/ahDV1BtDh1DGGCLJJwaL/qAHpuO4MW/LnnZElxi8fN9296jPAkzG MU9bqueVjoXP2U63/lFY5i+cCZEIaYW01HfVfZUeGTI+/x/amLeLvYPriqtCUT5C7ibE daICDYSLhRnVyxwgcWS8oF/ULNZOn86a1WLxrYe3rifWFHWm8RFrZgAn2bnDW5/UpwrM sVaCbkUDVUhG8n9bljwuMlqxolu18bCMCRH3QVjwlzwvxq3RSyrUS6SWDH6PoNmuh6Kx kw6BqsBq25Y+XXQ263rpy2N9wIiYE52FAjdfln9qpnriFnwHINRvnCH1jy6EcwSJGJKM AF4g==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=T5U7+mwT; arc=pass (i=1 spf=pass spfdomain=linaro.org dkim=pass dkdomain=linaro.org dmarc=pass fromdomain=linaro.org); spf=pass (google.com: domain of linux-kernel+bounces-80090-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-80090-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id n10-20020aa7d04a000000b00565897cb05dsi1224668edo.109.2024.02.25.06.14.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Feb 2024 06:14:00 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-80090-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=T5U7+mwT; arc=pass (i=1 spf=pass spfdomain=linaro.org dkim=pass dkdomain=linaro.org dmarc=pass fromdomain=linaro.org); spf=pass (google.com: domain of linux-kernel+bounces-80090-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-80090-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.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 am.mirrors.kernel.org (Postfix) with ESMTPS id 19FD91F21578 for ; Sun, 25 Feb 2024 14:14:00 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id DC028175AD; Sun, 25 Feb 2024 14:12:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="T5U7+mwT" Received: from mail-lf1-f43.google.com (mail-lf1-f43.google.com [209.85.167.43]) (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 E8396134B1 for ; Sun, 25 Feb 2024 14:12:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708870374; cv=none; b=d4NFra4833nW4X7V+2w+q7VybeiMgJy3Kiv+9szQT0xrT33FpMweARRiqKISaCXfRYAPtrHAU1c/BTo9OdQ4tb/wzqMEd7gBoD04uTD18/iQupVY/rU9pCNSQmjNKl5GmRqF7m3dABippK/vJcEczMqsC4+cvSCUxPlt6LF/BkU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708870374; c=relaxed/simple; bh=4+p20gFGBfsm1TzLgabMIRSGbsT/TwxhyM1Y0Pi2MaI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uXMJlA9qJXJZ9GHmshv1lC09wH49yGhE3QWr8F4vkVGYohI8JONZQ6BXr2412PKo9+qVdiSxsEjMZM7LgkkE8bqGMg5lNlgEemgJ7EKsM6k1L/QW6RmhZ7WkWYI0QG9HVlblIifK3gLcjEVQFU2jzLLNJ0D097KY1OuXhLgzJCE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=T5U7+mwT; arc=none smtp.client-ip=209.85.167.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-lf1-f43.google.com with SMTP id 2adb3069b0e04-512f54fc2dbso764952e87.1 for ; Sun, 25 Feb 2024 06:12:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1708870371; x=1709475171; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Tjno7HMc44jNAwGe0pRLX3fSYJzYBO6KHE8KOaNyqJk=; b=T5U7+mwTeKlT3Ylcu3PUWxjf+OVU47mvGGhAiZUsBvF0q3PTMVLOuoeyd5TvSP9qM9 ayh6wXxrLncaTDccO3/JN5VJqUE9iHdmqwOn1gIYeZuXTnhXiGU5YNw4UgeY91dx62Dk PjvjTGvFn7bEgPrdBK0uE0Tn5Sk2Zw5Om53vskAy/aNI6B3Q6ggOHkcZxPG/F5PE2YCA U9k9+WBPDA819C/JvX1bm0Y+u2N6Z/UeAG5T++W8z+amfNyCAixTiqvFxCWKNNn3G1/8 icgaO8DbTNd80HqboeRqbq83k/doKdHDJsKtqUKnoXu5CVksKBUdGAK0VIjctWjD5be0 EjUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708870371; x=1709475171; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Tjno7HMc44jNAwGe0pRLX3fSYJzYBO6KHE8KOaNyqJk=; b=fuXiic2EjEc+O98WTN9CD9ANbUZrx/tvI7K4WufqUTsxVv1DwAzby1eBbnw43WikIb zCRrjAoOCYjWVxdqRHJapgFR1bPhJcPYXywvIfk+tOmAv0H/Hdkt0GY6HfGxfOAxEudG F3FSIjKTF/+w+kyMwhQ8ma8ISdPmHaWfntfif79CUSDD2yxKnCQS+oJG+uZljEVeM9r7 bC4UsVxC3iGHRvAiAqAjhsosgEA1dywd33EW1tulEibcbzV7ZJEs+7afUwBa//pZUgqo IvEPfzATlxQJQb+i4sSbXSWwETPbVXgtDkHbuabzi7tfRnMQR8yL6M35QILXQpZ8XWhY VCtA== X-Forwarded-Encrypted: i=1; AJvYcCUdSbkr6GnWQjy6lHr3ve5tXFsWISvBRhcYrSFk/CiEuH8fq8FcOdSMS3RyeB6Y38AoBeLycsWlam1sIWX6p+ADrU/infz5EMpPBU0P X-Gm-Message-State: AOJu0YztQ5JAxWcBmBot4RBJd/UambXPm/SBQ0NrnTuYjwd/fDtaF55m pP3c3xZydRtDHB9LAUmju/slLEbcOz/qZcdD3V1Qw4H2dwweqaNrkIKN+EHVngI= X-Received: by 2002:a05:6512:239b:b0:512:fe25:5226 with SMTP id c27-20020a056512239b00b00512fe255226mr29094lfv.55.1708870370964; Sun, 25 Feb 2024 06:12:50 -0800 (PST) Received: from umbar.lan (dzyjmhybhls-s--zn36gy-3.rev.dnainternet.fi. [2001:14ba:a00e:a300:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id w13-20020ac254ad000000b00512e5bd2296sm522931lfk.217.2024.02.25.06.12.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Feb 2024 06:12:50 -0800 (PST) From: Dmitry Baryshkov Date: Sun, 25 Feb 2024 16:12:47 +0200 Subject: [PATCH v3 2/3] drm/msm/dpu: split dpu_encoder_wait_for_event into two functions Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240225-fd-dpu-debug-timeout-v3-2-252f2b21cdcc@linaro.org> References: <20240225-fd-dpu-debug-timeout-v3-0-252f2b21cdcc@linaro.org> In-Reply-To: <20240225-fd-dpu-debug-timeout-v3-0-252f2b21cdcc@linaro.org> To: Rob Clark , Abhinav Kumar , Sean Paul , Marijn Suijten , David Airlie , Daniel Vetter Cc: Steev Klimaszewski , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dmitry Baryshkov X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=7184; i=dmitry.baryshkov@linaro.org; h=from:subject:message-id; bh=4+p20gFGBfsm1TzLgabMIRSGbsT/TwxhyM1Y0Pi2MaI=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBl20rfd/iXDzs195du3nz9bP1NLN9duQ0Qez0KO JnVDsV6tFuJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCZdtK3wAKCRCLPIo+Aiko 1ZlUCACygLLCskenyxtIgNoFEiLgSKaidvYAPKV0C5zXnMpV03QW/cKdBmpyTxoIPWEpozUS+Cy FAqxNIB/KB1cloNaY/hLsGwtWXxFnoDvZRaNOWzGORHHJl50v+5nd2nLskdUX9JTI3xjOabXlpy /UhjDuY8bfO1A/4v1PC1UawcPDF41Ue/AsM4iJy2RU5oy8n2T7rkOcKR60lgk70hFK8Vi1QIfDN 5Dj0Bikx+EcZhNwUF0vA8IWGX/zU5itt2KlxJE38hhk/W/abzkL2Of2Ul9XkfC8EPQH+LpKiWfz sq81X87CZUiiW7Na4fduVdnM32DrmlDlJ6GnhY25AS+FnLUk X-Developer-Key: i=dmitry.baryshkov@linaro.org; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791880531426143732 X-GMAIL-MSGID: 1791880531426143732 Stop multiplexing several events via the dpu_encoder_wait_for_event() function. Split it into two distinct functions two allow separate handling of those events. Signed-off-by: Dmitry Baryshkov Reviewed-by: Abhinav Kumar --- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 74 +++++++++++++++++++++-------- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 22 ++------- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 2 +- drivers/gpu/drm/msm/msm_drv.h | 10 ---- 4 files changed, 59 insertions(+), 49 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c index 194dbb08331d..30f349c8a1e5 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c @@ -1282,7 +1282,7 @@ static void dpu_encoder_virt_atomic_disable(struct drm_encoder *drm_enc, trace_dpu_enc_disable(DRMID(drm_enc)); /* wait for idle */ - dpu_encoder_wait_for_event(drm_enc, MSM_ENC_TX_COMPLETE); + dpu_encoder_wait_for_tx_complete(drm_enc); dpu_encoder_resource_control(drm_enc, DPU_ENC_RC_EVENT_PRE_STOP); @@ -2402,10 +2402,23 @@ struct drm_encoder *dpu_encoder_init(struct drm_device *dev, return &dpu_enc->base; } -int dpu_encoder_wait_for_event(struct drm_encoder *drm_enc, - enum msm_event_wait event) +/** + * dpu_encoder_wait_for_commit_done() - Wait for encoder to flush pending state + * @drm_enc: encoder pointer + * + * Wait for hardware to have flushed the current pending frames to hardware at + * a vblank or ctl_start Encoders will map this differently depending on the + * panel type. + * + * MSM_ENC_TX_COMPLETE - Wait for the hardware to transfer all the pixels to + * the panel. Encoders will map this differently + * depending on the panel type. + * vid mode -> vsync_irq + * cmd mode -> pp_done + * Return: 0 on success, -EWOULDBLOCK if already signaled, error otherwise + */ +int dpu_encoder_wait_for_commit_done(struct drm_encoder *drm_enc) { - int (*fn_wait)(struct dpu_encoder_phys *phys_enc) = NULL; struct dpu_encoder_virt *dpu_enc = NULL; int i, ret = 0; @@ -2419,23 +2432,46 @@ int dpu_encoder_wait_for_event(struct drm_encoder *drm_enc, for (i = 0; i < dpu_enc->num_phys_encs; i++) { struct dpu_encoder_phys *phys = dpu_enc->phys_encs[i]; - switch (event) { - case MSM_ENC_COMMIT_DONE: - fn_wait = phys->ops.wait_for_commit_done; - break; - case MSM_ENC_TX_COMPLETE: - fn_wait = phys->ops.wait_for_tx_complete; - break; - default: - DPU_ERROR_ENC(dpu_enc, "unknown wait event %d\n", - event); - return -EINVAL; + if (phys->ops.wait_for_commit_done) { + DPU_ATRACE_BEGIN("wait_for_commit_done"); + ret = phys->ops.wait_for_commit_done(phys); + DPU_ATRACE_END("wait_for_commit_done"); + if (ret) + return ret; } + } + + return ret; +} + +/** + * dpu_encoder_wait_for_tx_complete() - Wait for encoder to transfer pixels to panel + * @drm_enc: encoder pointer + * + * Wait for the hardware to transfer all the pixels to the panel. Encoders will + * map this differently depending on the panel type. + * + * Return: 0 on success, -EWOULDBLOCK if already signaled, error otherwise + */ +int dpu_encoder_wait_for_tx_complete(struct drm_encoder *drm_enc) +{ + struct dpu_encoder_virt *dpu_enc = NULL; + int i, ret = 0; + + if (!drm_enc) { + DPU_ERROR("invalid encoder\n"); + return -EINVAL; + } + dpu_enc = to_dpu_encoder_virt(drm_enc); + DPU_DEBUG_ENC(dpu_enc, "\n"); + + for (i = 0; i < dpu_enc->num_phys_encs; i++) { + struct dpu_encoder_phys *phys = dpu_enc->phys_encs[i]; - if (fn_wait) { - DPU_ATRACE_BEGIN("wait_for_completion_event"); - ret = fn_wait(phys); - DPU_ATRACE_END("wait_for_completion_event"); + if (phys->ops.wait_for_tx_complete) { + DPU_ATRACE_BEGIN("wait_for_tx_complete"); + ret = phys->ops.wait_for_tx_complete(phys); + DPU_ATRACE_END("wait_for_tx_complete"); if (ret) return ret; } diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h index fe6b1d312a74..0c928d1876e4 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h @@ -93,25 +93,9 @@ void dpu_encoder_kickoff(struct drm_encoder *encoder); */ int dpu_encoder_vsync_time(struct drm_encoder *drm_enc, ktime_t *wakeup_time); -/** - * dpu_encoder_wait_for_event - Waits for encoder events - * @encoder: encoder pointer - * @event: event to wait for - * MSM_ENC_COMMIT_DONE - Wait for hardware to have flushed the current pending - * frames to hardware at a vblank or ctl_start - * Encoders will map this differently depending on the - * panel type. - * vid mode -> vsync_irq - * cmd mode -> ctl_start - * MSM_ENC_TX_COMPLETE - Wait for the hardware to transfer all the pixels to - * the panel. Encoders will map this differently - * depending on the panel type. - * vid mode -> vsync_irq - * cmd mode -> pp_done - * Returns: 0 on success, -EWOULDBLOCK if already signaled, error otherwise - */ -int dpu_encoder_wait_for_event(struct drm_encoder *drm_encoder, - enum msm_event_wait event); +int dpu_encoder_wait_for_commit_done(struct drm_encoder *drm_encoder); + +int dpu_encoder_wait_for_tx_complete(struct drm_encoder *drm_encoder); /* * dpu_encoder_get_intf_mode - get interface mode of the given encoder diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c index d6412395bacc..26b5e54031d9 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c @@ -476,7 +476,7 @@ static void dpu_kms_wait_for_commit_done(struct msm_kms *kms, * mode panels. This may be a no-op for command mode panels. */ trace_dpu_kms_wait_for_commit_done(DRMID(crtc)); - ret = dpu_encoder_wait_for_event(encoder, MSM_ENC_COMMIT_DONE); + ret = dpu_encoder_wait_for_commit_done(encoder); if (ret && ret != -EWOULDBLOCK) { DPU_ERROR("wait for commit done returned %d\n", ret); break; diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h index 762e13e2df74..91cf57f72321 100644 --- a/drivers/gpu/drm/msm/msm_drv.h +++ b/drivers/gpu/drm/msm/msm_drv.h @@ -74,16 +74,6 @@ enum msm_dsi_controller { #define MSM_GPU_MAX_RINGS 4 #define MAX_H_TILES_PER_DISPLAY 2 -/** - * enum msm_event_wait - type of HW events to wait for - * @MSM_ENC_COMMIT_DONE - wait for the driver to flush the registers to HW - * @MSM_ENC_TX_COMPLETE - wait for the HW to transfer the frame to panel - */ -enum msm_event_wait { - MSM_ENC_COMMIT_DONE = 0, - MSM_ENC_TX_COMPLETE, -}; - /** * struct msm_display_topology - defines a display topology pipeline * @num_lm: number of layer mixers used From patchwork Sun Feb 25 14:12:48 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 206021 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp1594023dyb; Sun, 25 Feb 2024 06:13:56 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXMok7aJsGkO6kbDld2B/LjXbN40I1jd3D9omsUzWtgEKG9AzqzDOfvzikRNW3TdZQAO+2hgughx5SsbOHAdthmAn5Gpg== X-Google-Smtp-Source: AGHT+IGSXQvOXgi4nHweCjyV6QcR7VwUrRYdVQbwE8/RlGOLKKYxi4BT31jAtyuTBW5cAoHHE9EL X-Received: by 2002:aa7:c3d0:0:b0:565:edd9:1aca with SMTP id l16-20020aa7c3d0000000b00565edd91acamr358493edr.15.1708870435867; Sun, 25 Feb 2024 06:13:55 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708870435; cv=pass; d=google.com; s=arc-20160816; b=03ydY8KwUyF0bPvBz0bgt+G00W1fIaiaV7mBf1AIzlLo18Dz8zpwDGO1fiPaSNNhLg gKmuLuY4/esSdKZikksq3SEPbTrzCyPUQdgtcgbINMqmrLFCOigO/z8iKd4FpSW4urEj /HeW7WnAe9OTq67kr7TN1xXCRG39LVDrbo8FE9D/3vra8skWimkbiv8X9VLuamBg/E0f YxvY0ELFIk9XHXUFb6sYZ3+6DunePefYul/7l4RbHnuiRKPyr1hlGqvGxt2B0SkJsh04 4mSWUhR8lnez3znoKOy2nWnN6SNdhzaSl7bovBfSqv5CPEP9t4Oc3URxmoTtMczQ8nJ+ CjoQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :subject:date:from:dkim-signature; bh=W1EgeiS53bZU89cWnjtfqhJ0Xbfd+zvllvWyAXpOfzo=; fh=n9+73JIW8aoPBmaqZ7/JLhJTGhF02rDa4LjhOXnKTks=; b=KbCgh+NqfOawOO1zUQaOdjmYv8ZNW6nwSHZUxzJh6fOr1mjGIbO5p/gP2RRFb22SAm 4ukEOA7tm5Bw323k3BAhl5jTwTPr9+tV8bE44zgwVaCK0715N/NjWoHYxeOoXvvcW9tU PelX2wNMMvTz9tTvvd4Q4/9JgCxFrQysBIpxkC5eB9VNa98A2nwg9WiG+5g2XdctAY0b 0VlhNDkeTEFK0IAchzK5WY4+jPk8HDfypB4FZU4tsXHkHxHgLGLbIBH9mWpSjfWuR+yl lRgzf513p8yWHZcebmb7NNJaLQKgLEOhZhwt6zxpmehDNu2HTBxi2IOhSXZHdbP+0Pfd tHUQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=BOuBoxCs; arc=pass (i=1 spf=pass spfdomain=linaro.org dkim=pass dkdomain=linaro.org dmarc=pass fromdomain=linaro.org); spf=pass (google.com: domain of linux-kernel+bounces-80091-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-80091-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id e5-20020a50a685000000b0056487342ddbsi1205069edc.581.2024.02.25.06.13.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Feb 2024 06:13:55 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-80091-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=BOuBoxCs; arc=pass (i=1 spf=pass spfdomain=linaro.org dkim=pass dkdomain=linaro.org dmarc=pass fromdomain=linaro.org); spf=pass (google.com: domain of linux-kernel+bounces-80091-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-80091-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.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 am.mirrors.kernel.org (Postfix) with ESMTPS id 50F191F21582 for ; Sun, 25 Feb 2024 14:13:55 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 46A4A1759F; Sun, 25 Feb 2024 14:12:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="BOuBoxCs" Received: from mail-lj1-f170.google.com (mail-lj1-f170.google.com [209.85.208.170]) (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 74405134CE for ; Sun, 25 Feb 2024 14:12:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708870375; cv=none; b=R895PVE6rDs2wRg34UoA6Nfx9mBL7GLTHSePWDUhVuASZP1qyxsaN45BhYukNFpgKrOnzUL6fsdAcIck0emogIZdiY5KVj59lkhsoov6HSqv4mYM5ivc82MvQ3f4hVHnSEFY7u8leU8Z1cLSkpX48OUyjwJ+POphdXK+X9+/gYY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708870375; c=relaxed/simple; bh=kq1wMGjAFgykNjnALUOfiwVmAiWVNLEAtKXn23jQRrA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=u3i7+MGbQiKqGvMWUVIPv/LJxTeLiXLxDXEuc0/asn3zKo39NR0hPt2+dqgLAa2/T8PyI361bBFE7530laloPrzac2jrKgJt69aXLaOGV+dJgKnQU3ik3X6cocJeKCEaPsxBt3N6ItMGN+if1iJ5QJ7XLlOHl+qZTyqbQQwYV3E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=BOuBoxCs; arc=none smtp.client-ip=209.85.208.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-lj1-f170.google.com with SMTP id 38308e7fff4ca-2d2628e81b8so15871871fa.0 for ; Sun, 25 Feb 2024 06:12:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1708870372; x=1709475172; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=W1EgeiS53bZU89cWnjtfqhJ0Xbfd+zvllvWyAXpOfzo=; b=BOuBoxCsWGVQvmsi66WqX9fJIewAxtDUUJFBsxQvaQJYC2wUiwly2Vmh7e82LmMzjI 6Yl/TGelB1E5ZzIYnMVmWfl8EjmqC/BetBPg3tYhZcSQZZRkd4sS7s7qHM/7MNMnkDuv nxzp1LAuvI1okCeT4qcKxlw9jrjpQZXP7Z4gvZCl0bpxad0/YjH31kfAAJpP5H2RvDDO ZeZLfy2v3MhaGwwyDdl/vipsoOnzT+dvn4jzLyHresgUxHdYbZaj5I9Lomv0W1dKcJpX OHWZOYf4AXIWiNPtaVBd77zQhoKqnl54eI/GSoVzmcRI8YZSmM8U96orRd8Wlo6xPp48 mnNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708870372; x=1709475172; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=W1EgeiS53bZU89cWnjtfqhJ0Xbfd+zvllvWyAXpOfzo=; b=rP/7JCD0pwlJtq4J2pOj3oCL/2k64iKVg/b84syNom6urLLdnXo5ifspU8tk7z8uZS J7CReQwet5Wj/notavGDCGq+ep9lST7qDm/fCWbQeGH3a8vexGzcDFYvnEwQJA+uR1Ea qr+0/8citCF5l+SE00442Pc/6lTTXMOEC0udXnhvCvurfQ3VNxxSTvW/pGaNlrXlctUT yLnG8cYYxLuwHF/y4f0ii04V0N7EnTBy9G3aRqAkOtKi6XZZF54MKtOqgW5dwuTb/xdT F+y4W02B3+p2ZWPkRlabpquU8iUokaq/r1ZSwCxVWsVVryZPjMb9JBV9yhsglb13LYal DmBw== X-Forwarded-Encrypted: i=1; AJvYcCVD2kX0iq7rs/hMhwbUogbYo1z9Dv/mXoETy/MeB4c2EuBuPYHU+P7JXHQtVe6ElxLZixMPB/n0iVLvPIit3t6MJHM7PSlsCoItqhBd X-Gm-Message-State: AOJu0Yy1hkgZ6egdL2nzGJ2IRYLpnv0Rk9tWjR8QnecpxXK6LmebLdZW Jy8ud0wZ/OTOVrYKzdYZs+aWyzCmbIWbzNPLcQCu+N3Ibm1AXGfm/m0B4N7eTAM= X-Received: by 2002:a05:6512:3087:b0:512:d7fb:8c8d with SMTP id z7-20020a056512308700b00512d7fb8c8dmr1562188lfd.23.1708870371781; Sun, 25 Feb 2024 06:12:51 -0800 (PST) Received: from umbar.lan (dzyjmhybhls-s--zn36gy-3.rev.dnainternet.fi. [2001:14ba:a00e:a300:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id w13-20020ac254ad000000b00512e5bd2296sm522931lfk.217.2024.02.25.06.12.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Feb 2024 06:12:51 -0800 (PST) From: Dmitry Baryshkov Date: Sun, 25 Feb 2024 16:12:48 +0200 Subject: [PATCH v3 3/3] drm/msm/dpu: capture snapshot on the first commit_done timeout Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240225-fd-dpu-debug-timeout-v3-3-252f2b21cdcc@linaro.org> References: <20240225-fd-dpu-debug-timeout-v3-0-252f2b21cdcc@linaro.org> In-Reply-To: <20240225-fd-dpu-debug-timeout-v3-0-252f2b21cdcc@linaro.org> To: Rob Clark , Abhinav Kumar , Sean Paul , Marijn Suijten , David Airlie , Daniel Vetter Cc: Steev Klimaszewski , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dmitry Baryshkov X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2131; i=dmitry.baryshkov@linaro.org; h=from:subject:message-id; bh=kq1wMGjAFgykNjnALUOfiwVmAiWVNLEAtKXn23jQRrA=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBl20rfZatQwbsnIGDdcoW5gLJWbqK0DBCsltFny PS9SGAxgeOJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCZdtK3wAKCRCLPIo+Aiko 1UitB/wITuYU5p6dOOSUv1JzfYEmwL/GKKF0SC4IbGLssbPmSgUySdE9DqjlCPM6rj5vaVRx1Bk p+/ypYmnmyncdrYoAno3IJVFcBQWctCe5DyU6JvmrLk6gHLN8r+cKk7HyvhoFeH7F+WB1+S+NAt TpOAXWCqaCGaCqzPgN+J1h3J8xbsKPKUqymyjbnVtdrjfIfGsFqA79FJpUi4MFpCzEJMfiZod/J G2VBYphZ86mzY1WNA/wJlD6UN/LU9J9UEfCF0l+qulZoZ3SES+Tz369iyyFMAu2HjMlPBv76zGv mUzVOA9EOlu5Yn4BVYOLhdWQOd3W4KpdLHpA3kAbEB4eED82 X-Developer-Key: i=dmitry.baryshkov@linaro.org; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791880526336893581 X-GMAIL-MSGID: 1791880526336893581 In order to debug commit_done timeouts, capture the devcoredump state when the first timeout occurs after the encoder has been enabled. Signed-off-by: Dmitry Baryshkov Reviewed-by: Abhinav Kumar --- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c index 30f349c8a1e5..3cae07bf0b9b 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c @@ -126,6 +126,8 @@ enum dpu_enc_rc_states { * @base: drm_encoder base class for registration with DRM * @enc_spinlock: Virtual-Encoder-Wide Spin Lock for IRQ purposes * @enabled: True if the encoder is active, protected by enc_lock + * @commit_done_timedout: True if there has been a timeout on commit after + * enabling the encoder. * @num_phys_encs: Actual number of physical encoders contained. * @phys_encs: Container of physical encoders managed. * @cur_master: Pointer to the current master in this mode. Optimization @@ -172,6 +174,7 @@ struct dpu_encoder_virt { spinlock_t enc_spinlock; bool enabled; + bool commit_done_timedout; unsigned int num_phys_encs; struct dpu_encoder_phys *phys_encs[MAX_PHYS_ENCODERS_PER_VIRTUAL]; @@ -1226,6 +1229,8 @@ static void dpu_encoder_virt_atomic_enable(struct drm_encoder *drm_enc, else if (disp_info->intf_type == INTF_DSI) dpu_enc->wide_bus_en = msm_dsi_wide_bus_enabled(priv->dsi[index]); + dpu_enc->commit_done_timedout = false; + mutex_lock(&dpu_enc->enc_lock); cur_mode = &dpu_enc->base.crtc->state->adjusted_mode; @@ -2436,6 +2441,10 @@ int dpu_encoder_wait_for_commit_done(struct drm_encoder *drm_enc) DPU_ATRACE_BEGIN("wait_for_commit_done"); ret = phys->ops.wait_for_commit_done(phys); DPU_ATRACE_END("wait_for_commit_done"); + if (ret == -ETIMEDOUT && !dpu_enc->commit_done_timedout) { + dpu_enc->commit_done_timedout = true; + msm_disp_snapshot_state(drm_enc->dev); + } if (ret) return ret; }