diff options
| author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-09-11 19:13:15 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-09-11 19:13:14 -0700 |
| commit | fd4b95e3740022ea8bc8a92b572a94b8002b8f1d (patch) | |
| tree | 0dccab862318b0bcf9696af4c01da5f127df9911 /drivers/platform | |
| parent | e2903e352e1073d5a93e3fe785b3c643235c6b92 (diff) | |
| parent | 4fe177ec8802b0543e01c583e8c45b46384a08c5 (diff) | |
Merge "usb_bam: Delete IPA resources in usb_bam_remove()"
Diffstat (limited to 'drivers/platform')
| -rw-r--r-- | drivers/platform/msm/usb_bam.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/drivers/platform/msm/usb_bam.c b/drivers/platform/msm/usb_bam.c index 49e0666d0c23..a9bcabfdb009 100644 --- a/drivers/platform/msm/usb_bam.c +++ b/drivers/platform/msm/usb_bam.c @@ -126,13 +126,13 @@ static char *bam_enable_strings[MAX_BAMS] = { * CI_CTRL & DWC3_CTRL shouldn't be used simultaneously * since both share the same prod & cons rm resourses */ -static enum ipa_client_type ipa_rm_resource_prod[MAX_BAMS] = { +static enum ipa_rm_resource_name ipa_rm_resource_prod[MAX_BAMS] = { [CI_CTRL] = IPA_RM_RESOURCE_USB_PROD, [HSIC_CTRL] = IPA_RM_RESOURCE_HSIC_PROD, [DWC3_CTRL] = IPA_RM_RESOURCE_USB_PROD, }; -static enum ipa_client_type ipa_rm_resource_cons[MAX_BAMS] = { +static enum ipa_rm_resource_name ipa_rm_resource_cons[MAX_BAMS] = { [CI_CTRL] = IPA_RM_RESOURCE_USB_CONS, [HSIC_CTRL] = IPA_RM_RESOURCE_HSIC_CONS, [DWC3_CTRL] = IPA_RM_RESOURCE_USB_CONS, @@ -1625,6 +1625,22 @@ static void usb_bam_ipa_create_resources(enum usb_ctrl cur_bam) } } +static void usb_bam_ipa_delete_resources(enum usb_ctrl cur_bam) +{ + int ret; + + ret = ipa_rm_delete_resource(ipa_rm_resource_prod[cur_bam]); + if (ret) + log_event_err("%s: Failed to delete USB_PROD resource\n", + __func__); + + ret = ipa_rm_delete_resource(ipa_rm_resource_cons[cur_bam]); + if (ret) + log_event_err("%s: Failed to delete USB_CONS resource\n", + __func__); + +} + static void wait_for_prod_granted(enum usb_ctrl cur_bam) { int ret; @@ -3401,6 +3417,7 @@ static int usb_bam_remove(struct platform_device *pdev) { struct usb_bam_ctx_type *ctx = dev_get_drvdata(&pdev->dev); + usb_bam_ipa_delete_resources(ctx->usb_bam_data->bam_type); usb_bam_unregister_panic_hdlr(); sps_deregister_bam_device(ctx->h_bam); destroy_workqueue(ctx->usb_bam_wq); |
