mirror of
https://github.com/torvalds/linux
synced 2024-10-15 15:59:15 +00:00
powerpc: sysdev/fsl_msi irq_data conversion.
Signed-off-by: Lennert Buytenhek <buytenh@secretlab.ca> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
c47eefa660
commit
37e166151d
|
@ -47,14 +47,14 @@ static inline u32 fsl_msi_read(u32 __iomem *base, unsigned int reg)
|
||||||
* We do not need this actually. The MSIR register has been read once
|
* We do not need this actually. The MSIR register has been read once
|
||||||
* in the cascade interrupt. So, this MSI interrupt has been acked
|
* in the cascade interrupt. So, this MSI interrupt has been acked
|
||||||
*/
|
*/
|
||||||
static void fsl_msi_end_irq(unsigned int virq)
|
static void fsl_msi_end_irq(struct irq_data *d)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct irq_chip fsl_msi_chip = {
|
static struct irq_chip fsl_msi_chip = {
|
||||||
.irq_mask = mask_msi_irq,
|
.irq_mask = mask_msi_irq,
|
||||||
.irq_unmask = unmask_msi_irq,
|
.irq_unmask = unmask_msi_irq,
|
||||||
.ack = fsl_msi_end_irq,
|
.irq_ack = fsl_msi_end_irq,
|
||||||
.name = "FSL-MSI",
|
.name = "FSL-MSI",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -183,6 +183,7 @@ static int fsl_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
|
||||||
|
|
||||||
static void fsl_msi_cascade(unsigned int irq, struct irq_desc *desc)
|
static void fsl_msi_cascade(unsigned int irq, struct irq_desc *desc)
|
||||||
{
|
{
|
||||||
|
struct irq_chip *chip = get_irq_desc_chip(desc);
|
||||||
unsigned int cascade_irq;
|
unsigned int cascade_irq;
|
||||||
struct fsl_msi *msi_data;
|
struct fsl_msi *msi_data;
|
||||||
int msir_index = -1;
|
int msir_index = -1;
|
||||||
|
@ -196,11 +197,11 @@ static void fsl_msi_cascade(unsigned int irq, struct irq_desc *desc)
|
||||||
|
|
||||||
raw_spin_lock(&desc->lock);
|
raw_spin_lock(&desc->lock);
|
||||||
if ((msi_data->feature & FSL_PIC_IP_MASK) == FSL_PIC_IP_IPIC) {
|
if ((msi_data->feature & FSL_PIC_IP_MASK) == FSL_PIC_IP_IPIC) {
|
||||||
if (desc->chip->mask_ack)
|
if (chip->irq_mask_ack)
|
||||||
desc->chip->mask_ack(irq);
|
chip->irq_mask_ack(&desc->irq_data);
|
||||||
else {
|
else {
|
||||||
desc->chip->mask(irq);
|
chip->irq_mask(&desc->irq_data);
|
||||||
desc->chip->ack(irq);
|
chip->irq_ack(&desc->irq_data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -238,11 +239,11 @@ static void fsl_msi_cascade(unsigned int irq, struct irq_desc *desc)
|
||||||
|
|
||||||
switch (msi_data->feature & FSL_PIC_IP_MASK) {
|
switch (msi_data->feature & FSL_PIC_IP_MASK) {
|
||||||
case FSL_PIC_IP_MPIC:
|
case FSL_PIC_IP_MPIC:
|
||||||
desc->chip->eoi(irq);
|
chip->irq_eoi(&desc->irq_data);
|
||||||
break;
|
break;
|
||||||
case FSL_PIC_IP_IPIC:
|
case FSL_PIC_IP_IPIC:
|
||||||
if (!(desc->status & IRQ_DISABLED) && desc->chip->unmask)
|
if (!(desc->status & IRQ_DISABLED) && chip->irq_unmask)
|
||||||
desc->chip->unmask(irq);
|
chip->irq_unmask(&desc->irq_data);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
unlock:
|
unlock:
|
||||||
|
|
Loading…
Reference in a new issue