]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/stm: ltdc: remove reload interrupt
authorYannick Fertre <yannick.fertre@foss.st.com>
Fri, 12 Jul 2024 13:14:53 +0000 (15:14 +0200)
committerRaphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
Fri, 19 Jul 2024 09:34:50 +0000 (11:34 +0200)
The reload interrupt is not used by the driver. To avoid
unnecessary calls of the interrupt routine, don't enable it.
Solve small typo and add mask to simplify the driver.

Signed-off-by: Yannick Fertre <yannick.fertre@foss.st.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240712131453.98597-1-yannick.fertre@foss.st.com
Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
drivers/gpu/drm/stm/ltdc.c

index 425b7f56e0bea2066540a7fc23d331decf783736..54a73753eff98902012c6012914fa8c6482affbd 100644 (file)
 #define IER_RRIE       BIT(3)          /* Register Reload Interrupt Enable */
 #define IER_FUEIE      BIT(6)          /* Fifo Underrun Error Interrupt Enable */
 #define IER_CRCIE      BIT(7)          /* CRC Error Interrupt Enable */
+#define IER_MASK (IER_LIE | IER_FUWIE | IER_TERRIE | IER_RRIE | IER_FUEIE | IER_CRCIE)
 
 #define CPSR_CYPOS     GENMASK(15, 0)  /* Current Y position */
 
@@ -781,7 +782,7 @@ static void ltdc_crtc_atomic_enable(struct drm_crtc *crtc,
        regmap_write(ldev->regmap, LTDC_BCCR, BCCR_BCBLACK);
 
        /* Enable IRQ */
-       regmap_set_bits(ldev->regmap, LTDC_IER, IER_FUWIE | IER_FUEIE | IER_RRIE | IER_TERRIE);
+       regmap_set_bits(ldev->regmap, LTDC_IER, IER_FUWIE | IER_FUEIE | IER_TERRIE);
 
        /* Commit shadow registers = update planes at next vblank */
        if (!ldev->caps.plane_reg_shadow)
@@ -805,8 +806,8 @@ static void ltdc_crtc_atomic_disable(struct drm_crtc *crtc,
        for (layer_index = 0; layer_index < ldev->caps.nb_layers; layer_index++)
                regmap_write_bits(ldev->regmap, LTDC_L1CR + layer_index * LAY_OFS, LXCR_MASK, 0);
 
-       /* disable IRQ */
-       regmap_clear_bits(ldev->regmap, LTDC_IER, IER_FUWIE | IER_FUEIE | IER_RRIE | IER_TERRIE);
+       /* Disable IRQ */
+       regmap_clear_bits(ldev->regmap, LTDC_IER, IER_FUWIE | IER_FUEIE | IER_TERRIE);
 
        /* immediately commit disable of layers before switching off LTDC */
        if (!ldev->caps.plane_reg_shadow)
@@ -1987,13 +1988,8 @@ int ltdc_load(struct drm_device *ddev)
                goto err;
        }
 
-       /* Disable interrupts */
-       if (ldev->caps.fifo_threshold)
-               regmap_clear_bits(ldev->regmap, LTDC_IER, IER_LIE | IER_RRIE | IER_FUWIE |
-                                 IER_TERRIE);
-       else
-               regmap_clear_bits(ldev->regmap, LTDC_IER, IER_LIE | IER_RRIE | IER_FUWIE |
-                                 IER_TERRIE | IER_FUEIE);
+       /* Disable all interrupts */
+       regmap_clear_bits(ldev->regmap, LTDC_IER, IER_MASK);
 
        DRM_DEBUG_DRIVER("ltdc hw version 0x%08x\n", ldev->caps.hw_version);