From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: ACJfBovueFL6UrC6bBy/9VtJRPWwpmuaVEwWSCyGQA0Ww2qv0R9MTgjtUwRbsQFNKSzXNacveOme ARC-Seal: i=1; a=rsa-sha256; t=1516370888; cv=none; d=google.com; s=arc-20160816; b=EVuFYTKe/NWkOVyAZXQu5CGkEe83DyFNWQLlZzWa0py6dSgEMGzyf7X4bIKNl+abGr H08JsmxgNvjByegqC5Cg9FcT6uHceSeiv6xupAFHiezSEf38OE1bB1e7yA12xn5cB6JR tTts9mvJ8er9FuuYiYjQrZ7RPnOIWXIbo5kPHChOhOtSxaMBj4f6MSJThl39OCzGHcUh nAyefUOvEuRjUPc0f5eRiOylj/Sxc/gnPsaT54rn87JwBlUAXT9fK+sg/uJ87CHz1z+t htDG217kwz/t2C6obPuZ4VwiAOE5wPdd6ERGShnLsEFw8flkn4eKjynYv2c9Gcrf2v4S 1Zpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:content-language:in-reply-to:mime-version :user-agent:date:message-id:from:references:to:subject:dmarc-filter :dkim-signature:dkim-signature:arc-authentication-results; bh=/hLT+ugJDv/6IkYCouuSJDeBlP24KAUlOKA9uYhLqGI=; b=jPmC8zZcQHbiMs1tKqxKCT+jB82T4+qHB7snlkfVHK0QrgOw+D3sX8XqAXr1EFiZev 4k74j3gY27cAEvRC7ZvkG0ldqIMVow16CuT8qCRm2hKlKAAdhwKDgRRMwwE4m8QmKnz0 1Qlg00bfLJnExVPCpcyAedJNbUCREODfn5uTIGS0ekmqXEzc9NC1lJ9i/kYotCs1kNWX 46yNAdA3S6uhulrUmZJMbPNOT7bkOYESsC5MWerLxGWYvcnUM6T/PpYUY6ayBg+ZQItE WFMja7BfTFX7ZDYotKE/rXvXX6Qvp2PJau2bSZtEVkm3nzIbvZBzCHDrim5eEeR4aciD dsFg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=oC+qwnvM; dkim=pass header.i=@codeaurora.org header.s=default header.b=JkYYTxyv; spf=pass (google.com: domain of okaya@codeaurora.org designates 198.145.29.96 as permitted sender) smtp.mailfrom=okaya@codeaurora.org Authentication-Results: mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=oC+qwnvM; dkim=pass header.i=@codeaurora.org header.s=default header.b=JkYYTxyv; spf=pass (google.com: domain of okaya@codeaurora.org designates 198.145.29.96 as permitted sender) smtp.mailfrom=okaya@codeaurora.org DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org B1A5360112 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=okaya@codeaurora.org Subject: Re: [PATCH v6 7/7] PCI: Unify wait for link active into generic pci To: Oza Pawandeep , Bjorn Helgaas , Philippe Ombredanne , Thomas Gleixner , Greg Kroah-Hartman , Kate Stewart , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, Dongdong Liu , Keith Busch , Wei Zhang , Timur Tabi References: <1516360204-1586-1-git-send-email-poza@codeaurora.org> <1516360204-1586-8-git-send-email-poza@codeaurora.org> From: Sinan Kaya Message-ID: Date: Fri, 19 Jan 2018 09:08:05 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <1516360204-1586-8-git-send-email-poza@codeaurora.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1590018961580197637?= X-GMAIL-MSGID: =?utf-8?q?1590030121279576854?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: On 1/19/2018 6:10 AM, Oza Pawandeep wrote: > +check_link: > + pcie_capability_read_word(pdev, PCI_EXP_LNKSTA, &lnk_status); > + ret = !!(lnk_status & PCI_EXP_LNKSTA_DLLLA); > + > + if (ret == active) { > + dev_printk(KERN_DEBUG, &pdev->dev, > + "%s: lnk_status = %x\n", __func__, lnk_status); > + return true; > + } > + > + while (timeout > 0) { > + msleep(10); > + timeout -= 10; > + goto check_link; > + } this is weird. I think following is a simpler approach. pcie_capability_read_word(pdev, PCI_EXP_LNKSTA, &lnk_status); ret = !!(lnk_status & PCI_EXP_LNKSTA_DLLLA); while ((ret != active) && (timeout > 0)) { msleep(10); timeout -= 10; pcie_capability_read_word(pdev, PCI_EXP_LNKSTA, &lnk_status); ret = !!(lnk_status & PCI_EXP_LNKSTA_DLLLA); } -- Sinan Kaya Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc. Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.