diff options
author | Yu-Ping Wu <yupingso@chromium.org> | 2021-11-25 16:28:13 +0800 |
---|---|---|
committer | Hung-Te Lin <hungte@chromium.org> | 2021-12-02 08:23:55 +0000 |
commit | 734a777d94b2f4b74cb635e6159f1440195642e9 (patch) | |
tree | 95080c2479fabfbbf0b387d6bb25a6632d1d261a | |
parent | 0c9b1deb63483a031d1014b615f1c207e1e250fe (diff) |
drivers/analogix/anx7625: Utilize retry() macro
Utilize retry() macro in wait_aux_op_finish() and anx7625_init() to
simplify the code.
BUG=none
TEST=emerge-asurada coreboot
BRANCH=none
Change-Id: I207e7075e8ac905efd5f201dd54658dedf531568
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/59659
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
-rw-r--r-- | src/drivers/analogix/anx7625/anx7625.c | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/src/drivers/analogix/anx7625/anx7625.c b/src/drivers/analogix/anx7625/anx7625.c index 153266c522..81f27d0db0 100644 --- a/src/drivers/analogix/anx7625/anx7625.c +++ b/src/drivers/analogix/anx7625/anx7625.c @@ -6,6 +6,7 @@ #include <edid.h> #include <gpio.h> #include <string.h> +#include <types.h> #include "anx7625.h" @@ -133,20 +134,11 @@ static int anx7625_write_and(uint8_t bus, uint8_t saddr, uint8_t offset, static int wait_aux_op_finish(uint8_t bus) { uint8_t val; - int loop; - int success = 0; int ret; - for (loop = 0; loop < 150; loop++) { - mdelay(2); - anx7625_reg_read(bus, RX_P0_ADDR, AP_AUX_CTRL_STATUS, &val); - if (!(val & AP_AUX_CTRL_OP_EN)) { - success = 1; - break; - } - } - - if (!success) { + if (!retry(150, + (anx7625_reg_read(bus, RX_P0_ADDR, AP_AUX_CTRL_STATUS, &val), + !(val & AP_AUX_CTRL_OP_EN)), mdelay(2))) { ANXERROR("Timed out waiting aux operation.\n"); return -1; } @@ -874,13 +866,8 @@ int anx7625_dp_get_edid(uint8_t bus, struct edid *out) int anx7625_init(uint8_t bus) { int retry_hpd_change = 50; - int retry_power_on = 3; - while (--retry_power_on) { - if (anx7625_power_on_init(bus) >= 0) - break; - } - if (!retry_power_on) { + if (!retry(3, anx7625_power_on_init(bus) >= 0)) { ANXERROR("Failed to power on.\n"); return -1; } |