}
 
        for_each_new_connector_in_state(state, conn, conn_state, i) {
+               struct drm_writeback_connector *wb_conn;
                struct drm_writeback_job *job;
                struct drm_out_fence_state *f;
                struct dma_fence *fence;
                f[*num_fences].out_fence_ptr = fence_ptr;
                *fence_state = f;
 
-               fence = drm_writeback_get_out_fence((struct drm_writeback_connector *)conn);
+               wb_conn = drm_connector_to_writeback(conn);
+               fence = drm_writeback_get_out_fence(wb_conn);
                if (!fence)
                        return -ENOMEM;
 
 
        struct dma_fence *out_fence;
 };
 
+static inline struct drm_writeback_connector *
+drm_connector_to_writeback(struct drm_connector *connector)
+{
+       return container_of(connector, struct drm_writeback_connector, base);
+}
+
 int drm_writeback_connector_init(struct drm_device *dev,
                                 struct drm_writeback_connector *wb_connector,
                                 const struct drm_connector_funcs *con_funcs,