LINUX.ORG.RU

Получение irq_fwspec

 , ,


0

1

Имеется драйвер, в инициализацию которого передается struct net_device. В драйвере необходимо активировать прерывание (через request_irq). Для этого необходимо получить irq_fwspec, зная hwirq (Harware IRQ).

Знаю, что это можно сделать, вызвав irq_find_mapping, но функция требует передачи struct irq_domain*, которой в драйвере нет. Для ее создания требуется в свою очередь struct device_node.

В общем необходимо получить irq_fwspec, имея struct net_device.

Как можно такое осуществить?

Ядро 4.14.* В него интегрирую драйвер, который не использует Device Tree, через который обычно задается irq_fwspec через hwirq.

Решено:

struct device_node * np = of_find_node_by_name(NULL,«название в device tree»); int irq = irq_of_parse_and_map(np,0);

в «название в device tree» задается hwirq в interrupts = <GIC_SHARED 3 IRQ_TYPE_LEVEL_HIGH>;

k000858 ()