20 #include <linux/kernel.h>
34 static u32 fault_addr;
36 static void mmu_fault_dpc(
unsigned long data)
38 struct deh_mgr *deh = (
void *)data;
46 static irqreturn_t mmu_fault_isr(
int irq,
void *data)
57 dev_dbg(bridge,
"%s: Failed to get Host Resources\n",
65 dev_dbg(bridge,
"%s: event=0x%x, fault_addr=0x%x\n", __func__,
116 deh->bridge_context = hbridge_context;
120 "DspBridge\tiommu fault", deh);
163 return ntfy_register(deh->
ntfy_obj, hnotification,
164 event_mask, notify_type);
166 return ntfy_unregister(deh->
ntfy_obj, hnotification);
169 #ifdef CONFIG_TIDSPBRIDGE_BACKTRACE
203 dump_dsp_stack(dev_context);
211 static inline const char *event_to_string(
int event)
218 default:
return "unknown event";
break;
225 const char *
str = event_to_string(event);
237 #ifdef CONFIG_TIDSPBRIDGE_BACKTRACE
238 dump_dl_modules(dev_context);
239 dump_dsp_stack(dev_context);
245 #ifdef CONFIG_TIDSPBRIDGE_BACKTRACE
246 print_dsp_trace_buffer(dev_context);
247 dump_dl_modules(dev_context);
248 mmu_fault_print_stack(dev_context);
259 #ifdef CONFIG_TIDSPBRIDGE_RECOVERY
260 bridge_recover_schedule();