From: Matt Roper Date: Thu, 1 Jun 2023 21:52:35 +0000 (-0700) Subject: drm/xe/irq: Move ASLE backlight interrupt logic X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=8e758225e52ec1acb5a0645b3750ea85cad82bbc;p=linux.git drm/xe/irq: Move ASLE backlight interrupt logic Our only use of GUnit interrupts is to handle ASLE backlight operations that are reported as GUnit GSE interrupts. Move the enable/disable of these interrupts to a more sensible place, in the same area where we expect display interrupt code to be added by future patches. Reviewed-by: Lucas De Marchi Link: https://lore.kernel.org/r/20230601215244.678611-23-matthew.d.roper@intel.com Signed-off-by: Matt Roper Signed-off-by: Rodrigo Vivi --- diff --git a/drivers/gpu/drm/xe/xe_irq.c b/drivers/gpu/drm/xe/xe_irq.c index 4d3ea3b66a7b6..601a54c60aef7 100644 --- a/drivers/gpu/drm/xe/xe_irq.c +++ b/drivers/gpu/drm/xe/xe_irq.c @@ -186,8 +186,6 @@ static void xelp_irq_postinstall(struct xe_device *xe, struct xe_tile *tile) gt_irq_postinstall(tile); - unmask_and_enable(tile, GU_MISC_IRQ_OFFSET, GU_MISC_GSE); - xelp_intr_enable(xe, true); } @@ -367,8 +365,6 @@ static void dg1_irq_postinstall(struct xe_device *xe, struct xe_tile *tile) { gt_irq_postinstall(tile); - unmask_and_enable(tile, GU_MISC_IRQ_OFFSET, GU_MISC_GSE); - if (tile->id == 0) dg1_intr_enable(xe, true); } @@ -478,7 +474,6 @@ static void xelp_irq_reset(struct xe_tile *tile) gt_irq_reset(tile); - mask_and_disable(tile, GU_MISC_IRQ_OFFSET); mask_and_disable(tile, PCU_IRQ_OFFSET); } @@ -489,7 +484,6 @@ static void dg1_irq_reset(struct xe_tile *tile) gt_irq_reset(tile); - mask_and_disable(tile, GU_MISC_IRQ_OFFSET); mask_and_disable(tile, PCU_IRQ_OFFSET); } @@ -504,6 +498,9 @@ static void xe_irq_reset(struct xe_device *xe) else xelp_irq_reset(tile); } + + tile = xe_device_get_root_tile(xe); + mask_and_disable(tile, GU_MISC_IRQ_OFFSET); } void xe_gt_irq_postinstall(struct xe_tile *tile) @@ -523,6 +520,13 @@ static void xe_irq_postinstall(struct xe_device *xe) for_each_tile(tile, xe, id) xe_gt_irq_postinstall(tile); + + /* + * ASLE backlight operations are reported via GUnit GSE interrupts + * on the root tile. + */ + unmask_and_enable(xe_device_get_root_tile(xe), + GU_MISC_IRQ_OFFSET, GU_MISC_GSE); } static irq_handler_t xe_irq_handler(struct xe_device *xe)