accel/ivpu/37xx: Fix hangs related to MMIO reset
authorJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Wed, 15 Nov 2023 11:10:04 +0000 (12:10 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 3 Dec 2023 06:33:04 +0000 (07:33 +0100)
commit790c480d35dc98b9a877240654d43379fbf5c30d
treebe2ef55b31408de04927f341a9d3f58ece5ed1fd
parente9fd34ab6ea2c2ab5b6eb326e507ff34dcf33d60
accel/ivpu/37xx: Fix hangs related to MMIO reset

[ Upstream commit 3f7c0634926daf48cd2f6db6c1197a1047074088 ]

There is no need to call MMIO reset using VPU_37XX_BUTTRESS_VPU_IP_RESET
register. IP will be reset by FLR or by entering d0i3. Also IP reset
during power_up is not needed as the VPU is already in reset.

Removing MMIO reset improves stability as it a partial device reset
that is not safe in some corner cases.

This change also brings back ivpu_boot_pwr_domain_disable() that
helps to properly power down VPU when it is hung by a buggy workload.

Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Fixes: 828d63042aec ("accel/ivpu: Don't enter d0i3 during FLR")
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231115111004.1304092-1-jacek.lawrynowicz@linux.intel.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/accel/ivpu/ivpu_hw_37xx.c