accel/ivpu: Do not initialize parameters on power up
authorStanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Fri, 20 Oct 2023 10:45:00 +0000 (12:45 +0200)
committerStanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Mon, 23 Oct 2023 07:01:21 +0000 (09:01 +0200)
Initialize HW specific parameters only once. We do not have to do this
on every power_up (performed during initialization and on resume). Move
corresponding code to ->info_init()

Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231020104501.697763-6-stanislaw.gruszka@linux.intel.com
drivers/accel/ivpu/ivpu_hw_37xx.c
drivers/accel/ivpu/ivpu_hw_40xx.c

index edd4d860f135e7a6b958ba5a5180214f698d1b11..63ce5418d3fa04478864082c876525fce231574f 100644 (file)
@@ -632,6 +632,10 @@ static int ivpu_hw_37xx_info_init(struct ivpu_device *vdev)
        ivpu_hw_init_range(&hw->ranges.shave, 0x180000000, SZ_2G);
        ivpu_hw_init_range(&hw->ranges.dma,   0x200000000, SZ_8G);
 
+       ivpu_hw_read_platform(vdev);
+       ivpu_hw_wa_init(vdev);
+       ivpu_hw_timeouts_init(vdev);
+
        return 0;
 }
 
@@ -688,10 +692,6 @@ static int ivpu_hw_37xx_power_up(struct ivpu_device *vdev)
 {
        int ret;
 
-       ivpu_hw_read_platform(vdev);
-       ivpu_hw_wa_init(vdev);
-       ivpu_hw_timeouts_init(vdev);
-
        ret = ivpu_hw_37xx_reset(vdev);
        if (ret)
                ivpu_warn(vdev, "Failed to reset HW: %d\n", ret);
index 1c25285496358ed33d0371ab46364aab6c980500..4bf4c87800446ba0c4aa7fd157f586cf67d9fa7b 100644 (file)
@@ -722,6 +722,10 @@ static int ivpu_hw_40xx_info_init(struct ivpu_device *vdev)
        ivpu_hw_init_range(&vdev->hw->ranges.shave,  0x80000000 + SZ_256M, SZ_2G - SZ_256M);
        ivpu_hw_init_range(&vdev->hw->ranges.dma,   0x200000000, SZ_8G);
 
+       ivpu_hw_read_platform(vdev);
+       ivpu_hw_wa_init(vdev);
+       ivpu_hw_timeouts_init(vdev);
+
        return 0;
 }
 
@@ -813,10 +817,6 @@ static int ivpu_hw_40xx_power_up(struct ivpu_device *vdev)
                return ret;
        }
 
-       ivpu_hw_read_platform(vdev);
-       ivpu_hw_wa_init(vdev);
-       ivpu_hw_timeouts_init(vdev);
-
        ret = ivpu_hw_40xx_d0i3_disable(vdev);
        if (ret)
                ivpu_warn(vdev, "Failed to disable D0I3: %d\n", ret);