From: Vinod Polimera <quic_vpolimer@quicinc.com> To: <dri-devel@lists.freedesktop.org>, <linux-arm-msm@vger.kernel.org>, <freedreno@lists.freedesktop.org>, <devicetree@vger.kernel.org> Cc: Vinod Polimera <quic_vpolimer@quicinc.com>, <linux-kernel@vger.kernel.org>, <robdclark@gmail.com>, <dianders@chromium.org>, <swboyd@chromium.org>, <quic_kalyant@quicinc.com>, <dmitry.baryshkov@linaro.org>, <quic_khsieh@quicinc.com>, <quic_vproddut@quicinc.com>, <quic_bjorande@quicinc.com>, <quic_abhinavk@quicinc.com>, <quic_sbillaka@quicinc.com> Subject: [PATCH v10 02/15] drm: add helper functions to retrieve old and new crtc Date: Thu, 22 Dec 2022 20:34:49 +0530 [thread overview] Message-ID: <1671721502-16587-3-git-send-email-quic_vpolimer@quicinc.com> (raw) In-Reply-To: <1671721502-16587-1-git-send-email-quic_vpolimer@quicinc.com> Add new helper functions, drm_atomic_get_old_crtc_for_encoder and drm_atomic_get_new_crtc_for_encoder to retrieve the corresponding crtc for the encoder. Signed-off-by: Sankeerth Billakanti <quic_sbillaka@quicinc.com> Signed-off-by: Vinod Polimera <quic_vpolimer@quicinc.com> Reviewed-by: Douglas Anderson <dianders@chromium.org> --- drivers/gpu/drm/drm_atomic.c | 60 ++++++++++++++++++++++++++++++++++++++++++++ include/drm/drm_atomic.h | 7 ++++++ 2 files changed, 67 insertions(+) diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c index f197f59..941fd6d 100644 --- a/drivers/gpu/drm/drm_atomic.c +++ b/drivers/gpu/drm/drm_atomic.c @@ -985,6 +985,66 @@ drm_atomic_get_new_connector_for_encoder(struct drm_atomic_state *state, EXPORT_SYMBOL(drm_atomic_get_new_connector_for_encoder); /** + * drm_atomic_get_old_crtc_for_encoder - Get old crtc for an encoder + * @state: Atomic state + * @encoder: The encoder to fetch the crtc state for + * + * This function finds and returns the crtc that was connected to @encoder + * as specified by the @state. + * + * Returns: The old crtc connected to @encoder, or NULL if the encoder is + * not connected. + */ +struct drm_crtc * +drm_atomic_get_old_crtc_for_encoder(struct drm_atomic_state *state, + struct drm_encoder *encoder) +{ + struct drm_connector *connector; + struct drm_connector_state *conn_state; + + connector = drm_atomic_get_old_connector_for_encoder(state, encoder); + if (!connector) + return NULL; + + conn_state = drm_atomic_get_old_connector_state(state, connector); + if (!conn_state) + return NULL; + + return conn_state->crtc; +} +EXPORT_SYMBOL(drm_atomic_get_old_crtc_for_encoder); + +/** + * drm_atomic_get_new_crtc_for_encoder - Get new crtc for an encoder + * @state: Atomic state + * @encoder: The encoder to fetch the crtc state for + * + * This function finds and returns the crtc that will be connected to @encoder + * as specified by the @state. + * + * Returns: The new crtc connected to @encoder, or NULL if the encoder is + * not connected. + */ +struct drm_crtc * +drm_atomic_get_new_crtc_for_encoder(struct drm_atomic_state *state, + struct drm_encoder *encoder) +{ + struct drm_connector *connector; + struct drm_connector_state *conn_state; + + connector = drm_atomic_get_new_connector_for_encoder(state, encoder); + if (!connector) + return NULL; + + conn_state = drm_atomic_get_new_connector_state(state, connector); + if (!conn_state) + return NULL; + + return conn_state->crtc; +} +EXPORT_SYMBOL(drm_atomic_get_new_crtc_for_encoder); + +/** * drm_atomic_get_connector_state - get connector state * @state: global atomic state object * @connector: connector to get state object for diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h index 10b1990..fdbd656 100644 --- a/include/drm/drm_atomic.h +++ b/include/drm/drm_atomic.h @@ -528,6 +528,13 @@ struct drm_connector * drm_atomic_get_new_connector_for_encoder(struct drm_atomic_state *state, struct drm_encoder *encoder); +struct drm_crtc * +drm_atomic_get_old_crtc_for_encoder(struct drm_atomic_state *state, + struct drm_encoder *encoder); +struct drm_crtc * +drm_atomic_get_new_crtc_for_encoder(struct drm_atomic_state *state, + struct drm_encoder *encoder); + /** * drm_atomic_get_existing_crtc_state - get CRTC state, if it exists * @state: global atomic state object -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: Vinod Polimera <quic_vpolimer@quicinc.com> To: <dri-devel@lists.freedesktop.org>, <linux-arm-msm@vger.kernel.org>, <freedreno@lists.freedesktop.org>, <devicetree@vger.kernel.org> Cc: quic_kalyant@quicinc.com, quic_sbillaka@quicinc.com, quic_bjorande@quicinc.com, quic_abhinavk@quicinc.com, quic_vproddut@quicinc.com, quic_khsieh@quicinc.com, dianders@chromium.org, linux-kernel@vger.kernel.org, dmitry.baryshkov@linaro.org, swboyd@chromium.org, Vinod Polimera <quic_vpolimer@quicinc.com> Subject: [PATCH v10 02/15] drm: add helper functions to retrieve old and new crtc Date: Thu, 22 Dec 2022 20:34:49 +0530 [thread overview] Message-ID: <1671721502-16587-3-git-send-email-quic_vpolimer@quicinc.com> (raw) In-Reply-To: <1671721502-16587-1-git-send-email-quic_vpolimer@quicinc.com> Add new helper functions, drm_atomic_get_old_crtc_for_encoder and drm_atomic_get_new_crtc_for_encoder to retrieve the corresponding crtc for the encoder. Signed-off-by: Sankeerth Billakanti <quic_sbillaka@quicinc.com> Signed-off-by: Vinod Polimera <quic_vpolimer@quicinc.com> Reviewed-by: Douglas Anderson <dianders@chromium.org> --- drivers/gpu/drm/drm_atomic.c | 60 ++++++++++++++++++++++++++++++++++++++++++++ include/drm/drm_atomic.h | 7 ++++++ 2 files changed, 67 insertions(+) diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c index f197f59..941fd6d 100644 --- a/drivers/gpu/drm/drm_atomic.c +++ b/drivers/gpu/drm/drm_atomic.c @@ -985,6 +985,66 @@ drm_atomic_get_new_connector_for_encoder(struct drm_atomic_state *state, EXPORT_SYMBOL(drm_atomic_get_new_connector_for_encoder); /** + * drm_atomic_get_old_crtc_for_encoder - Get old crtc for an encoder + * @state: Atomic state + * @encoder: The encoder to fetch the crtc state for + * + * This function finds and returns the crtc that was connected to @encoder + * as specified by the @state. + * + * Returns: The old crtc connected to @encoder, or NULL if the encoder is + * not connected. + */ +struct drm_crtc * +drm_atomic_get_old_crtc_for_encoder(struct drm_atomic_state *state, + struct drm_encoder *encoder) +{ + struct drm_connector *connector; + struct drm_connector_state *conn_state; + + connector = drm_atomic_get_old_connector_for_encoder(state, encoder); + if (!connector) + return NULL; + + conn_state = drm_atomic_get_old_connector_state(state, connector); + if (!conn_state) + return NULL; + + return conn_state->crtc; +} +EXPORT_SYMBOL(drm_atomic_get_old_crtc_for_encoder); + +/** + * drm_atomic_get_new_crtc_for_encoder - Get new crtc for an encoder + * @state: Atomic state + * @encoder: The encoder to fetch the crtc state for + * + * This function finds and returns the crtc that will be connected to @encoder + * as specified by the @state. + * + * Returns: The new crtc connected to @encoder, or NULL if the encoder is + * not connected. + */ +struct drm_crtc * +drm_atomic_get_new_crtc_for_encoder(struct drm_atomic_state *state, + struct drm_encoder *encoder) +{ + struct drm_connector *connector; + struct drm_connector_state *conn_state; + + connector = drm_atomic_get_new_connector_for_encoder(state, encoder); + if (!connector) + return NULL; + + conn_state = drm_atomic_get_new_connector_state(state, connector); + if (!conn_state) + return NULL; + + return conn_state->crtc; +} +EXPORT_SYMBOL(drm_atomic_get_new_crtc_for_encoder); + +/** * drm_atomic_get_connector_state - get connector state * @state: global atomic state object * @connector: connector to get state object for diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h index 10b1990..fdbd656 100644 --- a/include/drm/drm_atomic.h +++ b/include/drm/drm_atomic.h @@ -528,6 +528,13 @@ struct drm_connector * drm_atomic_get_new_connector_for_encoder(struct drm_atomic_state *state, struct drm_encoder *encoder); +struct drm_crtc * +drm_atomic_get_old_crtc_for_encoder(struct drm_atomic_state *state, + struct drm_encoder *encoder); +struct drm_crtc * +drm_atomic_get_new_crtc_for_encoder(struct drm_atomic_state *state, + struct drm_encoder *encoder); + /** * drm_atomic_get_existing_crtc_state - get CRTC state, if it exists * @state: global atomic state object -- 2.7.4
next prev parent reply other threads:[~2022-12-22 15:05 UTC|newest] Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-12-22 15:04 [PATCH v10 00/15] Add PSR support for eDP Vinod Polimera 2022-12-22 15:04 ` Vinod Polimera 2022-12-22 15:04 ` [PATCH v10 01/15] drm/msm/disp/dpu: cache crtc obj in the dpu_encoder during initialization Vinod Polimera 2022-12-22 15:04 ` Vinod Polimera 2022-12-22 15:04 ` Vinod Polimera [this message] 2022-12-22 15:04 ` [PATCH v10 02/15] drm: add helper functions to retrieve old and new crtc Vinod Polimera 2022-12-22 15:04 ` [PATCH v10 03/15] drm/msm/dp: use atomic callbacks for DP bridge ops Vinod Polimera 2022-12-22 15:04 ` Vinod Polimera 2022-12-22 15:04 ` [PATCH v10 04/15] drm/msm/dp: Add basic PSR support for eDP Vinod Polimera 2022-12-22 15:04 ` Vinod Polimera 2022-12-22 15:04 ` [PATCH v10 05/15] drm/msm/dp: use the eDP bridge ops to validate eDP modes Vinod Polimera 2022-12-22 15:04 ` Vinod Polimera 2022-12-22 15:04 ` [PATCH v10 06/15] drm/msm/dp: disable self_refresh_aware after entering psr Vinod Polimera 2022-12-22 15:04 ` Vinod Polimera 2022-12-22 15:04 ` [PATCH v10 07/15] drm/bridge: use atomic enable/disable callbacks for panel bridge Vinod Polimera 2022-12-22 15:04 ` Vinod Polimera 2022-12-22 15:04 ` [PATCH v10 08/15] drm/bridge: add psr support for panel bridge callbacks Vinod Polimera 2022-12-22 15:04 ` Vinod Polimera 2022-12-22 15:04 ` [PATCH v10 09/15] drm/msm/disp/dpu: use atomic enable/disable callbacks for encoder functions Vinod Polimera 2022-12-22 15:04 ` Vinod Polimera 2022-12-22 15:04 ` [PATCH v10 10/15] drm/msm/disp/dpu: check for crtc enable rather than crtc active to release shared resources Vinod Polimera 2022-12-22 15:04 ` Vinod Polimera 2022-12-22 15:04 ` [PATCH v10 11/15] drm/msm/disp/dpu: add PSR support for eDP interface in dpu driver Vinod Polimera 2022-12-22 15:04 ` Vinod Polimera 2022-12-22 15:04 ` [PATCH v10 12/15] drm/msm/disp/dpu: get timing engine status from intf status register Vinod Polimera 2022-12-22 15:04 ` Vinod Polimera 2022-12-22 15:05 ` [PATCH v10 13/15] drm/msm/disp/dpu: wait for extra vsync till timing engine status is disabled Vinod Polimera 2022-12-22 15:05 ` Vinod Polimera 2022-12-22 15:05 ` [PATCH v10 14/15] drm/msm/disp/dpu: reset the datapath after timing engine disable Vinod Polimera 2022-12-22 15:05 ` Vinod Polimera 2022-12-22 15:05 ` [PATCH v10 15/15] drm/msm/disp/dpu: clear active interface in the datapath cleanup Vinod Polimera 2022-12-22 15:05 ` Vinod Polimera
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1671721502-16587-3-git-send-email-quic_vpolimer@quicinc.com \ --to=quic_vpolimer@quicinc.com \ --cc=devicetree@vger.kernel.org \ --cc=dianders@chromium.org \ --cc=dmitry.baryshkov@linaro.org \ --cc=dri-devel@lists.freedesktop.org \ --cc=freedreno@lists.freedesktop.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=quic_abhinavk@quicinc.com \ --cc=quic_bjorande@quicinc.com \ --cc=quic_kalyant@quicinc.com \ --cc=quic_khsieh@quicinc.com \ --cc=quic_sbillaka@quicinc.com \ --cc=quic_vproddut@quicinc.com \ --cc=robdclark@gmail.com \ --cc=swboyd@chromium.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.