@@ -162,7 +162,6 @@ struct zynqmp_disp_layer {
162
162
* @dev: Device structure
163
163
* @drm: DRM core
164
164
* @dpsub: Display subsystem
165
- * @crtc: DRM CRTC
166
165
* @blend.base: Register I/O base address for the blender
167
166
* @avbuf.base: Register I/O base address for the audio/video buffer manager
168
167
* @audio.base: Registers I/O base address for the audio mixer
@@ -173,8 +172,6 @@ struct zynqmp_disp {
173
172
struct drm_device * drm ;
174
173
struct zynqmp_dpsub * dpsub ;
175
174
176
- struct drm_crtc crtc ;
177
-
178
175
struct {
179
176
void __iomem * base ;
180
177
} blend ;
@@ -901,7 +898,7 @@ static void zynqmp_disp_audio_disable(struct zynqmp_disp *disp)
901
898
*/
902
899
void zynqmp_disp_handle_vblank (struct zynqmp_disp * disp )
903
900
{
904
- struct drm_crtc * crtc = & disp -> crtc ;
901
+ struct drm_crtc * crtc = & disp -> dpsub -> crtc ;
905
902
906
903
drm_crtc_handle_vblank (crtc );
907
904
}
@@ -914,7 +911,7 @@ void zynqmp_disp_handle_vblank(struct zynqmp_disp *disp)
914
911
*/
915
912
uint32_t zynqmp_disp_get_crtc_mask (struct zynqmp_disp * disp )
916
913
{
917
- return drm_crtc_mask (& disp -> crtc );
914
+ return drm_crtc_mask (& disp -> dpsub -> crtc );
918
915
}
919
916
920
917
/* -----------------------------------------------------------------------------
@@ -1409,7 +1406,7 @@ static int zynqmp_disp_setup_clock(struct zynqmp_disp *disp,
1409
1406
1410
1407
static inline struct zynqmp_disp * crtc_to_disp (struct drm_crtc * crtc )
1411
1408
{
1412
- return container_of (crtc , struct zynqmp_disp , crtc );
1409
+ return container_of (crtc , struct zynqmp_dpsub , crtc )-> disp ;
1413
1410
}
1414
1411
1415
1412
static void
@@ -1457,7 +1454,7 @@ zynqmp_disp_crtc_atomic_disable(struct drm_crtc *crtc,
1457
1454
1458
1455
zynqmp_disp_disable (disp );
1459
1456
1460
- drm_crtc_vblank_off (& disp -> crtc );
1457
+ drm_crtc_vblank_off (crtc );
1461
1458
1462
1459
spin_lock_irq (& crtc -> dev -> event_lock );
1463
1460
if (crtc -> state -> event ) {
@@ -1542,24 +1539,25 @@ static const struct drm_crtc_funcs zynqmp_disp_crtc_funcs = {
1542
1539
static int zynqmp_disp_create_crtc (struct zynqmp_disp * disp )
1543
1540
{
1544
1541
struct drm_plane * plane = & disp -> layers [ZYNQMP_DISP_LAYER_GFX ].plane ;
1542
+ struct drm_crtc * crtc = & disp -> dpsub -> crtc ;
1545
1543
int ret ;
1546
1544
1547
- ret = drm_crtc_init_with_planes (disp -> drm , & disp -> crtc , plane ,
1545
+ ret = drm_crtc_init_with_planes (disp -> drm , crtc , plane ,
1548
1546
NULL , & zynqmp_disp_crtc_funcs , NULL );
1549
1547
if (ret < 0 )
1550
1548
return ret ;
1551
1549
1552
- drm_crtc_helper_add (& disp -> crtc , & zynqmp_disp_crtc_helper_funcs );
1550
+ drm_crtc_helper_add (crtc , & zynqmp_disp_crtc_helper_funcs );
1553
1551
1554
1552
/* Start with vertical blanking interrupt reporting disabled. */
1555
- drm_crtc_vblank_off (& disp -> crtc );
1553
+ drm_crtc_vblank_off (crtc );
1556
1554
1557
1555
return 0 ;
1558
1556
}
1559
1557
1560
1558
static void zynqmp_disp_map_crtc_to_plane (struct zynqmp_disp * disp )
1561
1559
{
1562
- u32 possible_crtcs = drm_crtc_mask (& disp -> crtc );
1560
+ u32 possible_crtcs = drm_crtc_mask (& disp -> dpsub -> crtc );
1563
1561
unsigned int i ;
1564
1562
1565
1563
for (i = 0 ; i < ARRAY_SIZE (disp -> layers ); i ++ )
0 commit comments