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

Commit 45b4733d authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "asoc: codecs: defer probe if soundwire pin is not ready"

parents 6f4c0d9e 326536d1
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -3624,6 +3624,12 @@ static int rx_macro_probe(struct platform_device *pdev)
			__func__);
		return -EINVAL;
	}
	if (msm_cdc_pinctrl_get_state(rx_priv->rx_swr_gpio_p) < 0) {
		dev_err(&pdev->dev, "%s: failed to get swr pin state\n",
			__func__);
		return -EPROBE_DEFER;
	}

	rx_io_base = devm_ioremap(&pdev->dev, rx_base_addr,
				  RX_MACRO_MAX_OFFSET);
	if (!rx_io_base) {
+6 −0
Original line number Diff line number Diff line
@@ -2018,6 +2018,12 @@ static int tx_macro_probe(struct platform_device *pdev)
			__func__);
		return -EINVAL;
	}
	if (msm_cdc_pinctrl_get_state(tx_priv->tx_swr_gpio_p) < 0) {
		dev_err(&pdev->dev, "%s: failed to get swr pin state\n",
			__func__);
		return -EPROBE_DEFER;
	}

	tx_io_base = devm_ioremap(&pdev->dev,
				   tx_base_addr, TX_MACRO_MAX_OFFSET);
	if (!tx_io_base) {
+6 −0
Original line number Diff line number Diff line
@@ -2921,6 +2921,12 @@ static int wsa_macro_probe(struct platform_device *pdev)
			__func__);
		return -EINVAL;
	}
	if (msm_cdc_pinctrl_get_state(wsa_priv->wsa_swr_gpio_p) < 0) {
		dev_err(&pdev->dev, "%s: failed to get swr pin state\n",
			__func__);
		return -EPROBE_DEFER;
	}

	wsa_io_base = devm_ioremap(&pdev->dev,
				   wsa_base_addr, WSA_MACRO_MAX_OFFSET);
	if (!wsa_io_base) {
+3 −2
Original line number Diff line number Diff line
@@ -122,9 +122,10 @@ EXPORT_SYMBOL(msm_cdc_pinctrl_select_active_state);
 * msm_cdc_pinctrl_get_state: get curren pinctrl state
 * @np: pointer to struct device_node
 *
 * Returns 0 for sleep state, 1 for active state
 * Returns 0 for sleep state, 1 for active state,
 * error code for failure
 */
bool msm_cdc_pinctrl_get_state(struct device_node *np)
int msm_cdc_pinctrl_get_state(struct device_node *np)
{
	struct msm_cdc_pinctrl_info *gpio_data;

+3 −3
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only */
/* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
/* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
 */

#ifndef __MFD_CDC_PINCTRL_H_
@@ -11,7 +11,7 @@
#if IS_ENABLED(CONFIG_MSM_CDC_PINCTRL)
extern int msm_cdc_pinctrl_select_sleep_state(struct device_node *np);
extern int msm_cdc_pinctrl_select_active_state(struct device_node *np);
extern bool msm_cdc_pinctrl_get_state(struct device_node *np);
extern int msm_cdc_pinctrl_get_state(struct device_node *np);
extern int msm_cdc_get_gpio_state(struct device_node *np);
int msm_cdc_pinctrl_drv_init(void);
void msm_cdc_pinctrl_drv_exit(void);
@@ -36,7 +36,7 @@ int msm_cdc_pinctrl_drv_init(void)
void msm_cdc_pinctrl_drv_exit(void)
{
}
bool msm_cdc_pinctrl_get_state(struct device_node *np)
int msm_cdc_pinctrl_get_state(struct device_node *np)
{
	return true;
}