Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion drivers/mfd/rp1.c
Original file line number Diff line number Diff line change
Expand Up @@ -145,8 +145,14 @@ static int rp1_irq_set_affinity(struct irq_data *irqd, const struct cpumask *des
{
struct rp1_dev *rp1 = irqd->domain->host_data;
struct irq_data *pcie_irqd = rp1->pcie_irqds[irqd->hwirq];
int ret;

return msi_domain_set_affinity(pcie_irqd, dest, force);
ret = msi_domain_set_affinity(pcie_irqd, dest, force);
if (ret >= 0) {
irq_data_update_effective_affinity(irqd, dest);
return IRQ_SET_MASK_OK_DONE;
}
return ret;
}

static struct irq_chip rp1_irq_chip = {
Expand Down
10 changes: 8 additions & 2 deletions drivers/pinctrl/pinctrl-rp1.c
Original file line number Diff line number Diff line change
Expand Up @@ -958,8 +958,14 @@ static int rp1_gpio_irq_set_affinity(struct irq_data *data, const struct cpumask
}
}

if (parent_data && parent_data->chip->irq_set_affinity)
return parent_data->chip->irq_set_affinity(parent_data, dest, force);
if (parent_data && parent_data->chip->irq_set_affinity) {
int ret = parent_data->chip->irq_set_affinity(parent_data, dest, force);
if (ret >= 0) {
irq_data_update_effective_affinity(data, dest);
return IRQ_SET_MASK_OK_DONE;
}
return ret;
}

return -EINVAL;
}
Expand Down