From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 528B5C43613 for ; Fri, 21 Jun 2019 13:09:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id F25DB21530 for ; Fri, 21 Jun 2019 13:09:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=fau.de header.i=@fau.de header.b="B/x9jBWw" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726877AbfFUNJy (ORCPT ); Fri, 21 Jun 2019 09:09:54 -0400 Received: from mx-rz-2.rrze.uni-erlangen.de ([131.188.11.21]:60433 "EHLO mx-rz-2.rrze.uni-erlangen.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726285AbfFUNJy (ORCPT ); Fri, 21 Jun 2019 09:09:54 -0400 X-Greylist: delayed 473 seconds by postgrey-1.27 at vger.kernel.org; Fri, 21 Jun 2019 09:09:52 EDT Received: from mx-rz-smart.rrze.uni-erlangen.de (mx-rz-smart.rrze.uni-erlangen.de [IPv6:2001:638:a000:1025::1e]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by mx-rz-2.rrze.uni-erlangen.de (Postfix) with ESMTPS id 45Vf3B4LpFzPkKs; Fri, 21 Jun 2019 15:01:58 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fau.de; s=fau-2013; t=1561122118; bh=EG7lcFvB9T+O8vsdLpuJUEMt1JSbCZEPsjwogrh6WHo=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From:To:CC: Subject; b=B/x9jBWwEqhqn9sQNqIeXhuRPL/5F4qDqijp4jtBV0dRJVUMUrd4wRRpcBcMhW2JL 6WUwVeu+tkoe1cy1mdiYFVwhzkSgcu29YzBr3qVKTCGRWXCrnYuX1z8sbqPMavxJdd P43GVEPotpl0IRqq2wwxePez975yDvFAHGNfeZ+iE/FV7Y9Gto3A0bUcsH9u0QEwtF XRuwOYQRkDhPW+gs882c3Hik8hyhZJSIOHXQ1i/kqstq0UYTdViV0n/Jk2B296UVi3 95HxWa7+gZsMvXcSlyAkJN9mf7Bt42boDd5EIiuOKDE3F/YlvoSjCiVJSdwd3kc0da Xsez3QG1/uDuA== X-Virus-Scanned: amavisd-new at boeck4.rrze.uni-erlangen.de (RRZE) X-RRZE-Flag: Not-Spam X-RRZE-Submit-IP: 2003:ea:371a:4600:e106:19f8:34a7:eaec Received: from [IPv6:2003:ea:371a:4600:e106:19f8:34a7:eaec] (p200300EA371A4600E10619F834A7EAEC.dip0.t-ipconnect.de [IPv6:2003:ea:371a:4600:e106:19f8:34a7:eaec]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: U2FsdGVkX19ZePNdXmNy1kvc6Mw6MaNW3XSCvzEfcTA=) by smtp-auth.uni-erlangen.de (Postfix) with ESMTPSA id 45Vf3272gLzPkfT; Fri, 21 Jun 2019 15:01:50 +0200 (CEST) Subject: Re: [PATCH 4/4] rts5208: Fix usleep range is preferred over udelay To: Pavel Machek Cc: kim.jamie.bradley@gmail.com, pakki001@umn.edu, colin.king@canonical.com, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, Jannik Moritz , linux-kernel@i4.cs.fau.de References: <20190619154648.13840-1-lukas.s.schneider@fau.de> <20190619154648.13840-4-lukas.s.schneider@fau.de> <20190621110405.GG24145@amd> From: Lukas Schneider Message-ID: <1e397063-9cf2-69d3-84fe-53c5776f2c5b@fau.de> Date: Fri, 21 Jun 2019 15:01:38 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.7.1 MIME-Version: 1.0 In-Reply-To: <20190621110405.GG24145@amd> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am 21.06.2019 um 13:04 schrieb Pavel Machek: > On Wed 2019-06-19 17:46:48, Lukas Schneider wrote: >> This patch fixes the issue reported by checkpatch: >> >> CHECK: usleep_range is preferred over udelay; >> see Doucmentation/timers/timers-howto.txt >> >> It's save to sleep here instead of using busy waiting, >> because we are not in an atomic context. > Is it good idea? How can the system really sleep for 50 usec? > > Pavel According to Doucmentation/timers/timers-howto.txt, usleep_range should be used for sleep times between 10us and 20ms, so it is the correct function for 50us. Lukas >> @@ -865,7 +865,7 @@ static int sd_change_phase(struct rtsx_chip *chip, u8 sample_point, u8 tune_dir) >> PHASE_CHANGE); >> if (retval) >> return retval; >> - udelay(50); >> + usleep_range(50, 60); >> retval = rtsx_write_register(chip, SD_VP_CTL, 0xFF, >> PHASE_CHANGE | >> PHASE_NOT_RESET | >> @@ -877,14 +877,14 @@ static int sd_change_phase(struct rtsx_chip *chip, u8 sample_point, u8 tune_dir) >> CHANGE_CLK, CHANGE_CLK); >> if (retval) >> return retval; >> - udelay(50); >> + usleep_range(50, 60); >> retval = rtsx_write_register(chip, SD_VP_CTL, 0xFF, >> PHASE_NOT_RESET | >> sample_point); >> if (retval) >> return retval; >> } >> - udelay(100); >> + usleep_range(100, 110); >> >> rtsx_init_cmd(chip); >> rtsx_add_cmd(chip, WRITE_REG_CMD, SD_DCMPS_CTL, DCMPS_CHANGE, >> @@ -918,7 +918,7 @@ static int sd_change_phase(struct rtsx_chip *chip, u8 sample_point, u8 tune_dir) >> return retval; >> } >> >> - udelay(50); >> + usleep_range(50, 60); >> } >> >> retval = rtsx_write_register(chip, SD_CFG1, SD_ASYNC_FIFO_NOT_RST, 0); >> @@ -1416,7 +1416,7 @@ static int sd_wait_data_idle(struct rtsx_chip *chip) >> retval = STATUS_SUCCESS; >> break; >> } >> - udelay(100); >> + usleep_range(100, 110); >> } >> dev_dbg(rtsx_dev(chip), "SD_DATA_STATE: 0x%02x\n", val); >>