All of lore.kernel.org
 help / color / mirror / Atom feed
From: Honghui Zhang <honghui.zhang@mediatek.com>
To: Bjorn Helgaas <helgaas@kernel.org>, <paul.burton@imgtec.com>
Cc: <youlin.pei@mediatek.com>, <devicetree@vger.kernel.org>,
	<hongkun.cao@mediatek.com>, <ryder.lee@mediatek.com>,
	<linux-pci@vger.kernel.org>, <sean.wang@mediatek.com>,
	<xinping.qian@mediatek.com>, <linux-kernel@vger.kernel.org>,
	<robh+dt@kernel.org>, <yt.shen@mediatek.com>,
	<matthias.bgg@gmail.com>, <robh@kerenl.org>,
	<linux-mediatek@lists.infradead.org>, <yong.wu@mediatek.com>,
	<bhelgaas@google.com>, <yingjoe.chen@mediatek.com>,
	<eddie.huang@mediatek.com>,
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v2 4/5] PCI: mediatek: Add new generation controller support
Date: Wed, 9 Aug 2017 14:49:52 +0800	[thread overview]
Message-ID: <1502261392.17420.5.camel@mtksdaap41> (raw)
In-Reply-To: <20170808201912.GJ16580@bhelgaas-glaptop.roam.corp.google.com>

On Tue, 2017-08-08 at 15:19 -0500, Bjorn Helgaas wrote:
> On Fri, Aug 04, 2017 at 08:18:09AM -0500, Bjorn Helgaas wrote:
> > On Fri, Aug 04, 2017 at 04:39:36PM +0800, Honghui Zhang wrote:
> > > On Thu, 2017-08-03 at 17:42 -0500, Bjorn Helgaas wrote:
> 
> > > > > +	port->irq_domain = irq_domain_add_linear(pcie_intc_node, INTX_NUM,
> > > > > +						 &intx_domain_ops, port);
> > > > 
> > > > I think there's an issue here with a 4-element IRQ domain and the
> > > > hwirq numbers 1-4 from the of_irq_parse_and_map_pci() path, so INTD
> > > > may not work correctly.
> > > > 
> > > > See
> > > > http://lkml.kernel.org/r/20170801212931.GA26498@bhelgaas-glaptop.roam.corp.google.com
> > > > and related discussion.
> > > 
> > > Sorry, I did not get this,
> > > I do some test with an intel E350T4 PCIe NICs, it's a x1 lane
> > > multi-function device.
> > > What I got from the log is below:
> > > ->of_irq_parse_and_map_pci
> > > 	->of_irq_parse_pci
> > > 		->irq_create_of_mapping
> > > 			->irq_create_fwspec_mapping
> > > 				->irq_domain_translate
> > > 				which will go through
> > > 				d->ops->translate #the hwirq really start from 0
> > > 
> > > And I tested every NIC port of the Intel E350T4 with tftp transfer data,
> > > seems all are OK with this code.
> > 
> > OK.  I don't know what d->ops->translate is involved here, but if it
> > works, I guess this is OK for now.  We're trying to clean this up and
> > make it consistent across all the drivers.  Many of them allocate a
> > 5-element IRQ domain, some make a 4-element domain, and on some of
> > them INTD doesn't work.  It's a mess.
> 
> Paul Burton is cleaning this up.  Can you point out the d->ops->translate
> function that's involved here?

Hi, Bjorn,

Sorry for my last reply, I was tracking the wrong logs. The real trick
is here:

->of_irq_parse_and_map_pci
  ->of_irq_parse_pci	#out_irq->args[0] start from 1(1 == INTA)
     ->of_irq_parse_raw

After of_irq_parse_raw finished it's work, the out_irq->args[0] will be
remapped as "interrupt-map" property defines[1], which in my case, it's
start from 0, and then fwspec->param[0] is start from 0 (0 == INTA).

My "interrupt-map" property is defined as below:
interrupt-map = <0 0 0 1 &pcie_intc0 0>,
		<0 0 0 2 &pcie_intc0 1>,
		<0 0 0 3 &pcie_intc0 2>,
		<0 0 0 4 &pcie_intc0 3>;

I do some test with the changes of property defined as below:
interrupt-map = <0 0 0 1 &pcie_intc0 1>,
		<0 0 0 2 &pcie_intc0 2>,
		<0 0 0 3 &pcie_intc0 3>,
		<0 0 0 4 &pcie_intc0 4>;
Then I got the same running complain as Paul have got[2]

So I guess it's the "interrupt-map" property defined in dtsi node play
the key role in this.

[1]http://elixir.free-electrons.com/linux/v4.13-rc4/source/drivers/of/irq.c#L265
[2]https://patchwork.kernel.org/patch/9794355

thanks.

