From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:400c:c09::244; helo=mail-wm0-x244.google.com; envelope-from=leif.lindholm@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) (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 D6137210FC36D for ; Wed, 22 Aug 2018 09:46:11 -0700 (PDT) Received: by mail-wm0-x244.google.com with SMTP id o18-v6so2905341wmc.0 for ; Wed, 22 Aug 2018 09:46:11 -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=MHRo/aWm/zCqTUJNRSBaIrxnZ0jbanDykOUds3NWesE=; b=acxY1CUmGhJEmq/l/ZIpjDzG4aPG92wQUpUZPCkVASU07/LSre2B71WAxPAI5V1XET orGaAqibO1qeR6uYEPK/a+qELeg57Sqfc27zRCE2Wh5NKaGyWZxFViE0agmridZk2+mo P+BlF/wwyhMSauFxsgqKWhmTybrsxvd8Y4ZQo= 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=MHRo/aWm/zCqTUJNRSBaIrxnZ0jbanDykOUds3NWesE=; b=cEDjaCOP61T3mrZs7meYXxwhWs8bcbyBd26iFcbQ8P7Npx6+v7HSKLqbxlyl2yiu6d H0yQ1hbWdfegKkMHq7mDToZ7OW/sJU52P8VKklzQYp5RaBhIEvvGLgNMVSRB3EIewlfY I1pIwEDuRiYePkHdmnJgkDiawUeFZl0hxNzTng08SX62vX6sBjqGuaNpjEH5JtSRnh9b C1Pgfc50Bt13r05TNrlbhTnPeEMq01XT0uTHLnYLfDz0WrFatLm2gQORkX/9oNwOA+BI vn3bT3tF4Uyx5EJ72YxNfVOA0BcQyqaUupC7Ylr7Be4QcAGBY97d0n+eJDgnZLGF9c4V gIBw== X-Gm-Message-State: APzg51A91Vxz2Bf95wsCrQLveYJPYgehJ6WCwAVyVm7sxZhBsfTWMlld +aitKx11ALAC2Jr9Z6wyEcx18s5jINI= X-Google-Smtp-Source: ANB0VdZ8idCRLuxVUtE0rbVAwTtvVKmcNVfInwjLszPZss6XOD2LiAEdtig4kxCNJKYtDY6XmyqDbQ== X-Received: by 2002:a1c:c95:: with SMTP id 143-v6mr3010087wmm.50.1534956370287; Wed, 22 Aug 2018 09:46:10 -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 1-v6sm2784937wmf.47.2018.08.22.09.46.08 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 22 Aug 2018 09:46:09 -0700 (PDT) Date: Wed, 22 Aug 2018 17:46:07 +0100 From: Leif Lindholm To: Ming Cc: linaro-uefi@lists.linaro.org, edk2-devel@lists.01.org, graeme.gregory@linaro.org, ard.biesheuvel@linaro.org, michael.d.kinney@intel.com, lersek@redhat.com, guoheyi@huawei.com, wanghuiqiang@huawei.com, huangming23@huawei.com, zhangjinsong2@huawei.com, huangdaode@hisilicon.com, john.garry@huawei.com, xinliang.liu@linaro.org Message-ID: <20180822164607.6myiryou2kjivswu@bivouac.eciton.net> References: <20180814080903.50466-1-ming.huang@linaro.org> <20180814080903.50466-24-ming.huang@linaro.org> <20180822142718.bouajgji4hhu7zqm@bivouac.eciton.net> <92661354-2ea7-4e8a-76d1-603b0d59f1c4@linaro.org> MIME-Version: 1.0 In-Reply-To: <92661354-2ea7-4e8a-76d1-603b0d59f1c4@linaro.org> User-Agent: NeoMutt/20170113 (1.7.2) Subject: Re: [PATCH edk2-platforms v2 23/43] Silicon/Hisilicon/D06: Add I2C delay for HNS auto config X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Aug 2018 16:46:12 -0000 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Wed, Aug 22, 2018 at 11:16:26PM +0800, Ming wrote: > > > On 8/22/2018 10:27 PM, Leif Lindholm wrote: > > On Tue, Aug 14, 2018 at 04:08:43PM +0800, Ming Huang wrote: > >> Because I2C Port5 salve device connect under I2C extender > >> (9545 device), it will cost more time to access I2C slave > >> device, so add delay time for HNS auto config. > >> > >> Contributed-under: TianoCore Contribution Agreement 1.1 > >> Signed-off-by: Ming Huang > >> --- > >> Silicon/Hisilicon/Library/I2CLib/I2CHw.h | 3 +++ > >> Silicon/Hisilicon/Library/I2CLib/I2CLib.c | 21 +++++++++++++++----- > >> 2 files changed, 19 insertions(+), 5 deletions(-) > > > > Like previous patch, please change subject line - this affects d03, > > d05, d06. > > > > Silicon/Hisilicon: Add I2CLib delay for HNS auto config > > Should this patch reorder before the first D06 patch ? Yes please. / Leif > > > >> diff --git a/Silicon/Hisilicon/Library/I2CLib/I2CHw.h b/Silicon/Hisilicon/Library/I2CLib/I2CHw.h > >> index fa954c7937..d77aea509e 100644 > >> --- a/Silicon/Hisilicon/Library/I2CLib/I2CHw.h > >> +++ b/Silicon/Hisilicon/Library/I2CLib/I2CHw.h > >> @@ -19,6 +19,9 @@ > >> #include > >> #include > >> > >> +// The HNS I2C port 5 is under I2C extender > >> +#define I2C_EXTENDER_PORT_HNS 5 > >> + > >> #define I2C_READ_TIMEOUT 500 > >> #define I2C_DRV_ONCE_WRITE_BYTES_NUM 8 > >> #define I2C_DRV_ONCE_READ_BYTES_NUM 8 > >> diff --git a/Silicon/Hisilicon/Library/I2CLib/I2CLib.c b/Silicon/Hisilicon/Library/I2CLib/I2CLib.c > >> index d67ddc7f9b..59633106ce 100644 > >> --- a/Silicon/Hisilicon/Library/I2CLib/I2CLib.c > >> +++ b/Silicon/Hisilicon/Library/I2CLib/I2CLib.c > >> @@ -258,8 +258,13 @@ CheckI2CTimeOut ( > >> if (Transfer == I2CTx) { > >> Fifo = I2C_GetTxStatus (Socket, Port); > >> while (Fifo != 0) { > >> - // This is a empirical value for I2C delay. MemoryFance is no need here. > >> - I2C_Delay (2); > >> + if (Port == I2C_EXTENDER_PORT_HNS) { > >> + // This is a empirical value for I2C delay. MemoryFance is no need here. > > > > MemoryFance -> > > MemoryFence > > > > (You may want to search and replace that on the whole set.) > > > > With that: > > Reviewed-by: Leif Lindholm > > Replace they in v4. > Thanks. > > > > > / > > Leif > > > >> + I2C_Delay (1000); > >> + } else { > >> + // This is a empirical value for I2C delay. MemoryFance is no need here. > >> + I2C_Delay (2); > >> + } > >> if (++Times > I2C_READ_TIMEOUT) { > >> (VOID)I2C_Disable (Socket, Port); > >> return EFI_TIMEOUT; > >> @@ -269,8 +274,13 @@ CheckI2CTimeOut ( > >> } else { > >> Fifo = I2C_GetRxStatus (Socket, Port); > >> while (Fifo == 0) { > >> - // This is a empirical value for I2C delay. MemoryFance is no need here. > >> - I2C_Delay (2); > >> + if (Port == I2C_EXTENDER_PORT_HNS) { > >> + // This is a empirical value for I2C delay. MemoryFance is no need here. > >> + I2C_Delay (1000); > >> + } else { > >> + // This is a empirical value for I2C delay. MemoryFance is no need here. > >> + I2C_Delay (2); > >> + } > >> if (++Times > I2C_READ_TIMEOUT) { > >> (VOID)I2C_Disable (Socket, Port); > >> return EFI_TIMEOUT; > >> @@ -369,7 +379,8 @@ I2CWrite( > >> Times = 0; > >> Fifo = I2C_GetTxStatus (I2cInfo->Socket, I2cInfo->Port); > >> while (Fifo > I2C_TXRX_THRESHOLD) { > >> - I2C_Delay (2); > >> + // This is a empirical value for I2C delay. MemoryFance is no need here. > >> + I2C_Delay (1000); > >> if (++Times > I2C_READ_TIMEOUT) { > >> (VOID)I2C_Disable (I2cInfo->Socket, I2cInfo->Port); > >> return EFI_TIMEOUT; > >> -- > >> 2.17.0 > >>