diff options
Diffstat (limited to 'target/linux/layerscape/patches-5.4/805-display-0002-drm-rockchip-prepare-common-code-for-cdns-and-rk-dpi.patch')
-rw-r--r-- | target/linux/layerscape/patches-5.4/805-display-0002-drm-rockchip-prepare-common-code-for-cdns-and-rk-dpi.patch | 88 |
1 files changed, 44 insertions, 44 deletions
diff --git a/target/linux/layerscape/patches-5.4/805-display-0002-drm-rockchip-prepare-common-code-for-cdns-and-rk-dpi.patch b/target/linux/layerscape/patches-5.4/805-display-0002-drm-rockchip-prepare-common-code-for-cdns-and-rk-dpi.patch index aff53595b0..8ce4380664 100644 --- a/target/linux/layerscape/patches-5.4/805-display-0002-drm-rockchip-prepare-common-code-for-cdns-and-rk-dpi.patch +++ b/target/linux/layerscape/patches-5.4/805-display-0002-drm-rockchip-prepare-common-code-for-cdns-and-rk-dpi.patch @@ -56,10 +56,10 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> if (ret) { - DRM_DEV_ERROR(dp->dev, "Could not write to GRF: %d\n", ret); + DRM_DEV_ERROR(dev, "Could not write to GRF: %d\n", ret); + clk_disable_unprepare(dp->grf_clk); return ret; } - -@@ -82,24 +82,25 @@ static int cdn_dp_grf_write(struct cdn_d +@@ -83,24 +83,25 @@ static int cdn_dp_grf_write(struct cdn_d static int cdn_dp_clk_enable(struct cdn_dp_device *dp) { @@ -89,7 +89,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> goto err_pm_runtime_get; } -@@ -112,18 +113,18 @@ static int cdn_dp_clk_enable(struct cdn_ +@@ -113,18 +114,18 @@ static int cdn_dp_clk_enable(struct cdn_ rate = clk_get_rate(dp->core_clk); if (!rate) { @@ -112,7 +112,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> err_pm_runtime_get: clk_disable_unprepare(dp->core_clk); err_core_clk: -@@ -134,7 +135,7 @@ err_pclk: +@@ -135,7 +136,7 @@ err_pclk: static void cdn_dp_clk_disable(struct cdn_dp_device *dp) { @@ -121,7 +121,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> clk_disable_unprepare(dp->pclk); clk_disable_unprepare(dp->core_clk); } -@@ -167,7 +168,7 @@ static int cdn_dp_get_sink_count(struct +@@ -168,7 +169,7 @@ static int cdn_dp_get_sink_count(struct u8 value; *sink_count = 0; @@ -130,7 +130,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> if (ret) return ret; -@@ -191,12 +192,13 @@ static struct cdn_dp_port *cdn_dp_connec +@@ -192,12 +193,13 @@ static struct cdn_dp_port *cdn_dp_connec static bool cdn_dp_check_sink_connection(struct cdn_dp_device *dp) { @@ -145,7 +145,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> return false; } -@@ -218,7 +220,7 @@ static bool cdn_dp_check_sink_connection +@@ -219,7 +221,7 @@ static bool cdn_dp_check_sink_connection usleep_range(5000, 10000); } @@ -154,7 +154,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> return false; } -@@ -260,7 +262,8 @@ static int cdn_dp_connector_get_modes(st +@@ -261,7 +263,8 @@ static int cdn_dp_connector_get_modes(st mutex_lock(&dp->lock); edid = dp->edid; if (edid) { @@ -164,7 +164,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> edid->width_cm, edid->height_cm); dp->sink_has_audio = drm_detect_monitor_audio(edid); -@@ -278,7 +281,8 @@ static int cdn_dp_connector_mode_valid(s +@@ -279,7 +282,8 @@ static int cdn_dp_connector_mode_valid(s struct drm_display_mode *mode) { struct cdn_dp_device *dp = connector_to_dp(connector); @@ -174,7 +174,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> u32 requested, actual, rate, sink_max, source_max = 0; u8 lanes, bpc; -@@ -304,7 +308,7 @@ static int cdn_dp_connector_mode_valid(s +@@ -305,7 +309,7 @@ static int cdn_dp_connector_mode_valid(s sink_max = drm_dp_max_lane_count(dp->dpcd); lanes = min(source_max, sink_max); @@ -183,7 +183,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> sink_max = drm_dp_max_link_rate(dp->dpcd); rate = min(source_max, sink_max); -@@ -314,7 +318,7 @@ static int cdn_dp_connector_mode_valid(s +@@ -315,7 +319,7 @@ static int cdn_dp_connector_mode_valid(s actual = actual * 8 / 10; if (requested > actual) { @@ -192,7 +192,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> "requested=%d, actual=%d, clock=%d\n", requested, actual, mode->clock); return MODE_CLOCK_HIGH; -@@ -334,28 +338,29 @@ static int cdn_dp_firmware_init(struct c +@@ -335,28 +339,29 @@ static int cdn_dp_firmware_init(struct c const u32 *iram_data, *dram_data; const struct firmware *fw = dp->fw; const struct cdn_firmware_header *hdr; @@ -228,7 +228,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> } static int cdn_dp_get_sink_capability(struct cdn_dp_device *dp) -@@ -365,28 +370,29 @@ static int cdn_dp_get_sink_capability(st +@@ -366,28 +371,29 @@ static int cdn_dp_get_sink_capability(st if (!cdn_dp_check_sink_connection(dp)) return -ENODEV; @@ -264,7 +264,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> ret); goto err_phy; } -@@ -396,28 +402,28 @@ static int cdn_dp_enable_phy(struct cdn_ +@@ -397,28 +403,28 @@ static int cdn_dp_enable_phy(struct cdn_ ret = cdn_dp_grf_write(dp, GRF_SOC_CON26, DPTX_HPD_SEL_MASK | DPTX_HPD_SEL); if (ret) { @@ -299,7 +299,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> ret); goto err_power_on; } -@@ -427,7 +433,7 @@ static int cdn_dp_enable_phy(struct cdn_ +@@ -428,7 +434,7 @@ static int cdn_dp_enable_phy(struct cdn_ err_power_on: if (phy_power_off(port->phy)) @@ -308,7 +308,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> else port->phy_enabled = false; -@@ -445,7 +451,8 @@ static int cdn_dp_disable_phy(struct cdn +@@ -446,7 +452,8 @@ static int cdn_dp_disable_phy(struct cdn if (port->phy_enabled) { ret = phy_power_off(port->phy); if (ret) { @@ -318,7 +318,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> return ret; } } -@@ -469,16 +476,16 @@ static int cdn_dp_disable(struct cdn_dp_ +@@ -470,16 +477,16 @@ static int cdn_dp_disable(struct cdn_dp_ ret = cdn_dp_grf_write(dp, GRF_SOC_CON26, DPTX_HPD_SEL_MASK | DPTX_HPD_DEL); if (ret) { @@ -339,7 +339,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> if (!dp->connected) { kfree(dp->edid); dp->edid = NULL; -@@ -491,11 +498,11 @@ static int cdn_dp_enable(struct cdn_dp_d +@@ -492,11 +499,11 @@ static int cdn_dp_enable(struct cdn_dp_d { int ret, i, lanes; struct cdn_dp_port *port; @@ -353,7 +353,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> return -ENODEV; } -@@ -508,7 +515,7 @@ static int cdn_dp_enable(struct cdn_dp_d +@@ -509,7 +516,7 @@ static int cdn_dp_enable(struct cdn_dp_d ret = cdn_dp_firmware_init(dp); if (ret) { @@ -362,7 +362,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> goto err_clk_disable; } -@@ -542,8 +549,9 @@ static void cdn_dp_encoder_mode_set(stru +@@ -543,8 +550,9 @@ static void cdn_dp_encoder_mode_set(stru struct drm_display_mode *adjusted) { struct cdn_dp_device *dp = encoder_to_dp(encoder); @@ -374,7 +374,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> switch (display_info->bpc) { case 10: -@@ -561,7 +569,7 @@ static void cdn_dp_encoder_mode_set(stru +@@ -562,7 +570,7 @@ static void cdn_dp_encoder_mode_set(stru video->v_sync_polarity = !!(mode->flags & DRM_MODE_FLAG_NVSYNC); video->h_sync_polarity = !!(mode->flags & DRM_MODE_FLAG_NHSYNC); @@ -383,7 +383,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> } static bool cdn_dp_check_link_status(struct cdn_dp_device *dp) -@@ -570,11 +578,11 @@ static bool cdn_dp_check_link_status(str +@@ -571,11 +579,11 @@ static bool cdn_dp_check_link_status(str struct cdn_dp_port *port = cdn_dp_connected_port(dp); u8 sink_lanes = drm_dp_max_lane_count(dp->dpcd); @@ -398,7 +398,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> DRM_ERROR("Failed to get link status\n"); return false; } -@@ -586,15 +594,16 @@ static bool cdn_dp_check_link_status(str +@@ -587,15 +595,16 @@ static bool cdn_dp_check_link_status(str static void cdn_dp_encoder_enable(struct drm_encoder *encoder) { struct cdn_dp_device *dp = encoder_to_dp(encoder); @@ -418,7 +418,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> (ret) ? "LIT" : "BIG"); if (ret) val = DP_SEL_VOP_LIT | (DP_SEL_VOP_LIT << 16); -@@ -609,33 +618,33 @@ static void cdn_dp_encoder_enable(struct +@@ -610,33 +619,33 @@ static void cdn_dp_encoder_enable(struct ret = cdn_dp_enable(dp); if (ret) { @@ -461,7 +461,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> goto out; } out: -@@ -651,7 +660,8 @@ static void cdn_dp_encoder_disable(struc +@@ -652,7 +661,8 @@ static void cdn_dp_encoder_disable(struc if (dp->active) { ret = cdn_dp_disable(dp); if (ret) { @@ -471,7 +471,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> ret); } } -@@ -695,7 +705,7 @@ static const struct drm_encoder_funcs cd +@@ -696,7 +706,7 @@ static const struct drm_encoder_funcs cd static int cdn_dp_parse_dt(struct cdn_dp_device *dp) { @@ -480,7 +480,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> struct device_node *np = dev->of_node; struct platform_device *pdev = to_platform_device(dev); struct resource *res; -@@ -707,10 +717,10 @@ static int cdn_dp_parse_dt(struct cdn_dp +@@ -708,10 +718,10 @@ static int cdn_dp_parse_dt(struct cdn_dp } res = platform_get_resource(pdev, IORESOURCE_MEM, 0); @@ -494,7 +494,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> } dp->core_clk = devm_clk_get(dev, "core-clk"); -@@ -725,10 +735,10 @@ static int cdn_dp_parse_dt(struct cdn_dp +@@ -726,10 +736,10 @@ static int cdn_dp_parse_dt(struct cdn_dp return PTR_ERR(dp->pclk); } @@ -508,7 +508,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> } dp->grf_clk = devm_clk_get(dev, "grf"); -@@ -737,10 +747,10 @@ static int cdn_dp_parse_dt(struct cdn_dp +@@ -738,10 +748,10 @@ static int cdn_dp_parse_dt(struct cdn_dp return PTR_ERR(dp->grf_clk); } @@ -522,7 +522,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> } dp->dptx_rst = devm_reset_control_get(dev, "dptx"); -@@ -795,7 +805,7 @@ static int cdn_dp_audio_hw_params(struct +@@ -796,7 +806,7 @@ static int cdn_dp_audio_hw_params(struct goto out; } @@ -531,7 +531,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> if (!ret) dp->audio_info = audio; -@@ -813,7 +823,7 @@ static void cdn_dp_audio_shutdown(struct +@@ -814,7 +824,7 @@ static void cdn_dp_audio_shutdown(struct if (!dp->active) goto out; @@ -540,7 +540,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> if (!ret) dp->audio_info.format = AFMT_UNUSED; out: -@@ -832,7 +842,7 @@ static int cdn_dp_audio_digital_mute(str +@@ -833,7 +843,7 @@ static int cdn_dp_audio_digital_mute(str goto out; } @@ -549,7 +549,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> out: mutex_unlock(&dp->lock); -@@ -844,7 +854,8 @@ static int cdn_dp_audio_get_eld(struct d +@@ -845,7 +855,8 @@ static int cdn_dp_audio_get_eld(struct d { struct cdn_dp_device *dp = dev_get_drvdata(dev); @@ -559,7 +559,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> return 0; } -@@ -878,6 +889,7 @@ static int cdn_dp_request_firmware(struc +@@ -879,6 +890,7 @@ static int cdn_dp_request_firmware(struc int ret; unsigned long timeout = jiffies + msecs_to_jiffies(CDN_FW_TIMEOUT_MS); unsigned long sleep = 1000; @@ -567,7 +567,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> WARN_ON(!mutex_is_locked(&dp->lock)); -@@ -888,13 +900,13 @@ static int cdn_dp_request_firmware(struc +@@ -889,13 +901,13 @@ static int cdn_dp_request_firmware(struc mutex_unlock(&dp->lock); while (time_before(jiffies, timeout)) { @@ -583,7 +583,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> "failed to request firmware: %d\n", ret); goto out; } -@@ -904,7 +916,7 @@ static int cdn_dp_request_firmware(struc +@@ -905,7 +917,7 @@ static int cdn_dp_request_firmware(struc goto out; } @@ -592,7 +592,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> ret = -ETIMEDOUT; out: mutex_lock(&dp->lock); -@@ -915,8 +927,9 @@ static void cdn_dp_pd_event_work(struct +@@ -916,8 +928,9 @@ static void cdn_dp_pd_event_work(struct { struct cdn_dp_device *dp = container_of(work, struct cdn_dp_device, event_work); @@ -603,7 +603,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> int ret; -@@ -933,44 +946,45 @@ static void cdn_dp_pd_event_work(struct +@@ -934,44 +947,45 @@ static void cdn_dp_pd_event_work(struct /* Not connected, notify userspace to disable the block */ if (!cdn_dp_connected_port(dp)) { @@ -662,7 +662,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> "Failed to config video %d\n", ret); } -@@ -1039,7 +1053,7 @@ static int cdn_dp_bind(struct device *de +@@ -1040,7 +1054,7 @@ static int cdn_dp_bind(struct device *de drm_encoder_helper_add(encoder, &cdn_dp_encoder_helper_funcs); @@ -671,7 +671,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> connector->polled = DRM_CONNECTOR_POLL_HPD; connector->dpms = DRM_MODE_DPMS_OFF; -@@ -1063,7 +1077,7 @@ static int cdn_dp_bind(struct device *de +@@ -1064,7 +1078,7 @@ static int cdn_dp_bind(struct device *de port = dp->port[i]; port->event_nb.notifier_call = cdn_dp_pd_event; @@ -680,7 +680,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> EXTCON_DISP_DP, &port->event_nb); if (ret) { -@@ -1090,7 +1104,7 @@ static void cdn_dp_unbind(struct device +@@ -1091,7 +1105,7 @@ static void cdn_dp_unbind(struct device { struct cdn_dp_device *dp = dev_get_drvdata(dev); struct drm_encoder *encoder = &dp->encoder; @@ -689,7 +689,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> cancel_work_sync(&dp->event_work); cdn_dp_encoder_disable(encoder); -@@ -1150,7 +1164,7 @@ static int cdn_dp_probe(struct platform_ +@@ -1151,7 +1165,7 @@ static int cdn_dp_probe(struct platform_ dp = devm_kzalloc(dev, sizeof(*dp), GFP_KERNEL); if (!dp) return -ENOMEM; @@ -698,7 +698,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> match = of_match_node(cdn_dp_dt_ids, pdev->dev.of_node); dp_data = (struct cdn_dp_data *)match->data; -@@ -1195,7 +1209,7 @@ static int cdn_dp_remove(struct platform +@@ -1196,7 +1210,7 @@ static int cdn_dp_remove(struct platform struct cdn_dp_device *dp = platform_get_drvdata(pdev); platform_device_unregister(dp->audio_pdev); @@ -707,7 +707,7 @@ Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> component_del(&pdev->dev, &cdn_dp_component_ops); return 0; -@@ -1205,7 +1219,7 @@ static void cdn_dp_shutdown(struct platf +@@ -1206,7 +1220,7 @@ static void cdn_dp_shutdown(struct platf { struct cdn_dp_device *dp = platform_get_drvdata(pdev); |