All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeykumar Sankaran <jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
To: Sean Paul <seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org,
	robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
	hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org,
	freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Subject: Re: [DPU PATCH 08/11] drm/msm: Remove hand-rolled out fences
Date: Fri, 02 Mar 2018 16:44:55 -0800	[thread overview]
Message-ID: <1a1c79ddb6ddabbc72e4624b53460188@codeaurora.org> (raw)
In-Reply-To: <20180228191906.185417-9-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>

On 2018-02-28 11:19, Sean Paul wrote:
> Remove release/output/retire fences from the dpu driver. These are
> already available via drm core's OUT_FENCE property.
> 
> Change-Id: Id4238d0b5457f2c8ee2e87bb7814e1850a573623
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> ---
>  drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c |  66 +------
>  drivers/gpu/drm/msm/disp/dpu1/dpu_connector.h |  23 ---
>  drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c      | 178 +++---------------
>  drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h      |  28 ---
>  drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c   |   3 -
>  drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h   |   4 +-
>  .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h  |   8 -
>  .../drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c  |  73 +------
>  .../drm/msm/disp/dpu1/dpu_encoder_phys_vid.c  |  19 --
>  .../drm/msm/disp/dpu1/dpu_encoder_phys_wb.c   |  12 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c       |  30 ---
>  drivers/gpu/drm/msm/msm_drv.h                 |   3 -
>  12 files changed, 36 insertions(+), 411 deletions(-)
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c
> index 57b8627ef418..cc5bfa862cb7 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c
> @@ -521,7 +521,6 @@ static void dpu_connector_destroy(struct 
> drm_connector
> *connector)
>  		backlight_device_unregister(c_conn->bl_device);
>  	drm_connector_unregister(connector);
>  	mutex_destroy(&c_conn->lock);
> -	dpu_fence_deinit(&c_conn->retire_fence);
>  	drm_connector_cleanup(connector);
>  	kfree(c_conn);
>  }
> @@ -906,12 +905,9 @@ static int 
> dpu_connector_atomic_get_property(struct
> drm_connector *connector,
>  	c_state = to_dpu_connector_state(state);
> 
>  	idx = msm_property_index(&c_conn->property_info, property);
> -	if (idx == CONNECTOR_PROP_RETIRE_FENCE)
> -		rc = dpu_fence_create(&c_conn->retire_fence, val, 0);
> -	else
> -		/* get cached property value */
> -		rc = msm_property_atomic_get(&c_conn->property_info,
> -				&c_state->property_state, property, val);
> +	/* get cached property value */
> +	rc = msm_property_atomic_get(&c_conn->property_info,
> +			&c_state->property_state, property, val);
> 
>  	/* allow for custom override */
>  	if (c_conn->ops.get_property)
> @@ -923,39 +919,6 @@ static int 
> dpu_connector_atomic_get_property(struct
> drm_connector *connector,
>  	return rc;
>  }
> 
> -void dpu_connector_prepare_fence(struct drm_connector *connector)
> -{
> -	if (!connector) {
> -		DPU_ERROR("invalid connector\n");
> -		return;
> -	}
> -
> -	dpu_fence_prepare(&to_dpu_connector(connector)->retire_fence);
> -}
> -
> -void dpu_connector_complete_commit(struct drm_connector *connector,
> -		ktime_t ts)
> -{
> -	if (!connector) {
> -		DPU_ERROR("invalid connector\n");
> -		return;
> -	}
> -
> -	/* signal connector's retire fence */
> -	dpu_fence_signal(&to_dpu_connector(connector)->retire_fence, ts,
> false);
> -}
> -
> -void dpu_connector_commit_reset(struct drm_connector *connector, 
> ktime_t
> ts)
> -{
> -	if (!connector) {
> -		DPU_ERROR("invalid connector\n");
> -		return;
> -	}
> -
> -	/* signal connector's retire fence */
> -	dpu_fence_signal(&to_dpu_connector(connector)->retire_fence, ts,
> true);
> -}
> -
>  static enum drm_connector_status
>  dpu_connector_detect(struct drm_connector *connector, bool force)
>  {
> @@ -1214,26 +1177,19 @@ struct drm_connector *dpu_connector_init(struct
> drm_device *dev,
>  			"conn%u",
>  			c_conn->base.base.id);
> 
> -	rc = dpu_fence_init(&c_conn->retire_fence, c_conn->name,
> -			c_conn->base.base.id);
> -	if (rc) {
> -		DPU_ERROR("failed to init fence, %d\n", rc);
> -		goto error_cleanup_conn;
> -	}
> -
>  	mutex_init(&c_conn->lock);
> 
>  	rc = drm_mode_connector_attach_encoder(&c_conn->base, encoder);
>  	if (rc) {
>  		DPU_ERROR("failed to attach encoder to connector, %d\n",
> rc);
> -		goto error_cleanup_fence;
> +		goto error_cleanup_conn;
>  	}
> 
>  #ifdef CONFIG_DRM_MSM_DSI_STAGING
>  	rc = dpu_backlight_setup(c_conn, dev);
>  	if (rc) {
>  		DPU_ERROR("failed to setup backlight, rc=%d\n", rc);
> -		goto error_cleanup_fence;
> +		goto error_cleanup_conn;
>  	}
>  #endif
> 
> @@ -1248,7 +1204,7 @@ struct drm_connector *dpu_connector_init(struct
> drm_device *dev,
>  		if (!info) {
>  			DPU_ERROR("failed to allocate info buffer\n");
>  			rc = -ENOMEM;
> -			goto error_cleanup_fence;
> +			goto error_cleanup_conn;
>  		}
> 
>  		dpu_kms_info_reset(info);
> @@ -1256,7 +1212,7 @@ struct drm_connector *dpu_connector_init(struct
> drm_device *dev,
>  		if (rc) {
>  			DPU_ERROR("post-init failed, %d\n", rc);
>  			kfree(info);
> -			goto error_cleanup_fence;
> +			goto error_cleanup_conn;
>  		}
> 
>  		msm_property_install_blob(&c_conn->property_info,
> @@ -1310,10 +1266,6 @@ struct drm_connector *dpu_connector_init(struct
> drm_device *dev,
>  				&c_conn->property_info, "dpu_drm_roi_v1",
> 0x0,
>  				0, ~0, 0, CONNECTOR_PROP_ROI_V1);
>  	}
> -
> -	msm_property_install_range(&c_conn->property_info, "RETIRE_FENCE",
> -			0x0, 0, INR_OPEN_MAX, 0,
> CONNECTOR_PROP_RETIRE_FENCE);
> -
>  	msm_property_install_range(&c_conn->property_info, "autorefresh",
>  			0x0, 0, AUTOREFRESH_MAX_FRAME_CNT, 0,
>  			CONNECTOR_PROP_AUTOREFRESH);
> @@ -1354,10 +1306,8 @@ struct drm_connector *dpu_connector_init(struct
> drm_device *dev,
>  		drm_property_blob_put(c_conn->blob_dither);
> 
>  	msm_property_destroy(&c_conn->property_info);
> -error_cleanup_fence:
> -	mutex_destroy(&c_conn->lock);
> -	dpu_fence_deinit(&c_conn->retire_fence);
>  error_cleanup_conn:
> +	mutex_destroy(&c_conn->lock);
>  	drm_connector_cleanup(&c_conn->base);
>  error_free_conn:
>  	kfree(c_conn);
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.h
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.h
> index f6f4837d1359..fdb4d8766549 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_connector.h
> @@ -21,7 +21,6 @@
>  #include "msm_drv.h"
>  #include "msm_prop.h"
>  #include "dpu_kms.h"
> -#include "dpu_fence.h"
> 
>  #define DPU_CONNECTOR_NAME_SIZE	16
> 
> @@ -247,7 +246,6 @@ struct dpu_connector_evt {
>   * @mmu_unsecure: MMU id for unsecure buffers
>   * @name: ASCII name of connector
>   * @lock: Mutex lock object for this structure
> - * @retire_fence: Retire fence context reference
>   * @ops: Local callback function pointer table
>   * @dpms_mode: DPMS property setting from user space
>   * @lp_mode: LP property setting from user space
> @@ -274,7 +272,6 @@ struct dpu_connector {
>  	char name[DPU_CONNECTOR_NAME_SIZE];
> 
>  	struct mutex lock;
> -	struct dpu_fence_context retire_fence;
>  	struct dpu_connector_ops ops;
>  	int dpms_mode;
>  	int lp_mode;
> @@ -447,26 +444,6 @@ struct drm_connector *dpu_connector_init(struct
> drm_device *dev,
>  		int connector_poll,
>  		int connector_type);
> 
> -/**
> - * dpu_connector_prepare_fence - prepare fence support for current 
> commit
> - * @connector: Pointer to drm connector object
> - */
> -void dpu_connector_prepare_fence(struct drm_connector *connector);
> -
> -/**
> - * dpu_connector_complete_commit - signal completion of current commit
> - * @connector: Pointer to drm connector object
> - * @ts: timestamp to be updated in the fence signalling
> - */
> -void dpu_connector_complete_commit(struct drm_connector *connector,
> ktime_t ts);
> -
> -/**
> - * dpu_connector_commit_reset - reset the completion signal
> - * @connector: Pointer to drm connector object
> - * @ts: timestamp to be updated in the fence signalling
> - */
> -void dpu_connector_commit_reset(struct drm_connector *connector, 
> ktime_t
> ts);
> -
>  /**
>   * dpu_connector_get_info - query display specific information
>   * @connector: Pointer to drm connector object
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> index a261021e5deb..2d44989ade7a 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> @@ -629,7 +629,6 @@ static void dpu_crtc_destroy(struct drm_crtc *crtc)
>  	dpu_cp_crtc_destroy_properties(crtc);
>  	_dpu_crtc_destroy_dest_scaler(dpu_crtc);
> 
> -	dpu_fence_deinit(&dpu_crtc->output_fence);
>  	_dpu_crtc_deinit_events(dpu_crtc);
> 
>  	drm_crtc_cleanup(crtc);
> @@ -1671,65 +1670,6 @@ static void _dpu_crtc_dest_scaler_setup(struct
> drm_crtc *crtc)
>  	}
>  }
> 
> -void dpu_crtc_prepare_commit(struct drm_crtc *crtc,
> -		struct drm_crtc_state *old_state)
> -{
> -	struct drm_device *dev;
> -	struct dpu_crtc *dpu_crtc;
> -	struct dpu_crtc_state *cstate;
> -	struct drm_connector *conn;
> -	struct drm_connector_list_iter conn_iter;
> -	struct dpu_crtc_retire_event *retire_event = NULL;
> -	unsigned long flags;
> -	int i;
> -
> -	if (!crtc || !crtc->state) {
> -		DPU_ERROR("invalid crtc\n");
> -		return;
> -	}
> -
> -	dev = crtc->dev;
> -	dpu_crtc = to_dpu_crtc(crtc);
> -	cstate = to_dpu_crtc_state(crtc->state);
> -	DPU_EVT32_VERBOSE(DRMID(crtc));
> -
> -	/* identify connectors attached to this crtc */
> -	cstate->num_connectors = 0;
> -
> -	drm_connector_list_iter_begin(dev, &conn_iter);
> -	drm_for_each_connector_iter(conn, &conn_iter)
> -		if (conn->state && conn->state->crtc == crtc &&
> -				cstate->num_connectors < MAX_CONNECTORS) {
> -			cstate->connectors[cstate->num_connectors++] =
> conn;
> -			dpu_connector_prepare_fence(conn);
> -		}
> -	drm_connector_list_iter_end(&conn_iter);
> -
> -	for (i = 0; i < DPU_CRTC_FRAME_EVENT_SIZE; i++) {
> -		retire_event = &dpu_crtc->retire_events[i];
> -		if (list_empty(&retire_event->list))
> -			break;
> -		retire_event = NULL;
> -	}
> -
> -	if (retire_event) {
> -		retire_event->num_connectors = cstate->num_connectors;
> -		for (i = 0; i < cstate->num_connectors; i++)
> -			retire_event->connectors[i] =
> cstate->connectors[i];
> -
> -		spin_lock_irqsave(&dpu_crtc->spin_lock, flags);
> -		list_add_tail(&retire_event->list,
> -
> &dpu_crtc->retire_event_list);
> -		spin_unlock_irqrestore(&dpu_crtc->spin_lock, flags);
> -	} else {
> -		DPU_ERROR("crtc%d retire event overflow\n",
> crtc->base.id);
> -		DPU_EVT32(DRMID(crtc), DPU_EVTLOG_ERROR);
> -	}
> -
> -	/* prepare main output fence */
> -	dpu_fence_prepare(&dpu_crtc->output_fence);
> -}
> -
>  /**
>   *  _dpu_crtc_complete_flip - signal pending page_flip events
>   * Any pending vblank events are added to the vblank_event_list
> @@ -1799,41 +1739,6 @@ static void dpu_crtc_vblank_cb(void *data)
>  	DPU_EVT32_VERBOSE(DRMID(crtc));
>  }
> 
> -static void _dpu_crtc_retire_event(struct drm_crtc *crtc, ktime_t ts)
> -{
> -	struct dpu_crtc_retire_event *retire_event;
> -	struct dpu_crtc *dpu_crtc;
> -	unsigned long flags;
> -	int i;
> -
> -	if (!crtc) {
> -		DPU_ERROR("invalid param\n");
> -		return;
> -	}
> -
> -	dpu_crtc = to_dpu_crtc(crtc);
> -	spin_lock_irqsave(&dpu_crtc->spin_lock, flags);
> -	retire_event =
> list_first_entry_or_null(&dpu_crtc->retire_event_list,
> -				struct dpu_crtc_retire_event, list);
> -	if (retire_event)
> -		list_del_init(&retire_event->list);
> -	spin_unlock_irqrestore(&dpu_crtc->spin_lock, flags);
> -
> -	if (!retire_event) {
> -		DPU_ERROR("crtc%d retire event without kickoff\n",
> -
> crtc->base.id);
> -		DPU_EVT32(DRMID(crtc), DPU_EVTLOG_ERROR);
> -		return;
> -	}
> -
> -	DPU_ATRACE_BEGIN("signal_retire_fence");
> -	for (i = 0; (i < retire_event->num_connectors) &&
> -					retire_event->connectors[i]; ++i)
> -		dpu_connector_complete_commit(
> -					retire_event->connectors[i], ts);
> -	DPU_ATRACE_END("signal_retire_fence");
> -}
> -
>  /* _dpu_crtc_idle_notify - signal idle timeout to client */
>  static void _dpu_crtc_idle_notify(struct dpu_crtc *dpu_crtc)
>  {
> @@ -1945,16 +1850,6 @@ static void dpu_crtc_frame_event_work(struct
> kthread_work *work)
>  			frame_done = true;
>  	}
> 
> -	if (fevent->event & DPU_ENCODER_FRAME_EVENT_SIGNAL_RELEASE_FENCE)
> {
> -		DPU_ATRACE_BEGIN("signal_release_fence");
> -		dpu_fence_signal(&dpu_crtc->output_fence, fevent->ts,
> false);
> -		DPU_ATRACE_END("signal_release_fence");
> -	}
> -
> -	if (fevent->event & DPU_ENCODER_FRAME_EVENT_SIGNAL_RETIRE_FENCE)
> -		/* this api should be called without spin_lock */
> -		_dpu_crtc_retire_event(crtc, fevent->ts);
> -
>  	if (fevent->event & DPU_ENCODER_FRAME_EVENT_PANEL_DEAD)
>  		DPU_ERROR("crtc%d ts:%lld received panel dead event\n",
>  				crtc->base.id, ktime_to_ns(fevent->ts));
> @@ -1971,11 +1866,11 @@ static void dpu_crtc_frame_event_work(struct
> kthread_work *work)
>  /*
>   * dpu_crtc_frame_event_cb - crtc frame event callback API. CRTC 
> module
>   * registers this API to encoder for all frame event callbacks like
> - * release_fence, retire_fence, frame_error, frame_done, idle_timeout,
> - * etc. Encoder may call different events from different context - 
> IRQ,
> - * user thread, commit_thread, etc. Each event should be carefully
> - * reviewed and should be processed in proper task context to avoid
> scheduling
> - * delay or properly manage the irq context's bottom half processing.
> + * frame_error, frame_done, idle_timeout, etc. Encoder may call 
> different
> events
> + * from different context - IRQ, user thread, commit_thread, etc. Each
> event
> + * should be carefully reviewed and should be processed in proper task
> context
> + * to avoid schedulin delay or properly manage the irq context's 
> bottom
> half
> + * processing.
>   */
>  static void dpu_crtc_frame_event_cb(void *data, u32 event)
>  {
> @@ -3484,14 +3379,6 @@ static void dpu_crtc_disable(struct drm_crtc 
> *crtc)
>  		dpu_power_handle_unregister_event(&priv->phandle,
>  				dpu_crtc->power_event);
> 
> -	/**
> -	 * All callbacks are unregistered and frame done waits are
> complete
> -	 * at this point. No buffers are accessed by hardware.
> -	 * reset the fence timeline if there is any issue.
> -	 */
> -	dpu_fence_signal(&dpu_crtc->output_fence, ktime_get(), true);
> -	for (i = 0; i < cstate->num_connectors; ++i)
> -		dpu_connector_commit_reset(cstate->connectors[i],
> ktime_get());
> 
>  	memset(dpu_crtc->mixers, 0, sizeof(dpu_crtc->mixers));
>  	dpu_crtc->num_mixers = 0;
> @@ -3703,6 +3590,8 @@ static int dpu_crtc_atomic_check(struct drm_crtc
> *crtc,
>  	int multirect_count = 0;
>  	const struct drm_plane_state *pipe_staged[SSPP_MAX];
>  	int left_zpos_cnt = 0, right_zpos_cnt = 0;
> +	struct drm_connector_list_iter conn_iter;
> +	struct drm_connector *conn;
> 
>  	if (!crtc) {
>  		DPU_ERROR("invalid crtc\n");
> @@ -3956,6 +3845,16 @@ static int dpu_crtc_atomic_check(struct drm_crtc
> *crtc,
>  		goto end;
>  	}
> 
> +	/* identify connectors attached to this crtc */
> +	cstate->num_connectors = 0;
> +	drm_connector_list_iter_begin(crtc->dev, &conn_iter);
> +	drm_for_each_connector_iter(conn, &conn_iter)
> +		if (conn->state && conn->state->crtc == crtc &&
> +				cstate->num_connectors < MAX_CONNECTORS) {
> +			cstate->connectors[cstate->num_connectors++] =
> conn;
> +		}
> +	drm_connector_list_iter_end(&conn_iter);
> +

Is this hunk related to this change?

>  end:
>  	_dpu_crtc_rp_free_unused(&cstate->rp);
>  	return rc;
> @@ -4034,13 +3933,6 @@ static void dpu_crtc_install_properties(struct
> drm_crtc *crtc,
>  		"input_fence_timeout", 0x0, 0,
> DPU_CRTC_MAX_INPUT_FENCE_TIMEOUT,
>  		DPU_CRTC_INPUT_FENCE_TIMEOUT,
> CRTC_PROP_INPUT_FENCE_TIMEOUT);
> 
> -	msm_property_install_range(&dpu_crtc->property_info,
> "output_fence",
> -			0x0, 0, INR_OPEN_MAX, 0x0,
> CRTC_PROP_OUTPUT_FENCE);
> -
> -	msm_property_install_range(&dpu_crtc->property_info,
> -			"output_fence_offset", 0x0, 0, 1, 0,
> -			CRTC_PROP_OUTPUT_FENCE_OFFSET);
> -
>  	msm_property_install_range(&dpu_crtc->property_info,
>  			"core_clk", 0x0, 0, U64_MAX,
>  			dpu_kms->perf.max_core_clk_rate,
> @@ -4342,29 +4234,12 @@ static int dpu_crtc_atomic_get_property(struct
> drm_crtc *crtc,
>  		}
> 
>  		i = msm_property_index(&dpu_crtc->property_info,
> property);
> -		if (i == CRTC_PROP_OUTPUT_FENCE) {
> -			uint32_t offset = dpu_crtc_get_property(cstate,
> -					CRTC_PROP_OUTPUT_FENCE_OFFSET);
> -
> -			/**
> -			 * set the offset to 0 only for cmd mode panels,
> so
> -			 * the release fence for the current frame can be
> -			 * triggered right after PP_DONE interrupt.
> -			 */
> -			offset = is_cmd ? 0 : (offset + conn_offset);
> -
> -			ret = dpu_fence_create(&dpu_crtc->output_fence,
> val,
> -								offset);
> -			if (ret)
> -				DPU_ERROR("fence create failed\n");
> -		} else {
> -			ret =
> msm_property_atomic_get(&dpu_crtc->property_info,
> -					&cstate->property_state,
> -					property, val);
> -			if (ret)
> -				ret = dpu_cp_crtc_get_property(crtc,
> -					property, val);
> -		}
> +		ret = msm_property_atomic_get(&dpu_crtc->property_info,
> +				&cstate->property_state,
> +				property, val);
> +		if (ret)
> +			ret = dpu_cp_crtc_get_property(crtc,
> +				property, val);
>  		if (ret)
>  			DRM_ERROR("get property failed\n");
>  	}
> @@ -4858,10 +4733,6 @@ static int _dpu_crtc_init_events(struct dpu_crtc
> *dpu_crtc)
>  		list_add_tail(&dpu_crtc->event_cache[i].list,
>  				&dpu_crtc->event_free_list);
> 
> -	INIT_LIST_HEAD(&dpu_crtc->retire_event_list);
> -	for (i = 0; i < ARRAY_SIZE(dpu_crtc->retire_events); i++)
> -		INIT_LIST_HEAD(&dpu_crtc->retire_events[i].list);
> -
>  	return rc;
>  }
> 
> @@ -4920,9 +4791,6 @@ struct drm_crtc *dpu_crtc_init(struct drm_device
> *dev, struct drm_plane *plane)
>  		return ERR_PTR(rc);
>  	}
> 
> -	/* initialize output fence support */
> -	dpu_fence_init(&dpu_crtc->output_fence, dpu_crtc->name,
> crtc->base.id);
> -
>  	/* create CRTC properties */
>  	msm_property_init(&dpu_crtc->property_info, &crtc->base, dev,
>  			priv->crtc_property, dpu_crtc->property_data,
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h
> index b63df243be33..727a3434a4f6 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h
> @@ -22,7 +22,6 @@
>  #include <linux/kthread.h>
>  #include <drm/drm_crtc.h>
>  #include "msm_prop.h"
> -#include "dpu_fence.h"
>  #include "dpu_kms.h"
>  #include "dpu_core_perf.h"
>  #include "dpu_hw_blk.h"
> @@ -85,17 +84,6 @@ struct dpu_crtc_smmu_state_data {
>  	uint32_t transition_error;
>  };
> 
> -/**
> - * @connectors    : Currently associated drm connectors for retire 
> event
> - * @num_connectors: Number of associated drm connectors for retire 
> event
> - * @list:	event list
> - */
> -struct dpu_crtc_retire_event {
> -	struct drm_connector *connectors[MAX_CONNECTORS];
> -	int num_connectors;
> -	struct list_head list;
> -};
> -
>  /**
>   * struct dpu_crtc_mixer: stores the map for each virtual pipeline in 
> the
> CRTC
>   * @hw_lm:	LM HW Driver context
> @@ -169,7 +157,6 @@ struct dpu_crtc_event {
>   * @drm_requested_vblank : Whether vblanks have been enabled in the
> encoder
>   * @property_info : Opaque structure for generic property support
>   * @property_defaults : Array of default values for generic property
> support
> - * @output_fence  : output release fence context
>   * @stage_cfg     : H/w mixer stage configuration
>   * @debugfs_root  : Parent of debugfs node
>   * @vblank_cb_count : count of vblank callback since last reset
> @@ -190,8 +177,6 @@ struct dpu_crtc_event {
>   * @frame_events  : static allocation of in-flight frame events
>   * @frame_event_list : available frame event list
>   * @spin_lock     : spin lock for frame event, transaction status, 
> etc...
> - * @retire_events  : static allocation of retire fence connector
> - * @retire_event_list : available retire fence connector list
>   * @frame_done_comp    : for frame_event_done synchronization
>   * @event_thread  : Pointer to event handler thread
>   * @event_worker  : Event worker queue
> @@ -227,9 +212,6 @@ struct dpu_crtc {
>  	struct msm_property_data property_data[CRTC_PROP_COUNT];
>  	struct drm_property_blob *blob_info;
> 
> -	/* output fence support */
> -	struct dpu_fence_context output_fence;
> -
>  	struct dpu_hw_stage_cfg stage_cfg;
>  	struct dentry *debugfs_root;
> 
> @@ -253,8 +235,6 @@ struct dpu_crtc {
>  	struct dpu_crtc_frame_event
> frame_events[DPU_CRTC_FRAME_EVENT_SIZE];
>  	struct list_head frame_event_list;
>  	spinlock_t spin_lock;
> -	struct dpu_crtc_retire_event
> retire_events[DPU_CRTC_FRAME_EVENT_SIZE];
> -	struct list_head retire_event_list;
>  	struct completion frame_done_comp;
> 
>  	/* for handling internal event thread */
> @@ -475,14 +455,6 @@ int dpu_crtc_vblank(struct drm_crtc *crtc, bool 
> en);
>   */
>  void dpu_crtc_commit_kickoff(struct drm_crtc *crtc);
> 
> -/**
> - * dpu_crtc_prepare_commit - callback to prepare for output fences
> - * @crtc: Pointer to drm crtc object
> - * @old_state: Pointer to drm crtc old state object
> - */
> -void dpu_crtc_prepare_commit(struct drm_crtc *crtc,
> -		struct drm_crtc_state *old_state);
> -
>  /**
>   * dpu_crtc_complete_commit - callback signalling completion of 
> current
> commit
>   * @crtc: Pointer to drm crtc object
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> index 4d1e3652dbf4..a54ad2cd5856 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> @@ -2465,9 +2465,6 @@ static inline void 
> _dpu_encoder_trigger_flush(struct
> drm_encoder *drm_enc,
> 
>  	pending_kickoff_cnt = dpu_encoder_phys_inc_pending(phys);
> 
> -	if (phys->ops.is_master && phys->ops.is_master(phys))
> -		atomic_inc(&phys->pending_retire_fence_cnt);
> -
>  	if (extra_flush_bits && ctl->ops.update_pending_flush)
>  		ctl->ops.update_pending_flush(ctl, extra_flush_bits);
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h
> index 69fb26cb43ab..86a3800af673 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h
> @@ -27,9 +27,7 @@
>  #define DPU_ENCODER_FRAME_EVENT_DONE			BIT(0)
>  #define DPU_ENCODER_FRAME_EVENT_ERROR			BIT(1)
>  #define DPU_ENCODER_FRAME_EVENT_PANEL_DEAD		BIT(2)
> -#define DPU_ENCODER_FRAME_EVENT_SIGNAL_RELEASE_FENCE	BIT(3)
> -#define DPU_ENCODER_FRAME_EVENT_SIGNAL_RETIRE_FENCE	BIT(4)
> -#define DPU_ENCODER_FRAME_EVENT_IDLE			BIT(5)
> +#define DPU_ENCODER_FRAME_EVENT_IDLE			BIT(3)
> 
>  #define IDLE_TIMEOUT	(66 - 16/2)
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h
> index 3b05569007d2..71cd2f258994 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h
> @@ -245,8 +245,6 @@ struct dpu_encoder_irq {
>   *				scheduled. Decremented in irq handler
>   * @pending_ctlstart_cnt:	Atomic counter tracking the number of ctl
> start
>   *                              pending.
> - * @pending_retire_fence_cnt:   Atomic counter tracking the pending
> retire
> - *                              fences that have to be signalled.
>   * @pending_kickoff_wq:		Wait queue for blocking until
> kickoff completes
>   * @irq:			IRQ tracking structures
>   */
> @@ -273,7 +271,6 @@ struct dpu_encoder_phys {
>  	atomic_t underrun_cnt;
>  	atomic_t pending_ctlstart_cnt;
>  	atomic_t pending_kickoff_cnt;
> -	atomic_t pending_retire_fence_cnt;
>  	wait_queue_head_t pending_kickoff_wq;
>  	struct dpu_encoder_irq irq[INTR_IDX_MAX];
>  };
> @@ -323,9 +320,6 @@ struct dpu_encoder_phys_cmd_autorefresh {
>   *			after ctl_start instead of before next frame
> kickoff
>   * @pp_timeout_report_cnt: number of pingpong done irq timeout errors
>   * @autorefresh: autorefresh feature state
> - * @pending_rd_ptr_cnt: atomic counter to indicate if retire fence can 
> be
> - *                      signaled at the next rd_ptr_irq
> - * @rd_ptr_timestamp: last rd_ptr_irq timestamp
>   * @pending_vblank_cnt: Atomic counter tracking pending wait for 
> VBLANK
>   * @pending_vblank_wq: Wait queue for blocking until VBLANK received
>   */
> @@ -335,8 +329,6 @@ struct dpu_encoder_phys_cmd {
>  	bool serialize_wait4pp;
>  	int pp_timeout_report_cnt;
>  	struct dpu_encoder_phys_cmd_autorefresh autorefresh;
> -	atomic_t pending_rd_ptr_cnt;
> -	ktime_t rd_ptr_timestamp;
>  	atomic_t pending_vblank_cnt;
>  	wait_queue_head_t pending_vblank_wq;
>  };
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c
> index e92380a1d5a4..6ccf37820aa2 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c
> @@ -44,12 +44,6 @@
> 
>  #define DPU_ENC_WR_PTR_START_TIMEOUT_US 20000
> 
> -/*
> - * Threshold for signalling retire fences in cases where
> - * CTL_START_IRQ is received just after RD_PTR_IRQ
> - */
> -#define DPU_ENC_CTL_START_THRESHOLD_US 500
> -
>  static inline int _dpu_encoder_phys_cmd_get_idle_timeout(
>  		struct dpu_encoder_phys_cmd *cmd_enc)
>  {
> @@ -170,8 +164,7 @@ static void 
> dpu_encoder_phys_cmd_pp_tx_done_irq(void
> *arg, int irq_idx)
>  	struct dpu_encoder_phys *phys_enc = arg;
>  	unsigned long lock_flags;
>  	int new_cnt;
> -	u32 event = DPU_ENCODER_FRAME_EVENT_DONE |
> -			DPU_ENCODER_FRAME_EVENT_SIGNAL_RELEASE_FENCE;
> +	u32 event = DPU_ENCODER_FRAME_EVENT_DONE;
> 
>  	if (!phys_enc || !phys_enc->hw_pp)
>  		return;
> @@ -221,7 +214,6 @@ static void dpu_encoder_phys_cmd_pp_rd_ptr_irq(void
> *arg, int irq_idx)
>  {
>  	struct dpu_encoder_phys *phys_enc = arg;
>  	struct dpu_encoder_phys_cmd *cmd_enc;
> -	u32 event = 0;
> 
>  	if (!phys_enc || !phys_enc->hw_pp)
>  		return;
> @@ -229,30 +221,10 @@ static void 
> dpu_encoder_phys_cmd_pp_rd_ptr_irq(void
> *arg, int irq_idx)
>  	DPU_ATRACE_BEGIN("rd_ptr_irq");
>  	cmd_enc = to_dpu_encoder_phys_cmd(phys_enc);
> 
> -	/**
> -	 * signal only for master, when the ctl_start irq is
> -	 * done and incremented the pending_rd_ptr_cnt.
> -	 */
> -	if (dpu_encoder_phys_cmd_is_master(phys_enc)
> -		    && atomic_add_unless(&cmd_enc->pending_rd_ptr_cnt, -1,
> 0)
> -		    && atomic_add_unless(
> -				&phys_enc->pending_retire_fence_cnt, -1,
> 0)) {
> -
> -		event = DPU_ENCODER_FRAME_EVENT_SIGNAL_RETIRE_FENCE;
> -		if (phys_enc->parent_ops.handle_frame_done)
> -			phys_enc->parent_ops.handle_frame_done(
> -				phys_enc->parent, phys_enc, event);
> -	}
> -
> -	DPU_EVT32_IRQ(DRMID(phys_enc->parent),
> -			phys_enc->hw_pp->idx - PINGPONG_0, event, 0xfff);
> -
>  	if (phys_enc->parent_ops.handle_vblank_virt)
>  		phys_enc->parent_ops.handle_vblank_virt(phys_enc->parent,
>  			phys_enc);
> 
> -	cmd_enc->rd_ptr_timestamp = ktime_get();
> -
>  	atomic_add_unless(&cmd_enc->pending_vblank_cnt, -1, 0);
>  	wake_up_all(&cmd_enc->pending_vblank_wq);
>  	DPU_ATRACE_END("rd_ptr_irq");
> @@ -262,9 +234,6 @@ static void dpu_encoder_phys_cmd_ctl_start_irq(void
> *arg, int irq_idx)
>  {
>  	struct dpu_encoder_phys *phys_enc = arg;
>  	struct dpu_encoder_phys_cmd *cmd_enc;
> -	struct dpu_hw_ctl *ctl;
> -	u32 event = 0;
> -	s64 time_diff_us;
> 
>  	if (!phys_enc || !phys_enc->hw_ctl)
>  		return;
> @@ -272,43 +241,8 @@ static void 
> dpu_encoder_phys_cmd_ctl_start_irq(void
> *arg, int irq_idx)
>  	DPU_ATRACE_BEGIN("ctl_start_irq");
>  	cmd_enc = to_dpu_encoder_phys_cmd(phys_enc);
> 
> -	ctl = phys_enc->hw_ctl;
>  	atomic_add_unless(&phys_enc->pending_ctlstart_cnt, -1, 0);
> 
> -	time_diff_us = ktime_us_delta(ktime_get(),
> cmd_enc->rd_ptr_timestamp);
> -
> -	/* handle retire fence based on only master */
> -	if (dpu_encoder_phys_cmd_is_master(phys_enc)
> -			&&
> atomic_read(&phys_enc->pending_retire_fence_cnt)) {
> -		/**
> -		 * Handle rare cases where the ctl_start_irq is received
> -		 * after rd_ptr_irq. If it falls within a threshold, it is
> -		 * guaranteed the frame would be picked up in the current
> TE.
> -		 * Signal retire fence immediately in such case.
> -		 */
> -		if ((time_diff_us <= DPU_ENC_CTL_START_THRESHOLD_US)
> -			    && atomic_add_unless(
> -				&phys_enc->pending_retire_fence_cnt, -1,
> 0)) {
> -
> -			event =
> DPU_ENCODER_FRAME_EVENT_SIGNAL_RETIRE_FENCE;
> -
> -			if (phys_enc->parent_ops.handle_frame_done)
> -				phys_enc->parent_ops.handle_frame_done(
> -					phys_enc->parent, phys_enc,
> event);
> -
> -		/**
> -		 * In ideal cases, ctl_start_irq is received before the
> -		 * rd_ptr_irq, so set the atomic flag to indicate the
> event
> -		 * and rd_ptr_irq will handle signalling the retire fence
> -		 */
> -		} else {
> -			atomic_inc(&cmd_enc->pending_rd_ptr_cnt);
> -		}
> -	}
> -
> -	DPU_EVT32_IRQ(DRMID(phys_enc->parent), ctl->idx - CTL_0,
> -				time_diff_us, event, 0xfff);
> -
>  	/* Signal any waiting ctl start interrupt */
>  	wake_up_all(&phys_enc->pending_kickoff_wq);
>  	DPU_ATRACE_END("ctl_start_irq");
> @@ -409,8 +343,7 @@ static int
> _dpu_encoder_phys_cmd_handle_ppdone_timeout(
>  {
>  	struct dpu_encoder_phys_cmd *cmd_enc =
>  			to_dpu_encoder_phys_cmd(phys_enc);
> -	u32 frame_event = DPU_ENCODER_FRAME_EVENT_ERROR
> -				|
> DPU_ENCODER_FRAME_EVENT_SIGNAL_RELEASE_FENCE;
> +	u32 frame_event = DPU_ENCODER_FRAME_EVENT_ERROR;
>  	bool do_log = false;
> 
>  	if (!phys_enc || !phys_enc->hw_pp || !phys_enc->hw_ctl)
> @@ -1346,8 +1279,6 @@ struct dpu_encoder_phys 
> *dpu_encoder_phys_cmd_init(
>  	atomic_set(&phys_enc->vblank_refcount, 0);
>  	atomic_set(&phys_enc->pending_kickoff_cnt, 0);
>  	atomic_set(&phys_enc->pending_ctlstart_cnt, 0);
> -	atomic_set(&phys_enc->pending_retire_fence_cnt, 0);
> -	atomic_set(&cmd_enc->pending_rd_ptr_cnt, 0);
>  	atomic_set(&cmd_enc->pending_vblank_cnt, 0);
>  	init_waitqueue_head(&phys_enc->pending_kickoff_wq);
>  	init_waitqueue_head(&cmd_enc->pending_vblank_wq);
> 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 62c6f5c3547a..edaad0413987 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
> @@ -373,13 +373,10 @@ static void
> dpu_encoder_phys_vid_setup_timing_engine(
>  static void dpu_encoder_phys_vid_vblank_irq(void *arg, int irq_idx)
>  {
>  	struct dpu_encoder_phys *phys_enc = arg;
> -	struct dpu_encoder_phys_vid *vid_enc =
> -			to_dpu_encoder_phys_vid(phys_enc);
>  	struct dpu_hw_ctl *hw_ctl;
>  	unsigned long lock_flags;
>  	u32 flush_register = 0;
>  	int new_cnt = -1, old_cnt = -1;
> -	u32 event = 0;
> 
>  	if (!phys_enc)
>  		return;
> @@ -390,18 +387,6 @@ static void dpu_encoder_phys_vid_vblank_irq(void
> *arg, int irq_idx)
> 
>  	DPU_ATRACE_BEGIN("vblank_irq");
> 
> -	/* signal only for master, where there is a pending kickoff */
> -	if (dpu_encoder_phys_vid_is_master(phys_enc)
> -			&& atomic_add_unless(
> -				&phys_enc->pending_retire_fence_cnt, -1,
> 0)) {
> -		event = DPU_ENCODER_FRAME_EVENT_SIGNAL_RELEASE_FENCE
> -				|
> DPU_ENCODER_FRAME_EVENT_SIGNAL_RETIRE_FENCE;
> -
> -		if (phys_enc->parent_ops.handle_frame_done)
> -
> phys_enc->parent_ops.handle_frame_done(phys_enc->parent,
> -				phys_enc, event);
> -	}
> -
>  	if (phys_enc->parent_ops.handle_vblank_virt)
>  		phys_enc->parent_ops.handle_vblank_virt(phys_enc->parent,
>  				phys_enc);
> @@ -422,9 +407,6 @@ static void dpu_encoder_phys_vid_vblank_irq(void 
> *arg,
> int irq_idx)
>  				-1, 0);
>  	spin_unlock_irqrestore(phys_enc->enc_spinlock, lock_flags);
> 
> -	DPU_EVT32_IRQ(DRMID(phys_enc->parent), vid_enc->hw_intf->idx -
> INTF_0,
> -			old_cnt, new_cnt, flush_register, event);
> -
>  	/* Signal any waiting atomic commit thread */
>  	wake_up_all(&phys_enc->pending_kickoff_wq);
>  	DPU_ATRACE_END("vblank_irq");
> @@ -1028,7 +1010,6 @@ struct dpu_encoder_phys 
> *dpu_encoder_phys_vid_init(
> 
>  	atomic_set(&phys_enc->vblank_refcount, 0);
>  	atomic_set(&phys_enc->pending_kickoff_cnt, 0);
> -	atomic_set(&phys_enc->pending_retire_fence_cnt, 0);
>  	init_waitqueue_head(&phys_enc->pending_kickoff_wq);
>  	phys_enc->enable_state = DPU_ENC_DISABLED;
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c
> index 9a6fa3e1e8b4..2bc5894839c4 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c
> @@ -680,11 +680,8 @@ static void dpu_encoder_phys_wb_done_irq(void 
> *arg,
> int irq_idx)
>  	if (phys_enc->enable_state == DPU_ENC_DISABLING)
>  		goto complete;
> 
> -	event = DPU_ENCODER_FRAME_EVENT_SIGNAL_RELEASE_FENCE
> -			| DPU_ENCODER_FRAME_EVENT_SIGNAL_RETIRE_FENCE
> -			| DPU_ENCODER_FRAME_EVENT_DONE;
> +	event = DPU_ENCODER_FRAME_EVENT_DONE;
> 
> -	atomic_add_unless(&phys_enc->pending_retire_fence_cnt, -1, 0);
>  	if (phys_enc->parent_ops.handle_frame_done)
>  		phys_enc->parent_ops.handle_frame_done(phys_enc->parent,
>  				phys_enc, event);
> @@ -847,12 +844,8 @@ static int 
> dpu_encoder_phys_wb_wait_for_commit_done(
>  		} else {
>  			DPU_ERROR("wb:%d kickoff timed out\n",
>  					wb_enc->wb_dev->wb_idx - WB_0);
> -			atomic_add_unless(
> -				&phys_enc->pending_retire_fence_cnt, -1,
> 0);
> 
> -			event =
> DPU_ENCODER_FRAME_EVENT_SIGNAL_RELEASE_FENCE
> -				|
> DPU_ENCODER_FRAME_EVENT_SIGNAL_RETIRE_FENCE
> -				| DPU_ENCODER_FRAME_EVENT_ERROR;
> +			event = DPU_ENCODER_FRAME_EVENT_ERROR;
>  			if (phys_enc->parent_ops.handle_frame_done)
>  				phys_enc->parent_ops.handle_frame_done(
>  					phys_enc->parent, phys_enc,
> event);
> @@ -1333,7 +1326,6 @@ struct dpu_encoder_phys 
> *dpu_encoder_phys_wb_init(
>  	phys_enc->intf_mode = INTF_MODE_WB_LINE;
>  	phys_enc->intf_idx = p->intf_idx;
>  	phys_enc->enc_spinlock = p->enc_spinlock;
> -	atomic_set(&phys_enc->pending_retire_fence_cnt, 0);
>  	INIT_LIST_HEAD(&wb_enc->irq_cb.list);
> 
>  	/* create internal buffer for disable logic */
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> index 3d83037e8305..9d68030378a7 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> @@ -545,35 +545,6 @@ static void dpu_kms_wait_for_commit_done(struct
> msm_kms *kms,
>  	}
>  }
> 
> -static void dpu_kms_prepare_fence(struct msm_kms *kms,
> -		struct drm_atomic_state *old_state)
> -{
> -	struct drm_crtc *crtc;
> -	struct drm_crtc_state *old_crtc_state;
> -	int i, rc;
> -
> -	if (!kms || !old_state || !old_state->dev ||
> !old_state->acquire_ctx) {
> -		DPU_ERROR("invalid argument(s)\n");
> -		return;
> -	}
> -
> -retry:
> -	/* attempt to acquire ww mutex for connection */
> -	rc =
> drm_modeset_lock(&old_state->dev->mode_config.connection_mutex,
> -			       old_state->acquire_ctx);
> -
> -	if (rc == -EDEADLK) {
> -		drm_modeset_backoff(old_state->acquire_ctx);
> -		goto retry;
> -	}
> -
> -	/* old_state actually contains updated crtc pointers */
> -	for_each_old_crtc_in_state(old_state, crtc, old_crtc_state, i) {
> -		if (crtc->state->active)
> -			dpu_crtc_prepare_commit(crtc, old_crtc_state);
> -	}
> -}
> -
>  /**
>   * _dpu_kms_get_displays - query for underlying display handles and 
> cache
> them
>   * @dpu_kms:    Pointer to dpu kms structure
> @@ -1734,7 +1705,6 @@ static const struct msm_kms_funcs kms_funcs = {
>  	.irq_uninstall   = dpu_irq_uninstall,
>  	.irq             = dpu_irq,
>  	.preclose        = dpu_kms_preclose,
> -	.prepare_fence   = dpu_kms_prepare_fence,
>  	.prepare_commit  = dpu_kms_prepare_commit,
>  	.commit          = dpu_kms_commit,
>  	.complete_commit = dpu_kms_complete_commit,
> diff --git a/drivers/gpu/drm/msm/msm_drv.h 
> b/drivers/gpu/drm/msm/msm_drv.h
> index 8cab333df717..e92376acbcfe 100644
> --- a/drivers/gpu/drm/msm/msm_drv.h
> +++ b/drivers/gpu/drm/msm/msm_drv.h
> @@ -132,8 +132,6 @@ enum msm_mdp_crtc_property {
> 
>  	/* range properties */
>  	CRTC_PROP_INPUT_FENCE_TIMEOUT = CRTC_PROP_BLOBCOUNT,
> -	CRTC_PROP_OUTPUT_FENCE,
> -	CRTC_PROP_OUTPUT_FENCE_OFFSET,
>  	CRTC_PROP_DIM_LAYER_V1,
>  	CRTC_PROP_CORE_CLK,
>  	CRTC_PROP_CORE_AB,
> @@ -163,7 +161,6 @@ enum msm_mdp_conn_property {
> 
>  	/* range properties */
>  	CONNECTOR_PROP_OUT_FB = CONNECTOR_PROP_BLOBCOUNT,
> -	CONNECTOR_PROP_RETIRE_FENCE,
>  	CONNECTOR_PROP_DST_X,
>  	CONNECTOR_PROP_DST_Y,
>  	CONNECTOR_PROP_DST_W,

-- 
Jeykumar S
_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

  parent reply	other threads:[~2018-03-03  0:44 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-28 19:18 [DPU PATCH 00/11] drm/msm: Use atomic helper functions for msm Sean Paul
     [not found] ` <20180228191906.185417-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-02-28 19:18   ` [DPU PATCH 01/11] drm/msm: Skip seamless disables in crtc/encoder Sean Paul
2018-03-03  0:04     ` jsanka
     [not found]       ` <d51bfdafccd143ee258fc995a7cafecc-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-03-12 20:14         ` Sean Paul
2018-03-13 18:10           ` Jeykumar Sankaran
2018-02-28 19:18   ` [DPU PATCH 02/11] drm/msm: Don't duplicate modeset_enables atomic helper Sean Paul
     [not found]     ` <20180228191906.185417-3-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-09  0:56       ` Jeykumar Sankaran
     [not found]         ` <aaf8f07e18801c60cdf7eb30b0cac123-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-03-12 20:21           ` Sean Paul
2018-03-13 23:57             ` Jeykumar Sankaran
     [not found]               ` <677c8c29a788a147aa45bc1e9768527e-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-03-14 15:14                 ` Sean Paul
2018-03-15  1:39                   ` Jeykumar Sankaran
     [not found]                     ` <645777c3f76662ce5b0b14bcf7b81acb-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-03-16 19:45                       ` [DPU PATCH v2] " Sean Paul
2018-03-16 20:57                         ` Jeykumar Sankaran
2018-02-28 19:18   ` [DPU PATCH 03/11] drm/msm: Refactor complete_commit() to look more the helpers Sean Paul
     [not found]     ` <20180228191906.185417-4-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-09  1:01       ` Jeykumar Sankaran
2018-02-28 19:18   ` [DPU PATCH 04/11] drm/msm: Move implicit sync fence handling to prepare_fb Sean Paul
     [not found]     ` <20180228191906.185417-5-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-03  0:20       ` jsanka-sgV2jX0FEOL9JmXXK+q4OQ
2018-02-28 19:19   ` [DPU PATCH 05/11] drm/msm: Mark the crtc->state->event consumed Sean Paul
2018-03-06  1:53     ` Jeykumar Sankaran
2018-02-28 19:19   ` [DPU PATCH 06/11] drm/msm: Remove msm_commit/kthread, use atomic helper commit Sean Paul
     [not found]     ` <20180228191906.185417-7-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-01  4:07       ` jsanka-sgV2jX0FEOL9JmXXK+q4OQ
2018-03-01 15:27         ` Sean Paul
2018-03-01 20:37           ` jsanka-sgV2jX0FEOL9JmXXK+q4OQ
     [not found]             ` <156ab33c41d436c79cc661e84bebc353-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-03-02  0:37               ` Rob Clark
     [not found]                 ` <CAF6AEGvDZ8sWYwwbyPYcQZN6Ba01Gc7db724GeehF3cLY6d-XQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-03-02 14:56                   ` Sean Paul
2018-03-09  1:08                     ` Jeykumar Sankaran
2018-03-12 20:23                       ` Sean Paul
2018-03-19 15:01                         ` Sean Paul
2018-03-19 19:54                           ` Jeykumar Sankaran
2018-02-28 19:19   ` [DPU PATCH 07/11] drm/msm: Use atomic private_obj instead of subclassing Sean Paul
     [not found]     ` <20180228191906.185417-8-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-09  1:59       ` Jeykumar Sankaran
     [not found]         ` <7fb92416ee99990f6a1280a617736051-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-03-12 20:28           ` Sean Paul
2018-03-19 17:31             ` [DPU PATCH v2] " Sean Paul
     [not found]               ` <20180319173113.94879-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-19 19:33                 ` Jeykumar Sankaran
2018-03-19 19:58                   ` [DPU PATCH v3] " Sean Paul
     [not found]                     ` <20180319195853.49006-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-20 11:01                       ` Archit Taneja
     [not found]                         ` <41aebf2e-48a0-a2e2-167c-70da912353f4-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-05-25  1:16                           ` Jeykumar Sankaran
2018-02-28 19:19   ` [DPU PATCH 08/11] drm/msm: Remove hand-rolled out fences Sean Paul
     [not found]     ` <20180228191906.185417-9-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-03  0:44       ` Jeykumar Sankaran [this message]
     [not found]         ` <1a1c79ddb6ddabbc72e4624b53460188-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-03-12 20:30           ` Sean Paul
2018-03-13 18:11             ` Jeykumar Sankaran
2018-02-28 19:19   ` [DPU PATCH 09/11] drm/msm: Remove prepare_fence kms_function Sean Paul
     [not found]     ` <20180228191906.185417-10-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-09  1:28       ` abhinavk-sgV2jX0FEOL9JmXXK+q4OQ
2018-02-28 19:19   ` [DPU PATCH 10/11] drm/msm: Switch to atomic_helper_commit() Sean Paul
     [not found]     ` <20180228191906.185417-11-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-09  3:28       ` abhinavk-sgV2jX0FEOL9JmXXK+q4OQ
     [not found]         ` <bf44a79fc08d00245640694c364b8b03-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-03-12 20:32           ` Sean Paul
2018-03-13  2:08             ` abhinavk-sgV2jX0FEOL9JmXXK+q4OQ
2018-02-28 19:19   ` [DPU PATCH 11/11] drm/msm: Remove dpu input fences Sean Paul
     [not found]     ` <20180228191906.185417-12-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-03  0:50       ` Jeykumar Sankaran

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=1a1c79ddb6ddabbc72e4624b53460188@codeaurora.org \
    --to=jsanka-sgv2jx0feol9jmxxk+q4oq@public.gmane.org \
    --cc=abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
    --cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
    --cc=linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.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: link
Be 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.