Re: [PATCH v3 09/11] serial: 8250_lpss: move Quark code from PCI driver
From: Andy Shevchenko
Date: Wed May 04 2016 - 10:54:25 EST
On Wed, 2016-05-04 at 15:37 +0100, Bryan O'Donoghue wrote:
> On Wed, 2016-05-04 at 14:20 +0300, Andy Shevchenko wrote:
> >
> > On Wed, 2016-05-04 at 12:01 +0100, Bryan O'Donoghue wrote:
> > >
> > > On Wed, 2016-05-04 at 13:03 +0300, Andy Shevchenko wrote:
> > > >
> > > >
> > > > On Wed, May 4, 2016 at 12:51 PM, Bryan O'Donoghue
> > > > <pure.logic@xxxxxxxxxxxxxxxxx> wrote:
> > > > >
> > > > >
> > > > > The default may be set to SERIAL_8250 but, without the QRK
> > > > > specific
> > > > > entry in 8250_pci.c you won't get console output.
> > That's, by the way, not true.
> Since when ? We don't have an I/O bar so mapping the MMIO bar @ the
> right register width is required.
Since this series.
8250_lpss will be enabled as long as user doesn't enable EXPERT and
_explicitly_ _disables_ it.
Same is applied to SERIAL_8250_PCI. If you look at the default kernel
configurations such as i386_default you don't find that option there.
Btw, I have to clean up such in my branches.
>Â
> > > > > So if you are going to remove the QRK entry from 8250_pci.c
> > > > > and
> > > > > stuff
> > > > > it into 8250_lpss.c then 8250_lpss needs to be selected by
> > > > > CONFIG_SERIAL_8250_PCI.
> > > > Why?!
> > > >
> > > > Now it should be enough to have SERIAL_8250 set to non-n to have
> > > > 8250_lpss compiled.
> > > > Can you check it?
> > > I'm sure that's true.
> > >
> > > My point to you is that - its a highly non-intuitive thing to do
> > > on
> > > a
> > > reading of the datasheet for this part.
> > >
> > > LPSS is, ostensibly at least, for passing processor resources via
> > > APCI.
> > >
> > > If you look at a QRK datasheet it says "enumerate all this stuff
> > > via
> > > PCI" - there's not a single mention of LPSS. Its reasonable,
> > > correct
> > > and currently required for QRK to set CONFIG_8250_PCI.
> > User has no such item even visible until enable CONFIG_EXPERT.
> >
> > Heikki sent an answer to you (and to the list, but by some reason
> > it's
> > not yet there) an hour ago.
> >
> > >
> > >
> > > To move away from a valid/standard PCI probe routine into a new
> > > special
> > > LPSS/PCI shim (which the hardware doesn't actually mandate) I do
> > > think
> > > you should to setup the dependency CONFIG_8250_PCI =>
> > > CONFIG_8250_LPSS.
> > No, this is what we try avoiding, thus it will not happen.
> >
> > If user selects CONFIG_SERIAL_8250_PCI, the CONFIG_SERIAL_8250_LPSS
> > will
> > be selected as well since it has same dependencies.
> Hmm. I think what you mean to say is that a user (expert or not)
> *would* select SERIAL_8250_LPSS since (at least in your branch
> Â09c4268121a39eb3973823dd9225b650df726f67) both options may be
> individually selected/deselected.
So, currently it works in such way that user enables SERIAL_8250 and
_dependencies_, which are PCI (for SERIAL_8250_PCI) or PCI && X86 (for
SERIAL_8250_LPSS) and drivers will be built automatically on the same
level (m or y) as SERIAL_8250.
Nevertheless, user may _disable_ them if needed using EXPERT option.
--
Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Intel Finland Oy