aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2023-01-17 11:39:46 +0000
committerSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2023-01-17 12:26:48 +0000
commit0575dad04160c5e5341f8acbfd6154535a61333c (patch)
treeea5ce521f675422269e9c688ed50ff3faa9dcfd5
parent4fe6f1780fc7327b6a08502a9198ad0047a91109 (diff)
DEBUG-ONLY: Not for Upstream
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
-rw-r--r--drivers/soundwire/bus.c4
-rw-r--r--drivers/soundwire/qcom.c46
-rw-r--r--sound/soc/codecs/lpass-rx-macro.c2
-rw-r--r--sound/soc/codecs/lpass-tx-macro.c3
-rw-r--r--sound/soc/codecs/lpass-va-macro.c2
-rw-r--r--sound/soc/codecs/lpass-wsa-macro.c5
-rw-r--r--sound/soc/codecs/wcd938x-sdw.c7
7 files changed, 59 insertions, 10 deletions
diff --git a/drivers/soundwire/bus.c b/drivers/soundwire/bus.c
index 76515c33e639e..2396c5566cb07 100644
--- a/drivers/soundwire/bus.c
+++ b/drivers/soundwire/bus.c
@@ -1810,8 +1810,8 @@ int sdw_handle_slave_status(struct sdw_bus *bus,
if (status[i] == SDW_SLAVE_UNATTACHED &&
slave->status != SDW_SLAVE_UNATTACHED) {
- dev_warn(&slave->dev, "Slave %d state check1: UNATTACHED, status was %d\n",
- i, slave->status);
+ dev_warn(&slave->dev, "Slave %d state check1: UNATTACHED, status was %d vs %d\n",
+ i, slave->status, status[i]);
sdw_modify_slave_status(slave, SDW_SLAVE_UNATTACHED);
/* Ensure driver knows that peripheral unattached */
diff --git a/drivers/soundwire/qcom.c b/drivers/soundwire/qcom.c
index 634b5304ada1c..5d60f602c20fa 100644
--- a/drivers/soundwire/qcom.c
+++ b/drivers/soundwire/qcom.c
@@ -358,6 +358,11 @@ static int qcom_swrm_cmd_fifo_wr_cmd(struct qcom_swrm_ctrl *swrm, u8 cmd_data,
u32 val;
int ret = 0;
u8 cmd_id = 0x0;
+ if (dev_addr == 0) {
+ pr_err("DEBUG: %s: %d %x -> %d\n", __func__, dev_addr, reg_addr, cmd_data);
+ dump_stack();
+ return 0;
+ }
if (dev_addr == SDW_BROADCAST_DEV_NUM) {
cmd_id = SWR_BROADCAST_CMD_ID;
@@ -410,6 +415,11 @@ static int qcom_swrm_cmd_fifo_rd_cmd(struct qcom_swrm_ctrl *swrm,
val = swrm_get_packed_reg_val(&swrm->rcmd_id, len, dev_addr, reg_addr);
+ if (dev_addr == 0) {
+ pr_err("DEBUG: %s: %d %x %d\n", __func__, dev_addr, reg_addr, len);
+ dump_stack();
+ return 0;
+ }
/*
* Check for outstanding cmd wrt. write fifo depth to avoid
* overflow as read will also increase write fifo cnt.
@@ -607,18 +617,26 @@ static irqreturn_t qcom_swrm_irq_handler(int irq, void *dev_id)
dev_err_ratelimited(swrm->dev,
"no slave alert found.spurious interrupt\n");
} else {
+ dev_err_ratelimited(swrm->dev,
+ "slave pend irq\n");
sdw_handle_slave_status(&swrm->bus, swrm->status);
}
break;
case SWRM_INTERRUPT_STATUS_NEW_SLAVE_ATTACHED:
case SWRM_INTERRUPT_STATUS_CHANGE_ENUM_SLAVE_STATUS:
- dev_dbg_ratelimited(swrm->dev, "SWR new slave attached\n");
+ if (value == SWRM_INTERRUPT_STATUS_CHANGE_ENUM_SLAVE_STATUS)
+ dev_err_ratelimited(swrm->dev, "SWR slave Status Changed\n");
+ else
+ dev_err_ratelimited(swrm->dev, "SWR new slave attached\n");
+
swrm->reg_read(swrm, SWRM_MCP_SLV_STATUS, &slave_status);
if (swrm->slave_status == slave_status) {
- dev_dbg(swrm->dev, "Slave status not changed %x\n",
+ dev_err(swrm->dev, "Slave status not changed %x\n",
slave_status);
} else {
+ dev_err_ratelimited(swrm->dev,
+ "slave status changed %x vs %x\n", slave_status,swrm->slave_status);
qcom_swrm_get_device_status(swrm);
qcom_swrm_enumerate(&swrm->bus);
sdw_handle_slave_status(&swrm->bus, swrm->status);
@@ -678,10 +696,17 @@ static irqreturn_t qcom_swrm_irq_handler(int irq, void *dev_id)
complete(&swrm->broadcast);
break;
case SWRM_INTERRUPT_STATUS_BUS_RESET_FINISHED_V2:
+ dev_err_ratelimited(swrm->dev,
+ "%s: SWR bus reset finished....\n", __func__);
+
break;
case SWRM_INTERRUPT_STATUS_CLK_STOP_FINISHED_V2:
+ dev_err_ratelimited(swrm->dev,
+ "%s: SWR Clk stop finished....\n", __func__);
break;
case SWRM_INTERRUPT_STATUS_EXT_CLK_STOP_WAKEUP:
+ dev_err_ratelimited(swrm->dev,
+ "%s: SWR Clk stop Wakeup...\n", __func__);
break;
default:
dev_err_ratelimited(swrm->dev,
@@ -708,14 +733,18 @@ static bool swrm_wait_for_frame_gen_enabled(struct qcom_swrm_ctrl *swrm)
do {
swrm->reg_read(swrm, SWRM_COMP_STATUS, &comp_sts);
- if (comp_sts & SWRM_FRM_GEN_ENABLED)
+ if (comp_sts & SWRM_FRM_GEN_ENABLED) {
+ dev_err(swrm->dev, "%s: Frame Gen Enabled\n",
+ __func__);
+
return true;
+ }
usleep_range(500, 510);
} while (retry--);
- dev_err(swrm->dev, "%s: link status %s\n", __func__,
- comp_sts & SWRM_FRM_GEN_ENABLED ? "connected" : "disconnected");
+ dev_err(swrm->dev, "%s: Frame Gen %s\n", __func__,
+ comp_sts & SWRM_FRM_GEN_ENABLED ? "Enabled" : "disconnected");
return false;
}
@@ -1542,7 +1571,7 @@ static int __maybe_unused swrm_runtime_resume(struct device *dev)
{
struct qcom_swrm_ctrl *ctrl = dev_get_drvdata(dev);
int ret;
-
+ dev_err(ctrl->dev, " %s: enter \n", __func__);
if (ctrl->wake_irq > 0) {
if (!irqd_irq_disabled(irq_get_irq_data(ctrl->wake_irq)))
disable_irq_nosync(ctrl->wake_irq);
@@ -1591,6 +1620,7 @@ static int __maybe_unused swrm_runtime_resume(struct device *dev)
if (ret < 0)
dev_err(ctrl->dev, "bus failed to exit clock stop %d\n", ret);
}
+ dev_err(ctrl->dev, " %s: done \n", __func__);
return 0;
}
@@ -1599,7 +1629,7 @@ static int __maybe_unused swrm_runtime_suspend(struct device *dev)
{
struct qcom_swrm_ctrl *ctrl = dev_get_drvdata(dev);
int ret;
-
+ dev_err(ctrl->dev, " %s: enter \n", __func__);
swrm_wait_for_wr_fifo_done(ctrl);
if (!ctrl->clock_stop_not_supported) {
/* Mask bus clash interrupt */
@@ -1628,7 +1658,7 @@ static int __maybe_unused swrm_runtime_suspend(struct device *dev)
if (irqd_irq_disabled(irq_get_irq_data(ctrl->wake_irq)))
enable_irq(ctrl->wake_irq);
}
-
+ dev_err(ctrl->dev, " %s: done \n", __func__);
return 0;
}
diff --git a/sound/soc/codecs/lpass-rx-macro.c b/sound/soc/codecs/lpass-rx-macro.c
index c4c54930b9ada..545f24c0620be 100644
--- a/sound/soc/codecs/lpass-rx-macro.c
+++ b/sound/soc/codecs/lpass-rx-macro.c
@@ -3437,6 +3437,7 @@ static int swclk_gate_enable(struct clk_hw *hw)
dev_err(rx->dev, "unable to prepare mclk\n");
return ret;
}
+ dev_err(rx->dev, " %s: %d \n", __func__, __LINE__);
rx_macro_mclk_enable(rx, true);
regmap_update_bits(rx->regmap, CDC_RX_CLK_RST_CTRL_SWR_CONTROL,
@@ -3456,6 +3457,7 @@ static void swclk_gate_disable(struct clk_hw *hw)
{
struct rx_macro *rx = to_rx_macro(hw);
+ dev_err(rx->dev, " %s: %d \n", __func__, __LINE__);
regmap_update_bits(rx->regmap, CDC_RX_CLK_RST_CTRL_SWR_CONTROL,
CDC_RX_SWR_CLK_EN_MASK, 0);
diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c
index 702ea07e5c2c5..76da3cdf7ac74 100644
--- a/sound/soc/codecs/lpass-tx-macro.c
+++ b/sound/soc/codecs/lpass-tx-macro.c
@@ -1854,6 +1854,7 @@ static int swclk_gate_enable(struct clk_hw *hw)
struct regmap *regmap = tx->regmap;
int ret;
+ dev_err(tx->dev, " %s: %d \n", __func__, __LINE__);
ret = clk_prepare_enable(tx->mclk);
if (ret) {
dev_err(tx->dev, "failed to enable mclk\n");
@@ -1877,6 +1878,7 @@ static void swclk_gate_disable(struct clk_hw *hw)
{
struct tx_macro *tx = to_tx_macro(hw);
struct regmap *regmap = tx->regmap;
+ dev_err(tx->dev, " %s: %d \n", __func__, __LINE__);
regmap_update_bits(regmap, CDC_TX_CLK_RST_CTRL_SWR_CONTROL,
CDC_TX_SWR_CLK_EN_MASK, 0x0);
@@ -1889,6 +1891,7 @@ static int swclk_gate_is_enabled(struct clk_hw *hw)
{
struct tx_macro *tx = to_tx_macro(hw);
int ret, val;
+ dev_err(tx->dev, " %s: %d \n", __func__, __LINE__);
regmap_read(tx->regmap, CDC_TX_CLK_RST_CTRL_SWR_CONTROL, &val);
ret = val & BIT(0);
diff --git a/sound/soc/codecs/lpass-va-macro.c b/sound/soc/codecs/lpass-va-macro.c
index b0b6cf29cba30..3113bc95f8b88 100644
--- a/sound/soc/codecs/lpass-va-macro.c
+++ b/sound/soc/codecs/lpass-va-macro.c
@@ -1332,6 +1332,7 @@ static int fsgen_gate_enable(struct clk_hw *hw)
struct regmap *regmap = va->regmap;
int ret;
+ dev_err(va->dev, " %s: %d \n", __func__, __LINE__);
ret = va_macro_mclk_enable(va, true);
if (!va->has_swr_master)
return ret;
@@ -1352,6 +1353,7 @@ static void fsgen_gate_disable(struct clk_hw *hw)
{
struct va_macro *va = to_va_macro(hw);
struct regmap *regmap = va->regmap;
+ dev_err(va->dev, " %s: %d \n", __func__, __LINE__);
if (va->has_swr_master)
regmap_update_bits(regmap, CDC_VA_CLK_RST_CTRL_SWR_CONTROL,
diff --git a/sound/soc/codecs/lpass-wsa-macro.c b/sound/soc/codecs/lpass-wsa-macro.c
index 88482ac316356..34947ca8b6092 100644
--- a/sound/soc/codecs/lpass-wsa-macro.c
+++ b/sound/soc/codecs/lpass-wsa-macro.c
@@ -2313,11 +2313,15 @@ static int wsa_macro_component_probe(struct snd_soc_component *comp)
static int swclk_gate_enable(struct clk_hw *hw)
{
+ struct wsa_macro *wsa = to_wsa_macro(hw);
+ dev_err(wsa->dev, " %s: %d \n", __func__, __LINE__);
return wsa_swrm_clock(to_wsa_macro(hw), true);
}
static void swclk_gate_disable(struct clk_hw *hw)
{
+ struct wsa_macro *wsa = to_wsa_macro(hw);
+ dev_err(wsa->dev, " %s: %d \n", __func__, __LINE__);
wsa_swrm_clock(to_wsa_macro(hw), false);
}
@@ -2326,6 +2330,7 @@ static int swclk_gate_is_enabled(struct clk_hw *hw)
struct wsa_macro *wsa = to_wsa_macro(hw);
int ret, val;
+ dev_err(wsa->dev, " %s: %d \n", __func__, __LINE__);
regmap_read(wsa->regmap, CDC_WSA_CLK_RST_CTRL_SWR_CONTROL, &val);
ret = val & BIT(0);
diff --git a/sound/soc/codecs/wcd938x-sdw.c b/sound/soc/codecs/wcd938x-sdw.c
index 1bf3c06a2b622..d9f40c7bede6c 100644
--- a/sound/soc/codecs/wcd938x-sdw.c
+++ b/sound/soc/codecs/wcd938x-sdw.c
@@ -161,6 +161,13 @@ EXPORT_SYMBOL_GPL(wcd938x_sdw_set_sdw_stream);
static int wcd9380_update_status(struct sdw_slave *slave,
enum sdw_slave_status status)
{
+
+ if (status == SDW_SLAVE_UNATTACHED)
+ dev_err(&slave->dev, "Unattached \n");
+
+ if (status == SDW_SLAVE_ATTACHED)
+ dev_err(&slave->dev, "Attached ...\n");
+
return 0;
}