[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190726142356.GI15868@phenom.ffwll.local>
Date: Fri, 26 Jul 2019 16:23:56 +0200
From: Daniel Vetter <daniel@...ll.ch>
To: "Lowry Li (Arm Technology China)" <Lowry.Li@....com>
Cc: Liviu Dudau <Liviu.Dudau@....com>,
"james qian wang (Arm Technology China)" <james.qian.wang@....com>,
"maarten.lankhorst@...ux.intel.com"
<maarten.lankhorst@...ux.intel.com>,
"seanpaul@...omium.org" <seanpaul@...omium.org>,
"airlied@...ux.ie" <airlied@...ux.ie>,
Brian Starkey <Brian.Starkey@....com>,
Ayan Halder <Ayan.Halder@....com>,
"Jonathan Chai (Arm Technology China)" <Jonathan.Chai@....com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"dri-devel@...ts.freedesktop.org" <dri-devel@...ts.freedesktop.org>,
"Julien Yin (Arm Technology China)" <Julien.Yin@....com>,
nd <nd@....com>
Subject: Re: [PATCH] drm/komeda: Skips the invalid writeback job
On Fri, Jul 26, 2019 at 08:13:00AM +0000, Lowry Li (Arm Technology China) wrote:
> Current DRM-CORE accepts the writeback_job with a empty fb, but that
> is an invalid job for HW, so need to skip it when commit it to HW.
>
> Signed-off-by: Lowry Li (Arm Technology China) <lowry.li@....com>
Hm, this sounds a bit like an oversight in core writeback code? Not sure
how this can even happen, setting up a writeback job without an fb sounds
a bit like a bug to me at least ...
If we don't have a good reason for why other hw needs to accept this, then
imo this needs to be rejected in shared code. For consistent behaviour
across all writeback supporting drivers.
-Daniel
> ---
> drivers/gpu/drm/arm/display/komeda/komeda_crtc.c | 2 +-
> drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c | 9 ++++++++-
> 2 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
> index 2fed1f6..372e99a 100644
> --- a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
> +++ b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
> @@ -265,7 +265,7 @@ void komeda_crtc_handle_event(struct komeda_crtc *kcrtc,
> komeda_pipeline_update(slave, old->state);
>
> conn_st = wb_conn ? wb_conn->base.base.state : NULL;
> - if (conn_st && conn_st->writeback_job)
> + if (conn_st && conn_st->writeback_job && conn_st->writeback_job->fb)
> drm_writeback_queue_job(&wb_conn->base, conn_st);
>
> /* step 2: notify the HW to kickoff the update */
> diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c b/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c
> index 9787745..8e2ef63 100644
> --- a/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c
> +++ b/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c
> @@ -52,9 +52,16 @@
> struct komeda_data_flow_cfg dflow;
> int err;
>
> - if (!writeback_job || !writeback_job->fb)
> + if (!writeback_job)
> return 0;
>
> + if (!writeback_job->fb) {
> + if (writeback_job->out_fence)
> + DRM_DEBUG_ATOMIC("Out fence required on a invalid writeback job.\n");
> +
> + return writeback_job->out_fence ? -EINVAL : 0;
> + }
> +
> if (!crtc_st->active) {
> DRM_DEBUG_ATOMIC("Cannot write the composition result out on a inactive CRTC.\n");
> return -EINVAL;
> --
> 1.9.1
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@...ts.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
Powered by blists - more mailing lists