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

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

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

parents 57705d7b 101e7169
Loading
Loading
Loading
Loading
+13 −7
Original line number Original line Diff line number Diff line
@@ -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;


	do {
		ret = swr_get_logical_dev_num(swr_dev, swr_dev->addr, &devnum);
		ret = swr_get_logical_dev_num(swr_dev, swr_dev->addr, &devnum);
		if (ret) {
		if (ret) {
			dev_err(&swr_dev->dev,
			dev_err(&swr_dev->dev,
				"%s get devnum %d for dev addr %lx failed\n",
				"%s get devnum %d for dev addr %lx failed\n",
				__func__, devnum, swr_dev->addr);
				__func__, devnum, swr_dev->addr);
		return ret;
			/* 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;
}
}