WARNING: multiple messages have this Message-ID (diff)
From: Honghui Zhang <honghui.zhang@mediatek.com>
To: Bjorn Helgaas <helgaas@kernel.org>, paul.burton@imgtec.com
Cc: youlin.pei@mediatek.com, devicetree@vger.kernel.org,
	hongkun.cao@mediatek.com, ryder.lee@mediatek.com,
	linux-pci@vger.kernel.org, sean.wang@mediatek.com,
	xinping.qian@mediatek.com, linux-kernel@vger.kernel.org,
	robh+dt@kernel.org, yt.shen@mediatek.com, matthias.bgg@gmail.com,
	robh@kerenl.org, linux-mediatek@lists.infradead.org,
	yong.wu@mediatek.com, bhelgaas@google.com,
	yingjoe.chen@mediatek.com, eddie.huang@mediatek.com,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 4/5] PCI: mediatek: Add new generation controller support
Date: Wed, 9 Aug 2017 14:49:52 +0800	[thread overview]
Message-ID: <1502261392.17420.5.camel@mtksdaap41> (raw)
In-Reply-To: <20170808201912.GJ16580@bhelgaas-glaptop.roam.corp.google.com>

On Tue, 2017-08-08 at 15:19 -0500, Bjorn Helgaas wrote:
> On Fri, Aug 04, 2017 at 08:18:09AM -0500, Bjorn Helgaas wrote:
> > On Fri, Aug 04, 2017 at 04:39:36PM +0800, Honghui Zhang wrote:
> > > On Thu, 2017-08-03 at 17:42 -0500, Bjorn Helgaas wrote:
> 
> > > > > +	port->irq_domain = irq_domain_add_linear(pcie_intc_node, INTX_NUM,
> > > > > +						 &intx_domain_ops, port);
> > > > 
> > > > I think there's an issue here with a 4-element IRQ domain and the
> > > > hwirq numbers 1-4 from the of_irq_parse_and_map_pci() path, so INTD
> > > > may not work correctly.
> > > > 
> > > > See
> > > > http://lkml.kernel.org/r/20170801212931.GA26498@bhelgaas-glaptop.roam.corp.google.com
> > > > and related discussion.
> > > 
> > > Sorry, I did not get this,
> > > I do some test with an intel E350T4 PCIe NICs, it's a x1 lane
> > > multi-function device.
> > > What I got from the log is below:
> > > ->of_irq_parse_and_map_pci
> > > 	->of_irq_parse_pci
> > > 		->irq_create_of_mapping
> > > 			->irq_create_fwspec_mapping
> > > 				->irq_domain_translate
> > > 				which will go through
> > > 				d->ops->translate #the hwirq really start from 0
> > > 
> > > And I tested every NIC port of the Intel E350T4 with tftp transfer data,
> > > seems all are OK with this code.
> > 
> > OK.  I don't know what d->ops->translate is involved here, but if it
> > works, I guess this is OK for now.  We're trying to clean this up and
> > make it consistent across all the drivers.  Many of them allocate a
> > 5-element IRQ domain, some make a 4-element domain, and on some of
> > them INTD doesn't work.  It's a mess.
> 
> Paul Burton is cleaning this up.  Can you point out the d->ops->translate
> function that's involved here?

Hi, Bjorn,

Sorry for my last reply, I was tracking the wrong logs. The real trick
is here:

->of_irq_parse_and_map_pci
  ->of_irq_parse_pci	#out_irq->args[0] start from 1(1 == INTA)
     ->of_irq_parse_raw

After of_irq_parse_raw finished it's work, the out_irq->args[0] will be
remapped as "interrupt-map" property defines[1], which in my case, it's
start from 0, and then fwspec->param[0] is start from 0 (0 == INTA).

My "interrupt-map" property is defined as below:
interrupt-map = <0 0 0 1 &pcie_intc0 0>,
		<0 0 0 2 &pcie_intc0 1>,
		<0 0 0 3 &pcie_intc0 2>,
		<0 0 0 4 &pcie_intc0 3>;

I do some test with the changes of property defined as below:
interrupt-map = <0 0 0 1 &pcie_intc0 1>,
		<0 0 0 2 &pcie_intc0 2>,
		<0 0 0 3 &pcie_intc0 3>,
		<0 0 0 4 &pcie_intc0 4>;
Then I got the same running complain as Paul have got[2]

So I guess it's the "interrupt-map" property defined in dtsi node play
the key role in this.

[1]http://elixir.free-electrons.com/linux/v4.13-rc4/source/drivers/of/irq.c#L265
[2]https://patchwork.kernel.org/patch/9794355

thanks.

WARNING: multiple messages have this Message-ID (diff)
From: honghui.zhang@mediatek.com (Honghui Zhang)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 4/5] PCI: mediatek: Add new generation controller support
Date: Wed, 9 Aug 2017 14:49:52 +0800	[thread overview]
Message-ID: <1502261392.17420.5.camel@mtksdaap41> (raw)
In-Reply-To: <20170808201912.GJ16580@bhelgaas-glaptop.roam.corp.google.com>

