Hi Stephen, On Wed, Nov 22, 2023 at 1:29 AM Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > Today's linux-next merge of the drm tree got a conflict in: > > drivers/accel/ivpu/ivpu_hw_37xx.c > > between commit: > > 3f7c0634926d ("accel/ivpu/37xx: Fix hangs related to MMIO reset") > > from the drm-misc-fixes tree and commits: > > 3de6d9597892 ("accel/ivpu: Pass D0i3 residency time to the VPU firmware") > cc19fedab8bd ("accel/ivpu/37xx: Print warning when VPUIP is not idle during power down") > > from the drm tree. > > I fixed it up (see below) and can carry the fix as necessary. This > is now fixed as far as linux-next is concerned, but any non trivial > conflicts should be mentioned to your upstream maintainer when your tree > is submitted for merging. You may also want to consider cooperating > with the maintainer of the conflicting tree to minimise any particularly > complex conflicts. Thanks for your resolution! > --- a/drivers/accel/ivpu/ivpu_hw_37xx.c > +++ b/drivers/accel/ivpu/ivpu_hw_37xx.c > @@@ -720,14 -731,19 +733,14 @@@ static int ivpu_hw_37xx_power_down(stru > { > int ret = 0; > > - if (!ivpu_hw_37xx_is_idle(vdev)) > - ivpu_warn(vdev, "VPU not idle during power down\n"); > + ivpu_hw_37xx_save_d0i3_entry_timestamp(vdev); > > - if (ivpu_hw_37xx_reset(vdev)) { > - ivpu_err(vdev, "Failed to reset VPU\n"); > - ret = -EIO; > + if (!ivpu_hw_37xx_is_idle(vdev)) { > + ivpu_warn(vdev, "VPU not idle during power down\n"); > + if (ivpu_hw_37xx_reset(vdev)) > + ivpu_warn(vdev, "Failed to reset the VPU\n"); > } > > - if (ivpu_pll_disable(vdev)) { > - ivpu_err(vdev, "Failed to disable PLL\n"); > - ret = -EIO; > - } > - > if (ivpu_hw_37xx_d0i3_enable(vdev)) { > ivpu_err(vdev, "Failed to enter D0I3\n"); > ret = -EIO; I've just run into the same conflict, and I think you lost the split into two if-statements in the last hunk of commit 3f7c0634926d ("accel/ivpu/37xx: Fix hangs related to MMIO reset")? My resolution is: --- a/drivers/accel/ivpu/ivpu_hw_37xx.c +++ b/drivers/accel/ivpu/ivpu_hw_37xx.c @@@ -720,11 -731,16 +733,13 @@@ static int ivpu_hw_37xx_power_down(stru { int ret = 0; + ivpu_hw_37xx_save_d0i3_entry_timestamp(vdev); + - if (!ivpu_hw_37xx_is_idle(vdev)) { + if (!ivpu_hw_37xx_is_idle(vdev)) ivpu_warn(vdev, "VPU not idle during power down\n"); - if (ivpu_hw_37xx_reset(vdev)) - ivpu_warn(vdev, "Failed to reset the VPU\n"); - } - if (ivpu_pll_disable(vdev)) { - ivpu_err(vdev, "Failed to disable PLL\n"); + if (ivpu_hw_37xx_reset(vdev)) { + ivpu_err(vdev, "Failed to reset VPU\n"); ret = -EIO; } Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds