accel/ivpu: Make DMA bit mask HW specific
authorKarol Wachowski <karol.wachowski@linux.intel.com>
Thu, 18 May 2023 13:16:03 +0000 (15:16 +0200)
committerStanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Thu, 8 Jun 2023 05:53:40 +0000 (07:53 +0200)
Future devices will have different dma bit mask, make it hw specific.

Signed-off-by: Karol Wachowski <karol.wachowski@linux.intel.com>
Reviewed-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
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/20230518131605.650622-4-stanislaw.gruszka@linux.intel.com
drivers/accel/ivpu/ivpu_drv.c
drivers/accel/ivpu/ivpu_hw.h

index 8396db2..21a5a0d 100644 (file)
@@ -427,7 +427,7 @@ static int ivpu_pci_init(struct ivpu_device *vdev)
                return PTR_ERR(vdev->regb);
        }
 
-       ret = dma_set_mask_and_coherent(vdev->drm.dev, DMA_BIT_MASK(38));
+       ret = dma_set_mask_and_coherent(vdev->drm.dev, DMA_BIT_MASK(vdev->hw->dma_bits));
        if (ret) {
                ivpu_err(vdev, "Failed to set DMA mask: %d\n", ret);
                return ret;
@@ -477,6 +477,8 @@ static int ivpu_dev_init(struct ivpu_device *vdev)
                return -ENOMEM;
 
        vdev->hw->ops = &ivpu_hw_mtl_ops;
+       vdev->hw->dma_bits = 38;
+
        vdev->platform = IVPU_PLATFORM_INVALID;
        vdev->context_xa_limit.min = IVPU_USER_CONTEXT_MIN_SSID;
        vdev->context_xa_limit.max = IVPU_USER_CONTEXT_MAX_SSID;
index 50a9304..0393901 100644 (file)
@@ -57,6 +57,7 @@ struct ivpu_hw_info {
        u32 tile_fuse;
        u32 sku;
        u16 config;
+       int dma_bits;
 };
 
 extern const struct ivpu_hw_ops ivpu_hw_mtl_ops;