Commit 40b6d3fa authored by Jiang Liu's avatar Jiang Liu Committed by Thomas Gleixner

PCI/keystone: Use irq_data_get_msi_desc() to avoid redundant lookup of irq_data

Use irq_data_get_msi_desc() to avoid redundant lookup of irq_data while we
already have a pointer to corresponding irq_data.
Signed-off-by: default avatarJiang Liu <jiang.liu@linux.intel.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Murali Karicheri <m-karicheri2@ti.com>
Cc: linux-pci@vger.kernel.org
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 507a883e
...@@ -104,14 +104,13 @@ static void ks_dw_pcie_msi_irq_ack(struct irq_data *d) ...@@ -104,14 +104,13 @@ static void ks_dw_pcie_msi_irq_ack(struct irq_data *d)
{ {
u32 offset, reg_offset, bit_pos; u32 offset, reg_offset, bit_pos;
struct keystone_pcie *ks_pcie; struct keystone_pcie *ks_pcie;
unsigned int irq = d->irq;
struct msi_desc *msi; struct msi_desc *msi;
struct pcie_port *pp; struct pcie_port *pp;
msi = irq_get_msi_desc(irq); msi = irq_data_get_msi_desc(d);
pp = sys_to_pcie(msi->dev->bus->sysdata); pp = sys_to_pcie(msi->dev->bus->sysdata);
ks_pcie = to_keystone_pcie(pp); ks_pcie = to_keystone_pcie(pp);
offset = irq - irq_linear_revmap(pp->irq_domain, 0); offset = d->irq - irq_linear_revmap(pp->irq_domain, 0);
update_reg_offset_bit_pos(offset, &reg_offset, &bit_pos); update_reg_offset_bit_pos(offset, &reg_offset, &bit_pos);
writel(BIT(bit_pos), writel(BIT(bit_pos),
...@@ -142,15 +141,14 @@ void ks_dw_pcie_msi_clear_irq(struct pcie_port *pp, int irq) ...@@ -142,15 +141,14 @@ void ks_dw_pcie_msi_clear_irq(struct pcie_port *pp, int irq)
static void ks_dw_pcie_msi_irq_mask(struct irq_data *d) static void ks_dw_pcie_msi_irq_mask(struct irq_data *d)
{ {
struct keystone_pcie *ks_pcie; struct keystone_pcie *ks_pcie;
unsigned int irq = d->irq;
struct msi_desc *msi; struct msi_desc *msi;
struct pcie_port *pp; struct pcie_port *pp;
u32 offset; u32 offset;
msi = irq_get_msi_desc(irq); msi = irq_data_get_msi_desc(d);
pp = sys_to_pcie(msi->dev->bus->sysdata); pp = sys_to_pcie(msi->dev->bus->sysdata);
ks_pcie = to_keystone_pcie(pp); ks_pcie = to_keystone_pcie(pp);
offset = irq - irq_linear_revmap(pp->irq_domain, 0); offset = d->irq - irq_linear_revmap(pp->irq_domain, 0);
/* Mask the end point if PVM implemented */ /* Mask the end point if PVM implemented */
if (IS_ENABLED(CONFIG_PCI_MSI)) { if (IS_ENABLED(CONFIG_PCI_MSI)) {
...@@ -164,15 +162,14 @@ static void ks_dw_pcie_msi_irq_mask(struct irq_data *d) ...@@ -164,15 +162,14 @@ static void ks_dw_pcie_msi_irq_mask(struct irq_data *d)
static void ks_dw_pcie_msi_irq_unmask(struct irq_data *d) static void ks_dw_pcie_msi_irq_unmask(struct irq_data *d)
{ {
struct keystone_pcie *ks_pcie; struct keystone_pcie *ks_pcie;
unsigned int irq = d->irq;
struct msi_desc *msi; struct msi_desc *msi;
struct pcie_port *pp; struct pcie_port *pp;
u32 offset; u32 offset;
msi = irq_get_msi_desc(irq); msi = irq_data_get_msi_desc(d);
pp = sys_to_pcie(msi->dev->bus->sysdata); pp = sys_to_pcie(msi->dev->bus->sysdata);
ks_pcie = to_keystone_pcie(pp); ks_pcie = to_keystone_pcie(pp);
offset = irq - irq_linear_revmap(pp->irq_domain, 0); offset = d->irq - irq_linear_revmap(pp->irq_domain, 0);
/* Mask the end point if PVM implemented */ /* Mask the end point if PVM implemented */
if (IS_ENABLED(CONFIG_PCI_MSI)) { if (IS_ENABLED(CONFIG_PCI_MSI)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment