Beispiel #1
0
static irqreturn_t ipu_irq_handler(int irq, void *dev_id)
{
    struct ipu_crtc *ipu_crtc = dev_id;

    imx_drm_handle_vblank(ipu_crtc->imx_crtc);

    if (ipu_crtc->newfb) {
        ipu_crtc->newfb = NULL;
        ipu_plane_set_base(ipu_crtc->plane[0], ipu_crtc->base.fb, 0, 0);
        ipu_crtc_handle_pageflip(ipu_crtc);
    }

    return IRQ_HANDLED;
}
Beispiel #2
0
static irqreturn_t ipu_irq_handler(int irq, void *dev_id)
{
	struct ipu_crtc *ipu_crtc = dev_id;

	imx_drm_handle_vblank(ipu_crtc->imx_crtc);

	if (ipu_crtc->newfb) {
		struct ipu_plane *plane = ipu_crtc->plane[0];

		ipu_crtc->newfb = NULL;
		ipu_plane_set_base(plane, ipu_crtc->base.primary->fb,
				   plane->x, plane->y);
		ipu_crtc_handle_pageflip(ipu_crtc);
	}

	return IRQ_HANDLED;
}
Beispiel #3
0
static irqreturn_t ipu_irq_handler(int irq, void *dev_id)
{
	struct ipu_crtc *ipu_crtc = dev_id;

	imx_drm_handle_vblank(ipu_crtc->imx_crtc);

	if (ipu_crtc->flip_state == IPU_FLIP_SUBMITTED) {
		struct ipu_plane *plane = ipu_crtc->plane[0];

		ipu_plane_set_base(plane, ipu_crtc->base.primary->fb,
				   plane->x, plane->y);
		ipu_crtc_handle_pageflip(ipu_crtc);
		queue_work(ipu_crtc->flip_queue,
			   &ipu_crtc->flip_work->unref_work);
		ipu_crtc->flip_state = IPU_FLIP_NONE;
	}

	return IRQ_HANDLED;
}