LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 12/14] powerpc/pci: Move FSL fixup from 32-bit to common
From: Kumar Gala @ 2011-05-20  6:09 UTC (permalink / raw)
  To: linuxppc-dev
In-Reply-To: <1305871771-16334-11-git-send-email-galak@kernel.crashing.org>

We need the FSL specific header fixup code on both 32-bit and 64-bit
platforms so just move the code into pci-common.c.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
 arch/powerpc/kernel/pci-common.c |   18 ++++++++++++++++++
 arch/powerpc/kernel/pci_32.c     |   19 -------------------
 2 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index 893af2a..4f134132c 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -1728,3 +1728,21 @@ void __devinit pcibios_scan_phb(struct pci_controller *hose)
 	if (mode == PCI_PROBE_NORMAL)
 		hose->last_busno = bus->subordinate = pci_scan_child_bus(bus);
 }
+
+static void fixup_hide_host_resource_fsl(struct pci_dev *dev)
+{
+	int i, class = dev->class >> 8;
+
+	if ((class == PCI_CLASS_PROCESSOR_POWERPC ||
+	     class == PCI_CLASS_BRIDGE_OTHER) &&
+		(dev->hdr_type == PCI_HEADER_TYPE_NORMAL) &&
+		(dev->bus->parent == NULL)) {
+		for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
+			dev->resource[i].start = 0;
+			dev->resource[i].end = 0;
+			dev->resource[i].flags = 0;
+		}
+	}
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MOTOROLA, PCI_ANY_ID, fixup_hide_host_resource_fsl);
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID, fixup_hide_host_resource_fsl);
diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c
index bedb370..d521644 100644
--- a/arch/powerpc/kernel/pci_32.c
+++ b/arch/powerpc/kernel/pci_32.c
@@ -51,25 +51,6 @@ struct pci_dev *isa_bridge_pcidev;
 EXPORT_SYMBOL_GPL(isa_bridge_pcidev);
 
 static void
-fixup_hide_host_resource_fsl(struct pci_dev *dev)
-{
-	int i, class = dev->class >> 8;
-
-	if ((class == PCI_CLASS_PROCESSOR_POWERPC ||
-	     class == PCI_CLASS_BRIDGE_OTHER) &&
-		(dev->hdr_type == PCI_HEADER_TYPE_NORMAL) &&
-		(dev->bus->parent == NULL)) {
-		for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
-			dev->resource[i].start = 0;
-			dev->resource[i].end = 0;
-			dev->resource[i].flags = 0;
-		}
-	}
-}
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MOTOROLA, PCI_ANY_ID, fixup_hide_host_resource_fsl); 
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID, fixup_hide_host_resource_fsl); 
-
-static void
 fixup_cpc710_pci64(struct pci_dev* dev)
 {
 	/* Hide the PCI64 BARs from the kernel as their content doesn't
-- 
1.7.3.4

^ permalink raw reply related

* [PATCH 13/14] powerpc/85xx: Add PCI support in 64-bit mode on P5020DS
From: Kumar Gala @ 2011-05-20  6:09 UTC (permalink / raw)
  To: linuxppc-dev
In-Reply-To: <1305871771-16334-12-git-send-email-galak@kernel.crashing.org>

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
 arch/powerpc/platforms/85xx/corenet_ds.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/platforms/85xx/corenet_ds.c b/arch/powerpc/platforms/85xx/corenet_ds.c
index 10af3c7..338e6dc 100644
--- a/arch/powerpc/platforms/85xx/corenet_ds.c
+++ b/arch/powerpc/platforms/85xx/corenet_ds.c
@@ -22,6 +22,7 @@
 #include <asm/time.h>
 #include <asm/machdep.h>
 #include <asm/pci-bridge.h>
+#include <asm/ppc-pci.h>
 #include <mm/mmu_decl.h>
 #include <asm/prom.h>
 #include <asm/udbg.h>
@@ -90,6 +91,10 @@ void __init corenet_ds_setup_arch(void)
 					hose->dma_window_size);
 		}
 	}
+
+#ifdef CONFIG_PPC64
+	pci_devs_phb_init();
+#endif
 #endif
 
 #ifdef CONFIG_SWIOTLB
-- 
1.7.3.4

^ permalink raw reply related

* [PATCH 14/14] powerpc/qe: Limit QE support to ppc32
From: Kumar Gala @ 2011-05-20  6:09 UTC (permalink / raw)
  To: linuxppc-dev
In-Reply-To: <1305871771-16334-13-git-send-email-galak@kernel.crashing.org>

Only 32-bit SoCs have a QUICC Engine so limit the config option to PPC32.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
 arch/powerpc/platforms/Kconfig |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig
index f970ca2..546ceea 100644
--- a/arch/powerpc/platforms/Kconfig
+++ b/arch/powerpc/platforms/Kconfig
@@ -266,7 +266,7 @@ config TAU_AVERAGE
 
 config QUICC_ENGINE
 	bool "Freescale QUICC Engine (QE) Support"
-	depends on FSL_SOC
+	depends on FSL_SOC && PPC32
 	select PPC_LIB_RHEAP
 	select CRC32
 	help
-- 
1.7.3.4

^ permalink raw reply related

* [PATCH 1/2] powerpc/pmac: Update via-pmu to new syscore_ops
From: Benjamin Herrenschmidt @ 2011-05-20  7:51 UTC (permalink / raw)
  To: linuxppc-dev

This was left as a sysdev, breaking the build

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 drivers/macintosh/via-pmu.c |   56 +++++++++---------------------------------
 1 files changed, 12 insertions(+), 44 deletions(-)

diff --git a/drivers/macintosh/via-pmu.c b/drivers/macintosh/via-pmu.c
index 8b021eb..6cccd60 100644
--- a/drivers/macintosh/via-pmu.c
+++ b/drivers/macintosh/via-pmu.c
@@ -40,7 +40,7 @@
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/device.h>
-#include <linux/sysdev.h>
+#include <linux/syscore_ops.h>
 #include <linux/freezer.h>
 #include <linux/syscalls.h>
 #include <linux/suspend.h>
@@ -2527,12 +2527,9 @@ void pmu_blink(int n)
 #if defined(CONFIG_SUSPEND) && defined(CONFIG_PPC32)
 int pmu_sys_suspended;
 
-static int pmu_sys_suspend(struct sys_device *sysdev, pm_message_t state)
+static int pmu_syscore_suspend(void)
 {
-	if (state.event != PM_EVENT_SUSPEND || pmu_sys_suspended)
-		return 0;
-
-	/* Suspend PMU event interrupts */\
+	/* Suspend PMU event interrupts */
 	pmu_suspend();
 	pmu_sys_suspended = 1;
 
@@ -2544,12 +2541,12 @@ static int pmu_sys_suspend(struct sys_device *sysdev, pm_message_t state)
 	return 0;
 }
 
-static int pmu_sys_resume(struct sys_device *sysdev)
+static void pmu_syscore_resume(void)
 {
 	struct adb_request req;
 
 	if (!pmu_sys_suspended)
-		return 0;
+		return;
 
 	/* Tell PMU we are ready */
 	pmu_request(&req, NULL, 2, PMU_SYSTEM_READY, 2);
@@ -2562,50 +2559,21 @@ static int pmu_sys_resume(struct sys_device *sysdev)
 	/* Resume PMU event interrupts */
 	pmu_resume();
 	pmu_sys_suspended = 0;
-
-	return 0;
 }
 
