drm_encoder = &encoder->encoder;
 
        drm_encoder->possible_crtcs = ENCODER_CRTC_MASK;
-       drm_encoder->possible_clones = 1 << 0;
 
        drm_encoder_init(dev, drm_encoder,
                         &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_LVDS,
        drm_encoder = &encoder->encoder;
 
        drm_encoder->possible_crtcs = ENCODER_CRTC_MASK;
-       drm_encoder->possible_clones = 1 << 0;
 
        drm_encoder_init(dev, drm_encoder,
                        &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_DAC, NULL);
        drm_encoder = &encoder->encoder;
 
        drm_encoder->possible_crtcs = ENCODER_CRTC_MASK;
-       drm_encoder->possible_clones = 1 << 1;
 
        drm_encoder_init(dev, drm_encoder,
                        &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_TMDS, NULL);
        tvout->hdmi = sti_tvout_create_hdmi_encoder(dev, tvout);
        tvout->hda = sti_tvout_create_hda_encoder(dev, tvout);
        tvout->dvo = sti_tvout_create_dvo_encoder(dev, tvout);
+
+       tvout->hdmi->possible_clones = drm_encoder_mask(tvout->hdmi) |
+               drm_encoder_mask(tvout->hda) | drm_encoder_mask(tvout->dvo);
+       tvout->hda->possible_clones = drm_encoder_mask(tvout->hdmi) |
+               drm_encoder_mask(tvout->hda) | drm_encoder_mask(tvout->dvo);
+       tvout->dvo->possible_clones = drm_encoder_mask(tvout->hdmi) |
+               drm_encoder_mask(tvout->hda) | drm_encoder_mask(tvout->dvo);
 }
 
 static void sti_tvout_destroy_encoders(struct sti_tvout *tvout)