linux/drivers/media/platform/ti/omap3isp/ispresizer.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * ispresizer.h
 *
 * TI OMAP3 ISP - Resizer module
 *
 * Copyright (C) 2010 Nokia Corporation
 * Copyright (C) 2009 Texas Instruments, Inc
 *
 * Contacts: Laurent Pinchart <[email protected]>
 *	     Sakari Ailus <[email protected]>
 */

#ifndef OMAP3_ISP_RESIZER_H
#define OMAP3_ISP_RESIZER_H

#include <linux/spinlock.h>
#include <linux/types.h>

/*
 * Constants for filter coefficients count
 */
#define COEFF_CNT

/*
 * struct isprsz_coef - Structure for resizer filter coefficients.
 * @h_filter_coef_4tap: Horizontal filter coefficients for 8-phase/4-tap
 *			mode (.5x-4x)
 * @v_filter_coef_4tap: Vertical filter coefficients for 8-phase/4-tap
 *			mode (.5x-4x)
 * @h_filter_coef_7tap: Horizontal filter coefficients for 4-phase/7-tap
 *			mode (.25x-.5x)
 * @v_filter_coef_7tap: Vertical filter coefficients for 4-phase/7-tap
 *			mode (.25x-.5x)
 */
struct isprsz_coef {};

/* Chrominance horizontal algorithm */
enum resizer_chroma_algo {};

/* Resizer input type select */
enum resizer_colors_type {};

/*
 * Structure for horizontal and vertical resizing value
 */
struct resizer_ratio {};

/*
 * Structure for luminance enhancer parameters.
 */
struct resizer_luma_yenh {};

enum resizer_input_entity {};

/* Sink and source resizer pads */
#define RESZ_PAD_SINK
#define RESZ_PAD_SOURCE
#define RESZ_PADS_NUM

/*
 * struct isp_res_device - OMAP3 ISP resizer module
 * @lock: Protects formats and crop rectangles between set_selection and IRQ
 * @crop.request: Crop rectangle requested by the user
 * @crop.active: Active crop rectangle (based on hardware requirements)
 */
struct isp_res_device {};

struct isp_device;

int omap3isp_resizer_init(struct isp_device *isp);
void omap3isp_resizer_cleanup(struct isp_device *isp);

int omap3isp_resizer_register_entities(struct isp_res_device *res,
				       struct v4l2_device *vdev);
void omap3isp_resizer_unregister_entities(struct isp_res_device *res);
void omap3isp_resizer_isr_frame_sync(struct isp_res_device *res);
void omap3isp_resizer_isr(struct isp_res_device *isp_res);

void omap3isp_resizer_max_rate(struct isp_res_device *res,
			       unsigned int *max_rate);

void omap3isp_resizer_suspend(struct isp_res_device *isp_res);

void omap3isp_resizer_resume(struct isp_res_device *isp_res);

int omap3isp_resizer_busy(struct isp_res_device *isp_res);

#endif	/* OMAP3_ISP_RESIZER_H */