-#endif /* CONFIG_SUSPEND && CONFIG_PPC32 */
-
-static struct sysdev_class pmu_sysclass = {
-	.name = "pmu",
-};
-
-static struct sys_device device_pmu = {
-	.cls		= &pmu_sysclass,
-};
-
-static struct sysdev_driver driver_pmu = {
-#if defined(CONFIG_SUSPEND) && defined(CONFIG_PPC32)
-	.suspend	= &pmu_sys_suspend,
-	.resume		= &pmu_sys_resume,
-#endif /* CONFIG_SUSPEND && CONFIG_PPC32 */
+static struct syscore_ops pmu_syscore_ops = {
+	.suspend = pmu_syscore_suspend,
+	.resume = pmu_syscore_resume,
 };
 
-static int __init init_pmu_sysfs(void)
+static int pmu_syscore_register(void)
 {
-	int rc;
+	register_syscore_ops(&pmu_syscore_ops);
 
-	rc = sysdev_class_register(&pmu_sysclass);
-	if (rc) {
-		printk(KERN_ERR "Failed registering PMU sys class\n");
-		return -ENODEV;
-	}
-	rc = sysdev_register(&device_pmu);
-	if (rc) {
-		printk(KERN_ERR "Failed registering PMU sys device\n");
-		return -ENODEV;
-	}
-	rc = sysdev_driver_register(&pmu_sysclass, &driver_pmu);
-	if (rc) {
-		printk(KERN_ERR "Failed registering PMU sys driver\n");
-		return -ENODEV;
-	}
 	return 0;
 }
-
-subsys_initcall(init_pmu_sysfs);
+subsys_initcall(pmu_syscore_register);
+#endif /* CONFIG_SUSPEND && CONFIG_PPC32 */
 
 EXPORT_SYMBOL(pmu_request);
 EXPORT_SYMBOL(pmu_queue_request);
-- 
1.7.1

^ permalink raw reply related

* [PATCH 2/2] powerpc: Fix hard CPU IDs detection
From: Benjamin Herrenschmidt @ 2011-05-20  7:51 UTC (permalink / raw)
  To: linuxppc-dev
In-Reply-To: <1305877875-23157-1-git-send-email-benh@kernel.crashing.org>

commit 9d07bc841c9779b4d7902e417f4e509996ce805d
"powerpc: Properly handshake CPUs going out of boot spin loop"

Would cause a miscalculation of the hard CPU ID. It removes breaking
out of the loop when finding a match with a processor, thus the "i"
used as an index in the intserv array is always incorrect

This broke interrupt on my PowerMac laptop.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 arch/powerpc/kernel/prom.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 5311a26..48aeb55 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -278,6 +278,7 @@ static int __init early_init_dt_scan_cpus(unsigned long node,
 	int i, nthreads;
 	unsigned long len;
 	int found = -1;
+	int found_thread = 0;
 
 	/* We are scanning "cpu" nodes only */
 	if (type == NULL || strcmp(type, "cpu") != 0)
@@ -301,9 +302,11 @@ static int __init early_init_dt_scan_cpus(unsigned long node,
 		 * version 2 of the kexec param format adds the phys cpuid of
 		 * booted proc.
 		 */
-		if (initial_boot_params && initial_boot_params->version >= 2) {
-			if (intserv[i] == initial_boot_params->boot_cpuid_phys)
+		if (initial_boot_params->version >= 2) {
+			if (intserv[i] == initial_boot_params->boot_cpuid_phys) {
 				found = boot_cpu_count;
+				found_thread = i;
+			}
 		} else {
 			/*
 			 * Check if it's the boot-cpu, set it's hw index now,
@@ -322,9 +325,9 @@ static int __init early_init_dt_scan_cpus(unsigned long node,
 
 	if (found >= 0) {
 		DBG("boot cpu: logical %d physical %d\n", found,
-			intserv[i]);
+			intserv[found_thread]);
 		boot_cpuid = found;
-		set_hard_smp_processor_id(found, intserv[i]);
+		set_hard_smp_processor_id(found, intserv[found_thread]);
 
 		/*
 		 * PAPR defines "logical" PVR values for cpus that
-- 
1.7.1

^ permalink raw reply related

* [git pull] Please pull powerpc.git merge branch
From: Benjamin Herrenschmidt @ 2011-05-20  8:06 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linuxppc-dev list, Andrew Morton, Linux Kernel list

Hi Linus

Here's the bulk of powerpc changes for this merge window. 

Some of the highlights are:

 - Basic support for the new PowerEN processor (Power Edge of Network, I
didn't come up with that name), and known in the linux code by one of
it's former code names "wsp" (aka Wirespeed Processor). This adds among
other support for the A2i core contained in that SoC which is an
embedded multithreaded 64-bit core with an in-order pipeline using the
"embedded" variant of the PowerPC architecture.

 - Some work for running on Power7 without an underlying hypervisor
(running in hypervisor mode), which will enable the KVM code that Paulus
and Alex are getting ready for the next merge window

 - A whole pile of cleanups and bugs fixes mostly to our interrupt
handling from Milton, which should make Thomas and Grant life easier in
moving some of the irq domain facility to generic code

And the usual pile of small bits & pieces, fixes, new boards, etc...

I have done a manual merge with your tree today to fixup a non-trivial
clash with Peter's scheduler_ipi() changes (the obvious fixup would have
missed a couple of places where that call needs to be added) and I've
added a pair of fixes on top of it to work around immediate breakage I
found after testing the result.

Note: At the time of sending this, it hadn't hit the mirrors yet.

Cheers,
Ben. 

The following changes since commit 39ab05c8e0b519ff0a04a869f065746e6e8c3d95:

  Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 (2011-05-19 18:24:11 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git merge

Alexey Kardashevskiy (1):
      powerpc: Per process DSCR + some fixes (try#4)

Anton Blanchard (10):
      powerpc: Replace open coded instruction patching with patch_instruction/patch_branch
      powerpc/rtas: Only sleep in rtas_busy_delay if we have useful work to do
      powerpc/pseries: Enable Emulex and Qlogic 10Gbit cards
      powerpc/pseries: Enable iSCSI support for a number of cards
      powerpc: Simplify 4k/64k copy_page logic
      powerpc: Remove static branch hint in giveup_altivec
      powerpc: Improve scheduling of system call entry instructions
      powerpc: Add ioremap_wc
      powerpc: Remove ioremap_flags
      powerpc/pseries: Print corrupt r3 in FWNMI code

Ben Hutchings (2):
      powerpc/kexec: Fix build failure on 32-bit SMP
      powerpc/kexec: Fix build failure on 32-bit SMP

Benjamin Herrenschmidt (29):
      powerpc/xics: Rewrite XICS driver
      powerpc: Add more Power7 specific definitions
      powerpc/xics: Make sure we have a sensible default distribution server
      powerpc: Define CPU feature for Architected 2.06 HV mode
      powerpc: In HV mode, use HSPRG0 for PACA
      powerpc: Base support for exceptions using HSRR0/1
      powerpc: More work to support HV exceptions
      powerpc: Initialize LPCR:DPFD on power7 to a sane default
      powerpc: Initialize TLB and LPID register on HV mode Power7
      powerpc: Call CPU ->restore callback earlier on secondary CPUs
      powerpc: Properly handshake CPUs going out of boot spin loop
      powerpc: Add NAP mode support on Power7 in HV mode
      powerpc: Perform an isync to synchronize CPUs coming out of secondary_hold
      powerpc: Improve prom_printf()
      powerpc/a2: Add some #defines for A2 specific instructions
      powerpc: Add SCOM infrastructure
      powerpc/nvram: Search for nvram using compatible
      powerpc: Add A2 cpu support
      powerpc: Add TLB size detection for TYPE_3E MMUs
      powerpc/book3e: Use way 3 for linear mapping bolted entry
      powerpc: Rename slb0_limit() to safe_stack_limit() and add Book3E support
      powerpc/smp: Make start_secondary_resume available to all CPU variants
      powerpc: Remove unused/obsolete CONFIG_XICS
      Merge branch 'merge' into next
      powerpc: Make early memory scan more resilient to out of order nodes
      Merge remote branch 'kumar/next' into next
      Merge remote branch 'origin/master' into merge
      powerpc/pmac: Update via-pmu to new syscore_ops
      powerpc: Fix hard CPU IDs detection

Bhaskar Upadhaya (1):
      powerpc: Adding bindings for flexcan controller

Brian King (1):
      powerpc/pseries: Add page coalescing support

David Gibson (2):
      powerpc/boot: Add an ePAPR compliant boot wrapper
      powerpc: Add WSP platform

Dipen Dudhat (1):
      powerpc: Integrated Flash controller device tree bindings

Gabriel Paubert (1):
      powerpc: Fix for Pegasos keyboard and mouse

Geert Uytterhoeven (2):
      powerpc/ps3: Update debug message for irq_set_chip_data()
      powerpc/mpc8610_hpcd: Do not use "/" in interrupt names

Grant Likely (1):
      powerpc/irq: Stop exporting irq_map

Ira Snyder (2):
      misc: Add CARMA DATA-FPGA Access Driver
      misc: Add CARMA DATA-FPGA Programmer support

Jack Miller (2):
      powerpc/book3e: Flush IPROT protected TLB entries leftover by firmware
      powerpc: Add early debug for WSP platforms

Justin Mattock (1):
      powerpc: Remove unused config in the Makefile

KOSAKI Motohiro (1):
      powerpc: Convert old cpumask API into new one

Kumar Gala (2):
      Merge remote branch 'benh/merge' into benh-next
      powerpc/fsl-booke64: Add support for Debug Level exception handler

Matt Evans (1):
      powerpc: Free up some CPU feature bits by moving out MMU-related features

Michael Ellerman (19):
      powerpc/mm: Standardise on MMU_NO_CONTEXT
      powerpc/mm: Fix slice state initialization for Book3E
      powerpc/boot: Allow building the zImage wrapper as a relocatable ET_DYN
      powerpc/smp: smp_ops->kick_cpu() should be able to fail
      powerpc/nohash: Allocate stale_map[cpu] on CPU_UP_PREPARE not CPU_ONLINE
      of: Export of_irq_find_parent()
      powerpc/xics: xics.h relies on linux/interrupt.h
      powerpc/xics: Move irq_host matching into the ics backend
      powerpc: Index crit/dbg/mcheck stacks using cpu number on 64bit
      powerpc/pci: Split IO vs MMIO indirect access hooks
      powerpc/pci: Move IO workarounds to the common kernel dir
      powerpc/pci: Make IO workarounds init implicit when first bus is registered
      powerpc/pci: Properly initialize IO workaround "private"
      powerpc/numa: Look for ibm, associativity-reference-points at the root
      powerpc/irq: Dump chip data pointer in virq_mapping
      powerpc: Add MSR_64BIT
      powerpc: Use MSR_64BIT in places
      powerpc: Use MSR_64BIT in sstep.c, fix kprobes on BOOK3E
      powerpc/book3e: Fix extlb size

Michael Neuling (1):
      powerpc: Use new CPU feature bit to select 2.06 tlbie

Michal Marek (2):
      powerpc: Call gzip with -n
      powerpc: Use the deterministic mode of ar

Milton Miller (39):
      powerpc/kexec: Fix memory corruption from unallocated slaves
      powerpc: Don't search for paca in freed memory
      powerpc/kdump64: Don't reference freed memory as pacas
      powerpc/iseries: Cleanup and fix secondary startup
      powerpc: Respect nr_cpu_ids when calling set_cpu_possible and set_cpu_present
      powerpc: Use nr_cpu_ids in initial paca allocation
      powerpc: Call no-longer static setup_nr_cpu_ids instead of replicating it
      powerpc/mpic: Limit NR_CPUS loop to 32 bit
      powerpc/mpic: Break cpumask abstraction earlier
      powerpc: Remove call sites of MSG_ALL_BUT_SELF
      powerpc: Remove checks for MSG_ALL and MSG_ALL_BUT_SELF
      powerpc/mpic: Simplify ipi cpu mask handling
      powerpc: Remove powermac/pic.h
      powerpc: Remove alloc_maybe_bootmem for zalloc version
      powerpc: Remove stubbed beat smp support
      powerpc: Move smp_ops_t from machdep.h to smp.h
      powerpc: Consolidate ipi message mux and demux
      powerpc: Add kconfig for muxed smp ipi support
      powerpc: Use bytes instead of bitops in smp ipi multiplexing
      powerpc/xics: Cleanup xics_host_map and ipi
      powerpc: Radix trees are available before init_IRQ
      powerpc: Return early if irq_host lookup type is wrong
      powerpc: Remove trival irq_host_ops.unmap
      powerpc: Remove i8259 irq_host_ops->unmap
      powerpc/fsl_msi: Don't abuse platform_data for driver_data
      powerpc/fsl_msi: Use chip_data not handler_data
      powerpc/mpc5121_ads_cpld: Remove use of NO_IRQ_IGNORE
      powerpc/mpc62xx_pic: Fix get_irq handling of NO_IRQ
      powerpc/psurge: Create a irq_host for secondary cpus
      powerpc: Remove irq_host_ops->remap hook
      powerpc/spider-pic: Get pic from chip_data instead of irq_map
      powerpc/axon_msi: Validate msi irq via chip_data
      powerpc: Add virq_is_host to reduce virq_to_host usage
      powerpc: Remove virq_to_host
      powerpc: Make IRQ_NOREQUEST last to clear, first to set
      powerpc/pseries/iommu: Add additional checks when changing iommu mask
      powerpc/pseries/iommu: Remove ddw property when destroying window
      powerpc/pseries/iommu: Find windows after kexec during boot
      powerpc/pseries/iommu: Cleanup ddw naming

Nishanth Aravamudan (5):
      cxgb4: use pgprot_writecombine() on powerpc
      powerpc: Fix kexec with dynamic dma windows
      powerpc: Ensure dtl buffers do not cross 4k boundary
      pseries/iommu: Restore iommu table pointer when restoring iommu ops
      powerpc/pseries/iommu: Use correct return type in dupe_ddw_if_already_created

Paul Mackerras (5):
      powerpc: Always use SPRN_SPRG_HSCRATCH0 when running in HV mode
      powerpc: Save register r9-r13 values accurately on interrupt with bad stack
      powerpc: Save Come-From Address Register (CFAR) in exception frame
      powerpc/kvm: Fix kvmppc_core_pending_dec
      powerpc/kvm: Fix the build for 32-bit Book 3S (classic) processors

Prabhakar Kushwaha (4):
      powerpc/85xx: P1020 DTS : re-organize dts files
      powerpc/85xx: P2020 DTS: re-organize dts files
      powerpc/85xx: Fix PCIe IDSEL for Px020RDB
      powerpc/85xx: Create dts of each core in CAMP mode for P1020RDB

Richard A Lary (3):
      powerpc/pseries/eeh: Propagate needs_freset flag to device at PE
      powerpc/pseries/eeh: Handle functional reset on non-PCIe device
      powerpc/eeh: Display eeh error location for bus and device

Richard A. Lary (1):
      powerpc/eeh: Add support for ibm,configure-pe RTAS call

Robert P. J. Day (1):
      powerpc/pseries/bsr: Remove redundant initialization of bsr dev_t declaration.

Scott Wood (7):
      powerpc/e5500: set non-base IVORs
      powerpc: Add fsl mpic timer binding
      powerpc/p1022ds: fix broken mpic timer node
      powerpc/mpic: parse 4-cell intspec types other than zero
      powerpc/mpic: add the mpic global timer support
      powerpc/e5500: add networking to defconfig
      powerpc/fsl: enable verbose bug output

Sebastian Siewior (1):
      powerpc: Remove last piece of GEMINI

Stephen Rothwell (1):
      powerpc: Fix compile with icwsx support

Stratos Psomadakis (1):
      powerpc/mm: Fix compiler warning in pgtable-ppc64.h [-Wunused-but-set-variable]

Timur Tabi (1):
      powerpc/86xx: don't pretend that we support 8-bit pixels on the MPC8610 HPCD

Tseng-Hui (Frank) Lin (3):
      powerpc: Add Initiate Coprocessor Store Word (icswx) support
      powerpc/pseries: Add RTAS event log v6 definition
      powerpc/pseries: Add support for IO event interrupts

Wanlong Gao (1):
      powerpc: Fix build warning of the defconfigs

kerstin jonsson (1):
      powerpc/4xx: Fix regression in SMP on 476

 .../devicetree/bindings/net/can/fsl-flexcan.txt    |   61 +
 .../devicetree/bindings/powerpc/fsl/ifc.txt        |   76 +
 .../devicetree/bindings/powerpc/fsl/mpic-timer.txt |   38 +
 .../devicetree/bindings/powerpc/fsl/mpic.txt       |    2 +-
 arch/powerpc/Kconfig                               |    6 +
 arch/powerpc/Kconfig.debug                         |    5 +
 arch/powerpc/boot/Makefile                         |    6 +-
 arch/powerpc/boot/crt0.S                           |  116 +-
 arch/powerpc/boot/dts/p1020rdb.dts                 |  332 +-----
 arch/powerpc/boot/dts/p1020rdb_camp_core0.dts      |  213 +++
 arch/powerpc/boot/dts/p1020rdb_camp_core1.dts      |  148 ++
 arch/powerpc/boot/dts/p1020si.dtsi                 |  377 +++++
 arch/powerpc/boot/dts/p1022ds.dts                  |  106 +-
 arch/powerpc/boot/dts/p2020ds.dts                  |  374 +-----
 arch/powerpc/boot/dts/p2020rdb.dts                 |  378 +-----
 arch/powerpc/boot/dts/p2020rdb_camp_core0.dts      |  245 +---
 arch/powerpc/boot/dts/p2020rdb_camp_core1.dts      |  150 ++-
 arch/powerpc/boot/dts/p2020si.dtsi                 |  382 ++++++
 arch/powerpc/boot/epapr.c                          |   66 +
 arch/powerpc/boot/wrapper                          |   19 +-
 arch/powerpc/boot/zImage.coff.lds.S                |    6 +-
 arch/powerpc/boot/zImage.lds.S                     |   57 +-
 arch/powerpc/configs/83xx/mpc8313_rdb_defconfig    |    1 -
 arch/powerpc/configs/83xx/mpc8315_rdb_defconfig    |    1 -
 arch/powerpc/configs/85xx/mpc8540_ads_defconfig    |    1 -
 arch/powerpc/configs/85xx/mpc8560_ads_defconfig    |    1 -
 arch/powerpc/configs/85xx/mpc85xx_cds_defconfig    |    1 -
 arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig   |    1 -
 arch/powerpc/configs/c2k_defconfig                 |    4 +-
 arch/powerpc/configs/e55xx_smp_defconfig           |   39 +-
 arch/powerpc/configs/mpc85xx_defconfig             |    1 -
 arch/powerpc/configs/mpc85xx_smp_defconfig         |    1 -
 arch/powerpc/configs/mpc86xx_defconfig             |    1 -
 arch/powerpc/configs/pmac32_defconfig              |    4 +-
 arch/powerpc/configs/ppc6xx_defconfig              |    4 +-
 arch/powerpc/configs/ps3_defconfig                 |    4 +-
 arch/powerpc/configs/pseries_defconfig             |    8 +
 arch/powerpc/include/asm/cputable.h                |   55 +-
 arch/powerpc/include/asm/cputhreads.h              |   12 +-
 arch/powerpc/include/asm/dbell.h                   |    3 +-
 arch/powerpc/include/asm/emulated_ops.h            |    4 +
 arch/powerpc/include/asm/exception-64s.h           |  113 +-
 arch/powerpc/include/asm/feature-fixups.h          |   15 +-
 arch/powerpc/include/asm/firmware.h                |    3 +-
 arch/powerpc/include/asm/hvcall.h                  |   12 +
 .../cell => include/asm}/io-workarounds.h          |    1 -
 arch/powerpc/include/asm/io.h                      |   33 +-
 arch/powerpc/include/asm/io_event_irq.h            |   54 +
 arch/powerpc/include/asm/irq.h                     |   18 +-
 arch/powerpc/include/asm/kexec.h                   |    2 +-
 arch/powerpc/include/asm/kvm_asm.h                 |    1 +
 arch/powerpc/include/asm/kvm_book3s_asm.h          |    1 +
 arch/powerpc/include/asm/lppaca.h                  |    2 +
 arch/powerpc/include/asm/machdep.h                 |   22 +-
 arch/powerpc/include/asm/mmu-book3e.h              |   20 +
 arch/powerpc/include/asm/mmu-hash64.h              |    6 +
 arch/powerpc/include/asm/mmu.h                     |   52 +-
 arch/powerpc/include/asm/mmu_context.h             |   12 +-
 arch/powerpc/include/asm/mpic.h                    |    5 +-
 arch/powerpc/include/asm/pSeries_reconfig.h        |    5 +
 arch/powerpc/include/asm/paca.h                    |   11 +-
 arch/powerpc/include/asm/page_64.h                 |   21 +-
 arch/powerpc/include/asm/pgtable-ppc64.h           |   13 +-
 arch/powerpc/include/asm/ppc-opcode.h              |   35 +
 arch/powerpc/include/asm/ppc_asm.h                 |    1 +
 arch/powerpc/include/asm/processor.h               |    4 +
 arch/powerpc/include/asm/reg.h                     |  104 ++-
 arch/powerpc/include/asm/reg_a2.h                  |  165 +++
 arch/powerpc/include/asm/reg_booke.h               |   10 +-
 arch/powerpc/include/asm/rtas.h                    |   45 +-
 arch/powerpc/include/asm/scom.h                    |  156 +++
 arch/powerpc/include/asm/smp.h                     |   38 +-
 arch/powerpc/include/asm/system.h                  |    2 -
 arch/powerpc/include/asm/tlbflush.h                |    2 +
 arch/powerpc/include/asm/udbg.h                    |    1 +
 arch/powerpc/include/asm/wsp.h                     |   14 +
 arch/powerpc/include/asm/xics.h                    |  142 ++
 arch/powerpc/kernel/Makefile                       |    6 +-
 arch/powerpc/kernel/asm-offsets.c                  |    1 +
 arch/powerpc/kernel/cpu_setup_a2.S                 |  114 ++
 arch/powerpc/kernel/cpu_setup_fsl_booke.S          |    3 +
 arch/powerpc/kernel/cpu_setup_power7.S             |   91 ++
 arch/powerpc/kernel/cputable.c                     |   66 +-
 arch/powerpc/kernel/crash.c                        |   91 +-
 arch/powerpc/kernel/dbell.c                        |   65 +-
 arch/powerpc/kernel/entry_64.S                     |   27 +-
 arch/powerpc/kernel/exceptions-64e.S               |  202 +++-
 arch/powerpc/kernel/exceptions-64s.S               |  216 +++-
 arch/powerpc/kernel/head_32.S                      |   22 -
 arch/powerpc/kernel/head_64.S                      |   49 +-
 arch/powerpc/kernel/idle_power7.S                  |   97 ++
 .../{platforms/cell => kernel}/io-workarounds.c    |   31 +-
 arch/powerpc/kernel/irq.c                          |  166 +--
 arch/powerpc/kernel/kgdb.c                         |    2 +-
 arch/powerpc/kernel/lparcfg.c                      |   53 +-
 arch/powerpc/kernel/misc_32.S                      |   11 +
 arch/powerpc/kernel/misc_64.S                      |   13 +-
 arch/powerpc/kernel/paca.c                         |   30 +-
 arch/powerpc/kernel/pci_dn.c                       |    3 +-
 arch/powerpc/kernel/ppc_ksyms.c                    |    5 +-
 arch/powerpc/kernel/process.c                      |   20 +-
 arch/powerpc/kernel/prom.c                         |   64 +-
 arch/powerpc/kernel/prom_init.c                    |   30 +-
 arch/powerpc/kernel/rtas.c                         |    4 +-
 arch/powerpc/kernel/setup-common.c                 |   22 +-
 arch/powerpc/kernel/setup_32.c                     |    1 +
 arch/powerpc/kernel/setup_64.c                     |   44 +-
 arch/powerpc/kernel/signal_64.c                    |    4 +-
 arch/powerpc/kernel/smp.c                          |  138 ++-
 arch/powerpc/kernel/sysfs.c                        |   38 +
 arch/powerpc/kernel/traps.c                        |   28 +-
 arch/powerpc/kernel/udbg.c                         |    2 +
 arch/powerpc/kernel/udbg_16550.c                   |   51 +
 arch/powerpc/kernel/vector.S                       |    2 +-
 arch/powerpc/kvm/book3s.c                          |    2 +-
 arch/powerpc/kvm/book3s_rmhandlers.S               |   13 +-
 arch/powerpc/kvm/book3s_segment.S                  |   12 +-
 arch/powerpc/lib/alloc.c                           |    8 -
 arch/powerpc/lib/copypage_64.S                     |    7 +-
 arch/powerpc/lib/devres.c                          |    6 +-
 arch/powerpc/lib/sstep.c                           |   61 +-
 arch/powerpc/mm/hash_low_64.S                      |    8 +-
 arch/powerpc/mm/hash_native_64.c                   |   18 +-
 arch/powerpc/mm/hash_utils_64.c                    |   62 +-
 arch/powerpc/mm/hugetlbpage.c                      |    2 +-
 arch/powerpc/mm/mmu_context_hash64.c               |  214 +++-
 arch/powerpc/mm/mmu_context_nohash.c               |   18 +-
 arch/powerpc/mm/numa.c                             |   17 +-
 arch/powerpc/mm/pgtable_32.c                       |   12 +-
 arch/powerpc/mm/pgtable_64.c                       |   15 +-
 arch/powerpc/mm/slb.c                              |   10 +-
 arch/powerpc/mm/slb_low.S                          |    8 +-
 arch/powerpc/mm/stab.c                             |    2 +-
 arch/powerpc/platforms/44x/iss4xx.c                |    6 +-
 arch/powerpc/platforms/512x/mpc5121_ads_cpld.c     |   10 +-
 arch/powerpc/platforms/52xx/media5200.c            |    4 +-
 arch/powerpc/platforms/52xx/mpc52xx_pic.c          |   83 +-
 arch/powerpc/platforms/82xx/pq2ads-pci-pic.c       |   12 +-
 arch/powerpc/platforms/85xx/smp.c                  |   12 +-
 arch/powerpc/platforms/85xx/socrates_fpga_pic.c    |   26 +-
 arch/powerpc/platforms/86xx/gef_pic.c              |   10 +-
 arch/powerpc/platforms/86xx/mpc8610_hpcd.c         |   99 +-
 arch/powerpc/platforms/86xx/mpc86xx_smp.c          |    6 +-
 arch/powerpc/platforms/8xx/m8xx_setup.c            |    2 +-
 arch/powerpc/platforms/Kconfig                     |   31 +-
 arch/powerpc/platforms/Kconfig.cputype             |   24 +
 arch/powerpc/platforms/Makefile                    |    1 +
 arch/powerpc/platforms/cell/Kconfig                |    4 +-
 arch/powerpc/platforms/cell/Makefile               |    9 +-
 arch/powerpc/platforms/cell/axon_msi.c             |    3 +-
 arch/powerpc/platforms/cell/beat_interrupt.c       |   27 -
 arch/powerpc/platforms/cell/beat_interrupt.h       |    3 -
 arch/powerpc/platforms/cell/beat_smp.c             |  124 --
 arch/powerpc/platforms/cell/cbe_regs.c             |   11 +-
 arch/powerpc/platforms/cell/celleb_pci.c           |   25 +-
 arch/powerpc/platforms/cell/celleb_pci.h           |    3 +-
 arch/powerpc/platforms/cell/celleb_setup.c         |    4 -
 arch/powerpc/platforms/cell/interrupt.c            |   16 +-
 arch/powerpc/platforms/cell/qpace_setup.c          |    1 -
 arch/powerpc/platforms/cell/setup.c                |    4 +-
 arch/powerpc/platforms/cell/smp.c                  |   37 +-
 arch/powerpc/platforms/cell/spider-pci.c           |    3 +-
 arch/powerpc/platforms/cell/spider-pic.c           |   21 +-
 arch/powerpc/platforms/cell/spufs/sched.c          |    2 +-
 arch/powerpc/platforms/chrp/smp.c                  |    4 +-
 arch/powerpc/platforms/embedded6xx/flipper-pic.c   |   15 +-
 arch/powerpc/platforms/embedded6xx/hlwd-pic.c      |   15 +-
 arch/powerpc/platforms/iseries/Kconfig             |    4 +-
 arch/powerpc/platforms/iseries/exception.S         |   62 +-
 arch/powerpc/platforms/iseries/irq.c               |   13 +-
 arch/powerpc/platforms/iseries/setup.c             |    9 +-
 arch/powerpc/platforms/iseries/smp.c               |   45 +-
 arch/powerpc/platforms/iseries/smp.h               |    6 -
 arch/powerpc/platforms/powermac/Kconfig            |   11 +-
 arch/powerpc/platforms/powermac/pic.c              |   25 +-
 arch/powerpc/platforms/powermac/pic.h              |   11 -
 arch/powerpc/platforms/powermac/pmac.h             |    1 +
 arch/powerpc/platforms/powermac/smp.c              |   97 +-
 arch/powerpc/platforms/ps3/interrupt.c             |    8 +-
 arch/powerpc/platforms/ps3/smp.c                   |   22 +-
 arch/powerpc/platforms/ps3/spu.c                   |    4 +-
 arch/powerpc/platforms/pseries/Kconfig             |   23 +-
 arch/powerpc/platforms/pseries/Makefile            |    2 +-
 arch/powerpc/platforms/pseries/dtl.c               |   20 +-
 arch/powerpc/platforms/pseries/eeh.c               |   82 +-
 arch/powerpc/platforms/pseries/eeh_driver.c        |   22 +-
 arch/powerpc/platforms/pseries/hotplug-cpu.c       |    5 +-
 arch/powerpc/platforms/pseries/io_event_irq.c      |  231 ++++
 arch/powerpc/platforms/pseries/iommu.c             |  117 +-
 arch/powerpc/platforms/pseries/kexec.c             |    5 +-
 arch/powerpc/platforms/pseries/lpar.c              |   48 +-
 arch/powerpc/platforms/pseries/plpar_wrappers.h    |   27 -
 arch/powerpc/platforms/pseries/ras.c               |    6 +-
 arch/powerpc/platforms/pseries/setup.c             |   50 +-
 arch/powerpc/platforms/pseries/smp.c               |   24 +-
 arch/powerpc/platforms/pseries/xics.c              |  949 -------------
 arch/powerpc/platforms/pseries/xics.h              |   23 -
 arch/powerpc/platforms/wsp/Kconfig                 |   28 +
 arch/powerpc/platforms/wsp/Makefile                |    6 +
 arch/powerpc/platforms/wsp/ics.c                   |  712 ++++++++++
 arch/powerpc/platforms/wsp/ics.h                   |   20 +
 arch/powerpc/platforms/wsp/opb_pic.c               |  332 +++++
 arch/powerpc/platforms/wsp/psr2.c                  |   95 ++
 arch/powerpc/platforms/wsp/scom_smp.c              |  427 ++++++
 arch/powerpc/platforms/wsp/scom_wsp.c              |   77 ++
 arch/powerpc/platforms/wsp/setup.c                 |   36 +
 arch/powerpc/platforms/wsp/smp.c                   |   88 ++
 arch/powerpc/platforms/wsp/wsp.h                   |   17 +
 arch/powerpc/sysdev/Kconfig                        |   10 +
 arch/powerpc/sysdev/Makefile                       |    6 +
 arch/powerpc/sysdev/axonram.c                      |    2 +-
 arch/powerpc/sysdev/cpm1.c                         |    8 +-
 arch/powerpc/sysdev/cpm2_pic.c                     |   10 +-
 arch/powerpc/sysdev/fsl_85xx_cache_sram.c          |    4 +-
 arch/powerpc/sysdev/fsl_msi.c                      |   10 +-
 arch/powerpc/sysdev/i8259.c                        |   13 -
 arch/powerpc/sysdev/ipic.c                         |   16 +-
 arch/powerpc/sysdev/mmio_nvram.c                   |    2 +
 arch/powerpc/sysdev/mpc8xx_pic.c                   |   10 +-
 arch/powerpc/sysdev/mpc8xxx_gpio.c                 |   12 +-
 arch/powerpc/sysdev/mpic.c                         |  209 ++-
 arch/powerpc/sysdev/mv64x60_pic.c                  |   14 +-
 arch/powerpc/sysdev/qe_lib/qe_ic.c                 |    6 +-
 arch/powerpc/sysdev/scom.c                         |  192 +++
 arch/powerpc/sysdev/uic.c                          |   12 +-
 arch/powerpc/sysdev/xics/Kconfig                   |   13 +
 arch/powerpc/sysdev/xics/Makefile                  |    6 +
 arch/powerpc/sysdev/xics/icp-hv.c                  |  164 +++
 arch/powerpc/sysdev/xics/icp-native.c              |  293 ++++
 arch/powerpc/sysdev/xics/ics-rtas.c                |  240 ++++
 arch/powerpc/sysdev/xics/xics-common.c             |  443 ++++++
 arch/powerpc/sysdev/xilinx_intc.c                  |    8 +-
 arch/powerpc/xmon/xmon.c                           |   38 +-
 drivers/char/bsr.c                                 |    2 +-
 drivers/infiniband/hw/cxgb4/t4.h                   |    5 +-
 drivers/macintosh/via-pmu.c                        |   56 +-
 drivers/misc/Kconfig                               |    1 +
 drivers/misc/Makefile                              |    1 +
 drivers/misc/carma/Kconfig                         |   17 +
 drivers/misc/carma/Makefile                        |    2 +
 drivers/misc/carma/carma-fpga-program.c            | 1141 ++++++++++++++++
 drivers/misc/carma/carma-fpga.c                    | 1433 ++++++++++++++++++++
 drivers/of/irq.c                                   |    2 +-
 include/linux/of_irq.h                             |    1 +
 244 files changed, 11490 insertions(+), 4116 deletions(-)
 create mode 100755 Documentation/devicetree/bindings/net/can/fsl-flexcan.txt
 create mode 100644 Documentation/devicetree/bindings/powerpc/fsl/ifc.txt
 create mode 100644 Documentation/devicetree/bindings/powerpc/fsl/mpic-timer.txt
 create mode 100644 arch/powerpc/boot/dts/p1020rdb_camp_core0.dts
 create mode 100644 arch/powerpc/boot/dts/p1020rdb_camp_core1.dts
 create mode 100644 arch/powerpc/boot/dts/p1020si.dtsi
 create mode 100644 arch/powerpc/boot/dts/p2020si.dtsi
 create mode 100644 arch/powerpc/boot/epapr.c
 rename arch/powerpc/{platforms/cell => include/asm}/io-workarounds.h (97%)
 create mode 100644 arch/powerpc/include/asm/io_event_irq.h
 create mode 100644 arch/powerpc/include/asm/reg_a2.h
 create mode 100644 arch/powerpc/include/asm/scom.h
 create mode 100644 arch/powerpc/include/asm/wsp.h
 create mode 100644 arch/powerpc/include/asm/xics.h
 create mode 100644 arch/powerpc/kernel/cpu_setup_a2.S
 create mode 100644 arch/powerpc/kernel/cpu_setup_power7.S
 create mode 100644 arch/powerpc/kernel/idle_power7.S
 rename arch/powerpc/{platforms/cell => kernel}/io-workarounds.c (95%)
 delete mode 100644 arch/powerpc/platforms/cell/beat_smp.c
 delete mode 100644 arch/powerpc/platforms/iseries/smp.h
 delete mode 100644 arch/powerpc/platforms/powermac/pic.h
 create mode 100644 arch/powerpc/platforms/pseries/io_event_irq.c
 delete mode 100644 arch/powerpc/platforms/pseries/xics.c
 delete mode 100644 arch/powerpc/platforms/pseries/xics.h
 create mode 100644 arch/powerpc/platforms/wsp/Kconfig
 create mode 100644 arch/powerpc/platforms/wsp/Makefile
 create mode 100644 arch/powerpc/platforms/wsp/ics.c
 create mode 100644 arch/powerpc/platforms/wsp/ics.h
 create mode 100644 arch/powerpc/platforms/wsp/opb_pic.c
 create mode 100644 arch/powerpc/platforms/wsp/psr2.c
 create mode 100644 arch/powerpc/platforms/wsp/scom_smp.c
 create mode 100644 arch/powerpc/platforms/wsp/scom_wsp.c
 create mode 100644 arch/powerpc/platforms/wsp/setup.c
 create mode 100644 arch/powerpc/platforms/wsp/smp.c
 create mode 100644 arch/powerpc/platforms/wsp/wsp.h
 create mode 100644 arch/powerpc/sysdev/scom.c
 create mode 100644 arch/powerpc/sysdev/xics/Kconfig
 create mode 100644 arch/powerpc/sysdev/xics/Makefile
 create mode 100644 arch/powerpc/sysdev/xics/icp-hv.c
 create mode 100644 arch/powerpc/sysdev/xics/icp-native.c
 create mode 100644 arch/powerpc/sysdev/xics/ics-rtas.c
 create mode 100644 arch/powerpc/sysdev/xics/xics-common.c
 create mode 100644 drivers/misc/carma/Kconfig
 create mode 100644 drivers/misc/carma/Makefile
 create mode 100644 drivers/misc/carma/carma-fpga-program.c
 create mode 100644 drivers/misc/carma/carma-fpga.c

^ permalink raw reply

* PATCH: powerpc: remove unused variable assignment
From: Marcus Meissner @ 2011-05-20  9:13 UTC (permalink / raw)
  To: benh, paulus, akpm, linuxppc-dev, linux-kernel


Hi,

gcc 4.6 with -Werror does not like setting but not using variables
anymore.

So remove it, it does not seem necessary.

Signed-off-by: Marcus Meissner <meissner@suse.de>

Ciao, Marcus
---
 arch/powerpc/include/asm/pgtable-ppc64.h |    8 ++------
 1 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/arch/powerpc/include/asm/pgtable-ppc64.h b/arch/powerpc/include/asm/pgtable-ppc64.h
index 2b09cd5..c3d39de 100644
--- a/arch/powerpc/include/asm/pgtable-ppc64.h
+++ b/arch/powerpc/include/asm/pgtable-ppc64.h
@@ -257,21 +257,17 @@ static inline int __ptep_test_and_clear_young(struct mm_struct *mm,
 static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr,
 				      pte_t *ptep)
 {
-	unsigned long old;
-
        	if ((pte_val(*ptep) & _PAGE_RW) == 0)
        		return;
-	old = pte_update(mm, addr, ptep, _PAGE_RW, 0);
+	pte_update(mm, addr, ptep, _PAGE_RW, 0);
 }
 
 static inline void huge_ptep_set_wrprotect(struct mm_struct *mm,
 					   unsigned long addr, pte_t *ptep)
 {
-	unsigned long old;
-
 	if ((pte_val(*ptep) & _PAGE_RW) == 0)
 		return;
-	old = pte_update(mm, addr, ptep, _PAGE_RW, 1);
+	pte_update(mm, addr, ptep, _PAGE_RW, 1);
 }
 
 /*
-- 
1.7.4.1

^ permalink raw reply related

* Re: [PATCH 6/7] tty/powerpc: introduce the ePAPR embedded hypervisor byte channel driver
From: Alan Cox @ 2011-05-20  9:54 UTC (permalink / raw)
  To: Timur Tabi
  Cc: kumar.gala, linux-kernel, akpm, linux-console, greg, linuxppc-dev
In-Reply-To: <4DD53FDD.7070503@freescale.com>

On Thu, 19 May 2011 11:05:49 -0500
Timur Tabi <timur@freescale.com> wrote:

> Alan Cox wrote:
> >> > +		/* Pass the received data to the tty layer.  Note that this
> >> > +		 * function calls tty_buffer_request_room(), so I'm not sure if
> >> > +		 * we should have also called tty_buffer_request_room().
> >> > +		 */
> >> > +		ret = tty_insert_flip_string(ttys, buffer, len);
> 
> > You only need to request_room in advance if you can't handle the case
> > where the insert_flip_string returns less than you stuffed down it.
> 
> If tty_insert_flip_string() returns less than I stuffed down it, the characters
> it didn't accept will be dropped.  That's because once I receive them, I have
> nowhere else to put them.  I suppose I could implement a receive FIFO, but that
> seems overkill.  If calling tty_buffer_request_room() ensures that
> tty_insert_flip_string() always accepts all the characters, I would rather do that.

I was answering the question in the comment in the code...

^ permalink raw reply

* RE: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error interrupt handler for sRIO.
From: Bounine, Alexandre @ 2011-05-20 12:14 UTC (permalink / raw)
  To: Kumar Gala
  Cc: Li Yang-R58472, Xie Shaohui-B21989, Zang Roy-R61911,
	Gala Kumar-B11780, linuxppc-dev, akpm
In-Reply-To: <6CBDFAB4-F884-4B33-8A77-0AE2CF2D2ED4@kernel.crashing.org>

Kumar,

Are you planning to release support for dual-port SRIO controller?
If yes, it may be just merged into it (unless dual-port implementation
already has it).

Alex.

> -----Original Message-----
> From: =
linuxppc-dev-bounces+alexandre.bounine=3Didt.com@lists.ozlabs.org
> [mailto:linuxppc-dev-
> bounces+alexandre.bounine=3Didt.com@lists.ozlabs.org] On Behalf Of =
Kumar
> Gala
> Sent: Friday, May 20, 2011 12:29 AM
> To: Bounine, Alexandre
> Cc: Li Yang-R58472; Xie Shaohui-B21989; Zang Roy-R61911; akpm@linux-
> foundation.org; linuxppc-dev@lists.ozlabs.org; Gala Kumar-B11780
> Subject: Re: [PATCH 2/2][v3] rapidio,powerpc/85xx: Error interrupt
> handler for sRIO.
>=20
> Alex,
>=20
> What are we doing with this patch?
>=20
> - k
>=20
> On Dec 3, 2010, at 12:04 PM, Bounine, Alexandre wrote:
>=20
> > I think they should follow the previous two that are in Kumar's
tree.
> > Probably Kumar may give you a better timeline estimate for this.
> >
> > Alex.
> >
> > From:
linuxppc-dev-bounces+alexandre.bounine=3Didt.com@lists.ozlabs.org
> [mailto:linuxppc-dev-
> bounces+alexandre.bounine=3Didt.com@lists.ozlabs.org] On Behalf Of Xie
> Shaohui-B21989
> > Sent: Thursday, December 02, 2010 10:29 PM
> > To: Bounine, Alexandre; linuxppc-dev@lists.ozlabs.org
> > Cc: akpm@linux-foundation.org; Gala Kumar-B11780; Li Yang-R58472;
> Zang Roy-R61911
> > Subject: RE: [PATCH 2/2][v3] rapidio,powerpc/85xx: Error interrupt
> handler for sRIO.
> >
> > Hi Alex,
> >
> > May I ask when would these patches be applied to mainline?
> >
> >
> > Best Regards,
> > Shaohui Xie
> >
> > From: Bounine, Alexandre [mailto:Alexandre.Bounine@idt.com]
> > Sent: Wednesday, December 01, 2010 4:49 AM
> > To: Xie Shaohui-B21989; linuxppc-dev@lists.ozlabs.org
> > Cc: akpm@linux-foundation.org; Li Yang-R58472; Gala Kumar-B11780;
> Zang Roy-R61911
> > Subject: RE: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error interrupt
> handler for sRIO.
> >
> > Applies correctly now. Lab tested on 8548/RIO setup.
> >
> > Alex.
> >
> >> -----Original Message-----
> >> From: Shaohui Xie [mailto:b21989@freescale.com]
> >> Sent: Thursday, November 18, 2010 1:58 AM
> >> To: linuxppc-dev@lists.ozlabs.org
> >> Cc: akpm@linux-foundation.org; Shaohui Xie; Li Yang; Kumar Gala;
Roy
> > Zang; Bounine, Alexandre
> >> Subject: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error interrupt
> > handler for sRIO.
> >>
> >> The sRIO controller reports errors to the core with one signal, it
> > uses
> >> register EPWISR to provides the core quick access to where the
error
> > occurred.
> >> The EPWISR indicates that there are 4 interrupts sources, port1,
> > port2, message
> >> unit and port write receive, but the sRIO driver does not support
> > port2
> >> for now, still the handler takes care of port2.
> >> Currently the handler only clear error status without any recovery.
> >
> > _______________________________________________
> > Linuxppc-dev mailing list
> > Linuxppc-dev@lists.ozlabs.org
> > https://lists.ozlabs.org/listinfo/linuxppc-dev
>=20
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev

^ permalink raw reply

* Re: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error interrupt handler for sRIO.
From: Kumar Gala @ 2011-05-20 12:42 UTC (permalink / raw)
  To: Bounine, Alexandre
  Cc: Li Yang-R58472, Xie Shaohui-B21989, Zang Roy-R61911,
	Gala Kumar-B11780, linuxppc-dev, akpm
In-Reply-To: <0CE8B6BE3C4AD74AB97D9D29BD24E55201D20C69@CORPEXCH1.na.ads.idt.com>

Any reason for me not to apply this and send it upstream for now?

- k

On May 20, 2011, at 7:14 AM, Bounine, Alexandre wrote:

> Kumar,
> 
> Are you planning to release support for dual-port SRIO controller?
> If yes, it may be just merged into it (unless dual-port implementation
> already has it).
> 
> Alex.
> 
>> -----Original Message-----
>> From: linuxppc-dev-bounces+alexandre.bounine=idt.com@lists.ozlabs.org
>> [mailto:linuxppc-dev-
>> bounces+alexandre.bounine=idt.com@lists.ozlabs.org] On Behalf Of Kumar
>> Gala
>> Sent: Friday, May 20, 2011 12:29 AM
>> To: Bounine, Alexandre
>> Cc: Li Yang-R58472; Xie Shaohui-B21989; Zang Roy-R61911; akpm@linux-
>> foundation.org; linuxppc-dev@lists.ozlabs.org; Gala Kumar-B11780
>> Subject: Re: [PATCH 2/2][v3] rapidio,powerpc/85xx: Error interrupt
>> handler for sRIO.
>> 
>> Alex,
>> 
>> What are we doing with this patch?
>> 
>> - k
>> 
>> On Dec 3, 2010, at 12:04 PM, Bounine, Alexandre wrote:
>> 
>>> I think they should follow the previous two that are in Kumar's
> tree.
>>> Probably Kumar may give you a better timeline estimate for this.
>>> 
>>> Alex.
>>> 
>>> From:
> linuxppc-dev-bounces+alexandre.bounine=idt.com@lists.ozlabs.org
>> [mailto:linuxppc-dev-
>> bounces+alexandre.bounine=idt.com@lists.ozlabs.org] On Behalf Of Xie
>> Shaohui-B21989
>>> Sent: Thursday, December 02, 2010 10:29 PM
>>> To: Bounine, Alexandre; linuxppc-dev@lists.ozlabs.org
>>> Cc: akpm@linux-foundation.org; Gala Kumar-B11780; Li Yang-R58472;
>> Zang Roy-R61911
>>> Subject: RE: [PATCH 2/2][v3] rapidio,powerpc/85xx: Error interrupt
>> handler for sRIO.
>>> 
>>> Hi Alex,
>>> 
>>> May I ask when would these patches be applied to mainline?
>>> 
>>> 
>>> Best Regards,
>>> Shaohui Xie
>>> 
>>> From: Bounine, Alexandre [mailto:Alexandre.Bounine@idt.com]
>>> Sent: Wednesday, December 01, 2010 4:49 AM
>>> To: Xie Shaohui-B21989; linuxppc-dev@lists.ozlabs.org
>>> Cc: akpm@linux-foundation.org; Li Yang-R58472; Gala Kumar-B11780;
>> Zang Roy-R61911
>>> Subject: RE: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error interrupt
>> handler for sRIO.
>>> 
>>> Applies correctly now. Lab tested on 8548/RIO setup.
>>> 
>>> Alex.
>>> 
>>>> -----Original Message-----
>>>> From: Shaohui Xie [mailto:b21989@freescale.com]
>>>> Sent: Thursday, November 18, 2010 1:58 AM
>>>> To: linuxppc-dev@lists.ozlabs.org
>>>> Cc: akpm@linux-foundation.org; Shaohui Xie; Li Yang; Kumar Gala;
> Roy
>>> Zang; Bounine, Alexandre
>>>> Subject: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error interrupt
>>> handler for sRIO.
>>>> 
>>>> The sRIO controller reports errors to the core with one signal, it
>>> uses
>>>> register EPWISR to provides the core quick access to where the
> error
>>> occurred.
>>>> The EPWISR indicates that there are 4 interrupts sources, port1,
>>> port2, message
>>>> unit and port write receive, but the sRIO driver does not support
>>> port2
>>>> for now, still the handler takes care of port2.
>>>> Currently the handler only clear error status without any recovery.
>>> 
>>> _______________________________________________
>>> Linuxppc-dev mailing list
>>> Linuxppc-dev@lists.ozlabs.org
>>> https://lists.ozlabs.org/listinfo/linuxppc-dev
>> 
>> _______________________________________________
>> Linuxppc-dev mailing list
>> Linuxppc-dev@lists.ozlabs.org
>> https://lists.ozlabs.org/listinfo/linuxppc-dev

^ permalink raw reply

* Re: [bg-linux] [PATCH 6/7] [RFC] enable early TLBs for BG/P
From: Eric Van Hensbergen @ 2011-05-20 13:01 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: Kazutomo Yoshii, linuxppc-dev, linux-kernel, bg-linux
In-Reply-To: <1305863541.7481.132.camel@pasglop>

On Thu, May 19, 2011 at 10:52 PM, Benjamin Herrenschmidt
<benh@kernel.crashing.org> wrote:
>> Unfortunately, the firmware is also required:
>> - to configure Blue Gene Interrupt Controller(BIC)
>> - to configure Torus DMA unit. e.g. fifo
>> - to configure global interrupt (even we don't use, we need to disable
>> some channel correctly)
>
> Can't we just write bare metal code for that ?
>

The kittyhawk code has the bare-metal equivalents for all of these.
When I get to the drivers, I'll favor the kittyhawk versions for
submission and then we'll see if it would be possible to adapt the HPC
extensions to use the bare-metal versions of the drivers versus the
firmware interface.

>> - to access node personality information (node id, DDR size, HZ, etc) or
>> maybe we can directly access SRAM?
>
> That should be turned into device-tree at boot, possibly from a
> bootloader or from the zImage wrapper.
>

This is the approach is used by the kittyhawk u-boot approach.
However, it would also be just as easy to construct an in-memory
device-tree within Linux by mapping the personality page and copying
the relevant bits out.  This has the advantage of being able to boot
Linux directly on the nodes without an intermediary boot loader (which
kittyhawk uses just to allow us customize which kernel boots on a
node-to-node basis whereas the stock system boots the same kernel on
all the nodes within a partition allocation (64-40,000 nodes)).

         -eric

^ permalink raw reply

* Re: [git pull] Please pull powerpc.git merge branch
From: Richard Cochran @ 2011-05-20 13:23 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: linuxppc-dev list, Andrew Morton, Linus Torvalds,
	Linux Kernel list
In-Reply-To: <1305777978.7481.37.camel@pasglop>

On Thu, May 19, 2011 at 02:06:18PM +1000, Benjamin Herrenschmidt wrote:
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git merge

When I try to build 'next' (now at 208b3a4c), it does not compile due
to a change from the following commit.

> Benjamin Herrenschmidt (1):
>       powerpc/smp: Make start_secondary_resume available to all CPU variants

I would appreciate your help in getting this fixed...

Thanks,
Richard

PS the error looks like this:

  AS      arch/powerpc/kernel/misc_32.o
arch/powerpc/kernel/misc_32.S: Assembler messages:
arch/powerpc/kernel/misc_32.S:703: Error: Unrecognized opcode: `std'
make[2]: *** [arch/powerpc/kernel/misc_32.o] Error 1
make[1]: *** [arch/powerpc/kernel] Error 2

> ${CROSS_COMPILE}gcc -v
Using built-in specs.
Target: powerpc-none-linux-gnuspe
Configured with: ../gcc-4.3.2/configure --target=powerpc-none-linux-gnuspe --host=i686-pc-linux-gnu --prefix=/opt/freescale/usr/local/gcc-4.3.74-eglibc-2.8.74-dp-2/powerpc-none-linux-gnuspe --with-sysroot=/opt/freescale/usr/local/gcc-4.3.74-eglibc-2.8.74-dp-2/powerpc-none-linux-gnuspe/powerpc-none-linux-gnuspe/libc --disable-libssp --disable-libmudflap --disable-libstdcxx-pch --enable-libgomp --enable-shared --enable-threads --enable-languages=c,c++ --with-gmp=/usr/src/redhat/BUILD/csl-tc-4.3.74/host-libs/usr --with-mpfr=/usr/src/redhat/BUILD/csl-tc-4.3.74/host-libs/usr --with-cpu=8548 --with-gnu-as --with-gnu-ld --enable-symvers=gnu --enable-__cxa_atexit --enable-cxx-flags=-mcpu=8548 --disable-multilib --with-long-double-128 --disable-nls --enable-e500_double
Thread model: posix
gcc version 4.3.2 (GCC) 

^ permalink raw reply

* RE: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error interrupt handler for sRIO.
From: Bounine, Alexandre @ 2011-05-20 13:18 UTC (permalink / raw)
  To: Kumar Gala
  Cc: Li Yang-R58472, Xie Shaohui-B21989, Zang Roy-R61911,
	Gala Kumar-B11780, linuxppc-dev, akpm
In-Reply-To: <C1F44016-59F6-459E-82E6-0A265A280D48@kernel.crashing.org>

Not at all. I tested it earlier and it works for me on 8548 platform.

> -----Original Message-----
> From: Kumar Gala [mailto:galak@kernel.crashing.org]
> Sent: Friday, May 20, 2011 8:42 AM
> To: Bounine, Alexandre
> Cc: Li Yang-R58472; Xie Shaohui-B21989; Zang Roy-R61911; akpm@linux-
> foundation.org; linuxppc-dev@lists.ozlabs.org; Gala Kumar-B11780
> Subject: Re: [PATCH 2/2][v3] rapidio,powerpc/85xx: Error interrupt
> handler for sRIO.
>=20
> Any reason for me not to apply this and send it upstream for now?
>=20
> - k
>=20
> On May 20, 2011, at 7:14 AM, Bounine, Alexandre wrote:
>=20
> > Kumar,
> >
> > Are you planning to release support for dual-port SRIO controller?
> > If yes, it may be just merged into it (unless dual-port
> implementation
> > already has it).
> >
> > Alex.
> >
> >> -----Original Message-----
> >> From: linuxppc-dev-
> bounces+alexandre.bounine=3Didt.com@lists.ozlabs.org
> >> [mailto:linuxppc-dev-
> >> bounces+alexandre.bounine=3Didt.com@lists.ozlabs.org] On Behalf Of
> Kumar
> >> Gala
> >> Sent: Friday, May 20, 2011 12:29 AM
> >> To: Bounine, Alexandre
> >> Cc: Li Yang-R58472; Xie Shaohui-B21989; Zang Roy-R61911;
akpm@linux-
> >> foundation.org; linuxppc-dev@lists.ozlabs.org; Gala Kumar-B11780
> >> Subject: Re: [PATCH 2/2][v3] rapidio,powerpc/85xx: Error interrupt
> >> handler for sRIO.
> >>
> >> Alex,
> >>
> >> What are we doing with this patch?
> >>
> >> - k
> >>
> >> On Dec 3, 2010, at 12:04 PM, Bounine, Alexandre wrote:
> >>
> >>> I think they should follow the previous two that are in Kumar's
> > tree.
> >>> Probably Kumar may give you a better timeline estimate for this.
> >>>
> >>> Alex.
> >>>
> >>> From:
> > linuxppc-dev-bounces+alexandre.bounine=3Didt.com@lists.ozlabs.org
> >> [mailto:linuxppc-dev-
> >> bounces+alexandre.bounine=3Didt.com@lists.ozlabs.org] On Behalf Of
Xie
> >> Shaohui-B21989
> >>> Sent: Thursday, December 02, 2010 10:29 PM
> >>> To: Bounine, Alexandre; linuxppc-dev@lists.ozlabs.org
> >>> Cc: akpm@linux-foundation.org; Gala Kumar-B11780; Li Yang-R58472;
> >> Zang Roy-R61911
> >>> Subject: RE: [PATCH 2/2][v3] rapidio,powerpc/85xx: Error interrupt
> >> handler for sRIO.
> >>>
> >>> Hi Alex,
> >>>
> >>> May I ask when would these patches be applied to mainline?
> >>>
> >>>
> >>> Best Regards,
> >>> Shaohui Xie
> >>>
> >>> From: Bounine, Alexandre [mailto:Alexandre.Bounine@idt.com]
> >>> Sent: Wednesday, December 01, 2010 4:49 AM
> >>> To: Xie Shaohui-B21989; linuxppc-dev@lists.ozlabs.org
> >>> Cc: akpm@linux-foundation.org; Li Yang-R58472; Gala Kumar-B11780;
> >> Zang Roy-R61911
> >>> Subject: RE: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error
interrupt
> >> handler for sRIO.
> >>>
> >>> Applies correctly now. Lab tested on 8548/RIO setup.
> >>>
> >>> Alex.
> >>>
> >>>> -----Original Message-----
> >>>> From: Shaohui Xie [mailto:b21989@freescale.com]
> >>>> Sent: Thursday, November 18, 2010 1:58 AM
> >>>> To: linuxppc-dev@lists.ozlabs.org
> >>>> Cc: akpm@linux-foundation.org; Shaohui Xie; Li Yang; Kumar Gala;
> > Roy
> >>> Zang; Bounine, Alexandre
> >>>> Subject: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error interrupt
> >>> handler for sRIO.
> >>>>
> >>>> The sRIO controller reports errors to the core with one signal,
it
> >>> uses
> >>>> register EPWISR to provides the core quick access to where the
> > error
> >>> occurred.
> >>>> The EPWISR indicates that there are 4 interrupts sources, port1,
> >>> port2, message
> >>>> unit and port write receive, but the sRIO driver does not support
> >>> port2
> >>>> for now, still the handler takes care of port2.
> >>>> Currently the handler only clear error status without any
> recovery.
> >>>
> >>> _______________________________________________
> >>> Linuxppc-dev mailing list
> >>> Linuxppc-dev@lists.ozlabs.org
> >>> https://lists.ozlabs.org/listinfo/linuxppc-dev
> >>
> >> _______________________________________________
> >> Linuxppc-dev mailing list
> >> Linuxppc-dev@lists.ozlabs.org
> >> https://lists.ozlabs.org/listinfo/linuxppc-dev

^ permalink raw reply

* 答复: [PATCH 2/2][v3] rapidio,powerpc/85xx: Error interrupt handler for sRIO.
From: Li Yang-R58472 @ 2011-05-20 13:42 UTC (permalink / raw)
  To: Bounine, Alexandre, Kumar Gala
  Cc: akpm@linux-foundation.org, linuxppc-dev@lists.ozlabs.org,
	Zang Roy-R61911, Xie Shaohui-B21989, Gala Kumar-B11780
In-Reply-To: <0CE8B6BE3C4AD74AB97D9D29BD24E55201D20CA9@CORPEXCH1.na.ads.idt.com>

SGkgQWxleCwKCkp1c3QgZm9yIHlvdXIgaW5mb3JtYXRpb24gYXMgeW91IG1lbnRpb25lZCBhYm91
dCBpdC4gIFRoZSBkdWFsIHBvcnQgc3VwcG9ydCBpcyBiZWluZyB3b3JrZWQgb24sIGJ1dCBub3Qg
bGlrZWx5IHRvIGJlIHJlYWR5IGluIHRoaXMgbWVyZ2Ugd2luZG93LgoKLSBMZW8KCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kt6K8/sjLOiBCb3VuaW5lLCBBbGV4YW5k
cmUgW0FsZXhhbmRyZS5Cb3VuaW5lQGlkdC5jb21dCreiy83KsbzkOiAyMDExxOo11MIyMMjVIDIx
OjE4CrW9OiBLdW1hciBHYWxhCkNjOiBMaSBZYW5nLVI1ODQ3MjsgWGllIFNoYW9odWktQjIxOTg5
OyBaYW5nIFJveS1SNjE5MTE7IGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc7IGxpbnV4cHBjLWRl
dkBsaXN0cy5vemxhYnMub3JnOyBHYWxhIEt1bWFyLUIxMTc4MArW98ziOiBSRTogW1BBVENIIDIv
Ml1bdjNdIHJhcGlkaW8scG93ZXJwYy84NXh4OiBFcnJvciBpbnRlcnJ1cHQgaGFuZGxlciBmb3Ig
c1JJTy4KCk5vdCBhdCBhbGwuIEkgdGVzdGVkIGl0IGVhcmxpZXIgYW5kIGl0IHdvcmtzIGZvciBt
ZSBvbiA4NTQ4IHBsYXRmb3JtLgoKPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206
IEt1bWFyIEdhbGEgW21haWx0bzpnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnXQo+IFNlbnQ6IEZy
aWRheSwgTWF5IDIwLCAyMDExIDg6NDIgQU0KPiBUbzogQm91bmluZSwgQWxleGFuZHJlCj4gQ2M6
IExpIFlhbmctUjU4NDcyOyBYaWUgU2hhb2h1aS1CMjE5ODk7IFphbmcgUm95LVI2MTkxMTsgYWtw
bUBsaW51eC0KPiBmb3VuZGF0aW9uLm9yZzsgbGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmc7
IEdhbGEgS3VtYXItQjExNzgwCj4gU3ViamVjdDogUmU6IFtQQVRDSCAyLzJdW3YzXSByYXBpZGlv
LHBvd2VycGMvODV4eDogRXJyb3IgaW50ZXJydXB0Cj4gaGFuZGxlciBmb3Igc1JJTy4KPgo+IEFu
eSByZWFzb24gZm9yIG1lIG5vdCB0byBhcHBseSB0aGlzIGFuZCBzZW5kIGl0IHVwc3RyZWFtIGZv
ciBub3c/Cj4KPiAtIGsKPgo+IE9uIE1heSAyMCwgMjAxMSwgYXQgNzoxNCBBTSwgQm91bmluZSwg
QWxleGFuZHJlIHdyb3RlOgo+Cj4gPiBLdW1hciwKPiA+Cj4gPiBBcmUgeW91IHBsYW5uaW5nIHRv
IHJlbGVhc2Ugc3VwcG9ydCBmb3IgZHVhbC1wb3J0IFNSSU8gY29udHJvbGxlcj8KPiA+IElmIHll
cywgaXQgbWF5IGJlIGp1c3QgbWVyZ2VkIGludG8gaXQgKHVubGVzcyBkdWFsLXBvcnQKPiBpbXBs
ZW1lbnRhdGlvbgo+ID4gYWxyZWFkeSBoYXMgaXQpLgo+ID4KPiA+IEFsZXguCj4gPgo+ID4+IC0t
LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPj4gRnJvbTogbGludXhwcGMtZGV2LQo+IGJvdW5j
ZXMrYWxleGFuZHJlLmJvdW5pbmU9aWR0LmNvbUBsaXN0cy5vemxhYnMub3JnCj4gPj4gW21haWx0
bzpsaW51eHBwYy1kZXYtCj4gPj4gYm91bmNlcythbGV4YW5kcmUuYm91bmluZT1pZHQuY29tQGxp
c3RzLm96bGFicy5vcmddIE9uIEJlaGFsZiBPZgo+IEt1bWFyCj4gPj4gR2FsYQo+ID4+IFNlbnQ6
IEZyaWRheSwgTWF5IDIwLCAyMDExIDEyOjI5IEFNCj4gPj4gVG86IEJvdW5pbmUsIEFsZXhhbmRy
ZQo+ID4+IENjOiBMaSBZYW5nLVI1ODQ3MjsgWGllIFNoYW9odWktQjIxOTg5OyBaYW5nIFJveS1S
NjE5MTE7CmFrcG1AbGludXgtCj4gPj4gZm91bmRhdGlvbi5vcmc7IGxpbnV4cHBjLWRldkBsaXN0
cy5vemxhYnMub3JnOyBHYWxhIEt1bWFyLUIxMTc4MAo+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0gg
Mi8yXVt2M10gcmFwaWRpbyxwb3dlcnBjLzg1eHg6IEVycm9yIGludGVycnVwdAo+ID4+IGhhbmRs
ZXIgZm9yIHNSSU8uCj4gPj4KPiA+PiBBbGV4LAo+ID4+Cj4gPj4gV2hhdCBhcmUgd2UgZG9pbmcg
d2l0aCB0aGlzIHBhdGNoPwo+ID4+Cj4gPj4gLSBrCj4gPj4KPiA+PiBPbiBEZWMgMywgMjAxMCwg
YXQgMTI6MDQgUE0sIEJvdW5pbmUsIEFsZXhhbmRyZSB3cm90ZToKPiA+Pgo+ID4+PiBJIHRoaW5r
IHRoZXkgc2hvdWxkIGZvbGxvdyB0aGUgcHJldmlvdXMgdHdvIHRoYXQgYXJlIGluIEt1bWFyJ3MK
PiA+IHRyZWUuCj4gPj4+IFByb2JhYmx5IEt1bWFyIG1heSBnaXZlIHlvdSBhIGJldHRlciB0aW1l
bGluZSBlc3RpbWF0ZSBmb3IgdGhpcy4KPiA+Pj4KPiA+Pj4gQWxleC4KPiA+Pj4KPiA+Pj4gRnJv
bToKPiA+IGxpbnV4cHBjLWRldi1ib3VuY2VzK2FsZXhhbmRyZS5ib3VuaW5lPWlkdC5jb21AbGlz
dHMub3psYWJzLm9yZwo+ID4+IFttYWlsdG86bGludXhwcGMtZGV2LQo+ID4+IGJvdW5jZXMrYWxl
eGFuZHJlLmJvdW5pbmU9aWR0LmNvbUBsaXN0cy5vemxhYnMub3JnXSBPbiBCZWhhbGYgT2YKWGll
Cj4gPj4gU2hhb2h1aS1CMjE5ODkKPiA+Pj4gU2VudDogVGh1cnNkYXksIERlY2VtYmVyIDAyLCAy
MDEwIDEwOjI5IFBNCj4gPj4+IFRvOiBCb3VuaW5lLCBBbGV4YW5kcmU7IGxpbnV4cHBjLWRldkBs
aXN0cy5vemxhYnMub3JnCj4gPj4+IENjOiBha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnOyBHYWxh
IEt1bWFyLUIxMTc4MDsgTGkgWWFuZy1SNTg0NzI7Cj4gPj4gWmFuZyBSb3ktUjYxOTExCj4gPj4+
IFN1YmplY3Q6IFJFOiBbUEFUQ0ggMi8yXVt2M10gcmFwaWRpbyxwb3dlcnBjLzg1eHg6IEVycm9y
IGludGVycnVwdAo+ID4+IGhhbmRsZXIgZm9yIHNSSU8uCj4gPj4+Cj4gPj4+IEhpIEFsZXgsCj4g
Pj4+Cj4gPj4+IE1heSBJIGFzayB3aGVuIHdvdWxkIHRoZXNlIHBhdGNoZXMgYmUgYXBwbGllZCB0
byBtYWlubGluZT8KPiA+Pj4KPiA+Pj4KPiA+Pj4gQmVzdCBSZWdhcmRzLAo+ID4+PiBTaGFvaHVp
IFhpZQo+ID4+Pgo+ID4+PiBGcm9tOiBCb3VuaW5lLCBBbGV4YW5kcmUgW21haWx0bzpBbGV4YW5k
cmUuQm91bmluZUBpZHQuY29tXQo+ID4+PiBTZW50OiBXZWRuZXNkYXksIERlY2VtYmVyIDAxLCAy
MDEwIDQ6NDkgQU0KPiA+Pj4gVG86IFhpZSBTaGFvaHVpLUIyMTk4OTsgbGludXhwcGMtZGV2QGxp
c3RzLm96bGFicy5vcmcKPiA+Pj4gQ2M6IGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc7IExpIFlh
bmctUjU4NDcyOyBHYWxhIEt1bWFyLUIxMTc4MDsKPiA+PiBaYW5nIFJveS1SNjE5MTEKPiA+Pj4g
U3ViamVjdDogUkU6IFtQQVRDSCAyLzJdW3YzXSByYXBpZGlvLCBwb3dlcnBjLzg1eHg6IEVycm9y
CmludGVycnVwdAo+ID4+IGhhbmRsZXIgZm9yIHNSSU8uCj4gPj4+Cj4gPj4+IEFwcGxpZXMgY29y
cmVjdGx5IG5vdy4gTGFiIHRlc3RlZCBvbiA4NTQ4L1JJTyBzZXR1cC4KPiA+Pj4KPiA+Pj4gQWxl
eC4KPiA+Pj4KPiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPj4+PiBGcm9tOiBT
aGFvaHVpIFhpZSBbbWFpbHRvOmIyMTk4OUBmcmVlc2NhbGUuY29tXQo+ID4+Pj4gU2VudDogVGh1
cnNkYXksIE5vdmVtYmVyIDE4LCAyMDEwIDE6NTggQU0KPiA+Pj4+IFRvOiBsaW51eHBwYy1kZXZA
bGlzdHMub3psYWJzLm9yZwo+ID4+Pj4gQ2M6IGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc7IFNo
YW9odWkgWGllOyBMaSBZYW5nOyBLdW1hciBHYWxhOwo+ID4gUm95Cj4gPj4+IFphbmc7IEJvdW5p
bmUsIEFsZXhhbmRyZQo+ID4+Pj4gU3ViamVjdDogW1BBVENIIDIvMl1bdjNdIHJhcGlkaW8sIHBv
d2VycGMvODV4eDogRXJyb3IgaW50ZXJydXB0Cj4gPj4+IGhhbmRsZXIgZm9yIHNSSU8uCj4gPj4+
Pgo+ID4+Pj4gVGhlIHNSSU8gY29udHJvbGxlciByZXBvcnRzIGVycm9ycyB0byB0aGUgY29yZSB3
aXRoIG9uZSBzaWduYWwsCml0Cj4gPj4+IHVzZXMKPiA+Pj4+IHJlZ2lzdGVyIEVQV0lTUiB0byBw
cm92aWRlcyB0aGUgY29yZSBxdWljayBhY2Nlc3MgdG8gd2hlcmUgdGhlCj4gPiBlcnJvcgo+ID4+
PiBvY2N1cnJlZC4KPiA+Pj4+IFRoZSBFUFdJU1IgaW5kaWNhdGVzIHRoYXQgdGhlcmUgYXJlIDQg
aW50ZXJydXB0cyBzb3VyY2VzLCBwb3J0MSwKPiA+Pj4gcG9ydDIsIG1lc3NhZ2UKPiA+Pj4+IHVu
aXQgYW5kIHBvcnQgd3JpdGUgcmVjZWl2ZSwgYnV0IHRoZSBzUklPIGRyaXZlciBkb2VzIG5vdCBz
dXBwb3J0Cj4gPj4+IHBvcnQyCj4gPj4+PiBmb3Igbm93LCBzdGlsbCB0aGUgaGFuZGxlciB0YWtl
cyBjYXJlIG9mIHBvcnQyLgo+ID4+Pj4gQ3VycmVudGx5IHRoZSBoYW5kbGVyIG9ubHkgY2xlYXIg
ZXJyb3Igc3RhdHVzIHdpdGhvdXQgYW55Cj4gcmVjb3ZlcnkuCj4gPj4+Cj4gPj4+IF9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPj4+IExpbnV4cHBjLWRl
diBtYWlsaW5nIGxpc3QKPiA+Pj4gTGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmcKPiA+Pj4g
aHR0cHM6Ly9saXN0cy5vemxhYnMub3JnL2xpc3RpbmZvL2xpbnV4cHBjLWRldgo+ID4+Cj4gPj4g
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+PiBMaW51
eHBwYy1kZXYgbWFpbGluZyBsaXN0Cj4gPj4gTGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmcK
PiA+PiBodHRwczovL2xpc3RzLm96bGFicy5vcmcvbGlzdGluZm8vbGludXhwcGMtZGV2CgoK

^ permalink raw reply

* Re: [PATCH 2/2][v3] rapidio, powerpc/85xx: Error interrupt handler for sRIO.
From: Kumar Gala @ 2011-05-20 13:53 UTC (permalink / raw)
  To: Shaohui Xie; +Cc: Alexandre Bounine, akpm, linuxppc-dev
In-Reply-To: <1290063473-20950-1-git-send-email-b21989@freescale.com>


On Nov 18, 2010, at 12:57 AM, Shaohui Xie wrote:

> The sRIO controller reports errors to the core with one signal, it =
uses
> register EPWISR to provides the core quick access to where the error =
occurred.
> The EPWISR indicates that there are 4 interrupts sources, port1, =
port2, message
> unit and port write receive, but the sRIO driver does not support =
port2
> for now, still the handler takes care of port2.
> Currently the handler only clear error status without any recovery.
>=20
> Signed-off-by: Shaohui Xie <b21989@freescale.com>
> Cc: Li Yang <leoli@freescale.com>
> Cc: Kumar Gala <kumar.gala@freescale.com>
> Cc: Roy Zang <tie-fei.zang@freescale.com>
> Cc: Alexandre Bounine <alexandre.bounine@idt.com>
> ---
> updated to 37-rc2
> arch/powerpc/sysdev/fsl_rio.c |   85 =
+++++++++++++++++++++++++++++++++++++----
> 1 files changed, 77 insertions(+), 8 deletions(-)

applied to merge

- k=

^ permalink raw reply

* Re: [PATCH 1/2][v4] fsl_rio: move machine_check handler into machine_check_e500 & machine_check_e500mc
From: Kumar Gala @ 2011-05-20 13:53 UTC (permalink / raw)
  To: Shaohui Xie; +Cc: Alexandre Bounine, akpm, linuxppc-dev
In-Reply-To: <1290063452-20873-1-git-send-email-b21989@freescale.com>


On Nov 18, 2010, at 12:57 AM, Shaohui Xie wrote:

> Signed-off-by: Shaohui Xie <b21989@freescale.com>
> Cc: Li Yang <leoli@freescale.com>
> Cc: Kumar Gala <kumar.gala@freescale.com>
> Cc: Roy Zang <tie-fei.zang@freescale.com>
> Cc: Alexandre Bounine <alexandre.bounine@idt.com>
> ---
> arch/powerpc/include/asm/rio.h |    5 +++++
> arch/powerpc/kernel/traps.c    |   13 +++++++++++++
> arch/powerpc/sysdev/fsl_rio.c  |   15 +++------------
> 3 files changed, 21 insertions(+), 12 deletions(-)

applied to merge

- k

^ permalink raw reply

* Re: [git pull] Please pull powerpc.git merge branch
From: Josh Boyer @ 2011-05-20 13:58 UTC (permalink / raw)
  To: Richard Cochran
  Cc: Andrew Morton, Linus Torvalds, Linux Kernel list,
	linuxppc-dev list
In-Reply-To: <20110520132328.GA5785@riccoc20.at.omicron.at>

On Fri, May 20, 2011 at 03:23:29PM +0200, Richard Cochran wrote:
>When I try to build 'next' (now at 208b3a4c), it does not compile due
>to a change from the following commit.
>
>> Benjamin Herrenschmidt (1):
>>       powerpc/smp: Make start_secondary_resume available to all CPU variants
>
>I would appreciate your help in getting this fixed...

Could you try the patch below?

Commit 69e3cea8d5fd526 introduced start_secondary_resume to misc_32.S,
however it uses a 64-bit instruction which is not valid on 32-bit
platforms.  Use 'stw' instead.

Reported-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>

---

diff --git a/arch/powerpc/kernel/misc_32.S
b/arch/powerpc/kernel/misc_32.S
index 402560e..998a100 100644
--- a/arch/powerpc/kernel/misc_32.S
+++ b/arch/powerpc/kernel/misc_32.S
@@ -700,7 +700,7 @@ _GLOBAL(start_secondary_resume)
	rlwinm  r1,r1,0,0,(31-THREAD_SHIFT)     /* current_thread_info() */
	addi    r1,r1,THREAD_SIZE-STACK_FRAME_OVERHEAD
	li      r3,0
-	std     r3,0(r1)                /* Zero the stack frame pointer */
+	stw     r3,0(r1)                /* Zero the stack frame pointer */
	bl      start_secondary
	b       .
 #endif /* CONFIG_SMP */

^ permalink raw reply related

* Re: [git pull] Please pull powerpc.git merge branch
From: Richard Cochran @ 2011-05-20 14:32 UTC (permalink / raw)
  To: Josh Boyer
  Cc: Andrew Morton, Linus Torvalds, Linux Kernel list,
	linuxppc-dev list
In-Reply-To: <20110520135845.GG25179@zod.rchland.ibm.com>

On Fri, May 20, 2011 at 09:58:45AM -0400, Josh Boyer wrote:
> On Fri, May 20, 2011 at 03:23:29PM +0200, Richard Cochran wrote:
> >When I try to build 'next' (now at 208b3a4c), it does not compile due
> >to a change from the following commit.
> >
> >> Benjamin Herrenschmidt (1):
> >>       powerpc/smp: Make start_secondary_resume available to all CPU variants
> >
> >I would appreciate your help in getting this fixed...
> 
> Could you try the patch below?

Yes, and it both compiles and boots.

Thanks,
Richard

> 
> Commit 69e3cea8d5fd526 introduced start_secondary_resume to misc_32.S,
> however it uses a 64-bit instruction which is not valid on 32-bit
> platforms.  Use 'stw' instead.
> 
> Reported-by: Richard Cochran <richardcochran@gmail.com>
> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
> 
> ---
> 
> diff --git a/arch/powerpc/kernel/misc_32.S
> b/arch/powerpc/kernel/misc_32.S
> index 402560e..998a100 100644
> --- a/arch/powerpc/kernel/misc_32.S
> +++ b/arch/powerpc/kernel/misc_32.S
> @@ -700,7 +700,7 @@ _GLOBAL(start_secondary_resume)
> 	rlwinm  r1,r1,0,0,(31-THREAD_SHIFT)     /* current_thread_info() */
> 	addi    r1,r1,THREAD_SIZE-STACK_FRAME_OVERHEAD
> 	li      r3,0
> -	std     r3,0(r1)                /* Zero the stack frame pointer */
> +	stw     r3,0(r1)                /* Zero the stack frame pointer */
> 	bl      start_secondary
> 	b       .
>  #endif /* CONFIG_SMP */
> 

^ permalink raw reply

* [git pull] Please pull powerpc.git merge branch
From: Kumar Gala @ 2011-05-20 14:35 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev

A bug/erratum fix, and a 2 long standing SRIO patches...

The following changes since commit 208b3a4c196e733b9cec006dc132cfc149b2810a:

  powerpc: Fix hard CPU IDs detection (2011-05-20 17:50:18 +1000)

are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc.git merge

Shaohui Xie (2):
      powerpc/fsl_rio: move machine_check handler
      powerpc/fsl_rio: Error interrupt handler for sRIO on MPC85xx

Shengzhou Liu (1):
      powerpc/fsl_lbc: Add workaround for ELBC-A001 erratum

 arch/powerpc/include/asm/fsl_lbc.h |    2 +
 arch/powerpc/include/asm/rio.h     |    5 ++
 arch/powerpc/kernel/traps.c        |   13 +++++
 arch/powerpc/sysdev/fsl_lbc.c      |    9 +++-
 arch/powerpc/sysdev/fsl_rio.c      |  100 ++++++++++++++++++++++++++++-------
 5 files changed, 107 insertions(+), 22 deletions(-)

^ permalink raw reply

* Re: [git pull] Please pull powerpc.git merge branch
From: Josh Boyer @ 2011-05-20 14:46 UTC (permalink / raw)
  To: Richard Cochran
  Cc: Andrew Morton, Linus Torvalds, Linux Kernel list,
	linuxppc-dev list
In-Reply-To: <20110520143259.GB5785@riccoc20.at.omicron.at>

On Fri, May 20, 2011 at 04:32:59PM +0200, Richard Cochran wrote:
>On Fri, May 20, 2011 at 09:58:45AM -0400, Josh Boyer wrote:
>> On Fri, May 20, 2011 at 03:23:29PM +0200, Richard Cochran wrote:
>> >When I try to build 'next' (now at 208b3a4c), it does not compile due
>> >to a change from the following commit.
>> >
>> >> Benjamin Herrenschmidt (1):
>> >>       powerpc/smp: Make start_secondary_resume available to all CPU variants
>> >
>> >I would appreciate your help in getting this fixed...
>> 
>> Could you try the patch below?
>
>Yes, and it both compiles and boots.

Thanks for testing!

Ben, can you pull this patch in as-is (fixing up the Subject), or do you
need me to resubmit it?

josh
>> 
>> Commit 69e3cea8d5fd526 introduced start_secondary_resume to misc_32.S,
>> however it uses a 64-bit instruction which is not valid on 32-bit
>> platforms.  Use 'stw' instead.
>> 
>> Reported-by: Richard Cochran <richardcochran@gmail.com>
>> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
>> 
>> ---
>> 
>> diff --git a/arch/powerpc/kernel/misc_32.S
>> b/arch/powerpc/kernel/misc_32.S
>> index 402560e..998a100 100644
>> --- a/arch/powerpc/kernel/misc_32.S
>> +++ b/arch/powerpc/kernel/misc_32.S
>> @@ -700,7 +700,7 @@ _GLOBAL(start_secondary_resume)
>> 	rlwinm  r1,r1,0,0,(31-THREAD_SHIFT)     /* current_thread_info() */
>> 	addi    r1,r1,THREAD_SIZE-STACK_FRAME_OVERHEAD
>> 	li      r3,0
>> -	std     r3,0(r1)                /* Zero the stack frame pointer */
>> +	stw     r3,0(r1)                /* Zero the stack frame pointer */
>> 	bl      start_secondary
>> 	b       .
>>  #endif /* CONFIG_SMP */
>> 

^ permalink raw reply

* Re: [PATCH 02/14] powerpc: Add a defconfig for 'corenet' 32-bit platforms
From: Tabi Timur-B04825 @ 2011-05-20 14:45 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev@ozlabs.org
In-Reply-To: <1305871771-16334-2-git-send-email-galak@kernel.crashing.org>

On Fri, May 20, 2011 at 1:09 AM, Kumar Gala <galak@kernel.crashing.org> wro=
te:

> +CONFIG_MATH_EMULATION=3Dy

Don't these chips have hardware floating point?

> +CONFIG_FORCE_MAX_ZONEORDER=3D13

This may be unnecessary.  I originally set CONFIG_FORCE_MAX_ZONEORDER
to 12 because the DIU driver needs to be able to allocate a contiguous
5MB memory block.  Setting it to 13 means a max of 16MB.  Is there a
reason the default isn't good enough?

--=20
Timur Tabi
Linux kernel developer at Freescale=

^ permalink raw reply

* [PATCH v2 0/2] powerpc: define and implement MPIC message register support
From: Meador Inge @ 2011-05-20 16:36 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: openmcapi-dev, devicetree-discuss, Hollis Blanchard

This patch set defines a binding for FSL MPIC message registers and implements
an API for accessing those message registers.  Testing was done on a MPC8572DS
in an Linux-Linux AMP setup using OpenMCAPI (www.openmcapi.org) to communicate
between OS instances.  The message register API is used by the OpenMCAPI shared 
memory driver to send notifications between cores.

* v2 - Incorporate feedback from Scott Wood
   * Make binding less implementation specific.
   * Add 'mpic-' prefix to message register node properties and aliases.
   * Remove 'interrupt-parent' from binding.
   * Fixed some example bugs with receive masks.

Signed-off-by: Meador Inge <meador_inge@mentor.com>
Cc: Hollis Blanchard <hollis_blanchard@mentor.com>

Meador Inge (2):
  powerpc: document the FSL MPIC message register binding
  powerpc: add support for MPIC message register API

 .../devicetree/bindings/powerpc/fsl/mpic-msgr.txt  |   62 +++++
 arch/powerpc/include/asm/mpic_msgr.h               |   35 +++
 arch/powerpc/platforms/Kconfig                     |    8 +
 arch/powerpc/sysdev/Makefile                       |    3 +-
 arch/powerpc/sysdev/mpic_msgr.c                    |  279 ++++++++++++++++++++
 5 files changed, 386 insertions(+), 1 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/powerpc/fsl/mpic-msgr.txt
 create mode 100644 arch/powerpc/include/asm/mpic_msgr.h
 create mode 100644 arch/powerpc/sysdev/mpic_msgr.c

^ permalink raw reply

* [PATCH v2 1/2] powerpc: document the FSL MPIC message register binding
From: Meador Inge @ 2011-05-20 16:36 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: openmcapi-dev, devicetree-discuss, Hollis Blanchard
In-Reply-To: <1305909399-26969-1-git-send-email-meador_inge@mentor.com>

This binding documents how the message register blocks found in some FSL
MPIC implementations shall be represented in a device tree.

Signed-off-by: Meador Inge <meador_inge@mentor.com>
Cc: Hollis Blanchard <hollis_blanchard@mentor.com>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 .../devicetree/bindings/powerpc/fsl/mpic-msgr.txt  |   62 ++++++++++++++++++++
 1 files changed, 62 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/powerpc/fsl/mpic-msgr.txt

diff --git a/Documentation/devicetree/bindings/powerpc/fsl/mpic-msgr.txt b/Documentation/devicetree/bindings/powerpc/fsl/mpic-msgr.txt
new file mode 100644
index 0000000..385dba6
--- /dev/null
+++ b/Documentation/devicetree/bindings/powerpc/fsl/mpic-msgr.txt
@@ -0,0 +1,62 @@
+* FSL MPIC Message Registers
+
+This binding specifies what properties must be available in the device tree
+representation of the message register groups found in some FSL MPIC
+implementations.
+
+Required properties:
+
+    - compatible: Specifies the compatibility list for the message register
+      block.  The type shall be <string> and the value shall be of the form
+      "fsl,mpic-v<version>-msgr", where <version> is the version number of
+      the MPIC containing the message registers.
+
+    - reg: Specifies the base physical address(s) and size(s) of the
+      message register block's addressable register space.  The type shall be
+      <prop-encoded-array>.
+
+    - interrupts: Specifies a list of interrupt source and level-sense pairs.
+      The type shall be <prop-encoded-array>.  The length shall be equal to
+      the number of bits set in the 'msg-receive-mask' property value.
+
+Optional properties:
+
+    - mpic-msgr-receive-mask: Specifies what registers in the containing block
+      are allowed to receive interrupts.  The value is a bit mask where a set
+      bit at bit 'n' indicates that message register 'n' can receive interrupts.
+      The type shall be <prop-encoded-array>.  If not present, then all of
+      the message registers in the block are available.
+
+Aliases:
+
+    An alias should be created for every message register block.  They are not
+    required, though.  However, are particular implementation of this binding
+    may require aliases to be present.  Aliases are of the form
+    'mpic-msgr-block<n>', where <n> is an integer specifying the block's number.
+    Numbers shall start at 0.
+
+Example:
+
+	aliases {
+		mpic-msgr-block0 = &mpic_msgr_block0;
+		mpic-msgr-block1 = &mpic_msgr_block1;
+	};
+
+	mpic_msgr_block0: mpic-msgr-block@41400 {
+		compatible = "fsl,mpic-v3.1-msgr";
+		reg = <0x41400 0x200>;
+		// Message registers 0 and 2 in this block can receive interrupts on
+		// sources 0xb0 and 0xb2, respectively.
+		interrupts = <0xb0 2 0xb2 2>;
+		mpic-msgr-receive-mask = <0x5>;
+	};
+
+	mpic_msgr_block1: mpic-msgr-block@42400 {
+		compatible = "fsl,mpic-v3.1-msgr";
+		reg = <0x42400 0x200>;
+		// Message registers 0 and 2 in this block can receive interrupts on
+		// sources 0xb4 and 0xb6, respectively.
+		interrupts = <0xb4 2 0xb6 2>;
+		mpic-msgr-receive-mask = <0x5>;
+	};
+
-- 
1.6.3.3

^ permalink raw reply related

* [PATCH v2 2/2] powerpc: add support for MPIC message register API
From: Meador Inge @ 2011-05-20 16:36 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: openmcapi-dev, devicetree-discuss, Hollis Blanchard
In-Reply-To: <1305909399-26969-1-git-send-email-meador_inge@mentor.com>

Some MPIC implementations contain one or more blocks of message registers
that are used to send messages between cores via IPIs.  A simple API has
been added to access (get/put, read, write, etc ...) these message registers.
The available message registers are initially discovered via nodes in the
device tree.  A separate commit contains a binding for the message register
nodes.

Signed-off-by: Meador Inge <meador_inge@mentor.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Hollis Blanchard <hollis_blanchard@mentor.com>
---
 arch/powerpc/include/asm/mpic_msgr.h |   35 +++++
 arch/powerpc/platforms/Kconfig       |    8 +
 arch/powerpc/sysdev/Makefile         |    3 +-
 arch/powerpc/sysdev/mpic_msgr.c      |  279 ++++++++++++++++++++++++++++++++++
 4 files changed, 324 insertions(+), 1 deletions(-)
 create mode 100644 arch/powerpc/include/asm/mpic_msgr.h
 create mode 100644 arch/powerpc/sysdev/mpic_msgr.c

diff --git a/arch/powerpc/include/asm/mpic_msgr.h b/arch/powerpc/include/asm/mpic_msgr.h
new file mode 100644
index 0000000..370dcb4
--- /dev/null
+++ b/arch/powerpc/include/asm/mpic_msgr.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2011-2012, Meador Inge, Mentor Graphics Corporation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; version 2 of the
+ * License.
+ *
+ */
+
+#ifndef _ASM_MPIC_MSGR_H
+#define _ASM_MPIC_MSGR_H
+
+#include <linux/types.h>
+
+struct mpic_msgr {
+	u32 __iomem *addr;
+	u32 __iomem *mer;
+	u32 __iomem	*msr;
+	int irq;
+	atomic_t in_use;
+	int num;
+};
+
+extern struct mpic_msgr* mpic_msgr_get(unsigned int reg_num);
+extern void mpic_msgr_put(struct mpic_msgr* msgr);
+extern void mpic_msgr_enable(struct mpic_msgr *msgr);
+extern void mpic_msgr_disable(struct mpic_msgr *msgr);
+extern void mpic_msgr_write(struct mpic_msgr *msgr, u32 message);
+extern u32 mpic_msgr_read(struct mpic_msgr *msgr);
+extern void mpic_msgr_clear(struct mpic_msgr *msgr);
+extern void mpic_msgr_set_destination(struct mpic_msgr *msgr, u32 cpu_num);
+extern int mpic_msgr_get_irq(struct mpic_msgr *msgr);
+
+#endif
diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig
index f7b0772..4d65593 100644
--- a/arch/powerpc/platforms/Kconfig
+++ b/arch/powerpc/platforms/Kconfig
@@ -78,6 +78,14 @@ config MPIC_WEIRD
 	bool
 	default n
 
+config MPIC_MSGR
+	bool "MPIC message register support"
+	depends on MPIC
+	default n
+	help
+	  Enables support for the MPIC message registers.  These
+	  registers are used for inter-processor communication.
+
 config PPC_I8259
 	bool
 	default n
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile
index 1e0c933..6d40185 100644
--- a/arch/powerpc/sysdev/Makefile
+++ b/arch/powerpc/sysdev/Makefile
@@ -3,7 +3,8 @@ subdir-ccflags-$(CONFIG_PPC_WERROR) := -Werror
 ccflags-$(CONFIG_PPC64)		:= -mno-minimal-toc
 
 mpic-msi-obj-$(CONFIG_PCI_MSI)	+= mpic_msi.o mpic_u3msi.o mpic_pasemi_msi.o
-obj-$(CONFIG_MPIC)		+= mpic.o $(mpic-msi-obj-y)
+mpic-msgr-obj-$(CONFIG_MPIC_MSGR)	+= mpic_msgr.o
+obj-$(CONFIG_MPIC)		+= mpic.o $(mpic-msi-obj-y) $(mpic-msgr-obj-y)
 fsl-msi-obj-$(CONFIG_PCI_MSI)	+= fsl_msi.o
 obj-$(CONFIG_PPC_MSI_BITMAP)	+= msi_bitmap.o
 
diff --git a/arch/powerpc/sysdev/mpic_msgr.c b/arch/powerpc/sysdev/mpic_msgr.c
new file mode 100644
index 0000000..bfa0612
--- /dev/null
+++ b/arch/powerpc/sysdev/mpic_msgr.c
@@ -0,0 +1,279 @@
+/*
+ * Copyright 2011-2012, Meador Inge, Mentor Graphics Corporation.
+ *
+ * Some ideas based on un-pushed work done by Vivek Mahajan, Jason Jin, and
+ * Mingkai Hu from Freescale Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; version 2 of the
+ * License.
+ *
+ */
+
+#include <linux/list.h>
+#include <linux/of_platform.h>
+#include <linux/errno.h>
+#include <asm/prom.h>
+#include <asm/hw_irq.h>
+#include <asm/ppc-pci.h>
+#include <asm/mpic_msgr.h>
+
+#define MPIC_MSGR_REGISTERS_PER_BLOCK 4
+#define MSGR_INUSE 0
+#define MSGR_FREE 1
+
+/* Internal structure used *only* for IO mapping register blocks. */
+struct mpic_msgr_block {
+	struct msgr {
+		u32 msgr;
+		u8 res[12];
+	} msgrs[MPIC_MSGR_REGISTERS_PER_BLOCK];
+	u8 res0[192];
+	u32 mer;
+	u8 res1[12];
+	u32 msr;
+};
+
+static struct mpic_msgr **mpic_msgrs = 0;
+static unsigned int mpic_msgr_count = 0;
+
+struct mpic_msgr* mpic_msgr_get(unsigned int reg_num)
+{
+	struct mpic_msgr* msgr;
+
+	if (reg_num >= mpic_msgr_count)
+		return ERR_PTR(-ENODEV);
+
+	msgr = mpic_msgrs[reg_num];
+
+	if (atomic_cmpxchg(&msgr->in_use, MSGR_FREE, MSGR_INUSE) == MSGR_FREE)
+		return msgr;
+
+	return ERR_PTR(-EBUSY);
+}
+EXPORT_SYMBOL(mpic_msgr_get);
+
+void mpic_msgr_put(struct mpic_msgr* msgr)
+{
+	atomic_set(&msgr->in_use, MSGR_FREE);
+}
+EXPORT_SYMBOL(mpic_msgr_put);
+
+void mpic_msgr_enable(struct mpic_msgr *msgr)
+{
+	out_be32(msgr->mer, in_be32(msgr->mer) | (1 << msgr->num));
+}
+EXPORT_SYMBOL(mpic_msgr_enable);
+
+void mpic_msgr_disable(struct mpic_msgr *msgr)
+{
+	out_be32(msgr->mer, in_be32(msgr->mer) & ~(1 << msgr->num));
+}
+EXPORT_SYMBOL(mpic_msgr_disable);
+
+void mpic_msgr_write(struct mpic_msgr *msgr, u32 message)
+{
+	out_be32(msgr->addr, message);
+}
+EXPORT_SYMBOL(mpic_msgr_write);
+
+u32 mpic_msgr_read(struct mpic_msgr *msgr)
+{
+	return in_be32(msgr->addr);
+}
+EXPORT_SYMBOL(mpic_msgr_read);
+
+void mpic_msgr_clear(struct mpic_msgr *msgr)
+{
+	(void) mpic_msgr_read(msgr);
+}
+EXPORT_SYMBOL(mpic_msgr_clear);
+
+void mpic_msgr_set_destination(struct mpic_msgr *msgr, u32 cpu_num)
+{
+	out_be32(msgr->addr, 1 << cpu_num);
+}
+EXPORT_SYMBOL(mpic_msgr_set_destination);
+
+int mpic_msgr_get_irq(struct mpic_msgr *msgr)
+{
+	return msgr->irq;
+}
+EXPORT_SYMBOL(mpic_msgr_get_irq);
+
+/* The following three functions are used to compute the order and number of
+ * the message register blocks.  They are clearly very inefficent.  However,
+ * they are called *only* a few times during device initialization.
+ */
+static unsigned int mpic_msgr_number_of_blocks(void)
+{
+	unsigned int count;
+	struct device_node *aliases;
+
+	count = 0;
+	aliases = of_find_node_by_name(NULL, "aliases");
+
+	if (aliases) {
+		char buf[32];
+
+		for (;;) {
+			snprintf(buf, sizeof(buf), "mpic-msgr-block%d", count);
+			if (!of_find_property(aliases, buf, NULL))
+				break;
+
+			count += 1;
+		}
+	}
+
+	return count;
+}
+
+static unsigned int mpic_msgr_number_of_registers(void)
+{
+	return mpic_msgr_number_of_blocks() * MPIC_MSGR_REGISTERS_PER_BLOCK;
+}
+
+static int mpic_msgr_block_number(struct device_node *node)
+{
+	struct device_node *aliases;
+	unsigned int index, number_of_blocks;
+	char buf[64];
+
+	number_of_blocks = mpic_msgr_number_of_blocks();
+	aliases = of_find_node_by_name(NULL, "aliases");
+	if (!aliases)
+		return -1;
+
+	for (index = 0; index < number_of_blocks; ++index) {
+		struct property *prop;
+
+		snprintf(buf, sizeof(buf), "mpic-msgr-block%d", index);
+		prop = of_find_property(aliases, buf, NULL);
+		if (node == of_find_node_by_path(prop->value))
+			break;
+	}
+
+	return index == number_of_blocks ? -1 : index;
+}
+
+/* The probe function for a single message register block.
+ */
+static __devinit int mpic_msgr_probe(struct platform_device *dev)
+{
+	struct mpic_msgr_block __iomem *msgr_block;
+	int block_number;
+	struct resource rsrc;
+	unsigned int i;
+	unsigned int irq_index;
+	struct device_node *np = dev->dev.of_node;
+	unsigned int receive_mask;
+	const unsigned int *prop;
+
+	if (!np) {
+		dev_err(&dev->dev, "Device OF-Node is NULL");
+		return -EFAULT;
+	}
+
+	/* Allocate the message register array upon the first device
+	 * registered.
+	 */
+	if (!mpic_msgrs) {
+		mpic_msgr_count = mpic_msgr_number_of_registers();
+		dev_info(&dev->dev, "Found %d message registers\n", mpic_msgr_count);
+
+		mpic_msgrs = kzalloc(sizeof(struct mpic_msgr) * mpic_msgr_count,
+							 GFP_KERNEL);
+		if (!mpic_msgrs) {
+			dev_err(&dev->dev, "No memory for message register blocks\n");
+			return -ENOMEM;
+		}
+	}
+	dev_info(&dev->dev, "Of-device full name %s\n", np->full_name);
+
+	/* IO map the message register block. */
+	of_address_to_resource(np, 0, &rsrc);
+	msgr_block = ioremap(rsrc.start, rsrc.end - rsrc.start);
+	if (!msgr_block) {
+		dev_err(&dev->dev, "Failed to iomap MPIC message registers");
+		return -EFAULT;
+	}
+
+	/* Ensure the block has a defined order. */
+	block_number = mpic_msgr_block_number(np);
+	if (block_number < 0) {
+		dev_err(&dev->dev, "Failed to find message register block alias\n");
+		return -ENODEV;
+	}
+	dev_info(&dev->dev, "Setting up message register block %d\n", block_number);
+
+	/* Grab the receive mask which specifies what registers can receive
+	 * interrupts.
+	 */
+	prop = of_get_property(np, "mpic-msgr-receive-mask", NULL);
+	receive_mask = (prop) ? *prop : 0xF;
+
+	/* Build up the appropriate message register data structures. */
+	for (i = 0, irq_index = 0; i < MPIC_MSGR_REGISTERS_PER_BLOCK; ++i) {
+		struct mpic_msgr *msgr;
+		unsigned int reg_number;
+
+		msgr = kzalloc(sizeof(struct mpic_msgr), GFP_KERNEL);
+		if (!msgr) {
+			dev_err(&dev->dev, "No memory for message register\n");
+			return -ENOMEM;
+		}
+
+		reg_number = block_number * MPIC_MSGR_REGISTERS_PER_BLOCK + i;
+		msgr->addr = &msgr_block->msgrs[i].msgr;
+		msgr->mer = &msgr_block->mer;
+		msgr->msr = &msgr_block->msr;
+		atomic_set(&msgr->in_use, MSGR_FREE);
+		msgr->num = reg_number;
+
+		if (receive_mask & (1 << i)) {
+			struct resource irq;
+
+			if (of_irq_to_resource(np, irq_index, &irq) == NO_IRQ) {
+				dev_err(&dev->dev, "Missing interrupt specifier");
+				kfree(msgr);
+				return -EFAULT;
+			}
+			msgr->irq = irq.start;
+			irq_index += 1;
+		} else {
+			msgr->irq = NO_IRQ;
+		}
+
+		mpic_msgrs[reg_number] = msgr;
+		mpic_msgr_disable(msgr);
+		dev_info(&dev->dev, "Register %d initialized: irq %d\n",
+				 msgr->num, msgr->irq);
+	
+	}
+
+	return 0;
+}
+
+static const struct of_device_id mpic_msgr_ids[] = {
+	{
+		.compatible = "fsl,mpic-v3.1-msgr",
+		.data = NULL,
+	},
+	{}
+};
+
+static struct platform_driver mpic_msgr_driver = {
+	.driver = {
+		.name = "mpic-msgr",
+		.owner = THIS_MODULE,
+		.of_match_table = mpic_msgr_ids,
+	},
+	.probe = mpic_msgr_probe,
+};
+
+static __init int mpic_msgr_init(void)
+{
+	return platform_driver_register(&mpic_msgr_driver);
+}
+subsys_initcall(mpic_msgr_init);
-- 
1.6.3.3

^ permalink raw reply related

* [PATCH 1/2] powerpc/book3e-64: hv exceptions aren't MASKABLE
From: Scott Wood @ 2011-05-20 19:00 UTC (permalink / raw)
  To: galak; +Cc: linuxppc-dev

In general we will not have EE soft-disabled or be napping when
these exceptions happen, but still it is not correct.

The guest doorbell exceptions can only be triggered with MSR[GS]=1,
and thus for host kernel nesting purposes are base-level exceptions.

Note that ehpriv and hypercall are triggerable from normal userspace.
I tested that the process gets properly signalled in this case.

Signed-off-by: Scott Wood <scottwood@freescale.com>
---
 arch/powerpc/include/asm/reg_booke.h |    2 +
 arch/powerpc/kernel/exceptions-64e.S |   67 ++++++++++++++++++++++++++--------
 2 files changed, 53 insertions(+), 16 deletions(-)

diff --git a/arch/powerpc/include/asm/reg_booke.h b/arch/powerpc/include/asm/reg_booke.h
index 0f0ad9f..e438286 100644
--- a/arch/powerpc/include/asm/reg_booke.h
+++ b/arch/powerpc/include/asm/reg_booke.h
@@ -67,6 +67,8 @@
 #define SPRN_EPTCFG	0x15e	/* Embedded Page Table Config */
 #define SPRN_MAS7_MAS3	0x174	/* MMU Assist Register 7 || 3 */
 #define SPRN_MAS0_MAS1	0x175	/* MMU Assist Register 0 || 1 */
+#define SPRN_GSRR0	0x17a	/* Guest Save and Restore Register 0 */
+#define SPRN_GSRR1	0x17b	/* Guest Save and Restore Register 1 */
 #define SPRN_IVOR0	0x190	/* Interrupt Vector Offset Register 0 */
 #define SPRN_IVOR1	0x191	/* Interrupt Vector Offset Register 1 */
 #define SPRN_IVOR2	0x192	/* Interrupt Vector Offset Register 2 */
diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S
index 69de473..b60f49e 100644
--- a/arch/powerpc/kernel/exceptions-64e.S
+++ b/arch/powerpc/kernel/exceptions-64e.S
@@ -34,17 +34,17 @@
 #define	SPECIAL_EXC_FRAME_SIZE	INT_FRAME_SIZE
 
 /* Exception prolog code for all exceptions */
-#define EXCEPTION_PROLOG(n, type, addition)				    \
-	mtspr	SPRN_SPRG_##type##_SCRATCH,r13;	/* get spare registers */   \
+#define EXCEPTION_PROLOG(n, level, type, addition)			    \
+	mtspr	SPRN_SPRG_##level##_SCRATCH,r13; /* get spare registers */  \
 	mfspr	r13,SPRN_SPRG_PACA;	/* get PACA */			    \
-	std	r10,PACA_EX##type+EX_R10(r13);				    \
-	std	r11,PACA_EX##type+EX_R11(r13);				    \
+	std	r10,PACA_EX##level+EX_R10(r13);				    \
+	std	r11,PACA_EX##level+EX_R11(r13);				    \
 	mfcr	r10;			/* save CR */			    \
 	addition;			/* additional code for that exc. */ \
-	std	r1,PACA_EX##type+EX_R1(r13); /* save old r1 in the PACA */  \
-	stw	r10,PACA_EX##type+EX_CR(r13); /* save old CR in the PACA */ \
+	std	r1,PACA_EX##level+EX_R1(r13); /* save old r1 in the PACA */ \
+	stw	r10,PACA_EX##level+EX_CR(r13); /* save old CR in the PACA */\
 	mfspr	r11,SPRN_##type##_SRR1;/* what are we coming from */	    \
-	type##_SET_KSTACK;		/* get special stack if necessary */\
+	level##_SET_KSTACK;		/* get special stack if necessary */\
 	andi.	r10,r11,MSR_PR;		/* save stack pointer */	    \
 	beq	1f;			/* branch around if supervisor */   \
 	ld	r1,PACAKSAVE(r13);	/* get kernel stack coming from usr */\
@@ -76,17 +76,20 @@
 #define SPRN_MC_SRR0	SPRN_MCSRR0
 #define SPRN_MC_SRR1	SPRN_MCSRR1
 
+#define SPRN_GUEST_SRR0	SPRN_GSRR0
+#define SPRN_GUEST_SRR1	SPRN_GSRR1
+
 #define NORMAL_EXCEPTION_PROLOG(n, addition)				    \
-	EXCEPTION_PROLOG(n, GEN, addition##_GEN)
+	EXCEPTION_PROLOG(n, GEN, GEN, addition##_GEN)
 
 #define CRIT_EXCEPTION_PROLOG(n, addition)				    \
-	EXCEPTION_PROLOG(n, CRIT, addition##_CRIT)
+	EXCEPTION_PROLOG(n, CRIT, CRIT, addition##_CRIT)
 
 #define DBG_EXCEPTION_PROLOG(n, addition)				    \
-	EXCEPTION_PROLOG(n, DBG, addition##_DBG)
+	EXCEPTION_PROLOG(n, DBG, DBG, addition##_DBG)
 
 #define MC_EXCEPTION_PROLOG(n, addition)				    \
-	EXCEPTION_PROLOG(n, MC, addition##_MC)
+	EXCEPTION_PROLOG(n, MC, MC, addition##_MC)
 
 
 /* Variants of the "addition" argument for the prolog
@@ -228,7 +231,7 @@ exc_##n##_bad_stack:							    \
 	std	r7,TI_LOCAL_FLAGS(r11);					\
 1:
 
-
+/* Use for interrupts that should be masked by soft-EE */
 #define MASKABLE_EXCEPTION(trapnum, label, hdlr, ack)			\
 	START_EXCEPTION(label);						\
 	NORMAL_EXCEPTION_PROLOG(trapnum, PROLOG_ADDITION_MASKABLE)	\
@@ -476,11 +479,43 @@ kernel_dbg_exc:
 //	b	ret_from_crit_except
 	b	.
 
-	MASKABLE_EXCEPTION(0x2c0, guest_doorbell, .unknown_exception, ACK_NONE)
-	MASKABLE_EXCEPTION(0x2e0, guest_doorbell_crit, .unknown_exception, ACK_NONE)
-	MASKABLE_EXCEPTION(0x310, hypercall, .unknown_exception, ACK_NONE)
-	MASKABLE_EXCEPTION(0x320, ehpriv, .unknown_exception, ACK_NONE)
+	START_EXCEPTION(guest_doorbell);
+	EXCEPTION_PROLOG(0x2c0, GEN, GUEST, PROLOG_ADDITION_NONE_GEN)
+	EXCEPTION_COMMON(0x2c0, PACA_EXGEN, INTS_DISABLE_ALL)
+	addi	r3,r1,STACK_FRAME_OVERHEAD
+	bl	.save_nvgprs
+	bl	.unknown_exception
+	b	.ret_from_except
+
+	/*
+	 * Not really critical as far as host kernel exception nesting is
+	 * concerned, but uses crit registers.
+	 */
+	START_EXCEPTION(guest_doorbell_crit);
+	EXCEPTION_PROLOG(0x2e0, GEN, CRIT, PROLOG_ADDITION_NONE_GEN)
+	EXCEPTION_COMMON(0x2e0, PACA_EXGEN, INTS_DISABLE_ALL)
+	addi	r3,r1,STACK_FRAME_OVERHEAD
+	bl	.save_nvgprs
+	bl	.unknown_exception
+	b	.ret_from_except
+
+	START_EXCEPTION(hypercall);
+	NORMAL_EXCEPTION_PROLOG(0x310, PROLOG_ADDITION_NONE)
+	EXCEPTION_COMMON(0x310, PACA_EXGEN, INTS_KEEP)
+	addi	r3,r1,STACK_FRAME_OVERHEAD
+	bl	.save_nvgprs
+	INTS_RESTORE_HARD
+	bl	.unknown_exception
+	b	.ret_from_except
 
+	START_EXCEPTION(ehpriv);
+	NORMAL_EXCEPTION_PROLOG(0x320, PROLOG_ADDITION_NONE)
+	EXCEPTION_COMMON(0x320, PACA_EXGEN, INTS_KEEP)
+	addi	r3,r1,STACK_FRAME_OVERHEAD
+	bl	.save_nvgprs
+	INTS_RESTORE_HARD
+	bl	.unknown_exception
+	b	.ret_from_except
 
 /*
  * An interrupt came in while soft-disabled; clear EE in SRR1,
-- 
1.7.4.1

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox