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

Commit bf1fe8fb authored by Meng Wang's avatar Meng Wang
Browse files

asoc: bolero: force bolero runtime suspend during adsp ssr



During adsp SSR, bolero runtime suspend is not called and
hw vote clks are not reset. Force bolero runtime suspend
during adsp SSR to avoid kernel panic.

Change-Id: Iff5983ef07f77ecc7f3f344948c013906b4bad60
Signed-off-by: default avatarMeng Wang <mengw@codeaurora.org>
parent 0983e240
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1224,6 +1224,8 @@ static int rx_macro_event_handler(struct snd_soc_component *component,
				rx_priv->swr_ctrl_data[0].rx_swr_pdev,
				SWR_DEVICE_SSR_DOWN, NULL);
		}
		if (!pm_runtime_status_suspended(rx_dev))
			bolero_runtime_suspend(rx_dev);
		break;
	case BOLERO_MACRO_EVT_SSR_UP:
		rx_priv->dev_up = true;
+2 −0
Original line number Diff line number Diff line
@@ -354,6 +354,8 @@ static int tx_macro_event_handler(struct snd_soc_component *component,
				tx_priv->swr_ctrl_data[0].tx_swr_pdev,
				SWR_DEVICE_SSR_DOWN, NULL);
		}
		if (!pm_runtime_status_suspended(tx_dev))
			bolero_runtime_suspend(tx_dev);
		break;
	case BOLERO_MACRO_EVT_SSR_UP:
		/* reset swr after ssr/pdr */
+4 −0
Original line number Diff line number Diff line
@@ -237,6 +237,10 @@ static int va_macro_event_handler(struct snd_soc_component *component,
	case BOLERO_MACRO_EVT_CLK_RESET:
		bolero_rsc_clk_reset(va_dev, VA_CORE_CLK);
		break;
	case BOLERO_MACRO_EVT_SSR_DOWN:
		if (!pm_runtime_status_suspended(va_dev))
			bolero_runtime_suspend(va_dev);
		break;
	default:
		break;
	}
+2 −0
Original line number Diff line number Diff line
@@ -919,6 +919,8 @@ static int wsa_macro_event_handler(struct snd_soc_component *component,
				wsa_priv->swr_ctrl_data[0].wsa_swr_pdev,
				SWR_DEVICE_SSR_DOWN, NULL);
		}
		if (!pm_runtime_status_suspended(wsa_dev))
			bolero_runtime_suspend(wsa_dev);
		break;
	case BOLERO_MACRO_EVT_SSR_UP:
		/* reset swr after ssr/pdr */