Loading drivers/gpu/drm/msm/dp/dp_audio.c +4 −2 Original line number Diff line number Diff line Loading @@ -771,8 +771,10 @@ struct dp_audio *dp_audio_get(struct platform_device *pdev, dp_audio->off = dp_audio_off; rc = dp_audio_init_ext_disp(audio); if (rc) if (rc) { devm_kfree(&pdev->dev, audio); goto error; } catalog->init(catalog); Loading @@ -790,5 +792,5 @@ void dp_audio_put(struct dp_audio *dp_audio) audio = container_of(dp_audio, struct dp_audio_private, dp_audio); kzfree(audio); devm_kfree(&audio->pdev->dev, audio); } drivers/gpu/drm/msm/dp/dp_aux.c +2 −0 Original line number Diff line number Diff line Loading @@ -564,5 +564,7 @@ void dp_aux_put(struct dp_aux *dp_aux) aux = container_of(dp_aux, struct dp_aux_private, dp_aux); mutex_destroy(&aux->mutex); devm_kfree(aux->dev, aux); } drivers/gpu/drm/msm/dp/dp_debug.c +6 −2 Original line number Diff line number Diff line Loading @@ -463,7 +463,11 @@ struct dp_debug *dp_debug_get(struct device *dev, struct dp_panel *panel, dp_debug->hdisplay = 0; dp_debug->vrefresh = 0; dp_debug_init(dp_debug); rc = dp_debug_init(dp_debug); if (rc) { devm_kfree(dev, debug); goto error; } return dp_debug; error: Loading Loading @@ -495,5 +499,5 @@ void dp_debug_put(struct dp_debug *dp_debug) dp_debug_deinit(dp_debug); kzfree(debug); devm_kfree(debug->dev, debug); } drivers/gpu/drm/msm/dp/dp_display.c +59 −25 Original line number Diff line number Diff line Loading @@ -749,6 +749,20 @@ static int dp_display_usbpd_attention_cb(struct device *dev) return rc; } static void dp_display_deinit_sub_modules(struct dp_display_private *dp) { dp_audio_put(dp->audio); dp_ctrl_put(dp->ctrl); dp_link_put(dp->link); dp_panel_put(dp->panel); dp_aux_put(dp->aux); dp_power_put(dp->power); dp_catalog_put(dp->catalog); dp_parser_put(dp->parser); dp_usbpd_put(dp->usbpd); dp_debug_put(dp->debug); } static int dp_init_sub_modules(struct dp_display_private *dp) { int rc = 0; Loading @@ -769,42 +783,48 @@ static int dp_init_sub_modules(struct dp_display_private *dp) if (IS_ERR(dp->usbpd)) { rc = PTR_ERR(dp->usbpd); pr_err("failed to initialize usbpd, rc = %d\n", rc); goto err; dp->usbpd = NULL; goto error; } dp->parser = dp_parser_get(dp->pdev); if (IS_ERR(dp->parser)) { rc = PTR_ERR(dp->parser); pr_err("failed to initialize parser, rc = %d\n", rc); goto err; dp->parser = NULL; goto error_parser; } dp->catalog = dp_catalog_get(dev, &dp->parser->io); if (IS_ERR(dp->catalog)) { rc = PTR_ERR(dp->catalog); pr_err("failed to initialize catalog, rc = %d\n", rc); goto err; dp->catalog = NULL; goto error_catalog; } dp->power = dp_power_get(dp->parser); if (IS_ERR(dp->power)) { rc = PTR_ERR(dp->power); pr_err("failed to initialize power, rc = %d\n", rc); goto err; dp->power = NULL; goto error_power; } dp->aux = dp_aux_get(dev, &dp->catalog->aux, dp->parser->aux_cfg); if (IS_ERR(dp->aux)) { rc = PTR_ERR(dp->aux); pr_err("failed to initialize aux, rc = %d\n", rc); goto err; dp->aux = NULL; goto error_aux; } dp->link = dp_link_get(dev, dp->aux); if (IS_ERR(dp->link)) { rc = PTR_ERR(dp->link); pr_err("failed to initialize link, rc = %d\n", rc); goto err; dp->link = NULL; goto error_link; } panel_in.aux = dp->aux; Loading @@ -815,7 +835,8 @@ static int dp_init_sub_modules(struct dp_display_private *dp) if (IS_ERR(dp->panel)) { rc = PTR_ERR(dp->panel); pr_err("failed to initialize panel, rc = %d\n", rc); goto err; dp->panel = NULL; goto error_panel; } ctrl_in.link = dp->link; Loading @@ -829,13 +850,16 @@ static int dp_init_sub_modules(struct dp_display_private *dp) if (IS_ERR(dp->ctrl)) { rc = PTR_ERR(dp->ctrl); pr_err("failed to initialize ctrl, rc = %d\n", rc); goto err; dp->ctrl = NULL; goto error_ctrl; } dp->audio = dp_audio_get(dp->pdev, dp->panel, &dp->catalog->audio); if (IS_ERR(dp->audio)) { rc = PTR_ERR(dp->audio); pr_err("failed to initialize audio, rc = %d\n", rc); dp->audio = NULL; goto error_audio; } dp->debug = dp_debug_get(dev, dp->panel, dp->usbpd, Loading @@ -843,9 +867,30 @@ static int dp_init_sub_modules(struct dp_display_private *dp) if (IS_ERR(dp->debug)) { rc = PTR_ERR(dp->debug); pr_err("failed to initialize debug, rc = %d\n", rc); goto err; dp->debug = NULL; goto error_debug; } err: return rc; error_debug: dp_audio_put(dp->audio); error_audio: dp_ctrl_put(dp->ctrl); error_ctrl: dp_panel_put(dp->panel); error_panel: dp_link_put(dp->link); error_link: dp_aux_put(dp->aux); error_aux: dp_power_put(dp->power); error_power: dp_catalog_put(dp->catalog); error_catalog: dp_parser_put(dp->parser); error_parser: dp_usbpd_put(dp->usbpd); error: return rc; } Loading Loading @@ -1140,8 +1185,11 @@ static int dp_display_probe(struct platform_device *pdev) g_dp_display->get_test_bpp = dp_display_get_test_bpp; rc = component_add(&pdev->dev, &dp_display_comp_ops); if (rc) if (rc) { pr_err("component add failed, rc=%d\n", rc); dp_display_deinit_sub_modules(dp); devm_kfree(&pdev->dev, dp); } return rc; } Loading @@ -1167,20 +1215,6 @@ int dp_display_get_num_of_displays(void) return 1; } static void dp_display_deinit_sub_modules(struct dp_display_private *dp) { dp_audio_put(dp->audio); dp_ctrl_put(dp->ctrl); dp_link_put(dp->link); dp_panel_put(dp->panel); dp_aux_put(dp->aux); dp_power_put(dp->power); dp_catalog_put(dp->catalog); dp_parser_put(dp->parser); dp_usbpd_put(dp->usbpd); dp_debug_put(dp->debug); } static int dp_display_remove(struct platform_device *pdev) { struct dp_display_private *dp; Loading drivers/gpu/drm/msm/dp/dp_power.c +6 −2 Original line number Diff line number Diff line Loading @@ -612,8 +612,12 @@ struct dp_power *dp_power_get(struct dp_parser *parser) void dp_power_put(struct dp_power *dp_power) { struct dp_power_private *power = container_of(dp_power, struct dp_power_private, dp_power); struct dp_power_private *power = NULL; if (!dp_power) return; power = container_of(dp_power, struct dp_power_private, dp_power); devm_kfree(&power->pdev->dev, power); } Loading
drivers/gpu/drm/msm/dp/dp_audio.c +4 −2 Original line number Diff line number Diff line Loading @@ -771,8 +771,10 @@ struct dp_audio *dp_audio_get(struct platform_device *pdev, dp_audio->off = dp_audio_off; rc = dp_audio_init_ext_disp(audio); if (rc) if (rc) { devm_kfree(&pdev->dev, audio); goto error; } catalog->init(catalog); Loading @@ -790,5 +792,5 @@ void dp_audio_put(struct dp_audio *dp_audio) audio = container_of(dp_audio, struct dp_audio_private, dp_audio); kzfree(audio); devm_kfree(&audio->pdev->dev, audio); }
drivers/gpu/drm/msm/dp/dp_aux.c +2 −0 Original line number Diff line number Diff line Loading @@ -564,5 +564,7 @@ void dp_aux_put(struct dp_aux *dp_aux) aux = container_of(dp_aux, struct dp_aux_private, dp_aux); mutex_destroy(&aux->mutex); devm_kfree(aux->dev, aux); }
drivers/gpu/drm/msm/dp/dp_debug.c +6 −2 Original line number Diff line number Diff line Loading @@ -463,7 +463,11 @@ struct dp_debug *dp_debug_get(struct device *dev, struct dp_panel *panel, dp_debug->hdisplay = 0; dp_debug->vrefresh = 0; dp_debug_init(dp_debug); rc = dp_debug_init(dp_debug); if (rc) { devm_kfree(dev, debug); goto error; } return dp_debug; error: Loading Loading @@ -495,5 +499,5 @@ void dp_debug_put(struct dp_debug *dp_debug) dp_debug_deinit(dp_debug); kzfree(debug); devm_kfree(debug->dev, debug); }
drivers/gpu/drm/msm/dp/dp_display.c +59 −25 Original line number Diff line number Diff line Loading @@ -749,6 +749,20 @@ static int dp_display_usbpd_attention_cb(struct device *dev) return rc; } static void dp_display_deinit_sub_modules(struct dp_display_private *dp) { dp_audio_put(dp->audio); dp_ctrl_put(dp->ctrl); dp_link_put(dp->link); dp_panel_put(dp->panel); dp_aux_put(dp->aux); dp_power_put(dp->power); dp_catalog_put(dp->catalog); dp_parser_put(dp->parser); dp_usbpd_put(dp->usbpd); dp_debug_put(dp->debug); } static int dp_init_sub_modules(struct dp_display_private *dp) { int rc = 0; Loading @@ -769,42 +783,48 @@ static int dp_init_sub_modules(struct dp_display_private *dp) if (IS_ERR(dp->usbpd)) { rc = PTR_ERR(dp->usbpd); pr_err("failed to initialize usbpd, rc = %d\n", rc); goto err; dp->usbpd = NULL; goto error; } dp->parser = dp_parser_get(dp->pdev); if (IS_ERR(dp->parser)) { rc = PTR_ERR(dp->parser); pr_err("failed to initialize parser, rc = %d\n", rc); goto err; dp->parser = NULL; goto error_parser; } dp->catalog = dp_catalog_get(dev, &dp->parser->io); if (IS_ERR(dp->catalog)) { rc = PTR_ERR(dp->catalog); pr_err("failed to initialize catalog, rc = %d\n", rc); goto err; dp->catalog = NULL; goto error_catalog; } dp->power = dp_power_get(dp->parser); if (IS_ERR(dp->power)) { rc = PTR_ERR(dp->power); pr_err("failed to initialize power, rc = %d\n", rc); goto err; dp->power = NULL; goto error_power; } dp->aux = dp_aux_get(dev, &dp->catalog->aux, dp->parser->aux_cfg); if (IS_ERR(dp->aux)) { rc = PTR_ERR(dp->aux); pr_err("failed to initialize aux, rc = %d\n", rc); goto err; dp->aux = NULL; goto error_aux; } dp->link = dp_link_get(dev, dp->aux); if (IS_ERR(dp->link)) { rc = PTR_ERR(dp->link); pr_err("failed to initialize link, rc = %d\n", rc); goto err; dp->link = NULL; goto error_link; } panel_in.aux = dp->aux; Loading @@ -815,7 +835,8 @@ static int dp_init_sub_modules(struct dp_display_private *dp) if (IS_ERR(dp->panel)) { rc = PTR_ERR(dp->panel); pr_err("failed to initialize panel, rc = %d\n", rc); goto err; dp->panel = NULL; goto error_panel; } ctrl_in.link = dp->link; Loading @@ -829,13 +850,16 @@ static int dp_init_sub_modules(struct dp_display_private *dp) if (IS_ERR(dp->ctrl)) { rc = PTR_ERR(dp->ctrl); pr_err("failed to initialize ctrl, rc = %d\n", rc); goto err; dp->ctrl = NULL; goto error_ctrl; } dp->audio = dp_audio_get(dp->pdev, dp->panel, &dp->catalog->audio); if (IS_ERR(dp->audio)) { rc = PTR_ERR(dp->audio); pr_err("failed to initialize audio, rc = %d\n", rc); dp->audio = NULL; goto error_audio; } dp->debug = dp_debug_get(dev, dp->panel, dp->usbpd, Loading @@ -843,9 +867,30 @@ static int dp_init_sub_modules(struct dp_display_private *dp) if (IS_ERR(dp->debug)) { rc = PTR_ERR(dp->debug); pr_err("failed to initialize debug, rc = %d\n", rc); goto err; dp->debug = NULL; goto error_debug; } err: return rc; error_debug: dp_audio_put(dp->audio); error_audio: dp_ctrl_put(dp->ctrl); error_ctrl: dp_panel_put(dp->panel); error_panel: dp_link_put(dp->link); error_link: dp_aux_put(dp->aux); error_aux: dp_power_put(dp->power); error_power: dp_catalog_put(dp->catalog); error_catalog: dp_parser_put(dp->parser); error_parser: dp_usbpd_put(dp->usbpd); error: return rc; } Loading Loading @@ -1140,8 +1185,11 @@ static int dp_display_probe(struct platform_device *pdev) g_dp_display->get_test_bpp = dp_display_get_test_bpp; rc = component_add(&pdev->dev, &dp_display_comp_ops); if (rc) if (rc) { pr_err("component add failed, rc=%d\n", rc); dp_display_deinit_sub_modules(dp); devm_kfree(&pdev->dev, dp); } return rc; } Loading @@ -1167,20 +1215,6 @@ int dp_display_get_num_of_displays(void) return 1; } static void dp_display_deinit_sub_modules(struct dp_display_private *dp) { dp_audio_put(dp->audio); dp_ctrl_put(dp->ctrl); dp_link_put(dp->link); dp_panel_put(dp->panel); dp_aux_put(dp->aux); dp_power_put(dp->power); dp_catalog_put(dp->catalog); dp_parser_put(dp->parser); dp_usbpd_put(dp->usbpd); dp_debug_put(dp->debug); } static int dp_display_remove(struct platform_device *pdev) { struct dp_display_private *dp; Loading
drivers/gpu/drm/msm/dp/dp_power.c +6 −2 Original line number Diff line number Diff line Loading @@ -612,8 +612,12 @@ struct dp_power *dp_power_get(struct dp_parser *parser) void dp_power_put(struct dp_power *dp_power) { struct dp_power_private *power = container_of(dp_power, struct dp_power_private, dp_power); struct dp_power_private *power = NULL; if (!dp_power) return; power = container_of(dp_power, struct dp_power_private, dp_power); devm_kfree(&power->pdev->dev, power); }