• Jae Hyun Yoo's avatar
    media: aspeed: clear garbage interrupts · 65d270ac
    Jae Hyun Yoo authored
    CAPTURE_COMPLETE and FRAME_COMPLETE interrupts come even when these
    are disabled in the VE_INTERRUPT_CTRL register and eventually this
    behavior causes disabling irq itself like below:
    
    [10055.108784] irq 23: nobody cared (try booting with the "irqpoll" option)
    [10055.115525] CPU: 0 PID: 331 Comm: swampd Tainted: G        W         5.3.0-4fde000-dirty-d683e2e #1
    [10055.124565] Hardware name: Generic DT based system
    [10055.129355] Backtrace:
    [10055.131854] [<80107d7c>] (dump_backtrace) from [<80107fb0>] (show_stack+0x20/0x24)
    [10055.139431]  r7:00000017 r6:00000001 r5:00000000 r4:9d51dc00
    [10055.145120] [<80107f90>] (show_stack) from [<8074bf50>] (dump_stack+0x20/0x28)
    [10055.152361] [<8074bf30>] (dump_stack) from [<80150ffc>] (__report_bad_irq+0x40/0xc0)
    [10055.160109] [<80150fbc>] (__report_bad_irq) from [<80150f2c>] (note_interrupt+0x23c/0x294)
    [10055.168374]  r9:015b6e60 r8:00000000 r7:00000017 r6:00000001 r5:00000000 r4:9d51dc00
    [10055.176136] [<80150cf0>] (note_interrupt) from [<8014df1c>] (handle_irq_event_percpu+0x88/0x98)
    [10055.184835]  r10:7eff7910 r9:015b6e60 r8:00000000 r7:9d417600 r6:00000001 r5:00000002
    [10055.192657]  r4:9d51dc00 r3:00000000
    [10055.196248] [<8014de94>] (handle_irq_event_percpu) from [<8014df64>] (handle_irq_event+0x38/0x4c)
    [10055.205113]  r5:80b56d50 r4:9d51dc00
    [10055.208697] [<8014df2c>] (handle_irq_event) from [<80151f1c>] (handle_level_irq+0xbc/0x12c)
    [10055.217037]  r5:80b56d50 r4:9d51dc00
    [10055.220623] [<80151e60>] (handle_level_irq) from [<8014d4b8>] (generic_handle_irq+0x30/0x44)
    [10055.229052]  r5:80b56d50 r4:00000017
    [10055.232648] [<8014d488>] (generic_handle_irq) from [<8014d524>] (__handle_domain_irq+0x58/0xb4)
    [10055.241356] [<8014d4cc>] (__handle_domain_irq) from [<801021e4>] (avic_handle_irq+0x68/0x70)
    [10055.249797]  r9:015b6e60 r8:00c5387d r7:00c5387d r6:ffffffff r5:9dd33fb0 r4:9d402380
    [10055.257539] [<8010217c>] (avic_handle_irq) from [<80101e34>] (__irq_usr+0x54/0x80)
    [10055.265105] Exception stack(0x9dd33fb0 to 0x9dd33ff8)
    [10055.270152] 3fa0:                                     015d0530 00000000 00000000 015d0538
    [10055.278328] 3fc0: 015d0530 015b6e60 00000000 00000000 0052c5d0 015b6e60 7eff7910 7eff7918
    [10055.286496] 3fe0: 76ce5614 7eff7908 0050e2f4 76a3a08c 20000010 ffffffff
    [10055.293104]  r5:20000010 r4:76a3a08c
    [10055.296673] handlers:
    [10055.298967] [<79f218a5>] irq_default_primary_handler threaded [<1de88514>] aspeed_video_irq
    [10055.307344] Disabling IRQ #23
    
    To fix this issue, this commit makes the interrupt handler clear
    these garbage interrupts. This driver enables and uses only
    COMP_COMPLETE interrupt instead for frame handling.
    Signed-off-by: default avatarJae Hyun Yoo <jae.hyun.yoo@intel.com>
    Reviewed-by: default avatarEddie James <eajames@linux.ibm.com>
    Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
    65d270ac
aspeed-video.c 50.3 KB