@@ -447,6 +447,17 @@ vlv_sprite_disable_arm(struct intel_dsb *dsb,
447447 intel_de_write_fw (display , SPSURF (pipe , plane_id ), 0 );
448448}
449449
450+ static void vlv_sprite_capture_error (struct intel_crtc * crtc ,
451+ struct intel_plane * plane ,
452+ struct intel_plane_error * error )
453+ {
454+ struct intel_display * display = to_intel_display (plane );
455+
456+ error -> ctl = intel_de_read (display , SPCNTR (crtc -> pipe , plane -> id ));
457+ error -> surf = intel_de_read (display , SPSURF (crtc -> pipe , plane -> id ));
458+ error -> surflive = intel_de_read (display , SPSURFLIVE (crtc -> pipe , plane -> id ));
459+ }
460+
450461static bool
451462vlv_sprite_get_hw_state (struct intel_plane * plane ,
452463 enum pipe * pipe )
@@ -872,6 +883,17 @@ ivb_sprite_disable_arm(struct intel_dsb *dsb,
872883 intel_de_write_fw (display , SPRSURF (pipe ), 0 );
873884}
874885
886+ static void ivb_sprite_capture_error (struct intel_crtc * crtc ,
887+ struct intel_plane * plane ,
888+ struct intel_plane_error * error )
889+ {
890+ struct intel_display * display = to_intel_display (plane );
891+
892+ error -> ctl = intel_de_read (display , SPRCTL (crtc -> pipe ));
893+ error -> surf = intel_de_read (display , SPRSURF (crtc -> pipe ));
894+ error -> surflive = intel_de_read (display , SPRSURFLIVE (crtc -> pipe ));
895+ }
896+
875897static bool
876898ivb_sprite_get_hw_state (struct intel_plane * plane ,
877899 enum pipe * pipe )
@@ -1207,6 +1229,17 @@ g4x_sprite_disable_arm(struct intel_dsb *dsb,
12071229 intel_de_write_fw (display , DVSSURF (pipe ), 0 );
12081230}
12091231
1232+ static void g4x_sprite_capture_error (struct intel_crtc * crtc ,
1233+ struct intel_plane * plane ,
1234+ struct intel_plane_error * error )
1235+ {
1236+ struct intel_display * display = to_intel_display (plane );
1237+
1238+ error -> ctl = intel_de_read (display , DVSCNTR (crtc -> pipe ));
1239+ error -> surf = intel_de_read (display , DVSSURF (crtc -> pipe ));
1240+ error -> surflive = intel_de_read (display , DVSSURFLIVE (crtc -> pipe ));
1241+ }
1242+
12101243static bool
12111244g4x_sprite_get_hw_state (struct intel_plane * plane ,
12121245 enum pipe * pipe )
@@ -1587,6 +1620,7 @@ intel_sprite_plane_create(struct intel_display *display,
15871620 plane -> update_noarm = vlv_sprite_update_noarm ;
15881621 plane -> update_arm = vlv_sprite_update_arm ;
15891622 plane -> disable_arm = vlv_sprite_disable_arm ;
1623+ plane -> capture_error = vlv_sprite_capture_error ;
15901624 plane -> get_hw_state = vlv_sprite_get_hw_state ;
15911625 plane -> check_plane = vlv_sprite_check ;
15921626 plane -> max_stride = i965_plane_max_stride ;
@@ -1610,6 +1644,7 @@ intel_sprite_plane_create(struct intel_display *display,
16101644 plane -> update_noarm = ivb_sprite_update_noarm ;
16111645 plane -> update_arm = ivb_sprite_update_arm ;
16121646 plane -> disable_arm = ivb_sprite_disable_arm ;
1647+ plane -> capture_error = ivb_sprite_capture_error ;
16131648 plane -> get_hw_state = ivb_sprite_get_hw_state ;
16141649 plane -> check_plane = g4x_sprite_check ;
16151650
@@ -1634,6 +1669,7 @@ intel_sprite_plane_create(struct intel_display *display,
16341669 plane -> update_noarm = g4x_sprite_update_noarm ;
16351670 plane -> update_arm = g4x_sprite_update_arm ;
16361671 plane -> disable_arm = g4x_sprite_disable_arm ;
1672+ plane -> capture_error = g4x_sprite_capture_error ;
16371673 plane -> get_hw_state = g4x_sprite_get_hw_state ;
16381674 plane -> check_plane = g4x_sprite_check ;
16391675 plane -> max_stride = g4x_sprite_max_stride ;
0 commit comments