From mboxrd@z Thu Jan 1 00:00:00 1970 From: Grygorii Strashko Subject: Re: [PATCHv2 1/2] drivers: net: davinci_mdio: remove busy loop on wait user access Date: Thu, 10 Aug 2017 11:24:50 -0500 Message-ID: References: <1502351267-23841-1-git-send-email-muvarov@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1502351267-23841-1-git-send-email-muvarov@gmail.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org To: Max Uvarov , netdev@vger.kernel.org Cc: linux-omap@vger.kernel.org List-Id: linux-omap@vger.kernel.org On 08/10/2017 02:47 AM, Max Uvarov wrote: > Polling 14 mdio devices on single mdio bus eats 30% of 1Ghz cpu time > due to busy loop in wait(). Add small delay to relax cpu. > > Signed-off-by: Max Uvarov yep. cover letter is good to have. Reviewed-by: Grygorii Strashko > --- > v2: fix spelling in commit description. > > drivers/net/ethernet/ti/davinci_mdio.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c > index 33df340..611e7cc 100644 > --- a/drivers/net/ethernet/ti/davinci_mdio.c > +++ b/drivers/net/ethernet/ti/davinci_mdio.c > @@ -198,8 +198,10 @@ static inline int wait_for_user_access(struct davinci_mdio_data *data) > return 0; > > reg = __raw_readl(®s->control); > - if ((reg & CONTROL_IDLE) == 0) > + if ((reg & CONTROL_IDLE) == 0) { > + usleep_range(100, 200); > continue; > + } > > /* > * An emac soft_reset may have clobbered the mdio controller's > -- regards, -grygorii