コード例 #1
0
ファイル: isp_af.c プロジェクト: mgrundy/bug20-2.6.35-linaro
void isp_af_isr(struct isp_af_device *af)
{
	isp_af_enable(af, 0);
	/* If it's busy we can't process this buffer anymore */
	if (!isp_af_busy(af)) {
		isp_af_buf_process(af);
		isp_af_config_registers(af);
	} else {
		dev_dbg(to_device(af),
			"af: cannot process buffer, device is busy.\n");
	}
	isp_af_enable(af, 1);
}
コード例 #2
0
void isp_af_try_enable(struct isp_af_device *isp_af)
{
	unsigned long irqflags;

	if (!isp_af->config.af_config)
		return;

	spin_lock_irqsave(isp_af->lock, irqflags);
	if (unlikely(!isp_af->enabled && isp_af->config.af_config)) {
		isp_af->update = 1;
		isp_af->buf_next = ispstat_buf_next(&isp_af->stat);
		spin_unlock_irqrestore(isp_af->lock, irqflags);
		isp_af_config_registers(isp_af);
		isp_af_enable(isp_af, 1);
	} else
		spin_unlock_irqrestore(isp_af->lock, irqflags);
}