media: tegra: cdi-mgr: fault code for tmr eq fail

Add the CDI_MGR_GPIO_INTR_FAULT code, and emit it when interrupt timer
enqueue fails.

Jira CAMERASW-11945

Bug 3902416

Change-Id: I7459c2bd7160cf8552007a0e299ad1f2a1f47b1f
Signed-off-by: Vincent Chung <vincentc@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2901738
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Frank Chen <frankc@nvidia.com>
Reviewed-by: Shiva Dubey <sdubey@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
Vincent Chung
2023-05-10 16:57:36 -07:00
committed by mobile promotions
parent f7fd6ebb95
commit c7f12c1ae6
2 changed files with 11 additions and 0 deletions

View File

@@ -277,6 +277,7 @@ static int cdi_mgr_gpio_eq_intr_timer(
struct cam_gpio_timer_queue *queue; struct cam_gpio_timer_queue *queue;
u32 queue_cap; u32 queue_cap;
ktime_t timeout_abs; ktime_t timeout_abs;
struct cdi_mgr_gpio_intr event;
if (!pin || !pin->mgr) if (!pin || !pin->mgr)
return -EINVAL; return -EINVAL;
@@ -293,6 +294,15 @@ static int cdi_mgr_gpio_eq_intr_timer(
dev_err(cdi_mgr->dev, dev_err(cdi_mgr->dev,
"%s: failed to enqueue interrupt timer, overflow\n", "%s: failed to enqueue interrupt timer, overflow\n",
__func__); __func__);
/* Report cdi-mgr fault */
event.idx = pin->idx;
event.code = CDI_MGR_GPIO_INTR_FAULT;
if (cdi_mgr_gpio_eq_event(cdi_mgr, event) != 0)
dev_err(cdi_mgr->dev,
"%s: failed to enqueue cdi-mgr fault event, "
"idx %d\n", __func__, pin->idx);
return -ENOMEM; return -ENOMEM;
} }

View File

@@ -78,6 +78,7 @@ enum {
CDI_MGR_GPIO_INTR_UNBLOCK = 0, CDI_MGR_GPIO_INTR_UNBLOCK = 0,
CDI_MGR_GPIO_INTR, CDI_MGR_GPIO_INTR,
CDI_MGR_GPIO_INTR_TIMEOUT, CDI_MGR_GPIO_INTR_TIMEOUT,
CDI_MGR_GPIO_INTR_FAULT,
}; };
enum { enum {