From patchwork Tue Jul 5 17:00:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vinod Polimera X-Patchwork-Id: 12906867 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1D960CCA47F for ; Tue, 5 Jul 2022 17:01:31 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D63269271B; Tue, 5 Jul 2022 17:01:22 +0000 (UTC) Received: from alexa-out.qualcomm.com (alexa-out.qualcomm.com [129.46.98.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id 178969269F; Tue, 5 Jul 2022 17:01:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1657040479; x=1688576479; h=from:to:cc:subject:date:message-id; bh=3ZKq8tFCZlHxZ5e3ej+t0Hk1cFuHvgdrOMWcfXQ0AmM=; b=RYBvNCTsLf0U5WWxL3qYaghOYhux7Xm8vEpLMNKkYCBZ2OGMuz+bdKZz V4ih2hWNLO8410HH7mhhQD2+0SdBGbTJbtdfEiuXY6OojBhOF2FsIbw3J +QbWIPGXqAzz3HS05Q4V+UnWFfFh3Kqe6vksPjPRrTn11bvxrZax9vCUg s=; Received: from ironmsg09-lv.qualcomm.com ([10.47.202.153]) by alexa-out.qualcomm.com with ESMTP; 05 Jul 2022 10:01:19 -0700 X-QCInternal: smtphost Received: from ironmsg01-blr.qualcomm.com ([10.86.208.130]) by ironmsg09-lv.qualcomm.com with ESMTP/TLS/AES256-SHA; 05 Jul 2022 10:01:18 -0700 X-QCInternal: smtphost Received: from vpolimer-linux.qualcomm.com ([10.204.67.235]) by ironmsg01-blr.qualcomm.com with ESMTP; 05 Jul 2022 22:30:54 +0530 Received: by vpolimer-linux.qualcomm.com (Postfix, from userid 463814) id 47F223CBE; Tue, 5 Jul 2022 22:30:53 +0530 (IST) From: Vinod Polimera To: dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org Subject: [PATCH v4 0/7] Add PSR support for eDP Date: Tue, 5 Jul 2022 22:30:38 +0530 Message-Id: <1657040445-13067-1-git-send-email-quic_vpolimer@quicinc.com> X-Mailer: git-send-email 2.7.4 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: quic_kalyant@quicinc.com, quic_sbillaka@quicinc.com, quic_abhinavk@quicinc.com, quic_vproddut@quicinc.com, quic_khsieh@quicinc.com, dianders@chromium.org, linux-kernel@vger.kernel.org, bjorn.andersson@linaro.org, dmitry.baryshkov@linaro.org, quic_aravindh@quicinc.com, swboyd@chromium.org, Vinod Polimera Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Changes in v2: - Use dp bridge to set psr entry/exit instead of dpu_enocder. - Don't modify whitespaces. - Set self refresh aware from atomic_check. - Set self refresh aware only if psr is supported. - Provide a stub for msm_dp_display_set_psr. - Move dp functions to bridge code. Changes in v3: - Change callback names to reflect atomic interfaces. - Move bridge callback change to separate patch as suggested by Dmitry. - Remove psr function declaration from msm_drv.h. - Set self_refresh_aware flag only if psr is supported. - Modify the variable names to simpler form. - Define bit fields for PSR settings. - Add comments explaining the steps to enter/exit psr. - Change DRM_INFO to drm_dbg_db. Changes in v4: - Move the get crtc functions to drm_atomic. - Add atomic functions for DP bridge too. - Add ternary operator to choose eDP or DP ops. - return true/false instead of 1/0. - mode_valid missing in the eDP bridge ops. - Move the functions to get crtc into drm_atomic.c. - Fix compilation issues. - Remove dpu_assign_crtc and get crtc from drm_enc instead of dpu_enc. - Check for crtc state enable while reserving resources. Signed-off-by: Sankeerth Billakanti Signed-off-by: Kalyan Thota Signed-off-by: Vinod Polimera Vinod Polimera (7): drm/msm/disp/dpu1: clear dpu_assign_crtc and get crtc from drm_enc instead of dpu_enc drm: add helper functions to retrieve old and new crtc drm/msm/dp: Add basic PSR support for eDP drm/bridge: use atomic enable/disable callbacks for panel bridge drm/bridge: Add psr support for panel bridge callbacks drm/msm/disp/dpu1: use atomic enable/disable callbacks for encoder functions drm/msm/disp/dpu1: add PSR support for eDP interface in dpu driver drivers/gpu/drm/bridge/panel.c | 68 ++++++++-- drivers/gpu/drm/drm_atomic.c | 60 +++++++++ drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 17 ++- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 47 ++++--- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 8 -- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 2 +- drivers/gpu/drm/msm/dp/dp_catalog.c | 81 ++++++++++++ drivers/gpu/drm/msm/dp/dp_catalog.h | 4 + drivers/gpu/drm/msm/dp/dp_ctrl.c | 76 +++++++++++- drivers/gpu/drm/msm/dp/dp_ctrl.h | 3 + drivers/gpu/drm/msm/dp/dp_display.c | 31 +++-- drivers/gpu/drm/msm/dp/dp_display.h | 2 + drivers/gpu/drm/msm/dp/dp_drm.c | 186 ++++++++++++++++++++++++++-- drivers/gpu/drm/msm/dp/dp_drm.h | 9 +- drivers/gpu/drm/msm/dp/dp_link.c | 36 ++++++ drivers/gpu/drm/msm/dp/dp_panel.c | 22 ++++ drivers/gpu/drm/msm/dp/dp_panel.h | 6 + drivers/gpu/drm/msm/dp/dp_reg.h | 27 ++++ include/drm/drm_atomic.h | 7 ++ 19 files changed, 625 insertions(+), 67 deletions(-)