--- a/sys/dev/drm/amd/display/dc/irq/dce80/irq_service_dce80.c +++ b/sys/dev/drm/amd/display/dc/irq/dce80/irq_service_dce80.c @@ -271,6 +271,18 @@ vblank_int_entry(3), vblank_int_entry(4), vblank_int_entry(5), + /* DF-5054 (DF-2168/DF-4932/DF-4995 family): the shared enum runs to + * DAL_IRQ_SOURCES_NUMBER=90 but the designators above stop at + * DC_IRQ_SOURCE_VBLANK6=83; DC_IRQ_SOURCE_DC{1..6}_VLINE0 (84..89) + * stayed zero-initialized (.funcs == NULL) and dal_irq_service_set/ + * ack dereference info->funcs unguarded (irq_service.c:118/:152). + * Make the table total over the shared enum. */ + [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(), }; static const struct irq_service_funcs irq_service_funcs_dce80 = {