/* Function to Suspend AF Engine */ void isp_af_suspend(struct isp_af_device *af) { unsigned long irqflags; spin_lock_irqsave(af->lock, irqflags); if (af->enabled) __isp_af_enable(af, 0); spin_unlock_irqrestore(af->lock, irqflags); }
/* Function to Resume AF Engine */ void isp_af_resume(struct isp_af_device *isp_af) { unsigned long irqflags; spin_lock_irqsave(isp_af->lock, irqflags); if (isp_af->enabled) __isp_af_enable(isp_af, 1); spin_unlock_irqrestore(isp_af->lock, irqflags); }
/* Function to Enable/Disable AF Engine */ int isp_af_enable(int enable) { int rval; rval = __isp_af_enable(enable); if (!rval) afstat.pm_state = enable; return rval; }
/* Function to Enable/Disable AF Engine */ void isp_af_enable(struct isp_af_device *isp_af, int enable) { unsigned long irqflags; spin_lock_irqsave(isp_af->lock, irqflags); if (!isp_af->config.af_config && enable) { spin_unlock_irqrestore(isp_af->lock, irqflags); return; } __isp_af_enable(isp_af, enable); isp_af->enabled = enable; spin_unlock_irqrestore(isp_af->lock, irqflags); }
/* Function to Enable/Disable AF Engine */ void isp_af_enable(struct isp_af_device *isp_af, int enable) { unsigned long irqflags; spin_lock_irqsave(isp_af->lock, irqflags); if (!isp_af->config.af_config && enable) { spin_unlock_irqrestore(isp_af->lock, irqflags); return; } /* Check errata i421 for AF and AE paxel size relationship */ if (enable && isp_af_validate_errata_i421(isp_af, &isp_af->config)) { spin_unlock_irqrestore(isp_af->lock, irqflags); return; } __isp_af_enable(isp_af, enable); isp_af->enabled = enable; spin_unlock_irqrestore(isp_af->lock, irqflags); }
/* Function to Resume AF Engine */ void isp_af_resume(void) { if (afstat.pm_state) __isp_af_enable(1); }
/* Function to Suspend AF Engine */ void isp_af_suspend(void) { if (afstat.pm_state) __isp_af_enable(0); }