Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fd4b95e3 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "usb_bam: Delete IPA resources in usb_bam_remove()"

parents e2903e35 4fe177ec
Loading
Loading
Loading
Loading
+19 −2
Original line number Diff line number Diff line
@@ -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);