[PATCH 15/40] drm/amdgpu: Send STOP for the last byte of msg only

Alex Deucher alexdeucher at gmail.com
Thu Jun 10 20:22:29 UTC 2021


On Tue, Jun 8, 2021 at 5:40 PM Luben Tuikov <luben.tuikov at amd.com> wrote:
>
> From: Andrey Grodzovsky <andrey.grodzovsky at amd.com>
>
> 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 <jdelvare at suse.de>
> Cc: Alexander Deucher <Alexander.Deucher at amd.com>
> Cc: Andrey Grodzovsky <Andrey.Grodzovsky at amd.com>
> Cc: Lijo Lazar <Lijo.Lazar at amd.com>
> Cc: Stanley Yang <Stanley.Yang at amd.com>
> Cc: Hawking Zhang <Hawking.Zhang at amd.com>
> Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky at amd.com>
> Suggested-by: Lazar Lijo <Lijo.Lazar at amd.com>
> Signed-off-by: Luben Tuikov <luben.tuikov at amd.com>
> Reviewed-by: Luben Tuikov <luben.tuikov at amd.com>

Acked-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  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
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list