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

Commit 687228ad authored by Lennert Buytenhek's avatar Lennert Buytenhek Committed by Benjamin Herrenschmidt
Browse files

powerpc: sysdev/ipic irq_data conversion.

parent d4201184
Loading
Loading
Loading
Loading
+27 −27
Original line number Original line Diff line number Diff line
@@ -523,10 +523,10 @@ static inline struct ipic * ipic_from_irq(unsigned int virq)


#define ipic_irq_to_hw(virq)	((unsigned int)irq_map[virq].hwirq)
#define ipic_irq_to_hw(virq)	((unsigned int)irq_map[virq].hwirq)


static void ipic_unmask_irq(unsigned int virq)
static void ipic_unmask_irq(struct irq_data *d)
{
{
	struct ipic *ipic = ipic_from_irq(virq);
	struct ipic *ipic = ipic_from_irq(d->irq);
	unsigned int src = ipic_irq_to_hw(virq);
	unsigned int src = ipic_irq_to_hw(d->irq);
	unsigned long flags;
	unsigned long flags;
	u32 temp;
	u32 temp;


@@ -539,10 +539,10 @@ static void ipic_unmask_irq(unsigned int virq)
	raw_spin_unlock_irqrestore(&ipic_lock, flags);
	raw_spin_unlock_irqrestore(&ipic_lock, flags);
}
}


static void ipic_mask_irq(unsigned int virq)
static void ipic_mask_irq(struct irq_data *d)
{
{
	struct ipic *ipic = ipic_from_irq(virq);
	struct ipic *ipic = ipic_from_irq(d->irq);
	unsigned int src = ipic_irq_to_hw(virq);
	unsigned int src = ipic_irq_to_hw(d->irq);
	unsigned long flags;
	unsigned long flags;
	u32 temp;
	u32 temp;


@@ -559,10 +559,10 @@ static void ipic_mask_irq(unsigned int virq)
	raw_spin_unlock_irqrestore(&ipic_lock, flags);
	raw_spin_unlock_irqrestore(&ipic_lock, flags);
}
}


static void ipic_ack_irq(unsigned int virq)
static void ipic_ack_irq(struct irq_data *d)
{
{
	struct ipic *ipic = ipic_from_irq(virq);
	struct ipic *ipic = ipic_from_irq(d->irq);
	unsigned int src = ipic_irq_to_hw(virq);
	unsigned int src = ipic_irq_to_hw(d->irq);
	unsigned long flags;
	unsigned long flags;
	u32 temp;
	u32 temp;


@@ -578,10 +578,10 @@ static void ipic_ack_irq(unsigned int virq)
	raw_spin_unlock_irqrestore(&ipic_lock, flags);
	raw_spin_unlock_irqrestore(&ipic_lock, flags);
}
}


static void ipic_mask_irq_and_ack(unsigned int virq)
static void ipic_mask_irq_and_ack(struct irq_data *d)
{
{
	struct ipic *ipic = ipic_from_irq(virq);
	struct ipic *ipic = ipic_from_irq(d->irq);
	unsigned int src = ipic_irq_to_hw(virq);
	unsigned int src = ipic_irq_to_hw(d->irq);
	unsigned long flags;
	unsigned long flags;
	u32 temp;
	u32 temp;


@@ -601,11 +601,11 @@ static void ipic_mask_irq_and_ack(unsigned int virq)
	raw_spin_unlock_irqrestore(&ipic_lock, flags);
	raw_spin_unlock_irqrestore(&ipic_lock, flags);
}
}


static int ipic_set_irq_type(unsigned int virq, unsigned int flow_type)
static int ipic_set_irq_type(struct irq_data *d, unsigned int flow_type)
{
{
	struct ipic *ipic = ipic_from_irq(virq);
	struct ipic *ipic = ipic_from_irq(d->irq);
	unsigned int src = ipic_irq_to_hw(virq);
	unsigned int src = ipic_irq_to_hw(d->irq);
	struct irq_desc *desc = irq_to_desc(virq);
	struct irq_desc *desc = irq_to_desc(d->irq);
	unsigned int vold, vnew, edibit;
	unsigned int vold, vnew, edibit;


	if (flow_type == IRQ_TYPE_NONE)
	if (flow_type == IRQ_TYPE_NONE)
@@ -630,10 +630,10 @@ static int ipic_set_irq_type(unsigned int virq, unsigned int flow_type)
	if (flow_type & IRQ_TYPE_LEVEL_LOW)  {
	if (flow_type & IRQ_TYPE_LEVEL_LOW)  {
		desc->status |= IRQ_LEVEL;
		desc->status |= IRQ_LEVEL;
		desc->handle_irq = handle_level_irq;
		desc->handle_irq = handle_level_irq;
		desc->chip = &ipic_level_irq_chip;
		desc->irq_data.chip = &ipic_level_irq_chip;
	} else {
	} else {
		desc->handle_irq = handle_edge_irq;
		desc->handle_irq = handle_edge_irq;
		desc->chip = &ipic_edge_irq_chip;
		desc->irq_data.chip = &ipic_edge_irq_chip;
	}
	}


	/* only EXT IRQ senses are programmable on ipic
	/* only EXT IRQ senses are programmable on ipic
@@ -661,19 +661,19 @@ static int ipic_set_irq_type(unsigned int virq, unsigned int flow_type)
/* level interrupts and edge interrupts have different ack operations */
/* level interrupts and edge interrupts have different ack operations */
static struct irq_chip ipic_level_irq_chip = {
static struct irq_chip ipic_level_irq_chip = {
	.name		= "IPIC",
	.name		= "IPIC",
	.unmask		= ipic_unmask_irq,
	.irq_unmask	= ipic_unmask_irq,
	.mask		= ipic_mask_irq,
	.irq_mask	= ipic_mask_irq,
	.mask_ack	= ipic_mask_irq,
	.irq_mask_ack	= ipic_mask_irq,
	.set_type	= ipic_set_irq_type,
	.irq_set_type	= ipic_set_irq_type,
};
};


static struct irq_chip ipic_edge_irq_chip = {
static struct irq_chip ipic_edge_irq_chip = {
	.name		= "IPIC",
	.name		= "IPIC",
	.unmask		= ipic_unmask_irq,
	.irq_unmask	= ipic_unmask_irq,
	.mask		= ipic_mask_irq,
	.irq_mask	= ipic_mask_irq,
	.mask_ack	= ipic_mask_irq_and_ack,
	.irq_mask_ack	= ipic_mask_irq_and_ack,
	.ack		= ipic_ack_irq,
	.irq_ack	= ipic_ack_irq,
	.set_type	= ipic_set_irq_type,
	.irq_set_type	= ipic_set_irq_type,
};
};


static int ipic_host_match(struct irq_host *h, struct device_node *node)
static int ipic_host_match(struct irq_host *h, struct device_node *node)