[U-Boot] [RFC 1/1] dm: video: tegra124: incorrect logical condition

Anatolij Gustschin agust at denx.de
Tue Mar 6 10:08:26 UTC 2018


Hi all,

On Wed, 31 Jan 2018 01:16:07 +0100
Heinrich Schuchardt xypron.glpk at gmx.de wrote:

> 2 << 24 | A is always true. To use check against a bitmask we need &.

it is always true, but here we are not checking against a bitmask, so
the patch is wrong.

We set or clear register bit (depending on 'is_lvds' value) together
with another register bits for ROTCLK config.

So, I think the code should be

    2 << CSTM_ROTCLK_SHIFT |
    (is_lvds ? CSTM_LVDS_EN_ENABLE : CSTM_LVDS_EN_DISABLE)

But I do not have the hardware to test. Maybe Simon ?

> Identified with cppcheck.
> 
> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
> ---
> I do not have the hardware available. But the current coding is fishy.
> 
> Please, clarify what should be coded here.
> ---
>  drivers/video/tegra124/sor.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/video/tegra124/sor.c b/drivers/video/tegra124/sor.c
> index 700ab25d46..4b3381fae2 100644
> --- a/drivers/video/tegra124/sor.c
> +++ b/drivers/video/tegra124/sor.c
> @@ -669,7 +669,7 @@ static void tegra_dc_sor_config_panel(struct tegra_dc_sor_data *sor,
>  	tegra_sor_write_field(sor, CSTM,
>  			      CSTM_ROTCLK_DEFAULT_MASK |
>  			      CSTM_LVDS_EN_ENABLE,
> -			      2 << CSTM_ROTCLK_SHIFT |
> +			      2 << CSTM_ROTCLK_SHIFT &
>  			      is_lvds ? CSTM_LVDS_EN_ENABLE :
>  			      CSTM_LVDS_EN_DISABLE);
>  

Thanks,

Anatolij


More information about the U-Boot mailing list