Lines Matching refs:wb_connector
89 struct drm_writeback_connector *wb_connector = in drm_writeback_fence_get_driver_name() local
92 return wb_connector->base.dev->driver->name; in drm_writeback_fence_get_driver_name()
98 struct drm_writeback_connector *wb_connector = in drm_writeback_fence_get_timeline_name() local
101 return wb_connector->timeline_name; in drm_writeback_fence_get_timeline_name()
171 struct drm_writeback_connector *wb_connector, in drm_writeback_connector_init() argument
179 drm_encoder_helper_add(&wb_connector->encoder, enc_helper_funcs); in drm_writeback_connector_init()
181 wb_connector->encoder.possible_crtcs = possible_crtcs; in drm_writeback_connector_init()
183 ret = drm_encoder_init(dev, &wb_connector->encoder, in drm_writeback_connector_init()
189 ret = drm_writeback_connector_init_with_encoder(dev, wb_connector, &wb_connector->encoder, in drm_writeback_connector_init()
193 drm_encoder_cleanup(&wb_connector->encoder); in drm_writeback_connector_init()
240 struct drm_writeback_connector *wb_connector, in __drm_writeback_connector_init() argument
244 struct drm_connector *connector = &wb_connector->base; in __drm_writeback_connector_init()
265 INIT_LIST_HEAD(&wb_connector->job_queue); in __drm_writeback_connector_init()
266 spin_lock_init(&wb_connector->job_lock); in __drm_writeback_connector_init()
268 wb_connector->fence_context = dma_fence_context_alloc(1); in __drm_writeback_connector_init()
269 spin_lock_init(&wb_connector->fence_lock); in __drm_writeback_connector_init()
270 snprintf(wb_connector->timeline_name, in __drm_writeback_connector_init()
271 sizeof(wb_connector->timeline_name), in __drm_writeback_connector_init()
283 wb_connector->pixel_formats_blob_ptr = blob; in __drm_writeback_connector_init()
321 struct drm_writeback_connector *wb_connector, in drm_writeback_connector_init_with_encoder() argument
326 struct drm_connector *connector = &wb_connector->base; in drm_writeback_connector_init_with_encoder()
334 ret = __drm_writeback_connector_init(dev, wb_connector, enc, formats, in drm_writeback_connector_init_with_encoder()
353 struct drm_writeback_connector *wb_connector) in drm_writeback_connector_cleanup() argument
359 drm_property_blob_put(wb_connector->pixel_formats_blob_ptr); in drm_writeback_connector_cleanup()
361 spin_lock_irqsave(&wb_connector->job_lock, flags); in drm_writeback_connector_cleanup()
362 list_for_each_entry_safe(pos, n, &wb_connector->job_queue, list_entry) { in drm_writeback_connector_cleanup()
366 spin_unlock_irqrestore(&wb_connector->job_lock, flags); in drm_writeback_connector_cleanup()
390 struct drm_writeback_connector *wb_connector, in drmm_writeback_connector_init() argument
395 struct drm_connector *connector = &wb_connector->base; in drmm_writeback_connector_init()
403 ret = __drm_writeback_connector_init(dev, wb_connector, enc, formats, in drmm_writeback_connector_init()
409 wb_connector); in drmm_writeback_connector_init()
473 void drm_writeback_queue_job(struct drm_writeback_connector *wb_connector, in drm_writeback_queue_job() argument
482 spin_lock_irqsave(&wb_connector->job_lock, flags); in drm_writeback_queue_job()
483 list_add_tail(&job->list_entry, &wb_connector->job_queue); in drm_writeback_queue_job()
484 spin_unlock_irqrestore(&wb_connector->job_lock, flags); in drm_writeback_queue_job()
540 drm_writeback_signal_completion(struct drm_writeback_connector *wb_connector, in drm_writeback_signal_completion() argument
547 spin_lock_irqsave(&wb_connector->job_lock, flags); in drm_writeback_signal_completion()
548 job = list_first_entry_or_null(&wb_connector->job_queue, in drm_writeback_signal_completion()
554 spin_unlock_irqrestore(&wb_connector->job_lock, flags); in drm_writeback_signal_completion()
574 drm_writeback_get_out_fence(struct drm_writeback_connector *wb_connector) in drm_writeback_get_out_fence() argument
578 if (WARN_ON(wb_connector->base.connector_type != in drm_writeback_get_out_fence()
587 &wb_connector->fence_lock, wb_connector->fence_context, in drm_writeback_get_out_fence()
588 ++wb_connector->fence_seqno); in drm_writeback_get_out_fence()