drm/komeda: Accept null writeback configurations for writeback
authorjames qian wang (Arm Technology China) <james.qian.wang@arm.com>
Fri, 24 May 2019 03:16:47 +0000 (04:16 +0100)
committerLiviu Dudau <Liviu.Dudau@arm.com>
Wed, 19 Jun 2019 10:42:18 +0000 (11:42 +0100)
User may send null writeback configurations for writeback connector like:
- Only bind the writeback connector to crtc.
- set a fb_id(0) to writeback_fb_id_property
All above configurations are meaningless for writeback, but since they are
still valid configurations, accept them.

Depends on:
- https://patchwork.freedesktop.org/series/60856/

Signed-off-by: James Qian Wang (Arm Technology China) <james.qian.wang@arm.com>
Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c

index 20295291572f2445076caf837acf79ebbc8a93e7..0d734244f662cbf784bd05e747417d7fae75a4a7 100644 (file)
@@ -13,11 +13,7 @@ komeda_wb_init_data_flow(struct komeda_layer *wb_layer,
                         struct komeda_crtc_state *kcrtc_st,
                         struct komeda_data_flow_cfg *dflow)
 {
-       struct drm_framebuffer *fb = conn_st->writeback_job ?
-                                    conn_st->writeback_job->fb : NULL;
-
-       if (!fb)
-               return -EINVAL;
+       struct drm_framebuffer *fb = conn_st->writeback_job->fb;
 
        memset(dflow, 0, sizeof(*dflow));
 
@@ -42,10 +38,15 @@ komeda_wb_encoder_atomic_check(struct drm_encoder *encoder,
                               struct drm_connector_state *conn_st)
 {
        struct komeda_crtc_state *kcrtc_st = to_kcrtc_st(crtc_st);
+       struct drm_writeback_job *writeback_job = conn_st->writeback_job;
        struct komeda_layer *wb_layer;
        struct komeda_data_flow_cfg dflow;
        int err;
 
+       if (!writeback_job || !writeback_job->fb) {
+               return 0;
+       }
+
        if (!crtc_st->active) {
                DRM_DEBUG_ATOMIC("Cannot write the composition result out on a inactive CRTC.\n");
                return -EINVAL;