msm: camera: core: Send event on smmu page fault
Currently when page fault happen, iommu driver callers camera handler with CB details and iova address which caused the page fault. With iommu iova address cam smmu driver finds the closest mapping address for that cb and call the corresponding driver to find the which port caused page fault. This has limitation has page fault address always not mapped. New approach is get the page fault ids from iommu driver. Based on the Pid and Mid values, get the HW id and port ids, go through all context which has this hw id and port id and log the data. Once context id is identified, log the acquire data and last consumed client address details. Dump the hw register data in the given buffer. Send the smmu page fault event through v4l2 queue to user. CRs-Fixed: 2750690 Change-Id: I87c809b3229992c7c95655a4f3c6c70ebc035ae8 Signed-off-by: Ravikishore Pampana <rpampana@codeaurora.org>
This commit is contained in:
@@ -424,6 +424,7 @@ struct cam_mem_cache_ops_cmd {
|
||||
* @CAM_REQ_MGR_ERROR_TYPE_BUFFER: Buffer was not filled, not fatal
|
||||
* @CAM_REQ_MGR_ERROR_TYPE_RECOVERY: Fatal error, can be recovered
|
||||
* @CAM_REQ_MGR_ERROR_TYPE_SOF_FREEZE: SOF freeze, can be recovered
|
||||
* @CAM_REQ_MGR_ERROR_TYPE_PAGE_FAULT: page fault, can be recovered
|
||||
*/
|
||||
#define CAM_REQ_MGR_ERROR_TYPE_DEVICE 0
|
||||
#define CAM_REQ_MGR_ERROR_TYPE_REQUEST 1
|
||||
@@ -431,7 +432,7 @@ struct cam_mem_cache_ops_cmd {
|
||||
#define CAM_REQ_MGR_ERROR_TYPE_RECOVERY 3
|
||||
#define CAM_REQ_MGR_ERROR_TYPE_SOF_FREEZE 4
|
||||
#define CAM_REQ_MGR_ERROR_TYPE_FULL_RECOVERY 5
|
||||
|
||||
#define CAM_REQ_MGR_ERROR_TYPE_PAGE_FAULT 6
|
||||
|
||||
/**
|
||||
* struct cam_req_mgr_error_msg
|
||||
|
Reference in New Issue
Block a user