https://bugzilla.kernel.org/show_bug.cgi?id=215436
--- Comment #8 from spasswolf@web.de --- Just did a bit of experimentation and changed dc_get_hpd_state_dcn21 (in 5.16-rc7) to
uint32_t dc_get_hpd_state_dcn21(struct irq_service *irq_service, enum dc_irq_source source) { const struct irq_source_info *info; uint32_t addr; uint32_t value; uint32_t current_status;
info = find_irq_source_info(irq_service, source); if (!info) return 0;
addr = info->status_reg; if (!addr) return 0;
value = dm_read_reg(irq_service->ctx, addr); //current_status = // get_reg_field_value( // value, // HPD0_DC_HPD_INT_STATUS, // DC_HPD_SENSE);
//return current_status; return 0; } This also leads to working suspend resume, the get_reg_field_value seems to trigger the problems.