interrupt handler not getting called after resume
Hi All, I have one general query. If an interrupt handler is NOT getting called (for one device) after the system resume (from snapshot image), then what could be the issue? Note: * The suspend worked perfectly fine. * The runtime suspend/resume of the system is also working fine. If anybody have experienced this situation and fixed it, please let us know. It will be a great input for further debugging. Regards, Pintu
On Tue, Dec 3, 2019 at 6:12 AM Pintu Agarwal <pintu.ping@gmail.com> wrote:
Hi All,
I have one general query.
If an interrupt handler is NOT getting called (for one device) after the system resume (from snapshot image), then what could be the issue?
Most likely during resume the interrupt was not enabled. So check irq status registers to see in the working and non working case.
Note: * The suspend worked perfectly fine. * The runtime suspend/resume of the system is also working fine.
If anybody have experienced this situation and fixed it, please let us know. It will be a great input for further debugging.
Need more context.
Regards, Pintu
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
On Wed, 4 Dec 2019 at 00:28, anish singh <anish198519851985@gmail.com> wrote:
On Tue, Dec 3, 2019 at 6:12 AM Pintu Agarwal <pintu.ping@gmail.com> wrote:
Hi All,
I have one general query.
If an interrupt handler is NOT getting called (for one device) after the system resume (from snapshot image), then what could be the issue?
Most likely during resume the interrupt was not enabled. So check irq status registers to see in the working and non working case.
Oh sorry, I forgot to mention one thing. After resume, I can see that the interrupts are visible under /proc/interrupts. # cat /proc/interrupts CPU0 CPU1 [...] 416: 1 0 IPU (null) 417: 0 0 IPU (null) 418: 0 0 IPU imx_drm ===> HDMI 419: 2242 2 IPU imx_drm ===> LCD [...] The interrupts are coming only for LCD display and thus its irq handler is getting called. But the interrupts are not coming for HDMI case, thus HDMI gives "vblank timeout issue". Apart from this I also tried calling enable_irq(irq) after resume, but it did not help much.
On Wed, Dec 4, 2019 at 1:49 AM Pintu Agarwal <pintu.ping@gmail.com> wrote:
On Wed, 4 Dec 2019 at 00:28, anish singh <anish198519851985@gmail.com> wrote:
On Tue, Dec 3, 2019 at 6:12 AM Pintu Agarwal <pintu.ping@gmail.com> wrote:
Hi All,
I have one general query.
If an interrupt handler is NOT getting called (for one device) after the system resume (from snapshot image), then what could be the issue?
Most likely during resume the interrupt was not enabled. So check irq status registers to see in the working and non working case.
Oh sorry, I forgot to mention one thing. After resume, I can see that the interrupts are visible under /proc/interrupts. # cat /proc/interrupts CPU0 CPU1 [...] 416: 1 0 IPU (null) 417: 0 0 IPU (null) 418: 0 0 IPU imx_drm ===> HDMI 419: 2242 2 IPU imx_drm ===> LCD [...]
The interrupts are coming only for LCD display and thus its irq handler is getting called. But the interrupts are not coming for HDMI case, thus HDMI gives "vblank timeout issue".
Is it something to do with MHL cable? Have you used scope to find out if the interrupt was actually triggered?
Apart from this I also tried calling enable_irq(irq) after resume, but it did not help much.
Dear Anish, On Thu, 5 Dec 2019 at 00:55, anish singh <anish198519851985@gmail.com> wrote:
On Wed, Dec 4, 2019 at 1:49 AM Pintu Agarwal <pintu.ping@gmail.com> wrote:
On Wed, 4 Dec 2019 at 00:28, anish singh <anish198519851985@gmail.com> wrote:
On Tue, Dec 3, 2019 at 6:12 AM Pintu Agarwal <pintu.ping@gmail.com> wrote:
Hi All,
I have one general query.
If an interrupt handler is NOT getting called (for one device) after the system resume (from snapshot image), then what could be the issue?
Most likely during resume the interrupt was not enabled. So check irq status registers to see in the working and non working case.
Oh sorry, I forgot to mention one thing. After resume, I can see that the interrupts are visible under /proc/interrupts. # cat /proc/interrupts CPU0 CPU1 [...] 416: 1 0 IPU (null) 417: 0 0 IPU (null) 418: 0 0 IPU imx_drm ===> HDMI 419: 2242 2 IPU imx_drm ===> LCD [...]
The interrupts are coming only for LCD display and thus its irq handler is getting called. But the interrupts are not coming for HDMI case, thus HDMI gives "vblank timeout issue".
Just wanted to update you that I have resolved the "vblank timeout issue" for HDMI (by restoring clock data during resume path). Now the ipu-v3 interrupts are coming even for HDMI crtc. But HDMI display is still not working. May be this is another issue. Anyways, thank you so much for your support :) Regards, Pintu
participants (2)
-
anish singh -
Pintu Agarwal