Ejemplo n.º 1
0
int msm_vpe_release(void)
{
	/* clean up....*/
	/* drain the queue, etc. */
	/* don't change the order of clock and irq.*/
	int rc = 0;

	free_irq(vpe_device->vpeirq, 0);
	tasklet_kill(&vpe_tasklet);
	rc = msm_camio_vpe_clk_disable();
	kfree(vpe_ctrl);

	return rc;
}
Ejemplo n.º 2
0
int msm_vpe_release(void)
{
	/* clean up....*/
	/* drain the queue, etc. */
	/* don't change the order of clock and irq.*/
	int rc = 0;

	CDBG("%s: In \n", __func__);

	free_irq(vpe_device->vpeirq, 0);
	rc = msm_camio_vpe_clk_disable();
	kfree(vpe_ctrl);

	CDBG("%s: Out \n", __func__);
	return rc;
}
Ejemplo n.º 3
0
int msm_vpe_release(void)
{
    /* clean up....*/
    /* drain the queue, etc. */
    /* don't change the order of clock and irq.*/
    int rc = 0;

    pr_info("[CAM] %s: In\n", __func__);

    free_irq(vpe_device->vpeirq, 0);
#ifdef CONFIG_MSM_CAMERA_7X30
    rc = vpe_clock_disable();
#else
    rc = msm_camio_vpe_clk_disable();
#endif
    kfree(vpe_ctrl);

    pr_info("[CAM] %s: Out\n", __func__);

    return 0;
}
int vpe_disable(void)
{
	int rc = 0;
	unsigned long flags = 0;
	CDBG("%s: called", __func__);
	spin_lock_irqsave(&vpe_ctrl->ops_lock, flags);
	if (vpe_ctrl->state == VPE_STATE_IDLE) {
		CDBG("%s: VPE already disabled", __func__);
		spin_unlock_irqrestore(&vpe_ctrl->ops_lock, flags);
		return 0;
	}
	vpe_ctrl->state = VPE_STATE_IDLE;
	spin_unlock_irqrestore(&vpe_ctrl->ops_lock, flags);
	vpe_ctrl->out_y_addr = msm_io_r(vpe_device->vpebase +
		VPE_OUTP0_ADDR_OFFSET);
	vpe_ctrl->out_cbcr_addr = msm_io_r(vpe_device->vpebase +
		VPE_OUTP1_ADDR_OFFSET);
	free_irq(vpe_device->vpeirq, 0);
	tasklet_kill(&vpe_tasklet);
	rc = msm_camio_vpe_clk_disable();
	return rc;
}