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

Commit b22da92f authored by Paul Mackerras's avatar Paul Mackerras
Browse files

Merge branch 'for-2.6.24' of...

Merge branch 'for-2.6.24' of master.kernel.org:/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx into merge
parents 52142e75 3d1d662e
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -17,12 +17,13 @@
 */

#include <linux/init.h>
#include <linux/of_platform.h>

#include <asm/machdep.h>
#include <asm/prom.h>
#include <asm/udbg.h>
#include <asm/time.h>
#include <asm/uic.h>
#include <asm/of_platform.h>

static struct of_device_id walnut_of_bus[] = {
	{ .compatible = "ibm,plb3", },
+2 −1
Original line number Diff line number Diff line
@@ -14,12 +14,13 @@
 * option) any later version.
 */
#include <linux/init.h>
#include <linux/of_platform.h>

#include <asm/machdep.h>
#include <asm/prom.h>
#include <asm/udbg.h>
#include <asm/time.h>
#include <asm/uic.h>
#include <asm/of_platform.h>
#include "44x.h"

static struct of_device_id bamboo_of_bus[] = {
+2 −1
Original line number Diff line number Diff line
@@ -17,12 +17,13 @@
 */

#include <linux/init.h>
#include <linux/of_platform.h>

#include <asm/machdep.h>
#include <asm/prom.h>
#include <asm/udbg.h>
#include <asm/time.h>
#include <asm/uic.h>
#include <asm/of_platform.h>

#include "44x.h"

+2 −1
Original line number Diff line number Diff line
@@ -14,12 +14,13 @@
 * option) any later version.
 */
#include <linux/init.h>
#include <linux/of_platform.h>

#include <asm/machdep.h>
#include <asm/prom.h>
#include <asm/udbg.h>
#include <asm/time.h>
#include <asm/uic.h>
#include <asm/of_platform.h>
#include "44x.h"

static struct of_device_id sequoia_of_bus[] = {
+17 −1
Original line number Diff line number Diff line
@@ -97,6 +97,22 @@ static void uic_ack_irq(unsigned int virq)
	spin_unlock_irqrestore(&uic->lock, flags);
}

static void uic_mask_ack_irq(unsigned int virq)
{
	struct uic *uic = get_irq_chip_data(virq);
	unsigned int src = uic_irq_to_hw(virq);
	unsigned long flags;
	u32 er, sr;

	sr = 1 << (31-src);
	spin_lock_irqsave(&uic->lock, flags);
	er = mfdcr(uic->dcrbase + UIC_ER);
	er &= ~sr;
	mtdcr(uic->dcrbase + UIC_ER, er);
	mtdcr(uic->dcrbase + UIC_SR, sr);
	spin_unlock_irqrestore(&uic->lock, flags);
}

static int uic_set_irq_type(unsigned int virq, unsigned int flow_type)
{
	struct uic *uic = get_irq_chip_data(virq);
@@ -152,7 +168,7 @@ static struct irq_chip uic_irq_chip = {
	.typename	= " UIC  ",
	.unmask		= uic_unmask_irq,
	.mask		= uic_mask_irq,
/* 	.mask_ack	= uic_mask_irq_and_ack, */
 	.mask_ack	= uic_mask_ack_irq,
	.ack		= uic_ack_irq,
	.set_type	= uic_set_irq_type,
};
Loading