@@ -169,8 +169,6 @@ struct zynqmp_disp_layer {
169
169
* @audio.clk: Audio clock
170
170
* @audio.clk_from_ps: True of the audio clock comes from PS, false from PL
171
171
* @layers: Layers (planes)
172
- * @pclk: Pixel clock
173
- * @pclk_from_ps: True of the video clock comes from PS, false from PL
174
172
*/
175
173
struct zynqmp_disp {
176
174
struct device * dev ;
@@ -192,9 +190,6 @@ struct zynqmp_disp {
192
190
} audio ;
193
191
194
192
struct zynqmp_disp_layer layers [ZYNQMP_DISP_NUM_LAYERS ];
195
-
196
- struct clk * pclk ;
197
- bool pclk_from_ps ;
198
193
};
199
194
200
195
/* -----------------------------------------------------------------------------
@@ -1412,7 +1407,7 @@ static void zynqmp_disp_enable(struct zynqmp_disp *disp)
1412
1407
1413
1408
zynqmp_disp_avbuf_enable (disp );
1414
1409
/* Choose clock source based on the DT clock handle. */
1415
- zynqmp_disp_avbuf_set_clocks_sources (disp , disp -> pclk_from_ps ,
1410
+ zynqmp_disp_avbuf_set_clocks_sources (disp , disp -> dpsub -> vid_clk_from_ps ,
1416
1411
disp -> audio .clk_from_ps , true);
1417
1412
zynqmp_disp_avbuf_enable_channels (disp );
1418
1413
zynqmp_disp_avbuf_enable_audio (disp );
@@ -1440,13 +1435,13 @@ static int zynqmp_disp_setup_clock(struct zynqmp_disp *disp,
1440
1435
long diff ;
1441
1436
int ret ;
1442
1437
1443
- ret = clk_set_rate (disp -> pclk , mode_clock );
1438
+ ret = clk_set_rate (disp -> dpsub -> vid_clk , mode_clock );
1444
1439
if (ret ) {
1445
- dev_err (disp -> dev , "failed to set a pixel clock\n" );
1440
+ dev_err (disp -> dev , "failed to set the video clock\n" );
1446
1441
return ret ;
1447
1442
}
1448
1443
1449
- rate = clk_get_rate (disp -> pclk );
1444
+ rate = clk_get_rate (disp -> dpsub -> vid_clk );
1450
1445
diff = rate - mode_clock ;
1451
1446
if (abs (diff ) > mode_clock / 20 )
1452
1447
dev_info (disp -> dev ,
@@ -1477,9 +1472,9 @@ zynqmp_disp_crtc_atomic_enable(struct drm_crtc *crtc,
1477
1472
1478
1473
zynqmp_disp_setup_clock (disp , adjusted_mode -> clock * 1000 );
1479
1474
1480
- ret = clk_prepare_enable (disp -> pclk );
1475
+ ret = clk_prepare_enable (disp -> dpsub -> vid_clk );
1481
1476
if (ret ) {
1482
- dev_err (disp -> dev , "failed to enable a pixel clock\n" );
1477
+ dev_err (disp -> dev , "failed to enable the video clock\n" );
1483
1478
pm_runtime_put_sync (disp -> dev );
1484
1479
return ;
1485
1480
}
@@ -1519,7 +1514,7 @@ zynqmp_disp_crtc_atomic_disable(struct drm_crtc *crtc,
1519
1514
}
1520
1515
spin_unlock_irq (& crtc -> dev -> event_lock );
1521
1516
1522
- clk_disable_unprepare (disp -> pclk );
1517
+ clk_disable_unprepare (disp -> dpsub -> vid_clk );
1523
1518
pm_runtime_put_sync (disp -> dev );
1524
1519
}
1525
1520
@@ -1674,23 +1669,6 @@ int zynqmp_disp_probe(struct zynqmp_dpsub *dpsub, struct drm_device *drm)
1674
1669
if (IS_ERR (disp -> audio .base ))
1675
1670
return PTR_ERR (disp -> audio .base );
1676
1671
1677
- /* Try the live PL video clock */
1678
- disp -> pclk = devm_clk_get (disp -> dev , "dp_live_video_in_clk" );
1679
- if (!IS_ERR (disp -> pclk ))
1680
- disp -> pclk_from_ps = false;
1681
- else if (PTR_ERR (disp -> pclk ) == - EPROBE_DEFER )
1682
- return PTR_ERR (disp -> pclk );
1683
-
1684
- /* If the live PL video clock is not valid, fall back to PS clock */
1685
- if (IS_ERR_OR_NULL (disp -> pclk )) {
1686
- disp -> pclk = devm_clk_get (disp -> dev , "dp_vtc_pixel_clk_in" );
1687
- if (IS_ERR (disp -> pclk )) {
1688
- dev_err (disp -> dev , "failed to init any video clock\n" );
1689
- return PTR_ERR (disp -> pclk );
1690
- }
1691
- disp -> pclk_from_ps = true;
1692
- }
1693
-
1694
1672
zynqmp_disp_audio_init (disp );
1695
1673
1696
1674
ret = zynqmp_disp_create_layers (disp );
0 commit comments