Hi Igor,
How to "use" the interrupt? We connect the INTB to GPIO0 in iMX6. In the linux driver, we request IRQ and can receive the interrupt from the GPIO0. However, because no interrupts are unmasked, the interrupt from IRQ is not processed - this cause the IRQ to be disabled and a bunch of error message like below are generated:
[ 6.394804] irq 160: nobody cared (try booting with the "irqpoll" option)
[ 6.401622] CPU: 0 PID: 254 Comm: systemd-udevd Tainted: P O 3.14.70-fslc+g33f49da #1
[ 6.410367] [<80015f58>] (unwind_backtrace) from [<800124d4>] (show_stack+0x10/0x14)
[ 6.418134] [<800124d4>] (show_stack) from [<80753174>] (dump_stack+0x84/0x98)
[ 6.425383] [<80753174>] (dump_stack) from [<8006e360>] (__report_bad_irq+0x28/0xc4)
[ 6.433144] [<8006e360>] (__report_bad_irq) from [<8006e760>] (note_interrupt+0x298/0x2e8)
[ 6.441422] [<8006e760>] (note_interrupt) from [<8006c3bc>] (handle_irq_event_percpu+0x118/0x180)
[ 6.450312] [<8006c3bc>] (handle_irq_event_percpu) from [<8006c460>] (handle_irq_event+0x3c/0x5c)
[ 6.459198] [<8006c460>] (handle_irq_event) from [<8006eed4>] (handle_level_irq+0x98/0x104)
[ 6.467564] [<8006eed4>] (handle_level_irq) from [<8006ba80>] (generic_handle_irq+0x2c/0x3c)
[ 6.476022] [<8006ba80>] (generic_handle_irq) from [<802c82d0>] (mxc_gpio_irq_handler+0x3c/0x164)
[ 6.484911] [<802c82d0>] (mxc_gpio_irq_handler) from [<802c8478>] (mx3_gpio_irq_handler+0x80/0xcc)
[ 6.493885] [<802c8478>] (mx3_gpio_irq_handler) from [<8006ba80>] (generic_handle_irq+0x2c/0x3c)
[ 6.502685] [<8006ba80>] (generic_handle_irq) from [<8000fa8c>] (handle_IRQ+0x40/0x90)
[ 6.510617] [<8000fa8c>] (handle_IRQ) from [<800085ac>] (gic_handle_irq+0x2c/0x5c)
[ 6.518200] [<800085ac>] (gic_handle_irq) from [<80013040>] (__irq_svc+0x40/0x70)
[ 6.525691] Exception stack(0x9c5f3db8 to 0x9c5f3e00)
[ 6.530752] 3da0: 9a1ad4c8 80764740
[ 6.538940] 3dc0: 00000000 00000000 9a1ad4c8 80764740 9c5f3f74 00020000 9c663bb8 9c5f3eb0
[ 6.547130] 3de0: 9a1ad4c8 9a263cc0 00000000 9c5f3e00 800ff8c8 800ef8b8 60010013 ffffffff
[ 6.555327] [<80013040>] (__irq_svc) from [<800ef8b8>] (d_set_d_op+0x74/0x114)
[ 6.562568] [<800ef8b8>] (d_set_d_op) from [<800ff8c8>] (simple_lookup+0x54/0x5c)
[ 6.570072] [<800ff8c8>] (simple_lookup) from [<800e4e6c>] (lookup_real+0x20/0x4c)
[ 6.577662] [<800e4e6c>] (lookup_real) from [<800e92ac>] (do_last+0x87c/0xc78)
[ 6.584900] [<800e92ac>] (do_last) from [<800e9760>] (path_openat+0xb8/0x67c)
[ 6.592052] [<800e9760>] (path_openat) from [<800eabec>] (do_filp_open+0x2c/0x88)
[ 6.599556] [<800eabec>] (do_filp_open) from [<800dc240>] (do_sys_open+0x104/0x1c8)
[ 6.607230] [<800dc240>] (do_sys_open) from [<8000f1a0>] (ret_fast_syscall+0x0/0x38)
[ 6.614981] handlers:
[ 6.617267] [<8006c480>] irq_default_primary_handler threaded [<80311b50>] pfuze_irq_thread
[ 6.625670] Disabling IRQ #160
Any ideas?
Thanks,
Yan
Hi Yan
one can look on
Best regards
igor
Hi Igor,
Thanks for the link. I know the message is because that the IRQ is not processed by my handler(Because I did not unmask any interrupt thus no interrupt should be processed). The issue is why the interrupt comes any way(the INTB is low). I will talk with some HW guy to double check HW is correct.
Thanks,
Yan
Hi Yan
could you try to reproduce issue on i.MX6DL Sabre SD board with
Demo Images from link i.MX Software | NXP
Best regards
igor
Hi Yan
seems pmic interrupts are not used, in general one can try to debug it using
sect.2.5.2 PMIC PF Regulator attached Linux Manual.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------