示例#1
0
文件: iss_csi2.c 项目: MaxChina/linux
/*
 * csi2_isr_buffer - Does buffer handling at end-of-frame
 * when writing to memory.
 */
static void csi2_isr_buffer(struct iss_csi2_device *csi2)
{
	struct iss_buffer *buffer;

	csi2_ctx_enable(csi2, 0, 0);

	buffer = omap4iss_video_buffer_next(&csi2->video_out);

	/*
	 * Let video queue operation restart engine if there is an underrun
	 * condition.
	 */
	if (buffer == NULL)
		return;

	csi2_set_outaddr(csi2, buffer->iss_addr);
	csi2_ctx_enable(csi2, 0, 1);
}
示例#2
0
文件: iss_ipipeif.c 项目: 3null/linux
static void ipipeif_isr_buffer(struct iss_ipipeif_device *ipipeif)
{
	struct iss_buffer *buffer;

	/* The ISIF generates VD0 interrupts even when writes are disabled.
	 * deal with it anyway). Disabling the ISIF when no buffer is available
	 * is thus not be enough, we need to handle the situation explicitly.
	 */
	if (list_empty(&ipipeif->video_out.dmaqueue))
		return;

	ipipeif_write_enable(ipipeif, 0);

	buffer = omap4iss_video_buffer_next(&ipipeif->video_out);
	if (buffer == NULL)
		return;

	ipipeif_set_outaddr(ipipeif, buffer->iss_addr);

	ipipeif_write_enable(ipipeif, 1);
}