(struct tdm_clock *)(TDM_CLKREG_OFFSET + (u8 *)priv->tdm_regs);/* irqs mapping for tdm err/dmac err, dmac done */priv->tdm_err_intr =irq_of_parse_and_map(ofdev->node,0);if(priv->tdm_err_intr == NO_IRQ) { ret = -EINVAL;gotoerr_tdmerr_irqmap; } priv->dmac_done_intr...
通过报错提示关键字在内核源码搜索到irq_of_parse_and_map函数报出的问题。 步骤3: 通过打印内核信息来查看原因 image.png image.png 步骤4: 进行分析:原因是irq在加载一次后变成了both边沿触发。而我设备树中添加的type=1是上升沿触发。 为什么会变成both呢? 步骤5: 修改驱动bug,request_irq的第三个参数,我传...
The irq_of_parse_and_map() returns 0 on failure, not a negative ERRNO. Fixes: f48e699 ("irqchip/aspeed-i2c-ic: Add I2C IRQ controller for Aspeed") Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore....
sirq =irq_of_parse_and_map(np,0);if(sirq == NO_IRQ)gotoend;/* Initialize the CPM interrupt controller. */hwirq = (unsignedint)virq_to_hw(sirq); out_be32(&cpic_reg->cpic_cicr, (CICR_SCD_SCC4 | CICR_SCC_SCC3 | CICR_SCB_SCC2 | CICR_SCA_SCC1) | ((hwirq/2) <<13) |...