xref: /linux/drivers/staging/media/atomisp/pci/hive_isp_css_common/host/vmem_local.h (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Support for Intel Camera Imaging ISP subsystem.
4  * Copyright (c) 2010-2015, Intel Corporation.
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms and conditions of the GNU General Public License,
8  * version 2, as published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
13  * more details.
14  */
15 
16 #ifndef __VMEM_LOCAL_H_INCLUDED__
17 #define __VMEM_LOCAL_H_INCLUDED__
18 
19 #include "type_support.h"
20 #include "vmem_global.h"
21 
22 typedef u16 t_vmem_elem;
23 typedef s16 t_svmem_elem;
24 
25 #define VMEM_ARRAY(x, s)	t_vmem_elem x[(s) / ISP_NWAY][ISP_NWAY]
26 #define SVMEM_ARRAY(x, s)	t_svmem_elem x[(s) / ISP_NWAY][ISP_NWAY]
27 
28 void isp_vmem_load(
29     const isp_ID_t		ID,
30     const t_vmem_elem	*from,
31     t_vmem_elem		*to,
32     unsigned int elems); /* In t_vmem_elem */
33 
34 void isp_vmem_store(
35     const isp_ID_t		ID,
36     t_vmem_elem		*to,
37     const t_vmem_elem	*from,
38     unsigned int elems); /* In t_vmem_elem */
39 
40 void isp_vmem_2d_load(
41     const isp_ID_t		ID,
42     const t_vmem_elem	*from,
43     t_vmem_elem		*to,
44     unsigned int height,
45     unsigned int width,
46     unsigned int stride_to,  /* In t_vmem_elem */
47 
48     unsigned		stride_from /* In t_vmem_elem */);
49 
50 void isp_vmem_2d_store(
51     const isp_ID_t		ID,
52     t_vmem_elem		*to,
53     const t_vmem_elem	*from,
54     unsigned int height,
55     unsigned int width,
56     unsigned int stride_to,  /* In t_vmem_elem */
57 
58     unsigned		stride_from /* In t_vmem_elem */);
59 
60 #endif /* __VMEM_LOCAL_H_INCLUDED__ */
61