blob: 82c4e88ed6955709efc810f6ae366cacd5c29d91 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
/* Copyright (c) 2017,2020 The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef MDSS_SMMU_EXT_H
#define MDSS_SMMU_EXT_H
/**
* struct msm_smmu:interface exposed to the clients which use smmu driver.
* @dev: smmu device for attach/dettach
* @domain: domain for the context bank.
* @is_secure: bool variable to check for secure domain.
* @iommu_ctrl: iommu ctrl function for enable/disable attach.
* @secure_session_ctrl: ctrl function for enable/disable session.
* @wait_for_transition:function to wait till secure transtion is complete.
*/
struct mdss_smmu_intf {
struct device *dev;
int domain;
bool is_secure;
int (*iommu_ctrl)(int);
int (*secure_session_ctrl)(int);
int (*wait_for_transition)(int state, int request);
};
typedef void (*msm_smmu_handler_t) (struct mdss_smmu_intf *smmu);
/**
* mdss_smmu_request_mappings: function to request smmu mappings.
* Client driver can request smmu dev via this API.
* dev will be returned in the same call context
* if probe is not finished then dev will be
* returned once it is completed.
* @callback: callback function that is called to return smmu
* dev
*/
#ifdef CONFIG_FB_MSM_MDSS
int mdss_smmu_request_mappings(msm_smmu_handler_t callback);
#else
static inline int mdss_smmu_request_mappings(msm_smmu_handler_t callback)
{
return 0;
}
#endif
#endif /* MDSS_SMMU_EXT_H */
|