From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:4864:20::441; helo=mail-wr1-x441.google.com; envelope-from=leif.lindholm@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id CDE04210D83F5 for ; Fri, 3 Aug 2018 03:40:30 -0700 (PDT) Received: by mail-wr1-x441.google.com with SMTP id b15-v6so4953356wrv.10 for ; Fri, 03 Aug 2018 03:40:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=cNoLZ53o6X+IAUFBgHc+wasDoA7ghzEP67tjPUuv2vY=; b=QgxEoFBPcqZwJ5CF7u/5XJCVav1j5cOp9UwtGzWGOyQv5zffUmOtTWyKcAqGC5ME++ XCJ+NkR2Uwg6YxlNkj7blVz0+ia1UGL0647VmmjbW830GnZJcgy75mewZ0bG+eSRxAft exjPaSIdtbtAyCEXOVRYInNIOAY4KZIWcAZ9g= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=cNoLZ53o6X+IAUFBgHc+wasDoA7ghzEP67tjPUuv2vY=; b=tfeidaG4glx4KHqnTHneWA+wYc6JZccq1CxubVJZAYV/s9gTss4Ut1iZIUOw60aZ/H bAQV2Ass5L1pegiqYqClDYxdJbhG8wz+E2B8fuxdmXuZgM2MqjVRNg7J4nIbR8dzXckK 5qruI1RFc8yVXt/0EW8TKATZSU5OmIym7NQ0AWZbrKEEAgN71W3VwISv4MhCEjgjpsPN vkVJthPTKDJI6dOoLYPBat/h/d5iKEmhEPAZ/TFBLc4O99RWBYsVW7Mi+oNUdgZrw0Ma u7iqWk1eG9QhcBnRpjj3Qk30aq792rXwJvKWCMyFWicVCjSYK0qAM0kCHZ6nXeoLJVEe yRkw== X-Gm-Message-State: AOUpUlFKXyPoqPEL5U5XfoyDLUaAcWTVjrJQ6QaxRBM+humdSan3po/C nMc/JSzJ05cLFfjLpD35x5xa4H3rm2g= X-Google-Smtp-Source: AA+uWPzTqzWRdJmwpmcM3PIDHRRx4ejDblgvl+MEqOZ77Zp1i6B6q98xXOOOxkM5wTABhjJ1SHNTpg== X-Received: by 2002:adf:f585:: with SMTP id f5-v6mr1342344wro.59.1533292829181; Fri, 03 Aug 2018 03:40:29 -0700 (PDT) Received: from bivouac.eciton.net (bivouac.eciton.net. [2a00:1098:0:86:1000:23:0:2]) by smtp.gmail.com with ESMTPSA id w204-v6sm5306934wmw.5.2018.08.03.03.40.27 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 03 Aug 2018 03:40:28 -0700 (PDT) Date: Fri, 3 Aug 2018 11:40:26 +0100 From: Leif Lindholm To: Ming Huang Cc: linaro-uefi@lists.linaro.org, edk2-devel@lists.01.org, graeme.gregory@linaro.org, ard.biesheuvel@linaro.org, guoheyi@huawei.com, wanghuiqiang@huawei.com, huangming23@huawei.com, zhangjinsong2@huawei.com, huangdaode@hisilicon.com, john.garry@huawei.com, xinliang.liu@linaro.org, shaochangliang , Heyi Guo Message-ID: <20180803104026.24akijoykt2xjwhq@bivouac.eciton.net> References: <20180724070922.63362-1-ming.huang@linaro.org> <20180724070922.63362-15-ming.huang@linaro.org> MIME-Version: 1.0 In-Reply-To: <20180724070922.63362-15-ming.huang@linaro.org> User-Agent: NeoMutt/20170113 (1.7.2) Subject: Re: [PATCH edk2-platforms v1 14/38] Silicon/Hisilicon/D06: Fix I2C enable fail issue for D06 X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Aug 2018 10:40:31 -0000 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Tue, Jul 24, 2018 at 03:08:58PM +0800, Ming Huang wrote: > From: shaochangliang > > I2C may enable failed in D06, so retry I2C enable while > enable failed. > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: shaochangliang > Signed-off-by: Ming Huang > Signed-off-by: Heyi Guo > --- > Silicon/Hisilicon/Library/I2CLib/I2CLib.c | 22 ++++++++++++-------- > 1 file changed, 13 insertions(+), 9 deletions(-) > > diff --git a/Silicon/Hisilicon/Library/I2CLib/I2CLib.c b/Silicon/Hisilicon/Library/I2CLib/I2CLib.c > index b5b388d756..ecd2f07c4d 100644 > --- a/Silicon/Hisilicon/Library/I2CLib/I2CLib.c > +++ b/Silicon/Hisilicon/Library/I2CLib/I2CLib.c > @@ -83,6 +83,7 @@ I2C_Enable(UINT32 Socket,UINT8 Port) > { > I2C0_ENABLE_U I2cEnableReg; Ugh, indentation is incorrect in the original. Can you correct that in a patch preceding this one? > I2C0_ENABLE_STATUS_U I2cEnableStatusReg; > + UINT32 ulTimeCnt = I2C_READ_TIMEOUT; What is ul? > > UINTN Base = GetI2cBase(Socket, Port); > > @@ -91,16 +92,19 @@ I2C_Enable(UINT32 Socket,UINT8 Port) > I2cEnableReg.bits.enable = 1; > I2C_REG_WRITE(Base + I2C_ENABLE_OFFSET, I2cEnableReg.Val32); > > - > - I2C_REG_READ(Base + I2C_ENABLE_STATUS_OFFSET, I2cEnableStatusReg.Val32); > - if (1 == I2cEnableStatusReg.bits.ic_en) > + do > { Move that brace up to the previous line. > - return EFI_SUCCESS; > - } > - else > - { > - return EFI_DEVICE_ERROR; > - } > + I2C_Delay(10000); Why 10000? Do we need a MemoryFence ()? > + > + ulTimeCnt--; > + I2C_REG_READ(Base + I2C_ENABLE_STATUS_OFFSET, I2cEnableStatusReg.Val32); > + if (0 == ulTimeCnt) > + { Move that brace up to previous line. > + return EFI_DEVICE_ERROR; > + } > + }while (0 == I2cEnableStatusReg.bits.ic_en); Space after } / Leif > + > + return EFI_SUCCESS; > } > > void I2C_SetTarget(UINT32 Socket,UINT8 Port,UINT32 I2cDeviceAddr) > -- > 2.17.0 >