ASoC: wcd937x: Reduce latency in case of impedance detection
Bulk read api does not work properly for swr regmap, causing failure/delay in impedance detection. Use regmap read api to avoid the issue. CRs-Fixed: 2301798 Change-Id: I5727cfcb7846f40f5b0f75b7976b492e2a2bfde0 Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
This commit is contained in:
@@ -413,8 +413,10 @@ static inline void wcd937x_mbhc_get_result_params(struct wcd937x_priv *wcd937x,
|
|||||||
ramp_down:
|
ramp_down:
|
||||||
i = 0;
|
i = 0;
|
||||||
while (x1) {
|
while (x1) {
|
||||||
regmap_bulk_read(wcd937x->regmap,
|
regmap_read(wcd937x->regmap, WCD937X_ANA_MBHC_RESULT_1, &val);
|
||||||
WCD937X_ANA_MBHC_RESULT_1, (u8 *)&val, 2);
|
regmap_read(wcd937x->regmap, WCD937X_ANA_MBHC_RESULT_2, &val1);
|
||||||
|
val = val << 0x8;
|
||||||
|
val |= val1;
|
||||||
x1 = WCD937X_MBHC_GET_X1(val);
|
x1 = WCD937X_MBHC_GET_X1(val);
|
||||||
i++;
|
i++;
|
||||||
if (i == WCD937X_ZDET_NUM_MEASUREMENTS)
|
if (i == WCD937X_ZDET_NUM_MEASUREMENTS)
|
||||||
@@ -972,7 +974,7 @@ int wcd937x_mbhc_post_ssr_init(struct wcd937x_mbhc *mbhc,
|
|||||||
|
|
||||||
wcd_mbhc_deinit(wcd_mbhc);
|
wcd_mbhc_deinit(wcd_mbhc);
|
||||||
ret = wcd_mbhc_init(wcd_mbhc, codec, &mbhc_cb, &intr_ids,
|
ret = wcd_mbhc_init(wcd_mbhc, codec, &mbhc_cb, &intr_ids,
|
||||||
wcd_mbhc_registers, false);
|
wcd_mbhc_registers, WCD937X_ZDET_SUPPORTED);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(codec->dev, "%s: mbhc initialization failed\n",
|
dev_err(codec->dev, "%s: mbhc initialization failed\n",
|
||||||
__func__);
|
__func__);
|
||||||
@@ -1024,7 +1026,7 @@ int wcd937x_mbhc_init(struct wcd937x_mbhc **mbhc, struct snd_soc_codec *codec,
|
|||||||
|
|
||||||
ret = wcd_mbhc_init(wcd_mbhc, codec, &mbhc_cb,
|
ret = wcd_mbhc_init(wcd_mbhc, codec, &mbhc_cb,
|
||||||
&intr_ids, wcd_mbhc_registers,
|
&intr_ids, wcd_mbhc_registers,
|
||||||
false);
|
WCD937X_ZDET_SUPPORTED);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(codec->dev, "%s: mbhc initialization failed\n",
|
dev_err(codec->dev, "%s: mbhc initialization failed\n",
|
||||||
__func__);
|
__func__);
|
||||||
|
Reference in New Issue
Block a user