/* 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 */