All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jianjun Wang <jianjun.wang@mediatek.com>
To: Ryder Lee <ryder.lee@mediatek.com>
Cc: <lorenzo.pieralisi@arm.com>, <bhelgaas@google.com>,
	<matthias.bgg@gmail.com>, <linux-pci@vger.kernel.org>,
	<linux-mediatek@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<honghui.zhang@mediatek.com>, <youlin.pei@mediatek.com>,
	<jianjun.wang@mediatek.com>
Subject: Re: PCI: mediatek: Remove MSI inner domain
Date: Tue, 22 Jan 2019 17:25:46 +0800	[thread overview]
Message-ID: <1548149146.11414.1.camel@mhfsdcap03> (raw)
In-Reply-To: <1548128100.11442.7.camel@mtkswgap22>

On Tue, 2019-01-22 at 11:35 +0800, Ryder Lee wrote:
> On Mon, 2019-01-21 at 19:59 +0800, Jianjun Wang wrote:
> > There is no need to create the inner domain as a parent for MSI domian,
> > some feature has been implemented by MSI framework.
> > 
> > Remove the inner domain and its irq chip, it will be more closer to the
> > hardware implementation.
> > 
> > Signed-off-by: Jianjun Wang <jianjun.wang@mediatek.com>
> > ---
> >  drivers/pci/controller/pcie-mediatek.c | 82 +++++++++++---------------
> >  1 file changed, 35 insertions(+), 47 deletions(-)
> > 
> > diff --git a/drivers/pci/controller/pcie-mediatek.c b/drivers/pci/controller/pcie-mediatek.c
> > index 8d05df56158b..216e6fa8aec0 100644
> > --- a/drivers/pci/controller/pcie-mediatek.c
> > +++ b/drivers/pci/controller/pcie-mediatek.c
> > @@ -169,7 +169,6 @@ struct mtk_pcie_soc {
> >   * @slot: port slot
> >   * @irq: GIC irq
> >   * @irq_domain: legacy INTx IRQ domain
> > - * @inner_domain: inner IRQ domain
> >   * @msi_domain: MSI IRQ domain
> >   * @lock: protect the msi_irq_in_use bitmap
> >   * @msi_irq_in_use: bit map for assigned MSI IRQ
> > @@ -190,7 +189,6 @@ struct mtk_pcie_port {
> >  	u32 slot;
> >  	int irq;
> >  	struct irq_domain *irq_domain;
> > -	struct irq_domain *inner_domain;
> >  	struct irq_domain *msi_domain;
> >  	struct mutex lock;
> >  	DECLARE_BITMAP(msi_irq_in_use, MTK_MSI_IRQS_NUM);
> > @@ -418,22 +416,25 @@ static void mtk_msi_ack_irq(struct irq_data *data)
> >  	u32 hwirq = data->hwirq;
> >  
> >  	writel(1 << hwirq, port->base + PCIE_IMSI_STATUS);
> > +	writel(MSI_STATUS, port->base + PCIE_INT_STATUS);
> >  }
> >  
> > -static struct irq_chip mtk_msi_bottom_irq_chip = {
> > -	.name			= "MTK MSI",
> > +static struct irq_chip mtk_msi_irq_chip = {
> > +	.name			= "MTK PCIe",
> >  	.irq_compose_msi_msg	= mtk_compose_msi_msg,
> > +	.irq_write_msi_msg	= pci_msi_domain_write_msg,
> >  	.irq_set_affinity	= mtk_msi_set_affinity,
> >  	.irq_ack		= mtk_msi_ack_irq,
> > +	.irq_mask		= pci_msi_mask_irq,
> > +	.irq_unmask		= pci_msi_unmask_irq,
> >  };
> 
> (...omitted...)
> 
> To keep the patch simple, we don't need to adjust the position for
> mtk_msi_irq_chip.

OK, I will fix it in next version, thanks.
> 
> > -
> > -static struct irq_chip mtk_msi_irq_chip = {
> > -	.name		= "MTK PCIe MSI",
> > -	.irq_ack	= irq_chip_ack_parent,
> > -	.irq_mask	= pci_msi_mask_irq,
> > -	.irq_unmask	= pci_msi_unmask_irq,
> > +static struct msi_domain_ops mtk_msi_domain_ops = {
> > +	.get_hwirq	= mtk_pcie_msi_get_hwirq,
> > +	.msi_free	= mtk_pcie_msi_free,
> >  };
> >  
> >  static struct msi_domain_info mtk_msi_domain_info = {
> > -	.flags	= (MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
> > -		   MSI_FLAG_PCI_MSIX),
> > -	.chip	= &mtk_msi_irq_chip,
> > +	.flags		= (MSI_FLAG_USE_DEF_DOM_OPS |
> > +			   MSI_FLAG_USE_DEF_CHIP_OPS | MSI_FLAG_PCI_MSIX),
> > +	.ops		= &mtk_msi_domain_ops,
> > +	.chip		= &mtk_msi_irq_chip,
> > +	.handler	= handle_edge_irq,
> > +	.handler_name	= "MSI",
> >  };
> >  
> 
> 



WARNING: multiple messages have this Message-ID (diff)
From: Jianjun Wang <jianjun.wang@mediatek.com>
To: Ryder Lee <ryder.lee@mediatek.com>
Cc: lorenzo.pieralisi@arm.com, bhelgaas@google.com,
	matthias.bgg@gmail.com, linux-pci@vger.kernel.org,
	linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, honghui.zhang@mediatek.com,
	youlin.pei@mediatek.com, jianjun.wang@mediatek.com
Subject: Re: PCI: mediatek: Remove MSI inner domain
Date: Tue, 22 Jan 2019 17:25:46 +0800	[thread overview]
Message-ID: <1548149146.11414.1.camel@mhfsdcap03> (raw)
In-Reply-To: <1548128100.11442.7.camel@mtkswgap22>

On Tue, 2019-01-22 at 11:35 +0800, Ryder Lee wrote:
> On Mon, 2019-01-21 at 19:59 +0800, Jianjun Wang wrote:
> > There is no need to create the inner domain as a parent for MSI domian,
> > some feature has been implemented by MSI framework.
> > 
> > Remove the inner domain and its irq chip, it will be more closer to the
> > hardware implementation.
> > 
> > Signed-off-by: Jianjun Wang <jianjun.wang@mediatek.com>
> > ---
> >  drivers/pci/controller/pcie-mediatek.c | 82 +++++++++++---------------
> >  1 file changed, 35 insertions(+), 47 deletions(-)
> > 
> > diff --git a/drivers/pci/controller/pcie-mediatek.c b/drivers/pci/controller/pcie-mediatek.c
> > index 8d05df56158b..216e6fa8aec0 100644
> > --- a/drivers/pci/controller/pcie-mediatek.c
> > +++ b/drivers/pci/controller/pcie-mediatek.c
> > @@ -169,7 +169,6 @@ struct mtk_pcie_soc {
> >   * @slot: port slot
> >   * @irq: GIC irq
> >   * @irq_domain: legacy INTx IRQ domain
> > - * @inner_domain: inner IRQ domain
> >   * @msi_domain: MSI IRQ domain
> >   * @lock: protect the msi_irq_in_use bitmap
> >   * @msi_irq_in_use: bit map for assigned MSI IRQ
> > @@ -190,7 +189,6 @@ struct mtk_pcie_port {
> >  	u32 slot;
> >  	int irq;
> >  	struct irq_domain *irq_domain;
> > -	struct irq_domain *inner_domain;
> >  	struct irq_domain *msi_domain;
> >  	struct mutex lock;
> >  	DECLARE_BITMAP(msi_irq_in_use, MTK_MSI_IRQS_NUM);
> > @@ -418,22 +416,25 @@ static void mtk_msi_ack_irq(struct irq_data *data)
> >  	u32 hwirq = data->hwirq;
> >  
> >  	writel(1 << hwirq, port->base + PCIE_IMSI_STATUS);
> > +	writel(MSI_STATUS, port->base + PCIE_INT_STATUS);
> >  }
> >  
> > -static struct irq_chip mtk_msi_bottom_irq_chip = {
> > -	.name			= "MTK MSI",
> > +static struct irq_chip mtk_msi_irq_chip = {
> > +	.name			= "MTK PCIe",
> >  	.irq_compose_msi_msg	= mtk_compose_msi_msg,
> > +	.irq_write_msi_msg	= pci_msi_domain_write_msg,
> >  	.irq_set_affinity	= mtk_msi_set_affinity,
> >  	.irq_ack		= mtk_msi_ack_irq,
> > +	.irq_mask		= pci_msi_mask_irq,
> > +	.irq_unmask		= pci_msi_unmask_irq,
> >  };
> 
> (...omitted...)
> 
> To keep the patch simple, we don't need to adjust the position for
> mtk_msi_irq_chip.

OK, I will fix it in next version, thanks.
> 
> > -
> > -static struct irq_chip mtk_msi_irq_chip = {
> > -	.name		= "MTK PCIe MSI",
> > -	.irq_ack	= irq_chip_ack_parent,
> > -	.irq_mask	= pci_msi_mask_irq,
> > -	.irq_unmask	= pci_msi_unmask_irq,
> > +static struct msi_domain_ops mtk_msi_domain_ops = {
> > +	.get_hwirq	= mtk_pcie_msi_get_hwirq,
> > +	.msi_free	= mtk_pcie_msi_free,
> >  };
> >  
> >  static struct msi_domain_info mtk_msi_domain_info = {
> > -	.flags	= (MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
> > -		   MSI_FLAG_PCI_MSIX),
> > -	.chip	= &mtk_msi_irq_chip,
> > +	.flags		= (MSI_FLAG_USE_DEF_DOM_OPS |
> > +			   MSI_FLAG_USE_DEF_CHIP_OPS | MSI_FLAG_PCI_MSIX),
> > +	.ops		= &mtk_msi_domain_ops,
> > +	.chip		= &mtk_msi_irq_chip,
> > +	.handler	= handle_edge_irq,
> > +	.handler_name	= "MSI",
> >  };
> >  
> 
> 

WARNING: multiple messages have this Message-ID (diff)
From: Jianjun Wang <jianjun.wang@mediatek.com>
To: Ryder Lee <ryder.lee@mediatek.com>
Cc: youlin.pei@mediatek.com, lorenzo.pieralisi@arm.com,
	linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
	jianjun.wang@mediatek.com, matthias.bgg@gmail.com,
	linux-mediatek@lists.infradead.org, honghui.zhang@mediatek.com,
	bhelgaas@google.com, linux-arm-kernel@lists.infradead.org
Subject: Re: PCI: mediatek: Remove MSI inner domain
Date: Tue, 22 Jan 2019 17:25:46 +0800	[thread overview]
Message-ID: <1548149146.11414.1.camel@mhfsdcap03> (raw)
In-Reply-To: <1548128100.11442.7.camel@mtkswgap22>

On Tue, 2019-01-22 at 11:35 +0800, Ryder Lee wrote:
> On Mon, 2019-01-21 at 19:59 +0800, Jianjun Wang wrote:
> > There is no need to create the inner domain as a parent for MSI domian,
> > some feature has been implemented by MSI framework.
> > 
> > Remove the inner domain and its irq chip, it will be more closer to the
> > hardware implementation.
> > 
> > Signed-off-by: Jianjun Wang <jianjun.wang@mediatek.com>
> > ---
> >  drivers/pci/controller/pcie-mediatek.c | 82 +++++++++++---------------
> >  1 file changed, 35 insertions(+), 47 deletions(-)
> > 
> > diff --git a/drivers/pci/controller/pcie-mediatek.c b/drivers/pci/controller/pcie-mediatek.c
> > index 8d05df56158b..216e6fa8aec0 100644
> > --- a/drivers/pci/controller/pcie-mediatek.c
> > +++ b/drivers/pci/controller/pcie-mediatek.c
> > @@ -169,7 +169,6 @@ struct mtk_pcie_soc {
> >   * @slot: port slot
> >   * @irq: GIC irq
> >   * @irq_domain: legacy INTx IRQ domain
> > - * @inner_domain: inner IRQ domain
> >   * @msi_domain: MSI IRQ domain
> >   * @lock: protect the msi_irq_in_use bitmap
> >   * @msi_irq_in_use: bit map for assigned MSI IRQ
> > @@ -190,7 +189,6 @@ struct mtk_pcie_port {
> >  	u32 slot;
> >  	int irq;
> >  	struct irq_domain *irq_domain;
> > -	struct irq_domain *inner_domain;
> >  	struct irq_domain *msi_domain;
> >  	struct mutex lock;
> >  	DECLARE_BITMAP(msi_irq_in_use, MTK_MSI_IRQS_NUM);
> > @@ -418,22 +416,25 @@ static void mtk_msi_ack_irq(struct irq_data *data)
> >  	u32 hwirq = data->hwirq;
> >  
> >  	writel(1 << hwirq, port->base + PCIE_IMSI_STATUS);
> > +	writel(MSI_STATUS, port->base + PCIE_INT_STATUS);
> >  }
> >  
> > -static struct irq_chip mtk_msi_bottom_irq_chip = {
> > -	.name			= "MTK MSI",
> > +static struct irq_chip mtk_msi_irq_chip = {
> > +	.name			= "MTK PCIe",
> >  	.irq_compose_msi_msg	= mtk_compose_msi_msg,
> > +	.irq_write_msi_msg	= pci_msi_domain_write_msg,
> >  	.irq_set_affinity	= mtk_msi_set_affinity,
> >  	.irq_ack		= mtk_msi_ack_irq,
> > +	.irq_mask		= pci_msi_mask_irq,
> > +	.irq_unmask		= pci_msi_unmask_irq,
> >  };
> 
> (...omitted...)
> 
> To keep the patch simple, we don't need to adjust the position for
> mtk_msi_irq_chip.

OK, I will fix it in next version, thanks.
> 
> > -
> > -static struct irq_chip mtk_msi_irq_chip = {
> > -	.name		= "MTK PCIe MSI",
> > -	.irq_ack	= irq_chip_ack_parent,
> > -	.irq_mask	= pci_msi_mask_irq,
> > -	.irq_unmask	= pci_msi_unmask_irq,
> > +static struct msi_domain_ops mtk_msi_domain_ops = {
> > +	.get_hwirq	= mtk_pcie_msi_get_hwirq,
> > +	.msi_free	= mtk_pcie_msi_free,
> >  };
> >  
> >  static struct msi_domain_info mtk_msi_domain_info = {
> > -	.flags	= (MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
> > -		   MSI_FLAG_PCI_MSIX),
> > -	.chip	= &mtk_msi_irq_chip,
> > +	.flags		= (MSI_FLAG_USE_DEF_DOM_OPS |
> > +			   MSI_FLAG_USE_DEF_CHIP_OPS | MSI_FLAG_PCI_MSIX),
> > +	.ops		= &mtk_msi_domain_ops,
> > +	.chip		= &mtk_msi_irq_chip,
> > +	.handler	= handle_edge_irq,
> > +	.handler_name	= "MSI",
> >  };
> >  
> 
> 



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-01-22  9:25 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-21 11:59 PCI: mediatek: Remove MSI inner domain Jianjun Wang
2019-01-21 11:59 ` Jianjun Wang
2019-01-21 11:59 ` Jianjun Wang
2019-01-22  3:35 ` Ryder Lee
2019-01-22  3:35   ` Ryder Lee
2019-01-22  3:35   ` Ryder Lee
2019-01-22  9:25   ` Jianjun Wang [this message]
2019-01-22  9:25     ` Jianjun Wang
2019-01-22  9:25     ` Jianjun Wang

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=1548149146.11414.1.camel@mhfsdcap03 \
    --to=jianjun.wang@mediatek.com \
    --cc=bhelgaas@google.com \
    --cc=honghui.zhang@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=lorenzo.pieralisi@arm.com \
    --cc=matthias.bgg@gmail.com \
    --cc=ryder.lee@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 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.