All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Lu Baolu <baolu.lu@linux.intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mathias Nyman <mathias.nyman@linux.intel.com>,
	Ingo Molnar <mingo@redhat.com>,
	tglx@linutronix.de, peterz@infradead.org,
	linux-usb@vger.kernel.org, x86@kernel.org,
	linux-kernel@vger.kernel.org, Jiri Slaby <jslaby@suse.cz>
Subject: Re: [PATCH v5 1/4] usb: dbc: early driver for xhci debug capability
Date: Wed, 25 Jan 2017 10:23:55 +0100	[thread overview]
Message-ID: <20170125092355.GA24580@gmail.com> (raw)
In-Reply-To: <5888377F.8090709@linux.intel.com>


* Lu Baolu <baolu.lu@linux.intel.com> wrote:

> > Hiding essentially an early udelay() implementation in an early-printk driver is 
> > ugly and counterproductive.
> 
> Sure. How about below change?
> 
> diff --git a/drivers/usb/early/xhci-dbc.c b/drivers/usb/early/xhci-dbc.c
> index d3f0c84..940989e 100644
> --- a/drivers/usb/early/xhci-dbc.c
> +++ b/drivers/usb/early/xhci-dbc.c
> @@ -587,6 +587,35 @@ static int xdbc_bulk_transfer(void *data, int size, bool read)
>         return size;
>  }
>  
> +static void __init xdbc_udelay_calibration(void)
> +{
> +       unsigned long lpj = 0;
> +       unsigned int tsc_khz, cpu_khz;
> +
> +       if (!boot_cpu_has(X86_FEATURE_TSC))
> +               goto calibration_out;
> +
> +       cpu_khz = x86_platform.calibrate_cpu();
> +       tsc_khz = x86_platform.calibrate_tsc();
> +
> +       if (tsc_khz == 0)
> +               tsc_khz = cpu_khz;
> +       else if (abs(cpu_khz - tsc_khz) * 10 > tsc_khz)
> +               cpu_khz = tsc_khz;
> +
> +       if (!tsc_khz)
> +               goto calibration_out;
> +
> +       lpj = tsc_khz * 1000;
> +       do_div(lpj, HZ);
> +
> +calibration_out:
> +       if (!lpj)
> +               lpj = 1 << 22;
> +
> +       loops_per_jiffy = lpj;
> +}
> +
>  static int __init xdbc_early_setup(void)
>  {
>         int ret;
> @@ -686,6 +715,8 @@ int __init early_xdbc_parse_parameter(char *s)
>         }
>         xdbc.xdbc_reg = (struct xdbc_regs __iomem *)(xdbc.xhci_base + offset);
>  
> +       xdbc_udelay_calibration();
> +
>         return 0;
>  }

Yeah - so could we do this in a more generic fashion, not in the early-printk 
driver but in core x86 code?

Thanks,

	Ingo

  reply	other threads:[~2017-01-25  9:24 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-15  6:02 [PATCH v5 0/4] usb: early: add support for early printk through USB3 debug port Lu Baolu
2016-11-15  6:02 ` [PATCH v5 1/4] usb: dbc: early driver for xhci debug capability Lu Baolu
2017-01-19  9:37   ` Ingo Molnar
2017-01-20  2:47     ` Lu Baolu
2017-01-22  9:04       ` Ingo Molnar
2017-01-24  4:44         ` Lu Baolu
2017-01-24  8:20           ` Ingo Molnar
2017-01-25  5:28             ` Lu Baolu
2017-01-25  9:23               ` Ingo Molnar [this message]
2017-01-25  9:57                 ` Peter Zijlstra
2017-01-25 12:27                   ` Lu Baolu
2017-01-25 14:38                     ` Peter Zijlstra
2017-01-25 15:51                       ` Lu Baolu
2017-01-25 16:16                         ` Peter Zijlstra
2017-01-26  3:37                           ` Lu Baolu
2017-01-26  7:19                             ` Ingo Molnar
2017-01-26  7:49                               ` Lu Baolu
2017-01-26  8:17                                 ` Ingo Molnar
2017-01-26 10:28                               ` Peter Zijlstra
2017-01-26 16:01                                 ` Ingo Molnar
2017-01-26 17:39                                   ` Peter Zijlstra
2017-01-27  6:51                                     ` Ingo Molnar
2017-02-09  5:59                               ` Lu Baolu
2017-01-26  7:22                         ` Ingo Molnar
2017-02-09  7:37                           ` Lu Baolu
2017-01-25 12:17                 ` Lu Baolu
2017-01-26  3:26                 ` Lu Baolu
2016-11-15  6:02 ` [PATCH v5 2/4] x86: add support for earlyprintk via USB3 debug port Lu Baolu
2017-01-19  9:38   ` Ingo Molnar
2017-01-20  2:48     ` Lu Baolu
2016-11-15  6:02 ` [PATCH v5 3/4] usb: serial: usb_debug: add support for dbc debug device Lu Baolu
2017-01-19  9:39   ` Ingo Molnar
2017-01-20  2:50     ` Lu Baolu
2016-11-15  6:02 ` [PATCH v5 4/4] usb: doc: add document for USB3 debug port usage Lu Baolu
2017-01-19  9:41   ` Ingo Molnar
2017-01-20  2:53     ` Lu Baolu
2017-01-18  6:20 ` [PATCH v5 0/4] usb: early: add support for early printk through USB3 debug port Lu Baolu
2017-01-19  9:06   ` Greg Kroah-Hartman
2017-01-19  9:09     ` Ingo Molnar
2017-01-19 11:24       ` Mathias Nyman
2017-01-19  9:12 ` Ingo Molnar
2017-01-20  2:56   ` Lu Baolu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170125092355.GA24580@gmail.com \
    --to=mingo@kernel.org \
    --cc=baolu.lu@linux.intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jslaby@suse.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@linux.intel.com \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.