xref: /linux/include/drm/amd/isp.h (revision 220994d61cebfc04f071d69049127657c7e8191b)
1*55d42f61SPratap Nirujogi /* SPDX-License-Identifier: MIT */
2*55d42f61SPratap Nirujogi /*
3*55d42f61SPratap Nirujogi  * Copyright (C) 2025 Advanced Micro Devices, Inc. All rights reserved.
4*55d42f61SPratap Nirujogi  * All Rights Reserved.
5*55d42f61SPratap Nirujogi  *
6*55d42f61SPratap Nirujogi  * Permission is hereby granted, free of charge, to any person obtaining a
7*55d42f61SPratap Nirujogi  * copy of this software and associated documentation files (the
8*55d42f61SPratap Nirujogi  * "Software"), to deal in the Software without restriction, including
9*55d42f61SPratap Nirujogi  * without limitation the rights to use, copy, modify, merge, publish,
10*55d42f61SPratap Nirujogi  * distribute, sub license, and/or sell copies of the Software, and to
11*55d42f61SPratap Nirujogi  * permit persons to whom the Software is furnished to do so, subject to
12*55d42f61SPratap Nirujogi  * the following conditions:
13*55d42f61SPratap Nirujogi  *
14*55d42f61SPratap Nirujogi  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15*55d42f61SPratap Nirujogi  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16*55d42f61SPratap Nirujogi  * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
17*55d42f61SPratap Nirujogi  * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
18*55d42f61SPratap Nirujogi  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19*55d42f61SPratap Nirujogi  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20*55d42f61SPratap Nirujogi  * USE OR OTHER DEALINGS IN THE SOFTWARE.
21*55d42f61SPratap Nirujogi  *
22*55d42f61SPratap Nirujogi  * The above copyright notice and this permission notice (including the
23*55d42f61SPratap Nirujogi  * next paragraph) shall be included in all copies or substantial portions
24*55d42f61SPratap Nirujogi  * of the Software.
25*55d42f61SPratap Nirujogi  *
26*55d42f61SPratap Nirujogi  */
27*55d42f61SPratap Nirujogi 
28*55d42f61SPratap Nirujogi #ifndef __ISP_H__
29*55d42f61SPratap Nirujogi #define __ISP_H__
30*55d42f61SPratap Nirujogi 
31*55d42f61SPratap Nirujogi #include <linux/types.h>
32*55d42f61SPratap Nirujogi 
33*55d42f61SPratap Nirujogi struct device;
34*55d42f61SPratap Nirujogi 
35*55d42f61SPratap Nirujogi struct isp_platform_data {
36*55d42f61SPratap Nirujogi 	void *adev;
37*55d42f61SPratap Nirujogi 	u32 asic_type;
38*55d42f61SPratap Nirujogi 	resource_size_t base_rmmio_size;
39*55d42f61SPratap Nirujogi };
40*55d42f61SPratap Nirujogi 
41*55d42f61SPratap Nirujogi int isp_user_buffer_alloc(struct device *dev, void *dmabuf,
42*55d42f61SPratap Nirujogi 			  void **buf_obj, u64 *buf_addr);
43*55d42f61SPratap Nirujogi 
44*55d42f61SPratap Nirujogi void isp_user_buffer_free(void *buf_obj);
45*55d42f61SPratap Nirujogi 
46*55d42f61SPratap Nirujogi int isp_kernel_buffer_alloc(struct device *dev, u64 size,
47*55d42f61SPratap Nirujogi 			    void **buf_obj, u64 *gpu_addr, void **cpu_addr);
48*55d42f61SPratap Nirujogi 
49*55d42f61SPratap Nirujogi void isp_kernel_buffer_free(void **buf_obj, u64 *gpu_addr, void **cpu_addr);
50*55d42f61SPratap Nirujogi 
51*55d42f61SPratap Nirujogi #endif
52