Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37e16615 authored by Lennert Buytenhek's avatar Lennert Buytenhek Committed by Benjamin Herrenschmidt
Browse files

powerpc: sysdev/fsl_msi irq_data conversion.

parent c47eefa6
Loading
Loading
Loading
Loading
+10 −9
Original line number Original line Diff line number Diff line
@@ -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: