[U-Boot] [PATCH] mvebu: turris_omnia: Fix PEX vs SATA detection for board topology

Stefan Roese sr at denx.de
Tue Aug 8 12:23:33 UTC 2017


On 04.08.2017 15:28, Marek BehĂșn wrote:
> The I2C reading in the PEX vs SATA detection code often fails on the
> first try. Try three times, as the code for EEPROM reading does.
> 
> Signed-off-by: Marek Behun <marek.behun at nic.cz>
> ---
>   board/CZ.NIC/turris_omnia/turris_omnia.c | 11 ++++++++---
>   1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/board/CZ.NIC/turris_omnia/turris_omnia.c b/board/CZ.NIC/turris_omnia/turris_omnia.c
> index 86926f8050..a4275091d2 100644
> --- a/board/CZ.NIC/turris_omnia/turris_omnia.c
> +++ b/board/CZ.NIC/turris_omnia/turris_omnia.c
> @@ -90,7 +90,7 @@ static struct serdes_map board_serdes_map_sata[] = {
>   static bool omnia_detect_sata(void)
>   {
>   	struct udevice *bus, *dev;
> -	int ret;
> +	int ret, retry = 3;
>   	u16 mode;
>   
>   	puts("SERDES0 card detect: ");
> @@ -106,8 +106,13 @@ static bool omnia_detect_sata(void)
>   		return false;
>   	}
>   
> -	ret = dm_i2c_read(dev, OMNIA_I2C_MCU_ADDR_STATUS, (uchar *) &mode, 2);
> -	if (ret) {
> +	for (; retry > 0; --retry) {
> +		ret = dm_i2c_read(dev, OMNIA_I2C_MCU_ADDR_STATUS, (uchar *) &mode, 2);
> +		if (!ret)
> +			break;
> +	}
> +
> +	if (!retry) {
>   		puts("I2C read failed! Default PEX\n");
>   		return false;
>   	}
> 

Applied to u-boot-marvell/master.

Thanks,
Stefan


More information about the U-Boot mailing list