@@ -1908,16 +1908,13 @@ static u32 vlv_error_mask(void)
1908
1908
return VLV_ERROR_PAGE_TABLE ;
1909
1909
}
1910
1910
1911
- void vlv_display_irq_postinstall (struct intel_display * display )
1911
+ static void _vlv_display_irq_postinstall (struct intel_display * display )
1912
1912
{
1913
1913
struct drm_i915_private * dev_priv = to_i915 (display -> drm );
1914
1914
u32 pipestat_mask ;
1915
1915
u32 enable_mask ;
1916
1916
enum pipe pipe ;
1917
1917
1918
- if (!display -> irq .vlv_display_irqs_enabled )
1919
- return ;
1920
-
1921
1918
if (display -> platform .cherryview )
1922
1919
intel_de_write (display , DPINVGTT ,
1923
1920
DPINVGTT_STATUS_MASK_CHV |
@@ -1954,6 +1951,16 @@ void vlv_display_irq_postinstall(struct intel_display *display)
1954
1951
intel_display_irq_regs_init (display , VLV_IRQ_REGS , dev_priv -> irq_mask , enable_mask );
1955
1952
}
1956
1953
1954
+ void vlv_display_irq_postinstall (struct intel_display * display )
1955
+ {
1956
+ struct drm_i915_private * dev_priv = to_i915 (display -> drm );
1957
+
1958
+ spin_lock_irq (& dev_priv -> irq_lock );
1959
+ if (display -> irq .vlv_display_irqs_enabled )
1960
+ _vlv_display_irq_postinstall (display );
1961
+ spin_unlock_irq (& dev_priv -> irq_lock );
1962
+ }
1963
+
1957
1964
void ibx_display_irq_reset (struct intel_display * display )
1958
1965
{
1959
1966
struct drm_i915_private * i915 = to_i915 (display -> drm );
@@ -2126,7 +2133,7 @@ void valleyview_enable_display_irqs(struct intel_display *display)
2126
2133
2127
2134
if (intel_irqs_enabled (dev_priv )) {
2128
2135
_vlv_display_irq_reset (display );
2129
- vlv_display_irq_postinstall (display );
2136
+ _vlv_display_irq_postinstall (display );
2130
2137
}
2131
2138
2132
2139
out :
0 commit comments