From: Andrey Grodzovsky <[email protected]>

Let's just ignore the I2C_M_STOP hint from upper
layer for SMU I2C code as there is no clean
mapping between single per I2C message STOP flag
at the kernel I2C layer and the SMU, per each byte
STOP flag. We will just by default set it at the
end of the SMU I2C message.

Cc: Jean Delvare <[email protected]>
Cc: Alexander Deucher <[email protected]>
Cc: Andrey Grodzovsky <[email protected]>
Cc: Lijo Lazar <[email protected]>
Cc: Stanley Yang <[email protected]>
Cc: Hawking Zhang <[email protected]>
Signed-off-by: Andrey Grodzovsky <[email protected]>
Suggested-by: Lazar Lijo <[email protected]>
Signed-off-by: Luben Tuikov <[email protected]>
Reviewed-by: Luben Tuikov <[email protected]>
---
 drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c       | 4 ++--
 drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c         | 4 ++--
 drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c
index 72b02025b07e06..235e83e9f0feb7 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c
@@ -1951,9 +1951,9 @@ static int arcturus_i2c_xfer(struct i2c_adapter *i2c_adap,
                                cmd->CmdConfig |= I2C_CMD_WRITE;
                                cmd->RegisterAddr = msg->buf[j];
                        }
-                       if ((msg[i].flags & I2C_M_STOP) ||
-                           (!remaining_bytes))
+                       if (!remaining_bytes)
                                cmd->CmdConfig |= CMDCONFIG_STOP_MASK;
+
                        if ((j == 0) && !(msg[i].flags & I2C_M_NOSTART))
                                cmd->CmdConfig |= CMDCONFIG_RESTART_BIT;
                }
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
index 289d09a5d711b9..b94c5a1d3eb756 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
@@ -2746,9 +2746,9 @@ static int navi10_i2c_xfer(struct i2c_adapter *i2c_adap,
                                cmd->CmdConfig |= I2C_CMD_WRITE;
                                cmd->RegisterAddr = msg->buf[j];
                        }
-                       if ((msg[i].flags & I2C_M_STOP) ||
-                           (!remaining_bytes))
+                       if (!remaining_bytes)
                                cmd->CmdConfig |= CMDCONFIG_STOP_MASK;
+
                        if ((j == 0) && !(msg[i].flags & I2C_M_NOSTART))
                                cmd->CmdConfig |= CMDCONFIG_RESTART_BIT;
                }
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
index e8e57462ce9d64..2fa667a86c1a54 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
@@ -3434,9 +3434,9 @@ static int sienna_cichlid_i2c_xfer(struct i2c_adapter 
*i2c_adap,
                                cmd->CmdConfig |= CMDCONFIG_READWRITE_MASK;
                                cmd->ReadWriteData = msg->buf[j];
                        }
-                       if ((msg[i].flags & I2C_M_STOP) ||
-                           (!remaining_bytes))
+                       if (!remaining_bytes)
                                cmd->CmdConfig |= CMDCONFIG_STOP_MASK;
+
                        if ((j == 0) && !(msg[i].flags & I2C_M_NOSTART))
                                cmd->CmdConfig |= CMDCONFIG_RESTART_BIT;
                }
-- 
2.32.0

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to