linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jianjun Wang <jianjun.wang@mediatek.com>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	Rob Herring <robh+dt@kernel.org>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	Ryder Lee <ryder.lee@mediatek.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	Mauro Carvalho Chehab <mchehab+huawei@kernel.org>,
	<davem@davemloft.net>, <linux-pci@vger.kernel.org>,
	<linux-mediatek@lists.infradead.org>,
	<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	Sj Huang <sj.huang@mediatek.com>, <youlin.pei@mediatek.com>,
	<chuanjia.liu@mediatek.com>, <qizhong.cheng@mediatek.com>,
	<sin_jieyang@mediatek.com>, Lukas Wunner <lukas@wunner.de>
Subject: Re: [v4,2/3] PCI: mediatek: Add new generation controller support
Date: Tue, 1 Dec 2020 11:06:43 +0800	[thread overview]
Message-ID: <1606792003.14736.63.camel@mhfsdcap03> (raw)
In-Reply-To: <20201130173005.GA1088958@bjorn-Precision-5520>

On Mon, 2020-11-30 at 11:30 -0600, Bjorn Helgaas wrote:
> [+cc Lukas, pciehp power control question]
> 
> On Mon, Nov 23, 2020 at 02:45:13PM +0800, Jianjun Wang wrote:
> > On Thu, 2020-11-19 at 14:28 -0600, Bjorn Helgaas wrote:
> > > "Add new generation" really contains no information.  And "mediatek"
> > > is already used for the pcie-mediatek.c driver, so we should have a
> > > new tag for this new driver.  Include useful information in the
> > > subject, e.g.,
> > > 
> > >   PCI: mediatek-gen3: Add MediaTek Gen3 driver for MT8192
> 
> > > > +static int mtk_pcie_setup(struct mtk_pcie_port *port)
> > > > +{
> > > > +	struct device *dev = port->dev;
> > > > +	struct platform_device *pdev = to_platform_device(dev);
> > > > +	struct resource *regs;
> > > > +	int err;
> > > > +
> > > > +	regs = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pcie-mac");
> > > > +	port->base = devm_ioremap_resource(dev, regs);
> > > > +	if (IS_ERR(port->base)) {
> > > > +		dev_notice(dev, "failed to map register base\n");
> > > > +		return PTR_ERR(port->base);
> > > > +	}
> > > > +
> > > > +	port->reg_base = regs->start;
> > > > +
> > > > +	/* Don't touch the hardware registers before power up */
> > > > +	err = mtk_pcie_power_up(port);
> > > > +	if (err)
> > > > +		return err;
> > > > +
> > > > +	/* Try link up */
> > > > +	err = mtk_pcie_startup_port(port);
> > > > +	if (err) {
> > > > +		dev_notice(dev, "PCIe link down\n");
> > > > +		goto err_setup;
> > > 
> > > Generally it should not be a fatal error if the link is not up at
> > > probe-time.  You may be able to hot-add a device, or the device may
> > > have some external power control that will power it up later.
> > 
> > This is for the power saving requirement. If there is no device
> > connected with the PCIe slot, the PCIe MAC and PHY should be powered
> > off.
> > 
> > Is there any standard flow to support power down the hardware at
> > probe-time if no device is connected and power it up when hot-add a
> > device?
> 
> That's a good question.  I assume this looks like a standard PCIe
> hot-add event?
> 
> When you hot-add a device, does the Root Port generate a Presence
> Detect Changed interrupt?  The pciehp driver should field that
> interrupt and turn on power to the slot via the Power Controller
> Control bit in the Slot Control register.
> 
> Does your hardware require something more than that to control the MAC
> and PHY power?
> 
> Bjorn

The hardware support to generate a Presence Detect Changed interrupt
when hot-add a device.

But it seems that we should keep the PHY's power and clocks to ensure
the data link layer state change can be detected, and keep the MAC layer
active for routing the interrupt event to pciehp driver handler.

For the power saving requirement, the modules that is not used when
probe-time must be powered off, so I think we may not support hot-plug
in this case.

Thanks

  reply	other threads:[~2020-12-01  3:07 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-18  8:29 [v4,0/3] PCI: mediatek: Add new generation controller support Jianjun Wang
2020-11-18  8:29 ` [v4,1/3] dt-bindings: PCI: mediatek: Add YAML schema Jianjun Wang
2020-12-01  0:17   ` Rob Herring
2020-11-18  8:29 ` [v4,2/3] PCI: mediatek: Add new generation controller support Jianjun Wang
2020-11-19 15:22   ` Rob Herring
2020-11-23  5:59     ` Jianjun Wang
2020-11-19 20:28   ` Bjorn Helgaas
2020-11-23  6:45     ` Jianjun Wang
2020-11-30 16:05       ` Rob Herring
2020-11-30 17:33         ` Bjorn Helgaas
2020-11-30 17:30       ` Bjorn Helgaas
2020-12-01  3:06         ` Jianjun Wang [this message]
2020-12-04  7:39         ` Lukas Wunner
2020-12-04 18:30           ` Bjorn Helgaas
2020-12-08  1:27             ` Jianjun Wang
2020-11-18  8:29 ` [v4,3/3] MAINTAINERS: update entry for MediaTek PCIe controller Jianjun Wang
2020-11-19 19:56   ` Bjorn Helgaas

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=1606792003.14736.63.camel@mhfsdcap03 \
    --to=jianjun.wang@mediatek.com \
    --cc=bhelgaas@google.com \
    --cc=chuanjia.liu@mediatek.com \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=helgaas@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=lukas@wunner.de \
    --cc=matthias.bgg@gmail.com \
    --cc=mchehab+huawei@kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=qizhong.cheng@mediatek.com \
    --cc=robh+dt@kernel.org \
    --cc=ryder.lee@mediatek.com \
    --cc=sin_jieyang@mediatek.com \
    --cc=sj.huang@mediatek.com \
    --cc=youlin.pei@mediatek.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).