Пример #1
0
/**
 * @brief tvp5146_power_set - Power-on or power-off TVP5146 device
 *
 * @param power - enum, Power on/off, resume/standby
 *
 * @return result of operation - 0 is success
 */
static int tvp5146_power_set(struct v4l2_int_device *s, enum v4l2_power power)
{
	struct omap34xxcam_videodev *vdev = s->u.slave->master->priv;

	switch (power) {
	case V4L2_POWER_OFF:
		/* Disable mux for TVP5146 decoder data path */
		if (is_dec_onboard) {
			if (omap3evm_set_mux(MUX_TVP5146, DISABLE_MUX))
				return -ENODEV;
		} else {
			if (omap3evmdc_set_mux(MUX_TVP5146, DISABLE_MUX))
				return -ENODEV;
		}
		break;

	case V4L2_POWER_STANDBY:
		break;

	case V4L2_POWER_ON:
		/* Enable mux for TVP5146 decoder data path */
		if (is_dec_onboard) {
			if (omap3evm_set_mux(MUX_TVP5146, ENABLE_MUX))
				return -ENODEV;
		} else {
			if (omap3evmdc_set_mux(MUX_TVP5146, ENABLE_MUX))
				return -ENODEV;
		}

#if defined(CONFIG_VIDEO_OMAP3) || defined(CONFIG_VIDEO_OMAP3_MODULE)
		isp_configure_interface(vdev->cam->isp, &tvp5146_if_config);
#endif
		break;

	default:
		return -ENODEV;
		break;
	}
	return 0;
}
/**
 * @brief tvp5146_power_set - Power-on or power-off TVP5146 device
 *
 * @param power - enum, Power on/off, resume/standby
 *
 * @return result of operation - 0 is success
 */
static int tvp5146_power_set(enum v4l2_power power)
{
	switch (power) {
	case V4L2_POWER_OFF:
		/* Disable mux for TVP5146 decoder data path */
		if (is_dec_onboard) {
			if (omap3evm_set_mux(MUX_TVP5146, DISABLE_MUX))
				return -ENODEV;
		} else {
			if (omap3evmdc_set_mux(MUX_TVP5146, DISABLE_MUX))
				return -ENODEV;
		}
		break;

	case V4L2_POWER_STANDBY:
		break;

	case V4L2_POWER_ON:
		/* Enable mux for TVP5146 decoder data path */
		if (is_dec_onboard) {
			if (omap3evm_set_mux(MUX_TVP5146, ENABLE_MUX))
				return -ENODEV;
		} else {
			if (omap3evmdc_set_mux(MUX_TVP5146, ENABLE_MUX))
				return -ENODEV;
		}

#if defined(CONFIG_VIDEO_OMAP3_CAM) || defined(CONFIG_VIDEO_OMAP3_CAM_MODULE)
		isp_configure_interface(&tvp5146_if_config);
#endif
		break;

	default:
		return -ENODEV;
		break;
	}
	return 0;
}