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@xxxxxxx> 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@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel