From 01c2413a5bc2c66ab54b4aebd3078823a148e69e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Micha=C5=82=20Winiarski?= Date: Wed, 29 Nov 2023 22:45:00 +0100 Subject: [PATCH] drm/xe: Move xe_set_dma_info outside of MMIO setup MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit MMIO is going to be setup earlier during probe. Move xe_set_dma_info outside of MMIO setup. Signed-off-by: Michał Winiarski Reviewed-by: Matthew Brost Link: https://lore.kernel.org/r/20231129214509.1174116-5-michal.winiarski@intel.com Signed-off-by: Rodrigo Vivi --- drivers/gpu/drm/xe/xe_device.c | 26 ++++++++++++++++++++++++++ drivers/gpu/drm/xe/xe_mmio.c | 26 -------------------------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c index 296260f142dcb..dcb0871083931 100644 --- a/drivers/gpu/drm/xe/xe_device.c +++ b/drivers/gpu/drm/xe/xe_device.c @@ -353,6 +353,28 @@ static void xe_device_sanitize(struct drm_device *drm, void *arg) xe_gt_sanitize(gt); } +static int xe_set_dma_info(struct xe_device *xe) +{ + unsigned int mask_size = xe->info.dma_mask_size; + int err; + + dma_set_max_seg_size(xe->drm.dev, xe_sg_segment_size(xe->drm.dev)); + + err = dma_set_mask(xe->drm.dev, DMA_BIT_MASK(mask_size)); + if (err) + goto mask_err; + + err = dma_set_coherent_mask(xe->drm.dev, DMA_BIT_MASK(mask_size)); + if (err) + goto mask_err; + + return 0; + +mask_err: + drm_err(&xe->drm, "Can't set DMA mask/consistent mask (%d)\n", err); + return err; +} + int xe_device_probe(struct xe_device *xe) { struct xe_tile *tile; @@ -367,6 +389,10 @@ int xe_device_probe(struct xe_device *xe) if (err) return err; + err = xe_set_dma_info(xe); + if (err) + return err; + for_each_tile(tile, xe, id) { err = xe_tile_alloc(tile); if (err) diff --git a/drivers/gpu/drm/xe/xe_mmio.c b/drivers/gpu/drm/xe/xe_mmio.c index 883610fc0abf2..43f322cd30a1d 100644 --- a/drivers/gpu/drm/xe/xe_mmio.c +++ b/drivers/gpu/drm/xe/xe_mmio.c @@ -25,28 +25,6 @@ #define BAR_SIZE_SHIFT 20 -static int xe_set_dma_info(struct xe_device *xe) -{ - unsigned int mask_size = xe->info.dma_mask_size; - int err; - - dma_set_max_seg_size(xe->drm.dev, xe_sg_segment_size(xe->drm.dev)); - - err = dma_set_mask(xe->drm.dev, DMA_BIT_MASK(mask_size)); - if (err) - goto mask_err; - - err = dma_set_coherent_mask(xe->drm.dev, DMA_BIT_MASK(mask_size)); - if (err) - goto mask_err; - - return 0; - -mask_err: - drm_err(&xe->drm, "Can't set DMA mask/consistent mask (%d)\n", err); - return err; -} - static void _resize_bar(struct xe_device *xe, int resno, resource_size_t size) { @@ -431,10 +409,6 @@ int xe_mmio_init(struct xe_device *xe) if (err) return err; - err = xe_set_dma_info(xe); - if (err) - return err; - xe_mmio_probe_tiles(xe); return 0; -- 2.30.2