drm: mali-dp: Set encoder possible_clones
authorAlexandru Gheorghe <alexandru-cosmin.gheorghe@arm.com>
Fri, 13 Jul 2018 15:11:00 +0000 (16:11 +0100)
committerLiviu Dudau <Liviu.Dudau@arm.com>
Mon, 23 Jul 2018 14:42:17 +0000 (15:42 +0100)
Set possible_clones field to report that the writeback connector and
the one driving the display could be enabled at the same time.

Signed-off-by: Alexandru Gheorghe <alexandru-cosmin.gheorghe@arm.com>
Acked-by: Liviu Dudau <liviu.dudau@arm.com>
Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
drivers/gpu/drm/arm/malidp_drv.c

index 5b726055739133b23a6540129fb0570be67afb7b..08b5bb219816ad38f929a23ccb69b378cba2101f 100644 (file)
@@ -616,6 +616,7 @@ static int malidp_bind(struct device *dev)
        struct malidp_hw_device *hwdev;
        struct platform_device *pdev = to_platform_device(dev);
        struct of_device_id const *dev_id;
+       struct drm_encoder *encoder;
        /* number of lines for the R, G and B output */
        u8 output_width[MAX_OUTPUT_CHANNELS];
        int ret = 0, i;
@@ -737,6 +738,15 @@ static int malidp_bind(struct device *dev)
                goto bind_fail;
        }
 
+       /* We expect to have a maximum of two encoders one for the actual
+        * display and a virtual one for the writeback connector
+        */
+       WARN_ON(drm->mode_config.num_encoder > 2);
+       list_for_each_entry(encoder, &drm->mode_config.encoder_list, head) {
+               encoder->possible_clones =
+                               (1 << drm->mode_config.num_encoder) -  1;
+       }
+
        ret = malidp_irq_init(pdev);
        if (ret < 0)
                goto irq_init_fail;