1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun struct btcx_riscmem { 3*4882a593Smuzhiyun unsigned int size; 4*4882a593Smuzhiyun __le32 *cpu; 5*4882a593Smuzhiyun __le32 *jmp; 6*4882a593Smuzhiyun dma_addr_t dma; 7*4882a593Smuzhiyun }; 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun struct btcx_skiplist { 10*4882a593Smuzhiyun int start; 11*4882a593Smuzhiyun int end; 12*4882a593Smuzhiyun }; 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun int btcx_riscmem_alloc(struct pci_dev *pci, 15*4882a593Smuzhiyun struct btcx_riscmem *risc, 16*4882a593Smuzhiyun unsigned int size); 17*4882a593Smuzhiyun void btcx_riscmem_free(struct pci_dev *pci, 18*4882a593Smuzhiyun struct btcx_riscmem *risc); 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun int btcx_screen_clips(int swidth, int sheight, struct v4l2_rect *win, 21*4882a593Smuzhiyun struct v4l2_clip *clips, unsigned int n); 22*4882a593Smuzhiyun int btcx_align(struct v4l2_rect *win, struct v4l2_clip *clips, 23*4882a593Smuzhiyun unsigned int n, int mask); 24*4882a593Smuzhiyun void btcx_sort_clips(struct v4l2_clip *clips, unsigned int nclips); 25*4882a593Smuzhiyun void btcx_calc_skips(int line, int width, int *maxy, 26*4882a593Smuzhiyun struct btcx_skiplist *skips, unsigned int *nskips, 27*4882a593Smuzhiyun const struct v4l2_clip *clips, unsigned int nclips); 28