DF-4932 / fix.diff
--- a/sys/dev/drm/amd/display/dc/irq/dce110/irq_service_dce110.c +++ b/sys/dev/drm/amd/display/dc/irq/dce110/irq_service_dce110.c @@ -309,6 +309,12 @@ vblank_int_entry(3), vblank_int_entry(4), vblank_int_entry(5), + [DC_IRQ_SOURCE_DC1_VLINE0] = dummy_irq_entry(), + [DC_IRQ_SOURCE_DC2_VLINE0] = dummy_irq_entry(), + [DC_IRQ_SOURCE_DC3_VLINE0] = dummy_irq_entry(), + [DC_IRQ_SOURCE_DC4_VLINE0] = dummy_irq_entry(), + [DC_IRQ_SOURCE_DC5_VLINE0] = dummy_irq_entry(), + [DC_IRQ_SOURCE_DC6_VLINE0] = dummy_irq_entry(), }; --- a/sys/dev/drm/amd/display/dc/irq/irq_service.c +++ b/sys/dev/drm/amd/display/dc/irq/irq_service.c @@ -115,6 +115,13 @@ dal_irq_service_ack(irq_service, source); + if (!info->funcs) { + DC_LOG_ERROR("%s: irq source %d has no funcs\n", + __func__, + source); + return false; + } + if (info->funcs->set) return info->funcs->set(irq_service, info, enable); @@ -147,6 +154,13 @@ __func__, source); return false; + } + + if (!info->funcs) { + DC_LOG_ERROR("%s: irq source %d has no funcs\n", + __func__, + source); + return false; } if (info->funcs->ack) |