On Tue, 2017-08-08 at 15:19 -0500, Bjorn Helgaas wrote:
> On Fri, Aug 04, 2017 at 08:18:09AM -0500, Bjorn Helgaas wrote:
> > On Fri, Aug 04, 2017 at 04:39:36PM +0800, Honghui Zhang wrote:
> > > On Thu, 2017-08-03 at 17:42 -0500, Bjorn Helgaas wrote:
> 
> > > > > +	port->irq_domain = irq_domain_add_linear(pcie_intc_node, INTX_NUM,
> > > > > +						 &intx_domain_ops, port);
> > > > 
> > > > I think there's an issue here with a 4-element IRQ domain and the
> > > > hwirq numbers 1-4 from the of_irq_parse_and_map_pci() path, so INTD
> > > > may not work correctly.
> > > > 
> > > > See
> > > > http://lkml.kernel.org/r/20170801212931.GA26498 at bhelgaas-glaptop.roam.corp.google.com
> > > > and related discussion.
> > > 
> > > Sorry, I did not get this,
> > > I do some test with an intel E350T4 PCIe NICs, it's a x1 lane
> > > multi-function device.
> > > What I got from the log is below:
> > > ->of_irq_parse_and_map_pci
> > > 	->of_irq_parse_pci
> > > 		->irq_create_of_mapping
> > > 			->irq_create_fwspec_mapping
> > > 				->irq_domain_translate
> > > 				which will go through
> > > 				d->ops->translate #the hwirq really start from 0
> > > 
> > > And I tested every NIC port of the Intel E350T4 with tftp transfer data,
> > > seems all are OK with this code.
> > 
> > OK.  I don't know what d->ops->translate is involved here, but if it
> > works, I guess this is OK for now.  We're trying to clean this up and
> > make it consistent across all the drivers.  Many of them allocate a
> > 5-element IRQ domain, some make a 4-element domain, and on some of
> > them INTD doesn't work.  It's a mess.
> 
> Paul Burton is cleaning this up.  Can you point out the d->ops->translate
> function that's involved here?

Hi, Bjorn,

Sorry for my last reply, I was tracking the wrong logs. The real trick
is here:

->of_irq_parse_and_map_pci
  ->of_irq_parse_pci	#out_irq->args[0] start from 1(1 == INTA)
     ->of_irq_parse_raw

After of_irq_parse_raw finished it's work, the out_irq->args[0] will be
remapped as "interrupt-map" property defines[1], which in my case, it's
start from 0, and then fwspec->param[0] is start from 0 (0 == INTA).

My "interrupt-map" property is defined as below:
interrupt-map = <0 0 0 1 &pcie_intc0 0>,
		<0 0 0 2 &pcie_intc0 1>,
		<0 0 0 3 &pcie_intc0 2>,
		<0 0 0 4 &pcie_intc0 3>;

I do some test with the changes of property defined as below:
interrupt-map = <0 0 0 1 &pcie_intc0 1>,
		<0 0 0 2 &pcie_intc0 2>,
		<0 0 0 3 &pcie_intc0 3>,
		<0 0 0 4 &pcie_intc0 4>;
Then I got the same running complain as Paul have got[2]

So I guess it's the "interrupt-map" property defined in dtsi node play
the key role in this.

[1]http://elixir.free-electrons.com/linux/v4.13-rc4/source/drivers/of/irq.c#L265
[2]https://patchwork.kernel.org/patch/9794355

