Merge "asoc: wcd937x: Update retry logic for SWR logical addr"

This commit is contained in:
qctecmdr
2020-04-26 23:42:49 -07:00
committed by Gerrit - the friendly Code Review server

View File

@@ -38,6 +38,8 @@
#define WCD937X_VERSION_ENTRY_SIZE 32 #define WCD937X_VERSION_ENTRY_SIZE 32
#define EAR_RX_PATH_AUX 1 #define EAR_RX_PATH_AUX 1
#define NUM_ATTEMPTS 5
enum { enum {
CODEC_TX = 0, CODEC_TX = 0,
CODEC_RX, CODEC_RX,
@@ -1544,14 +1546,18 @@ static int wcd937x_get_logical_addr(struct swr_device *swr_dev)
{ {
int ret = 0; int ret = 0;
uint8_t devnum = 0; uint8_t devnum = 0;
int num_retry = NUM_ATTEMPTS;
ret = swr_get_logical_dev_num(swr_dev, swr_dev->addr, &devnum); do {
if (ret) { ret = swr_get_logical_dev_num(swr_dev, swr_dev->addr, &devnum);
dev_err(&swr_dev->dev, if (ret) {
"%s get devnum %d for dev addr %lx failed\n", dev_err(&swr_dev->dev,
__func__, devnum, swr_dev->addr); "%s get devnum %d for dev addr %lx failed\n",
return ret; __func__, devnum, swr_dev->addr);
} /* retry after 1ms */
usleep_range(1000, 1010);
}
} while (ret && --num_retry);
swr_dev->dev_num = devnum; swr_dev->dev_num = devnum;
return 0; return 0;
} }