&mw_state->addrs[0],
                                     mw_state->format);
 
-               drm_writeback_queue_job(mw_conn, conn_state->writeback_job);
-               conn_state->writeback_job = NULL;
+               drm_writeback_queue_job(mw_conn, conn_state);
                hwdev->hw->enable_memwrite(hwdev, mw_state->addrs,
                                           mw_state->pitches, mw_state->n_planes,
                                           fb->width, fb->height, mw_state->format,
 
 /**
  * drm_writeback_queue_job - Queue a writeback job for later signalling
  * @wb_connector: The writeback connector to queue a job on
- * @job: The job to queue
+ * @conn_state: The connector state containing the job to queue
  *
- * This function adds a job to the job_queue for a writeback connector. It
- * should be considered to take ownership of the writeback job, and so any other
- * references to the job must be cleared after calling this function.
+ * This function adds the job contained in @conn_state to the job_queue for a
+ * writeback connector. It takes ownership of the writeback job and sets the
+ * @conn_state->writeback_job to NULL, and so no access to the job may be
+ * performed by the caller after this function returns.
  *
  * Drivers must ensure that for a given writeback connector, jobs are queued in
  * exactly the same order as they will be completed by the hardware (and
  * See also: drm_writeback_signal_completion()
  */
 void drm_writeback_queue_job(struct drm_writeback_connector *wb_connector,
-                            struct drm_writeback_job *job)
+                            struct drm_connector_state *conn_state)
 {
+       struct drm_writeback_job *job;
        unsigned long flags;
 
+       job = conn_state->writeback_job;
+       conn_state->writeback_job = NULL;
+
        spin_lock_irqsave(&wb_connector->job_lock, flags);
        list_add_tail(&job->list_entry, &wb_connector->job_queue);
        spin_unlock_irqrestore(&wb_connector->job_lock, flags);
 
 
        TXP_WRITE(TXP_DST_CTRL, ctrl);
 
-       drm_writeback_queue_job(&txp->connector, conn_state->writeback_job);
+       drm_writeback_queue_job(&txp->connector, conn_state);
 }
 
 static const struct drm_connector_helper_funcs vc4_txp_connector_helper_funcs = {
 
                                 const u32 *formats, int n_formats);
 
 void drm_writeback_queue_job(struct drm_writeback_connector *wb_connector,
-                            struct drm_writeback_job *job);
+                            struct drm_connector_state *conn_state);
 
 void drm_writeback_cleanup_job(struct drm_writeback_job *job);