From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751510AbdAYM1n (ORCPT ); Wed, 25 Jan 2017 07:27:43 -0500 Received: from mga07.intel.com ([134.134.136.100]:8824 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751386AbdAYM1m (ORCPT ); Wed, 25 Jan 2017 07:27:42 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,283,1477983600"; d="scan'208";a="1098716540" Subject: Re: [PATCH v5 1/4] usb: dbc: early driver for xhci debug capability To: Peter Zijlstra , Ingo Molnar References: <1479189731-2728-1-git-send-email-baolu.lu@linux.intel.com> <1479189731-2728-2-git-send-email-baolu.lu@linux.intel.com> <20170119093743.GC22865@gmail.com> <58817A25.6080305@linux.intel.com> <20170122090423.GA15061@gmail.com> <5886DBB7.4070501@linux.intel.com> <20170124082039.GB8667@gmail.com> <5888377F.8090709@linux.intel.com> <20170125092355.GA24580@gmail.com> <20170125095736.GP6515@twins.programming.kicks-ass.net> Cc: Greg Kroah-Hartman , Mathias Nyman , Ingo Molnar , tglx@linutronix.de, linux-usb@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org, Jiri Slaby From: Lu Baolu Message-ID: <588899BA.7040108@linux.intel.com> Date: Wed, 25 Jan 2017 20:27:38 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <20170125095736.GP6515@twins.programming.kicks-ass.net> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On 01/25/2017 05:57 PM, Peter Zijlstra wrote: > On Wed, Jan 25, 2017 at 10:23:55AM +0100, Ingo Molnar wrote: >> * Lu Baolu wrote: >> >>>> Hiding essentially an early udelay() implementation in an early-printk driver is >>>> ugly and counterproductive. >> Yeah - so could we do this in a more generic fashion, not in the early-printk >> driver but in core x86 code? > So ideally early_printk() would not depend on udelay() being setup. > > In fact, ideally early_printk() wouldn't even use udelay -- this very > much includes its own copy. > > Why is udelay() required? Can't the thing simply poll its own register > state to wait for completion? In my driver, udelay() is mostly used to handle time out. Xdbc hides most USB things in its firmware. Early printk driver only needs to setup the registers/data structures and wait until link ready or time out. Without udelay(), I have no means to convert the polling times into waiting time. Best regards, Lu Baolu > > This all sounds like xdbc cruft is still unreliably garbage.. >