thanks.

  reply	other threads:[~2017-08-09  6:49 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-27  2:58 [PATCH v2 0/5] PCI: MediaTek: Add support for new generation host controller honghui.zhang
2017-07-27  2:58 ` honghui.zhang at mediatek.com
2017-07-27  2:58 ` honghui.zhang
2017-07-27  2:58 ` honghui.zhang
2017-07-27  2:58 ` [PATCH v2 1/5] PCI: mediatek: Add a structure to abstract the controller generations honghui.zhang
2017-07-27  2:58   ` honghui.zhang at mediatek.com
2017-07-27  2:58   ` honghui.zhang
2017-07-27  3:19   ` Honghui Zhang
2017-07-27  3:19     ` Honghui Zhang
2017-07-27  3:19     ` Honghui Zhang
2017-07-27  3:19     ` Honghui Zhang
2017-07-27  3:28     ` Honghui Zhang
2017-07-27  3:28       ` Honghui Zhang
2017-07-27  3:28       ` Honghui Zhang
2017-07-27  3:28       ` Honghui Zhang
2017-08-03 22:15   ` Bjorn Helgaas
2017-08-03 22:15     ` Bjorn Helgaas
2017-08-03 22:15     ` Bjorn Helgaas
2017-07-27  2:58 ` [PATCH v2 2/5] PCI: mediatek: switch to use platform_get_resource_byname() honghui.zhang
2017-07-27  2:58   ` honghui.zhang at mediatek.com
2017-07-27  2:58   ` honghui.zhang
2017-07-27  2:58 ` [PATCH v2 3/5] dt-bindings: PCI: rename and cleanup MediaTek binding text honghui.zhang
2017-07-27  2:58   ` honghui.zhang at mediatek.com
2017-07-27  2:58   ` honghui.zhang
2017-07-27  2:58   ` honghui.zhang
2017-08-03 19:10   ` Rob Herring
2017-08-03 19:10     ` Rob Herring
2017-08-03 19:10     ` Rob Herring
2017-08-03 22:17   ` Bjorn Helgaas
2017-08-03 22:17     ` Bjorn Helgaas
2017-08-03 22:17     ` Bjorn Helgaas
2017-07-27  2:58 ` [PATCH v2 4/5] PCI: mediatek: Add new generation controller support honghui.zhang
2017-07-27  2:58   ` honghui.zhang at mediatek.com
2017-07-27  2:58   ` honghui.zhang
2017-08-03 22:42   ` Bjorn Helgaas
2017-08-03 22:42     ` Bjorn Helgaas
2017-08-03 22:42     ` Bjorn Helgaas
2017-08-04  8:39     ` Honghui Zhang
2017-08-04  8:39       ` Honghui Zhang
2017-08-04  8:39       ` Honghui Zhang
2017-08-04 13:18       ` Bjorn Helgaas
2017-08-04 13:18         ` Bjorn Helgaas
2017-08-04 13:18         ` Bjorn Helgaas
2017-08-05  4:52         ` Ryder Lee
2017-08-05  4:52           ` Ryder Lee
2017-08-05  4:52           ` Ryder Lee
2017-08-05  6:16           ` Ryder Lee
2017-08-05  6:16             ` Ryder Lee
2017-08-05  6:16             ` Ryder Lee
2017-08-07  3:40             ` Honghui Zhang
2017-08-07  3:40               ` Honghui Zhang
2017-08-07  3:40               ` Honghui Zhang
2017-08-08 20:16           ` Bjorn Helgaas
2017-08-08 20:16             ` Bjorn Helgaas
2017-08-08 20:16             ` Bjorn Helgaas
2017-08-08 20:16             ` Bjorn Helgaas
2017-08-08 20:19         ` Bjorn Helgaas
2017-08-08 20:19           ` Bjorn Helgaas
2017-08-08 20:19           ` Bjorn Helgaas
2017-08-09  6:49           ` Honghui Zhang [this message]
2017-08-09  6:49             ` Honghui Zhang
2017-08-09  6:49             ` Honghui Zhang
2017-08-09 16:43             ` Paul Burton
2017-08-09 16:43               ` Paul Burton
2017-08-09 16:43               ` Paul Burton
2017-07-27  2:58 ` [PATCH v2 5/5] dt-bindings: PCI: add support for new generation controller honghui.zhang
2017-07-27  2:58   ` honghui.zhang at mediatek.com
2017-07-27  2:58   ` honghui.zhang
2017-07-27  2:58   ` honghui.zhang
2017-07-27  3:31   ` Honghui Zhang
2017-07-27  3:31     ` Honghui Zhang
2017-07-27  3:31     ` Honghui Zhang
2017-07-27  3:31     ` Honghui Zhang
2017-07-27  3:38   ` Honghui Zhang
2017-07-27  3:38     ` Honghui Zhang
2017-07-27  3:38     ` Honghui Zhang
2017-07-27  3:38     ` Honghui Zhang
2017-08-03 22:45   ` Bjorn Helgaas
2017-08-03 22:45     ` Bjorn Helgaas
2017-08-03 22:45     ` 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=1502261392.17420.5.camel@mtksdaap41 \
    --to=honghui.zhang@mediatek.com \
    --cc=bhelgaas@google.com \
    --cc=devicetree@vger.kernel.org \
    --cc=eddie.huang@mediatek.com \
    --cc=helgaas@kernel.org \
    --cc=hongkun.cao@mediatek.com \
    --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=matthias.bgg@gmail.com \
    --cc=paul.burton@imgtec.com \
    --cc=robh+dt@kernel.org \
    --cc=robh@kerenl.org \
    --cc=ryder.lee@mediatek.com \
    --cc=sean.wang@mediatek.com \
    --cc=xinping.qian@mediatek.com \
    --cc=yingjoe.chen@mediatek.com \
    --cc=yong.wu@mediatek.com \
    --cc=youlin.pei@mediatek.com \
    --cc=yt.shen@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 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.