Commit c94d1459d4 for qemu.org
commit c94d1459d4010f9f554740ef69e036c28560975b
Author: Stefan Berger <stefanb@linux.vnet.ibm.com>
Date: Wed Apr 29 12:17:42 2026 +0000
tests: Check whether the I2C master flag is set
Replace the 'once' variable with a check for whether the master flag is
set so that the flag can be set when needed.
Reviewed-by: Arun Menon <armenon@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20260429121743.1346635-6-stefanb@linux.ibm.com
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
diff --git a/tests/qtest/qtest_aspeed.c b/tests/qtest/qtest_aspeed.c
index f6da9adea9..7bf5abb9be 100644
--- a/tests/qtest/qtest_aspeed.c
+++ b/tests/qtest/qtest_aspeed.c
@@ -15,18 +15,21 @@
#include "qtest_aspeed.h"
#include "hw/i2c/aspeed_i2c.h"
+static bool aspeed_i2c_is_master_enabled(QTestState *s, uint32_t baseaddr)
+{
+ return qtest_readl(s, baseaddr + A_I2CC_FUN_CTRL) & A_I2CD_MASTER_EN;
+}
+
static void aspeed_i2c_startup(QTestState *s, uint32_t baseaddr,
uint8_t slave_addr, uint8_t reg)
{
uint32_t v;
- static int once;
- if (!once) {
+ if (!aspeed_i2c_is_master_enabled(s, baseaddr)) {
/* one time: enable master */
qtest_writel(s, baseaddr + A_I2CC_FUN_CTRL, 0);
v = qtest_readl(s, baseaddr + A_I2CC_FUN_CTRL) | A_I2CD_MASTER_EN;
qtest_writel(s, baseaddr + A_I2CC_FUN_CTRL, v);
- once = 1;
}
/* select device */