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

Commit 0e80c227 authored by Azhar Shaikh's avatar Azhar Shaikh
Browse files

usb: ehci-msm2: Remove PM QOS request on remove



Remove PM QOS request on driver unbind. If the reference of
this driver is still present in PM QOS, then may lead to a crash.

Change-Id: I10153df00d398354b6ae684ca85cce68ed2a1f15
Signed-off-by: default avatarAzhar Shaikh <azhars@codeaurora.org>
parent c3e1cf6f
Loading
Loading
Loading
Loading
+8 −2
Original line number Original line Diff line number Diff line
@@ -1607,8 +1607,9 @@ static int ehci_msm2_probe(struct platform_device *pdev)
		}
		}
	}
	}


	pm_qos_add_request(&mhcd->pm_qos_req_dma, PM_QOS_CPU_DMA_LATENCY,
	if (pdata && pdata->pm_qos_latency)
			pdata->pm_qos_latency + 1);
		pm_qos_add_request(&mhcd->pm_qos_req_dma,
			PM_QOS_CPU_DMA_LATENCY, pdata->pm_qos_latency + 1);


	pm_runtime_set_active(&pdev->dev);
	pm_runtime_set_active(&pdev->dev);
	pm_runtime_enable(&pdev->dev);
	pm_runtime_enable(&pdev->dev);
@@ -1663,6 +1664,7 @@ static int ehci_msm2_remove(struct platform_device *pdev)
	struct usb_hcd *hcd = platform_get_drvdata(pdev);
	struct usb_hcd *hcd = platform_get_drvdata(pdev);
	struct msm_hcd *mhcd = hcd_to_mhcd(hcd);
	struct msm_hcd *mhcd = hcd_to_mhcd(hcd);
	struct pinctrl_state *set_state;
	struct pinctrl_state *set_state;
	struct msm_usb_host_platform_data *pdata;


	if (mhcd->pmic_gpio_dp_irq) {
	if (mhcd->pmic_gpio_dp_irq) {
		if (mhcd->pmic_gpio_dp_irq_enabled)
		if (mhcd->pmic_gpio_dp_irq_enabled)
@@ -1690,6 +1692,10 @@ static int ehci_msm2_remove(struct platform_device *pdev)


	usb_remove_hcd(hcd);
	usb_remove_hcd(hcd);


	pdata = pdev->dev.platform_data;
	if (pdata && pdata->pm_qos_latency)
		pm_qos_remove_request(&mhcd->pm_qos_req_dma);

	if (hcd->phy) {
	if (hcd->phy) {
		/* Clear host mode flag */
		/* Clear host mode flag */
		hcd->phy->flags &= ~PHY_HOST_MODE;
		hcd->phy->flags &= ~PHY_HOST_MODE;