static int mdss_dsi_link_clk_start(struct mdss_dsi_ctrl_pdata *ctrl) { int rc = 0; rc = mdss_dsi_link_clk_set_rate(ctrl); if (rc) { pr_err("%s: failed to set clk rates. rc=%d\n", __func__, rc); goto error; } rc = mdss_dsi_link_clk_prepare(ctrl); if (rc) { pr_err("%s: failed to prepare clks. rc=%d\n", __func__, rc); goto error; } rc = mdss_dsi_link_clk_enable(ctrl); if (rc) { pr_err("%s: failed to enable clks. rc=%d\n", __func__, rc); mdss_dsi_link_clk_unprepare(ctrl); goto error; } error: return rc; }
static int mdss_dsi_link_clk_start(struct mdss_dsi_ctrl_pdata *ctrl_pdata) { int rc = 0; rc = mdss_dsi_link_clk_set_rate(ctrl_pdata); if (rc) { pr_err("%s: failed to set clk rates. rc=%d\n", __func__, rc); goto error; } rc = clk_prepare_enable(ctrl_pdata->esc_clk); if (rc) { pr_err("%s: Failed to enable dsi esc clk\n", __func__); goto esc_clk_err; } rc = clk_prepare_enable(ctrl_pdata->byte_clk); if (rc) { pr_err("%s: Failed to enable dsi byte clk\n", __func__); goto byte_clk_err; } rc = clk_prepare_enable(ctrl_pdata->pixel_clk); if (rc) { pr_err("%s: Failed to enable dsi pixel clk\n", __func__); goto pixel_clk_err; } return rc; pixel_clk_err: clk_disable_unprepare(ctrl_pdata->byte_clk); byte_clk_err: clk_disable_unprepare(ctrl_pdata->esc_clk); esc_clk_err: error: return rc; }