c
< 	if (client_id == SOC15_IH_CLIENTID_GRBM_CP ||
< 		if (source_id == SOC15_INTSRC_CP_END_OF_PIPE)
< 		else if (source_id == SOC15_INTSRC_SQ_INTERRUPT_MSG) {
---
> 	static const struct handler_table {
> 		uint16_t source_id;
> 		uint16_t client_id;
> 		void (*handler)(void);
> 	} handlers[] = {
> 		{ SOC15_INTSRC_CP_END_OF_PIPE, SOC15_IH_CLIENTID_GRBM_CP, handle_cp_end_of_pipe },
> 		{ SOC15_INTSRC_SQ_INTERRUPT_MSG, SOC15_IH_CLIENTID_GRBM_CP, handle_sq_interrupt_msg },
> 		// Add more handlers as needed
> 	};
> 	for (int i = 0; i < ARRAY_SIZE(handlers); i++) {
> 		if (handlers[i].source_id == source_id && handlers[i].client_id == client_id) {
> 			handlers[i].handler();
> 			break;
> 		}
> 	}
