Received: by 2002:a05:6358:a55:b0:ec:fcf4:3ecf with SMTP id 21csp1167865rwb; Thu, 19 Jan 2023 07:23:50 -0800 (PST) X-Google-Smtp-Source: AMrXdXuGX0SxK7p9wOJYygc0UqdJOATiA8A3xoLI0NZtWXSkDoRKMftefVITtBMuV6FPif9X15RR X-Received: by 2002:a05:6a21:3a46:b0:b0:2b4f:a9d9 with SMTP id zu6-20020a056a213a4600b000b02b4fa9d9mr12306670pzb.5.1674141830471; Thu, 19 Jan 2023 07:23:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1674141830; cv=none; d=google.com; s=arc-20160816; b=HsTS8Aywm/v0GvoGKQiQMlsdCNKHdPuNvaM4Bj3TsD5Zv+9MVGfssnBg79DeyleILH 8i2q6tUBq2X88dU9718sgDITUvFVEHRnNl2BBNMKSkOAbisGIdzVbju9EYDzmIrMpTlZ 5GpXd4pcktIBTeK0gPD9hKpwG+Ks5SOcXSQqNxfF5eeboMoLosmqfLzlcnYJ42O5TNP6 P8RyIAq5X82sUBkVP7b4U7Dsn7JsPrlFxB7avJ3J9J29Idp6oQuXG9jkO0wGCdtGxHlD Ym99ZE582Pw0+0m654WEwkq79cQDqSdAwYUwwPK0lDxmXlL7xHAgDaVu9lxFEnvuYAQ5 D3PA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=7+mK5IzqKUFr9WR1C0agHCBd/ms0ONrGXZqdodSSGqY=; b=m0hbph8fwvmzFIQ2iHbFtNiGAE3R25mpTfRQsyN5hZq6FNhRuQEWfY+6jn20SR4qVT oTJnL5oK/5LVgNN/tAaZn+fIFs59neqzUu6Zd3xLbr9l2V0oYIfldZ0nG5U9vTGMy6K8 pWa1VEFSjJYMkRwBFa9SRRHjM8xm6vPRElh42qg04mj+d9FPVz7jApUuNyF65ak/+2Km 4g8pHyukJpKcoIW+Dv/dA9iAW6Ywu8KG8mnhZuDaZU7TgtOCRTLSts1WuGJ5Gql9drJl x/btbE/jp7V3n1iJ2qneMZMV3NrGjDuwK4yUWAbmXYAWB/0ppwCJG44v7zZdpBZxX9d5 oMVg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=H4VHFJoH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f21-20020a63f115000000b00489c72b232fsi4619421pgi.707.2023.01.19.07.23.44; Thu, 19 Jan 2023 07:23:50 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=H4VHFJoH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231200AbjASO3I (ORCPT + 45 others); Thu, 19 Jan 2023 09:29:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50350 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231641AbjASO20 (ORCPT ); Thu, 19 Jan 2023 09:28:26 -0500 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E512E82D64; Thu, 19 Jan 2023 06:27:54 -0800 (PST) Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30JCuJ2o001741; Thu, 19 Jan 2023 14:27:52 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=7+mK5IzqKUFr9WR1C0agHCBd/ms0ONrGXZqdodSSGqY=; b=H4VHFJoH8z2lJ0YrGu3gvHUdbmsTOrFA2JaRww8MEYTRcQLLuFyVmgboFhW7ZAeAK2K9 INXNDtQr5rldB/HQeIMRYH2RIbHG0AdyjWsGz4Pj4nmJAIK7zMvVPwmRENOFNFuMeB+3 v5jGzh1lyeoh4pDyuVVZuBWNvjvms79iosqPfrEHMSGFkouImZSQNjcpTFJfsjovPv9x ZiiSsScMRPbcyOqsKy2L5CmkzLGU2sLlAkKT2XM72aO2g3XzZU6IMgbZ1AfXmNCYneBs nK9J8wn0HVMZgeYuMt1EHJkHum9UQcfXyuTjprG931PvLNnZhttfr5UOVHYOP2n+LZYk 7w== Received: from nalasppmta02.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3n6r59a31k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 19 Jan 2023 14:27:52 +0000 Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 30JERpBG002183 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 19 Jan 2023 14:27:51 GMT Received: from vpolimer-linux.qualcomm.com (10.80.80.8) by nalasex01b.na.qualcomm.com (10.47.209.197) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 19 Jan 2023 06:27:46 -0800 From: Vinod Polimera To: , , , CC: Vinod Polimera , , , , , , , , , , , Subject: [PATCH Resend v11 12/15] drm/msm/disp/dpu: wait for extra vsync till timing engine status is disabled Date: Thu, 19 Jan 2023 19:56:30 +0530 Message-ID: <1674138393-475-13-git-send-email-quic_vpolimer@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1674138393-475-1-git-send-email-quic_vpolimer@quicinc.com> References: <1674138393-475-1-git-send-email-quic_vpolimer@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nalasex01b.na.qualcomm.com (10.47.209.197) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: c8fruq3azX7EYcswqyzjDO7YuHWc4XId X-Proofpoint-GUID: c8fruq3azX7EYcswqyzjDO7YuHWc4XId X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-19_09,2023-01-19_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 mlxscore=0 mlxlogscore=999 malwarescore=0 priorityscore=1501 bulkscore=0 suspectscore=0 phishscore=0 adultscore=0 spamscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301190115 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org There can be a race between timing gen disable and vblank irq. The wait post timing gen disable may return early but intf disable sequence might not be completed. Ensure that, intf status is disabled before we retire the function. Signed-off-by: Vinod Polimera --- .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) 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 48c4810..0396084 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 @@ -523,6 +523,7 @@ static void dpu_encoder_phys_vid_disable(struct dpu_encoder_phys *phys_enc) { unsigned long lock_flags; int ret; + struct intf_status intf_status = {0}; if (!phys_enc->parent || !phys_enc->parent->dev) { DPU_ERROR("invalid encoder/device\n"); @@ -567,6 +568,26 @@ static void dpu_encoder_phys_vid_disable(struct dpu_encoder_phys *phys_enc) } } + if (phys_enc->hw_intf && phys_enc->hw_intf->ops.get_status) + phys_enc->hw_intf->ops.get_status(phys_enc->hw_intf, &intf_status); + + /* + * Wait for a vsync if timing en status is on after timing engine + * is disabled. + */ + if (intf_status.is_en && dpu_encoder_phys_vid_is_master(phys_enc)) { + spin_lock_irqsave(phys_enc->enc_spinlock, lock_flags); + dpu_encoder_phys_inc_pending(phys_enc); + spin_unlock_irqrestore(phys_enc->enc_spinlock, lock_flags); + ret = dpu_encoder_phys_vid_wait_for_vblank(phys_enc); + if (ret) { + atomic_set(&phys_enc->pending_kickoff_cnt, 0); + DRM_ERROR("wait disable failed: id:%u intf:%d ret:%d\n", + DRMID(phys_enc->parent), + phys_enc->hw_intf->idx - INTF_0, ret); + } + } + phys_enc->enable_state = DPU_ENC_DISABLED; } -- 2.7.4