From 734a777d94b2f4b74cb635e6159f1440195642e9 Mon Sep 17 00:00:00 2001 From: Yu-Ping Wu Date: Thu, 25 Nov 2021 16:28:13 +0800 Subject: [PATCH] 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 Reviewed-on: https://review.coreboot.org/c/coreboot/+/59659 Tested-by: build bot (Jenkins) Reviewed-by: Hung-Te Lin --- src/drivers/analogix/anx7625/anx7625.c | 23 +++++------------------ 1 file 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 #include #include +#include #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; }