这类接口的逻辑很简单,根据自己的映射类型,初始化struct irq_domain中的各个成员,调用__irq_domain_add将该irq domain挂入irq_domain_list的全局列表。 2、为irq domain创建映射 上节的内容主要是向系统注册一个irq domain,具体HW interrupt ID和IRQ number的映射关系都是空的,因此,具体各个irq domain如何管理映射...
这类接口的逻辑很简单,根据自己的映射类型,初始化struct irq_domain中的各个成员,调用__irq_domain_add将该irq domain挂入irq_domain_list的全局列表。 2、为irq domain创建映射 上节的内容主要是向系统注册一个irq domain,具体HW interrupt ID和IRQ number的映射关系都是空的,因此,具体各个irq domain如何管理映射...
这类接口的逻辑很简单,根据自己的映射类型,初始化struct irq_domain中的各个成员,调用__irq_domain_add将该irq domain挂入irq_domain_list的全局列表。 2、为irq domain创建映射 上节的内容主要是向系统注册一个irq domain,具体HW interrupt ID和IRQ number的映射关系都是空的,因此,具体各个irq domain如何管理映射...
irq_create_fwspec_mapping先调用irq_domain_translate获取到硬件中断号,由于预留了SGI,PPI的中断号,这里需要加上对应的中断号偏移。然后在irq_domain_associate中通过给该irq_data->hwirq赋值为获取到的硬件中断号,同时在irq_domain_set_mapping中进行映射建立起hwirq与irq_data之间的联系。 irq_domain_set_mapping中...
irq_domain_create_linear() Linear --- :: irq_domain_add_linear() irq_domain_create_linear() The linear reverse map maintains a fixed size table indexed by the hwirq number. When a hwirq is mapped, an irq_desc is allocated for @@ -89,9 +99,13 @@ accepts a more general abstractio...
domain->linear_revmap[hwirq] = irq_data->irq; }else{ mutex_lock(&domain->revmap_tree_mutex); radix_tree_insert(&domain->revmap_tree, hwirq, irq_data); mutex_unlock(&domain->revmap_tree_mutex); } } irq和irq_desc的关系 在分配一个softirq的时候,其实最终也会分配一个irq_desc结构的 ...
(struct irq_domain*domain,irq_hw_number_t hwirq,struct irq_data*irq_data){if(hwirq<domain->revmap_size){domain->linear_revmap[hwirq]=irq_data->irq;}else{mutex_lock(&domain->revmap_tree_mutex);radix_tree_insert(&domain->revmap_tree,hwirq,irq_data);mutex_unlock(&domain->revmap_tree_...
domain = irq_domain_create_linear(domain_handle, LIOINTC_CHIP_IRQ, &irq_generic_chip_ops, priv); if (!domain) { pr_err("loongson-liointc: cannot add IRQ domain\n"); err = -EINVAL; goto out_iounmap_isr; goto out_iounmap;
The majority of drivers should use the linear map. === Tree === irq_domain_add_tree() The irq_domain maintains a radix tree map from hwirq numbers to Linux IRQs. When an hwirq is mapped, an irq_desc is allocated and the hwirq...
可以参考内核文档IRQ-domain.txt 为什么引入IRQ-Domain 当早期的系统只存在一个interrupt-controller的时候,而且中断数目也不多的时候,一个很简单的做法就是一个中断号对应到...interrupt-contoller的一个号,可以说是简单的线性映射 而当一个系统中有多个inter...