astlpc: Fix dummy byte IRQ trigger ordering
The BT interface implementation may require pushing a dummy byte to
trigger an IRQ for a status update. Ensure we trigger the IRQ with the
dummy byte after we've updated the status.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: I8d354bae206741829bc73baa8a0c09cb5a98ce0e
diff --git a/astlpc.c b/astlpc.c
index ce94bf8..1a75742 100644
--- a/astlpc.c
+++ b/astlpc.c
@@ -123,6 +123,13 @@
data = 0xff;
status |= KCS_STATUS_OBF;
+ rc = astlpc->ops.kcs_write(astlpc->ops_data, MCTP_ASTLPC_KCS_REG_STATUS,
+ status);
+ if (rc) {
+ mctp_prwarn("KCS status write failed");
+ return -1;
+ }
+
rc = astlpc->ops.kcs_write(astlpc->ops_data, MCTP_ASTLPC_KCS_REG_DATA,
data);
if (rc) {
@@ -130,13 +137,6 @@
return -1;
}
-
- rc = astlpc->ops.kcs_write(astlpc->ops_data, MCTP_ASTLPC_KCS_REG_STATUS,
- status);
- if (rc) {
- mctp_prwarn("KCS status write failed");
- return -1;
- }
return 0;
}