2017-08-30 01:19:26

by Honghui Zhang

[permalink] [raw]
Subject: [PATCH] PCI: mediatek: take use of PCI_NUM_INTX

From: Honghui Zhang <[email protected]>

Switch from using a custom NUM_INTX macro to the generic PCI_NUM_INTX
definition for the number of INTx interrupts.

Signed-off-by: Honghui Zhang <[email protected]>
---
drivers/pci/host/pcie-mediatek.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/pci/host/pcie-mediatek.c b/drivers/pci/host/pcie-mediatek.c
index c567996..5c0ce9b 100644
--- a/drivers/pci/host/pcie-mediatek.c
+++ b/drivers/pci/host/pcie-mediatek.c
@@ -77,7 +77,6 @@
#define PCIE_INT_MASK 0x420
#define INTX_MASK GENMASK(19, 16)
#define INTX_SHIFT 16
-#define INTX_NUM 4
#define PCIE_INT_STATUS 0x424
#define MSI_STATUS BIT(23)
#define PCIE_IMSI_STATUS 0x42c
@@ -576,7 +575,7 @@ static int mtk_pcie_init_irq_domain(struct mtk_pcie_port *port,
return -ENODEV;
}

- port->irq_domain = irq_domain_add_linear(pcie_intc_node, INTX_NUM,
+ port->irq_domain = irq_domain_add_linear(pcie_intc_node, PCI_NUM_INTX,
&intx_domain_ops, port);
if (!port->irq_domain) {
dev_err(dev, "failed to get INTx IRQ domain\n");
@@ -594,7 +593,7 @@ static irqreturn_t mtk_pcie_intr_handler(int irq, void *data)
u32 bit = INTX_SHIFT;

while ((status = readl(port->base + PCIE_INT_STATUS)) & INTX_MASK) {
- for_each_set_bit_from(bit, &status, INTX_NUM + INTX_SHIFT) {
+ for_each_set_bit_from(bit, &status, PCI_NUM_INTX + INTX_SHIFT) {
/* Clear the INTx */
writel(1 << bit, port->base + PCIE_INT_STATUS);
virq = irq_find_mapping(port->irq_domain,
--
2.6.4


2017-08-30 01:45:09

by Honghui Zhang

[permalink] [raw]
Subject: Re: [PATCH] PCI: mediatek: take use of PCI_NUM_INTX

On Wed, 2017-08-30 at 09:19 +0800, [email protected] wrote:
> From: Honghui Zhang <[email protected]>
>
> Switch from using a custom NUM_INTX macro to the generic PCI_NUM_INTX
> definition for the number of INTx interrupts.
>
> Signed-off-by: Honghui Zhang <[email protected]>
> ---
> drivers/pci/host/pcie-mediatek.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>

Hi, Bjorn, Ryder,
this patch is based on Paul's v7 version of patch[1]("Move enum
pci_interrupt_pin to linux/pci.h").
[1]http://www.spinics.net/lists/linux-pci/msg63891.html

Thanks.

> diff --git a/drivers/pci/host/pcie-mediatek.c b/drivers/pci/host/pcie-mediatek.c
> index c567996..5c0ce9b 100644
> --- a/drivers/pci/host/pcie-mediatek.c
> +++ b/drivers/pci/host/pcie-mediatek.c
> @@ -77,7 +77,6 @@
> #define PCIE_INT_MASK 0x420
> #define INTX_MASK GENMASK(19, 16)
> #define INTX_SHIFT 16
> -#define INTX_NUM 4
> #define PCIE_INT_STATUS 0x424
> #define MSI_STATUS BIT(23)
> #define PCIE_IMSI_STATUS 0x42c
> @@ -576,7 +575,7 @@ static int mtk_pcie_init_irq_domain(struct mtk_pcie_port *port,
> return -ENODEV;
> }
>
> - port->irq_domain = irq_domain_add_linear(pcie_intc_node, INTX_NUM,
> + port->irq_domain = irq_domain_add_linear(pcie_intc_node, PCI_NUM_INTX,
> &intx_domain_ops, port);
> if (!port->irq_domain) {
> dev_err(dev, "failed to get INTx IRQ domain\n");
> @@ -594,7 +593,7 @@ static irqreturn_t mtk_pcie_intr_handler(int irq, void *data)
> u32 bit = INTX_SHIFT;
>
> while ((status = readl(port->base + PCIE_INT_STATUS)) & INTX_MASK) {
> - for_each_set_bit_from(bit, &status, INTX_NUM + INTX_SHIFT) {
> + for_each_set_bit_from(bit, &status, PCI_NUM_INTX + INTX_SHIFT) {
> /* Clear the INTx */
> writel(1 << bit, port->base + PCIE_INT_STATUS);
> virq = irq_find_mapping(port->irq_domain,


2017-08-30 13:24:43

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: [PATCH] PCI: mediatek: take use of PCI_NUM_INTX

On Wed, Aug 30, 2017 at 09:19:14AM +0800, [email protected] wrote:
> From: Honghui Zhang <[email protected]>
>
> Switch from using a custom NUM_INTX macro to the generic PCI_NUM_INTX
> definition for the number of INTx interrupts.
>
> Signed-off-by: Honghui Zhang <[email protected]>

I rebased pci/host-mediatek on top of pci/irq-intx (which adds
PCI_NUM_INTX) and applied this for v4.14, thanks!

> ---
> drivers/pci/host/pcie-mediatek.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/pci/host/pcie-mediatek.c b/drivers/pci/host/pcie-mediatek.c
> index c567996..5c0ce9b 100644
> --- a/drivers/pci/host/pcie-mediatek.c
> +++ b/drivers/pci/host/pcie-mediatek.c
> @@ -77,7 +77,6 @@
> #define PCIE_INT_MASK 0x420
> #define INTX_MASK GENMASK(19, 16)
> #define INTX_SHIFT 16
> -#define INTX_NUM 4
> #define PCIE_INT_STATUS 0x424
> #define MSI_STATUS BIT(23)
> #define PCIE_IMSI_STATUS 0x42c
> @@ -576,7 +575,7 @@ static int mtk_pcie_init_irq_domain(struct mtk_pcie_port *port,
> return -ENODEV;
> }
>
> - port->irq_domain = irq_domain_add_linear(pcie_intc_node, INTX_NUM,
> + port->irq_domain = irq_domain_add_linear(pcie_intc_node, PCI_NUM_INTX,
> &intx_domain_ops, port);
> if (!port->irq_domain) {
> dev_err(dev, "failed to get INTx IRQ domain\n");
> @@ -594,7 +593,7 @@ static irqreturn_t mtk_pcie_intr_handler(int irq, void *data)
> u32 bit = INTX_SHIFT;
>
> while ((status = readl(port->base + PCIE_INT_STATUS)) & INTX_MASK) {
> - for_each_set_bit_from(bit, &status, INTX_NUM + INTX_SHIFT) {
> + for_each_set_bit_from(bit, &status, PCI_NUM_INTX + INTX_SHIFT) {
> /* Clear the INTx */
> writel(1 << bit, port->base + PCIE_INT_STATUS);
> virq = irq_find_mapping(port->irq_domain,
> --
> 2.6.4
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel