162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci yuv support 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci Copyright (C) 2007 Ian Armstrong <ian@iarmst.demon.co.uk> 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#ifndef IVTV_YUV_H 1062306a36Sopenharmony_ci#define IVTV_YUV_H 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#define IVTV_YUV_BUFFER_UV_OFFSET 0x65400 /* Offset to UV Buffer */ 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci/* Offset to filter table in firmware */ 1562306a36Sopenharmony_ci#define IVTV_YUV_HORIZONTAL_FILTER_OFFSET 0x025d8 1662306a36Sopenharmony_ci#define IVTV_YUV_VERTICAL_FILTER_OFFSET 0x03358 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci#define IVTV_YUV_UPDATE_HORIZONTAL 0x01 1962306a36Sopenharmony_ci#define IVTV_YUV_UPDATE_VERTICAL 0x02 2062306a36Sopenharmony_ci#define IVTV_YUV_UPDATE_INVALID 0x04 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciextern const u32 yuv_offset[IVTV_YUV_BUFFERS]; 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciint ivtv_yuv_filter_check(struct ivtv *itv); 2562306a36Sopenharmony_civoid ivtv_yuv_setup_stream_frame(struct ivtv *itv); 2662306a36Sopenharmony_ciint ivtv_yuv_udma_stream_frame(struct ivtv *itv, void __user *src); 2762306a36Sopenharmony_civoid ivtv_yuv_frame_complete(struct ivtv *itv); 2862306a36Sopenharmony_ciint ivtv_yuv_prep_frame(struct ivtv *itv, struct ivtv_dma_frame *args); 2962306a36Sopenharmony_civoid ivtv_yuv_close(struct ivtv *itv); 3062306a36Sopenharmony_civoid ivtv_yuv_work_handler(struct ivtv *itv); 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci#endif 33