2023-11-22 00:29:53

by Stephen Rothwell

[permalink] [raw]
Subject: linux-next: manual merge of the drm tree with the drm-misc-fixes tree

Hi all,

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.

--
Cheers,
Stephen Rothwell

diff --cc drivers/accel/ivpu/ivpu_hw_37xx.c
index 4ccf1994b97a,4ab1f14cf360..000000000000
--- 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;


Attachments:
(No filename) (499.00 B)
OpenPGP digital signature

2023-11-28 10:05:00

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: linux-next: manual merge of the drm tree with the drm-misc-fixes tree

Hi Stephen,

On Wed, Nov 22, 2023 at 1:29 AM Stephen Rothwell <[email protected]> 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 -- [email protected]

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