mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
vc4/drm: hdmi: Handle case when bvb clock is null
Pi2/3 have no bvb clock but want the other clocks to remain enabled here See: https://github.com/raspberrypi/linux/issues/4299 Signed-off-by: Dom Cobley <popcornmix@gmail.com>
This commit is contained in:
@@ -931,7 +931,8 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder,
|
||||
HDMI_READ(HDMI_VID_CTL) & ~VC4_HD_VID_CTL_ENABLE);
|
||||
|
||||
clk_disable_unprepare(vc4_hdmi->pixel_bvb_clock);
|
||||
clk_request_done(vc4_hdmi->bvb_req);
|
||||
if (vc4_hdmi->bvb_req)
|
||||
clk_request_done(vc4_hdmi->bvb_req);
|
||||
clk_disable_unprepare(vc4_hdmi->hsm_clock);
|
||||
clk_request_done(vc4_hdmi->hsm_req);
|
||||
clk_disable_unprepare(vc4_hdmi->pixel_clock);
|
||||
@@ -1260,7 +1261,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder,
|
||||
else
|
||||
bvb_rate = 75000000;
|
||||
|
||||
vc4_hdmi->bvb_req = clk_request_start(vc4_hdmi->pixel_bvb_clock, bvb_rate);
|
||||
if (vc4_hdmi->pixel_bvb_clock)
|
||||
vc4_hdmi->bvb_req = clk_request_start(vc4_hdmi->pixel_bvb_clock, bvb_rate);
|
||||
if (IS_ERR(vc4_hdmi->bvb_req)) {
|
||||
DRM_ERROR("Failed to set pixel bvb clock rate: %ld\n", PTR_ERR(vc4_hdmi->bvb_req));
|
||||
clk_request_done(vc4_hdmi->hsm_req);
|
||||
@@ -1272,7 +1274,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder,
|
||||
ret = clk_prepare_enable(vc4_hdmi->pixel_bvb_clock);
|
||||
if (ret) {
|
||||
DRM_ERROR("Failed to turn on pixel bvb clock: %d\n", ret);
|
||||
clk_request_done(vc4_hdmi->bvb_req);
|
||||
if (vc4_hdmi->bvb_req)
|
||||
clk_request_done(vc4_hdmi->bvb_req);
|
||||
clk_request_done(vc4_hdmi->hsm_req);
|
||||
clk_disable_unprepare(vc4_hdmi->hsm_clock);
|
||||
clk_disable_unprepare(vc4_hdmi->pixel_clock);
|
||||
|
||||
Reference in New Issue
Block a user