Lines Matching refs:work

1742 	struct intel_fbc_work *work =
1744 struct intel_fbc_work, work);
1745 struct drm_device *dev = work->crtc->dev;
1749 if (work == dev_priv->fbc_work) {
1751 * the prior work.
1753 if (work->crtc->fb == work->fb) {
1754 dev_priv->display.enable_fbc(work->crtc,
1755 work->interval);
1757 dev_priv->cfb_plane = to_intel_crtc(work->crtc)->plane;
1758 dev_priv->cfb_fb = work->crtc->fb->base.id;
1759 dev_priv->cfb_y = work->crtc->y;
1766 kfree(work);
1780 if (cancel_delayed_work(&dev_priv->fbc_work->work))
1784 /* Mark the work as no longer wanted so that if it does
1785 * wake-up (because the work was already running and waiting
1794 struct intel_fbc_work *work;
1803 work = kzalloc(sizeof *work, GFP_KERNEL);
1804 if (work == NULL) {
1809 work->crtc = crtc;
1810 work->fb = crtc->fb;
1811 work->interval = interval;
1812 INIT_DELAYED_WORK(&work->work, intel_fbc_work_fn);
1814 dev_priv->fbc_work = work;
1829 schedule_delayed_work(&work->work, msecs_to_jiffies(50));
7107 * @work: work struct
7112 static void intel_idle_update(struct work_struct *work)
7114 drm_i915_private_t *dev_priv = container_of(work, drm_i915_private_t,
7191 struct intel_unpin_work *work;
7195 work = intel_crtc->unpin_work;
7199 if (work) {
7200 cancel_work_sync(&work->work);
7201 kfree(work);
7211 struct intel_unpin_work *work =
7212 container_of(__work, struct intel_unpin_work, work);
7214 mutex_lock(&work->dev->struct_mutex);
7215 intel_unpin_fb_obj(work->old_fb_obj);
7216 drm_gem_object_unreference(&work->pending_flip_obj->base);
7217 drm_gem_object_unreference(&work->old_fb_obj->base);
7219 intel_update_fbc(work->dev);
7220 mutex_unlock(&work->dev->struct_mutex);
7221 kfree(work);
7229 struct intel_unpin_work *work;
7242 work = intel_crtc->unpin_work;
7243 if (work == NULL || !work->pending) {
7250 if (work->event) {
7251 e = work->event;
7285 obj = work->old_fb_obj;
7292 schedule_work(&work->work);
7294 trace_i915_flip_complete(intel_crtc->plane, work->pending_flip_obj);
7325 DRM_DEBUG_DRIVER("preparing flip with no unpin work?\n");
7536 struct intel_unpin_work *work;
7540 work = kzalloc(sizeof *work, GFP_KERNEL);
7541 if (work == NULL)
7544 work->event = event;
7545 work->dev = crtc->dev;
7547 work->old_fb_obj = intel_fb->obj;
7548 INIT_WORK(&work->work, intel_unpin_work_fn);
7558 kfree(work);
7564 intel_crtc->unpin_work = work;
7572 /* Reference the objects for the scheduled work. */
7573 drm_gem_object_reference(&work->old_fb_obj->base);
7578 work->pending_flip_obj = obj;
7580 work->enable_stall_check = true;
7585 atomic_add(1 << intel_crtc->plane, &work->old_fb_obj->pending_flip);
7599 atomic_sub(1 << intel_crtc->plane, &work->old_fb_obj->pending_flip);
7600 drm_gem_object_unreference(&work->old_fb_obj->base);
7610 kfree(work);
8165 /* Complete PM interrupt masking here doesn't race with the rps work
9112 * Some machines (Lenovo U160) do not work with SSC on LVDS for some reason
9298 * enqueue unpin/hotplug work. */
9303 /* flush any delayed tasks or pending work */
9306 /* Shut off idle work before the crtcs get freed. */