[linux-yocto] [PULL REQUEST] Kernel: 3.10 Branch: standard/axxia/base

2014-04-28 Thread Paul, Charlie
Bruce,

I resubmitted this request, I had given you the wrong starting point, this 
should fix the merge problem

Charlie

The following changes since commit 55bf6f0b78353c34d4910bca7bfc9eed0aff5de4:

  Merge branch 'standard/base' into standard/axxia/base (2014-04-01 21:11:34 
-0400)

are available in the git repository at:


  g...@github.com:butlerpaul/lsikernel-3.10 sab-next-1

for you to fetch changes up to a72435875d8a4b4e5d61779dd823c59fd4180921:

  gpio: repairs merge comflict (2014-04-22 14:44:24 -0700)


Anders Berg (13):
  i2c-axxia: Fix broken smbus block read
  i2c-axxia: Adjust tLOW,tHIGH to match fast-mode requirements
  arm/axxia: Workaround for cross-cluster sev issue
  Revert LSI AXM55XX: Add GENERIC_LOCKBREAK
  Revert LSI AXM55XX: Disable use of wfe/sev in arch spinlock
  dma: lsi-dma32: DMA driver configuration update
  dma: lsi-dma32: Cleanup DMA driver
  mach-axxia: Split device tree into SoC/board parts
  arm/axxia: Configure changes to 'GPIO driver for SPI chip selects'
  arm/axxia: GPIO driver for SPI chip selects
  spi: Revert to mainline spi-pl022
  hwmon: Support new revision of LTC2974
  i2c-axxia: Use managed functions devm_*

Charlie Paul (3):
  i2c-axxia: code update kernel.org coding spec
  LSI powerpc/boot: added for rapidio
  i2c-axxia: Configure changes to 'Use managed functions devm_*'

David Mercado (3):
  LSI FEMAC Ethernet Driver
  kernel/irq/manage.c: Fix irq_set_affinity to allow use with buslocks
  LSI AXM55xx: Axxia GIC driver improvements (3rd gen)

Gary McGee (2):
  LSI AXXIA: fixes for VP engine quiesce and DDR shutdown
  arm/axxia: improved robustness for DDR retention

John Jacques (10):
  arch/arm/mach-axxia: Updated Device Tree for Emulation
  arch/arm/mach-axxia: Accept the new lsi,axm5516-emu Machine
  arch/arm/mach-axxia: Disable DDR Retention Resets in Sim/Emu
  arch/arm/mach-axxia: Updates to the VMFS File System
  LSI RapidIO: Updated Device Trees for rapidio
  arch/arm/mach-axxia: Name Cleanup
  arch/arm/mach-axxia: Work-Around for Event Problems in v1.0 Silicon
  arch/powerpc: Update the Axxia Device Tree Files
  arch/powerpc: Clean up of Compatible Names in Axxia Device Trees
  LSI drivers/tty: Axxia Serial Driver Update

Jonas Svennebring (2):
  ARM: 7840/1: LPAE: don't reject mapping /dev/mem above 4GB
  LSI AXXIA: Basic perf support for axxia plaform block provided by LSI.

Michael Bringmann (2):
  LSI AXM55xx: Configuration updates
  LSI AXM55xx: Disable linkdown reset configuration.

Paul Butler (2):
  i2c: comforming to changes introduced by move of_i2c to core
  gpio: repairs merge comflict

SangeethaRao (2):
  arch/powerpc: Checking in correct USB entries to ACP3421 DTS
  LSI powerpc/sysdev: Removing the power of 2 size restriction

arch/arm/Kconfig   |7 +-
arch/arm/boot/dts/Makefile |5 +
arch/arm/boot/dts/axm-sim.dts  |  403 
arch/arm/boot/dts/axm-ve-tc1.dts   |  363 ---
arch/arm/boot/dts/axm-ve-tc2.dts   |  174 --
arch/arm/boot/dts/axm5504-cpus.dtsi|   49 +
arch/arm/boot/dts/axm5504-emu.dts  |   44 +
arch/arm/boot/dts/axm5504-sim.dts  |  127 +
arch/arm/boot/dts/axm5507-cpus.dtsi|   73 +
arch/arm/boot/dts/axm5507-emu.dts  |   44 +
arch/arm/boot/dts/axm5508-cpus.dtsi|   81 +
arch/arm/boot/dts/axm5512-cpus.dtsi|  114 +
arch/arm/boot/dts/axm5516-amarillo.dts |  195 ++
arch/arm/boot/dts/axm5516-cpus.dtsi|  145 ++
arch/arm/boot/dts/axm5516-sim.dts  |  127 +
arch/arm/boot/dts/axm55xx.dts  |  464 
arch/arm/boot/dts/axm55xx.dtsi |  390 +++
.../boot/dts/{axm55xxemu.dts = axm55xxemu7.dts}   |   17 +-
arch/arm/boot/dts/axm55xxsim.dts   |  363 ---
arch/arm/boot/dts/axm55xxsim16.dts |  459 
arch/arm/boot/fmboot/Makefile  |   12 +-
arch/arm/include/asm/spinlock.h|9 +-
arch/arm/mach-axxia/Makefile   |6 +-
arch/arm/mach-axxia/axxia-gic.c| 1138 -
arch/arm/mach-axxia/axxia.c|   66 +-
arch/arm/mach-axxia/clock.c|2 +-
arch/arm/mach-axxia/ddr_retention.c|  255 +-
arch/arm/mach-axxia/ddr_shutdown.c |  332 +++
arch/arm/mach-axxia/ev.c   |   53 +
arch/arm/mach-axxia/ncr.c  |   18 +-
arch/arm/mach-axxia/perf_event_memc.c  |  130 +
arch/arm/mach-axxia/perf_event_memc.h  |   62 +
arch/arm/mach-axxia/perf_event_pcx.c   |   46 +

[linux-yocto] [PATCH 03/15] dma: lsi-dma32: Add parameter to setup burst size

2014-04-28 Thread Charlie Paul
From: Anders Berg anders.b...@lsi.com

Added module parameter 'burst' that allows the setup of the DMA controller
preferred burst setting on reads and writes. Set this to 7 for INCR16, 5 for
INCR8, 3 for INCR4 or 0 for singles (no bursts).

Signed-off-by: Anders Berg anders.b...@lsi.com
---
 drivers/dma/lsi-dma32.c |   12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/lsi-dma32.c b/drivers/dma/lsi-dma32.c
index 0c679bf..f08a1e8 100644
--- a/drivers/dma/lsi-dma32.c
+++ b/drivers/dma/lsi-dma32.c
@@ -59,6 +59,9 @@
 #define ch_dbg(dmac, fmt, ...)   do {} while (0)
 #endif
 
+static unsigned int burst = 5;
+module_param(burst, uint, 0644);
+MODULE_PARM_DESC(burst, Set preferred bust size during DMA transfters);
 
 static void reset_channel(struct gpdma_channel *dmac)
 {
@@ -416,6 +419,8 @@ gpdma_prep_memcpy(struct dma_chan *chan,
struct gpdma_channel *dmac = to_gpdma_chan(chan);
struct gpdma_desc *desc;
u16 rot_len, x_count, src_size, access_size;
+   u16 src_burst = burst;
+   u16 dst_burst = burst;
 
desc = get_descriptor(dmac-engine);
if (desc == NULL) {
@@ -461,8 +466,11 @@ gpdma_prep_memcpy(struct dma_chan *chan,
desc-hw.src_y_mod = 0;
desc-hw.src_addr  = cpu_to_le32(src  0x);
desc-hw.src_data_mask = ~0;
-   desc-hw.src_access= cpu_to_le16((rot_len  6) | access_size);
-   desc-hw.dst_access= cpu_to_le16(access_size);
+   desc-hw.src_access= cpu_to_le16((rot_len  6) |
+access_size |
+(src_burst  7));
+   desc-hw.dst_access= cpu_to_le16(access_size |
+(dst_burst  7));
desc-hw.ch_config = cpu_to_le32(DMA_CONFIG_ONE_SHOT(1));
desc-hw.next_ptr  = 0;
desc-hw.dst_x_ctr = cpu_to_le16(x_count);
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 02/15] arch/powerpc: Disable the ACP NAND Driver for 3500

2014-04-28 Thread Charlie Paul
From: John Jacques john.jacq...@lsi.com

Added code to check for the existence of the NAND driver for
3500. If the driver does not exist then the error is returned
gracefully

Signed-off-by: John Jacques john.jacq...@lsi.com
---
 drivers/mtd/nand/lsi_acp_nand.c |7 +++
 1 file changed, 7 insertions(+)

diff --git a/drivers/mtd/nand/lsi_acp_nand.c b/drivers/mtd/nand/lsi_acp_nand.c
index ddc58e3..ff2566b 100644
--- a/drivers/mtd/nand/lsi_acp_nand.c
+++ b/drivers/mtd/nand/lsi_acp_nand.c
@@ -3433,6 +3433,13 @@ lsi_nand_init(void)
static const char *part_probe_types[]
= { cmdlinepart, ofpart, NULL };
 
+   np = of_find_compatible_node(NULL, NULL, lsi,acp3500);
+
+   if (NULL != np) {
+   pr_err(NAND Support is Not Yet Available on 3500\n);
+   return -1;
+   }
+
memset(ppdata, 0, sizeof(ppdata));
 
np = of_find_node_by_type(np, nand);
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 09/15] ARM: axxia: Cleanup timer init code

2014-04-28 Thread Charlie Paul
From: Anders Berg anders.b...@lsi.com

Remove some unneeded code from the timer init function. The clocksource and
clockevent devices are all instansiated via clocksource_of_init().

Signed-off-by: Anders Berg anders.b...@lsi.com
---
 arch/arm/mach-axxia/axxia.c |   20 
 1 file changed, 20 deletions(-)

diff --git a/arch/arm/mach-axxia/axxia.c b/arch/arm/mach-axxia/axxia.c
index a8b213f..9ed7ce1 100644
--- a/arch/arm/mach-axxia/axxia.c
+++ b/arch/arm/mach-axxia/axxia.c
@@ -97,34 +97,14 @@ static void __init axxia_dt_init_irq(void)
 
 void __init axxia_dt_timer_init(void)
 {
-   const char *path;
-   struct device_node *node;
-   void __iomem *base;
int is_sim;
 
is_sim = of_find_compatible_node(NULL, NULL, lsi,axm5516-sim) != NULL;
 
axxia_init_clocks(is_sim);
 
-#ifdef CONFIG_ARM_ARCH_TIMER
of_clk_init(NULL);
clocksource_of_init();
-#endif
-
-   if (of_property_read_string(of_aliases, timer, path)) {
-   WARN_ON(1);
-   return;
-   }
-
-   node = of_find_node_by_path(path);
-   if (WARN_ON(node == NULL))
-   return;
-
-   base = of_iomap(node, 0);
-   if (WARN_ON(base == NULL))
-   return;
-
-   sp804_clocksource_and_sched_clock_init(base, axxia-timer0);
 }
 
 static struct mmci_platform_data mmc_plat_data = {
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 00/15] LSI AXXIA updates to standard/axxia/base 3.10

2014-04-28 Thread Charlie Paul
Second set of patches ready to go. 

Anders Berg (9):
  i2c-axxia: Avoid timeout when interrupt delayed
  dma: lsi-dma32: Add parameter to setup burst size
  dma: lsi-dma32: Handle DMA transfer sizes  1MB
  ARM: axxia: dts: Enable sp804 timers by default
  ARM: axxia: Cleanup timer init code
  i2c: axxia: Add support for 10-bit addressing
  ARM: axxia: Alloc GIC to be initialized from non-primary core
  ARM: axxia: Fix release of CPUs with booted via kexec
  ARM: axxia: Flush L3 in kexec_reinit

David Mercado (2):
  LSI AXM55xx: Fix PMU handler issue
  LSI AXM55xx: Fix CPU hotplug

John Jacques (4):
  arch/powerpc: Disable the ACP NAND Driver for 3500
  arch/powerpc: Fix Compile Error when the Target is PowerPC
  axxia: Use the Device Tree for MDIO Clock Offset/Period if Provided
  arch/powerpc: Support Older Machine Name for LSI Axxia

 arch/arm/boot/dts/axm5504-emu.dts|2 +
 arch/arm/boot/dts/axm5507-emu.dts|2 +
 arch/arm/boot/dts/axm5516-amarillo.dts   |2 +
 arch/arm/boot/dts/axm55xx.dtsi   |1 -
 arch/arm/mach-axxia/axxia-gic.c  |   47 +--
 arch/arm/mach-axxia/axxia.c  |  102 +++---
 arch/arm/mach-axxia/axxia.h  |1 +
 arch/arm/mach-axxia/hotplug.c|2 +-
 arch/arm/mach-axxia/include/mach/axxia-gic.h |1 -
 arch/arm/mach-axxia/platsmp.c|   27 ++--
 arch/powerpc/boot/dts/acp25xx.dts|3 +
 arch/powerpc/boot/dts/acp342x.dts|3 +
 arch/powerpc/boot/dts/acp344x.dts|3 +
 arch/powerpc/boot/dts/acp35xx.dts|3 +
 arch/powerpc/platforms/44x/acpx1.c   |5 +-
 drivers/dma/lsi-dma32.c  |  185 +++---
 drivers/dma/lsi-dma32.h  |4 +-
 drivers/i2c/busses/i2c-axxia.c   |   84 +++-
 drivers/mtd/nand/lsi_acp_nand.c  |7 +
 drivers/net/ethernet/lsi/lsi_acp_mdio.c  |   33 +++--
 20 files changed, 306 insertions(+), 211 deletions(-)

-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 06/15] LSI AXM55xx: Fix PMU handler issue

2014-04-28 Thread Charlie Paul
From: David Mercado david.merc...@windriver.com

The AXM55xx has the PMU IRQ lines from each core in a cluster OR'ed
together. As a workaround for this, a PMU handler extension was created
in the BSP to dynamically call irq_set_affinity() to rotate the PMU IRQ
assignment as needed, in order to maintain perf accuracy. However, with
the introduction of the Axxia GIC driver slow bus implementation,
irq_set_affinity() cannot be called directly from interrupt context.

Instead, the PMU IRQ handler extension is removed from the BSP and the
rotation of IRQ affinity is performed directly within the Axxia GIC
driver.

Signed-off-by: David Mercado david.merc...@windriver.com
---
 arch/arm/mach-axxia/axxia-gic.c |   25 +
 arch/arm/mach-axxia/axxia.c |   36 
 2 files changed, 25 insertions(+), 36 deletions(-)

diff --git a/arch/arm/mach-axxia/axxia-gic.c b/arch/arm/mach-axxia/axxia-gic.c
index 32c7525..8cfed90 100644
--- a/arch/arm/mach-axxia/axxia-gic.c
+++ b/arch/arm/mach-axxia/axxia-gic.c
@@ -909,6 +909,10 @@ asmlinkage void __exception_irq_entry 
axxia_gic_handle_irq(struct pt_regs *regs)
u32 irqstat, irqnr;
struct gic_chip_data *gic = gic_data;
void __iomem *cpu_base = gic_data_cpu_base(gic);
+   void __iomem *dist_base = gic_data_dist_base(gic);
+   u32 pcpu = cpu_logical_map(smp_processor_id());
+   u32 cluster = pcpu / CORES_PER_CLUSTER;
+   u32 next, mask;
 
do {
irqstat = readl_relaxed(cpu_base + GIC_CPU_INTACK);
@@ -969,6 +973,27 @@ asmlinkage void __exception_irq_entry 
axxia_gic_handle_irq(struct pt_regs *regs)
writel_relaxed(irqnr, cpu_base + GIC_CPU_EOI);
break;
 
+   case IRQ_PMU:
+   /*
+* The PMU IRQ line is OR'ed among all cores
+* within a cluster, so no way to tell which
+* core actually generated the interrupt.
+* Therefore, rotate PMU IRQ affinity to allow
+* perf to work accurately as possible. Skip
+* over offline cpus.
+*/
+   do {
+   next = (++pcpu % CORES_PER_CLUSTER) +
+   (cluster * CORES_PER_CLUSTER);
+   } while (!cpu_online(next));
+
+   mask = 0x01  (next % CORES_PER_CLUSTER);
+   raw_spin_lock(irq_controller_lock);
+   writeb_relaxed(mask, dist_base +
+   GIC_DIST_TARGET + IRQ_PMU);
+   raw_spin_unlock(irq_controller_lock);
+   /* Fall through ... */
+
default:
/* External interrupt */
handle_IRQ(irqnr, regs);
diff --git a/arch/arm/mach-axxia/axxia.c b/arch/arm/mach-axxia/axxia.c
index d73e11b..a8b213f 100644
--- a/arch/arm/mach-axxia/axxia.c
+++ b/arch/arm/mach-axxia/axxia.c
@@ -166,47 +166,11 @@ static struct resource axxia_pmu_resources[] = {
},
 };
 
-/*
- * The PMU IRQ lines of four cores are wired together into a single interrupt.
- * Bounce the interrupt to other cores if it's not ours.
- */
-#define CORES_PER_CLUSTER  4
-static irqreturn_t axxia_pmu_handler(int irq, void *dev, irq_handler_t handler)
-{
-   irqreturn_t ret = handler(irq, dev);
-   int cpu = smp_processor_id();
-   int cluster = cpu / CORES_PER_CLUSTER;
-   int other;
-
-   if (ret == IRQ_NONE) {
-
-   /* Look until we find another cpu that's online. */
-   do {
-   other = (++cpu % CORES_PER_CLUSTER) +
-   (cluster * CORES_PER_CLUSTER);
-   } while (!cpu_online(other));
-
-   irq_set_affinity(irq, cpumask_of(other));
-   }
-
-   /*
-* We should be able to get away with the amount of IRQ_NONEs we give,
-* while still having the spurious IRQ detection code kick in if the
-* interrupt really starts hitting spuriously.
-*/
-   return ret;
-}
-
-static struct arm_pmu_platdata axxia_pmu_platdata = {
-   .handle_irq = axxia_pmu_handler,
-};
-
 static struct platform_device pmu_device = {
.name   = arm-pmu,
.id = -1,
.num_resources  = ARRAY_SIZE(axxia_pmu_resources),
.resource   = axxia_pmu_resources,
-   .dev.platform_data  = axxia_pmu_platdata,
 };
 
 static int
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org

[linux-yocto] [PATCH 04/15] dma: lsi-dma32: Handle DMA transfer sizes 1MB

2014-04-28 Thread Charlie Paul
From: Anders Berg anders.b...@lsi.com

One descriptor can only transfer up to 64K 128-bit words. To handle larger
transfers the driver is now able to chain multiple descriptors.

Signed-off-by: Anders Berg anders.b...@lsi.com
---
 drivers/dma/lsi-dma32.c |  188 ++-
 drivers/dma/lsi-dma32.h |4 +-
 2 files changed, 107 insertions(+), 85 deletions(-)

diff --git a/drivers/dma/lsi-dma32.c b/drivers/dma/lsi-dma32.c
index f08a1e8..837f3e1 100644
--- a/drivers/dma/lsi-dma32.c
+++ b/drivers/dma/lsi-dma32.c
@@ -61,7 +61,8 @@
 
 static unsigned int burst = 5;
 module_param(burst, uint, 0644);
-MODULE_PARM_DESC(burst, Set preferred bust size during DMA transfters);
+MODULE_PARM_DESC(burst,
+Preferred burst setting (0=SINGLE,3=INCR4,5=INCR8,7=INCR16));
 
 static void reset_channel(struct gpdma_channel *dmac)
 {
@@ -130,9 +131,8 @@ static int alloc_desc_table(struct gpdma_engine *engine)
 * Controller can do full descriptor addresses, then we need no
 * special alignment on the descriptor block.
 */
-   order = ilog2((ALIGN(GPDMA_MAX_DESCRIPTORS *
-sizeof(struct gpdma_desc),
-PAGE_SIZE))  PAGE_SHIFT);
+   order = get_order(GPDMA_MAX_DESCRIPTORS *
+ sizeof(struct gpdma_desc));
}
 
engine-pool.va = (struct gpdma_desc *)
@@ -144,9 +144,11 @@ static int alloc_desc_table(struct gpdma_engine *engine)
engine_dbg(engine, order=%d pa=%#llx va=%p\n,
   engine-pool.order, engine-pool.phys, engine-pool.va);
 
-   for (i = 0; i  GPDMA_MAX_DESCRIPTORS; i++)
-   engine-pool.free[i] = engine-pool.va[i];
-   engine-pool.next = 0;
+   engine-pool.free = NULL;
+   for (i = 0; i  GPDMA_MAX_DESCRIPTORS-1; i++)
+   engine-pool.va[i].chain = engine-pool.va[i+1];
+   engine-pool.va[GPDMA_MAX_DESCRIPTORS-1].chain = NULL;
+   engine-pool.free = engine-pool.va[0];
 
return 0;
 }
@@ -160,26 +162,48 @@ static void free_desc_table(struct gpdma_engine *engine)
 static struct gpdma_desc *get_descriptor(struct gpdma_engine *engine)
 {
unsigned long flags;
-   struct gpdma_desc *desc = NULL;
+   struct gpdma_desc *desc;
 
spin_lock_irqsave(engine-lock, flags);
-   if (engine-pool.next  GPDMA_MAX_DESCRIPTORS)
-   desc = engine-pool.free[engine-pool.next++];
+   desc = engine-pool.free;
+   if (desc) {
+   engine-pool.free = desc-chain;
+   desc-chain = NULL;
+   desc-engine = engine;
+   }
spin_unlock_irqrestore(engine-lock, flags);
-   desc-engine = engine;
 
return desc;
 }
 
+static phys_addr_t desc_to_paddr(const struct gpdma_channel *dmac,
+const struct gpdma_desc *desc)
+{
+   phys_addr_t paddr = virt_to_phys(desc-hw);
+   WARN_ON(paddr  0xf);
+   if (dmac-engine-chip-flags  LSIDMA_NEXT_FULL)
+   paddr |= 0x8;
+   else
+   paddr = 0xf;
+
+   return paddr;
+}
+
 static void free_descriptor(struct virt_dma_desc *vd)
 {
struct gpdma_desc *desc = to_gpdma_desc(vd);
struct gpdma_engine *engine = desc-engine;
unsigned long flags;
+   struct gpdma_desc *tail;
+
+   BUG_ON(desc == NULL);
+
+   for (tail = desc; tail-chain != NULL; tail = tail-chain)
+   ;
 
spin_lock_irqsave(engine-lock, flags);
-   BUG_ON(engine-pool.next == 0);
-   engine-pool.free[--engine-pool.next] = desc;
+   tail-chain = engine-pool.free;
+   engine-pool.free = desc;
spin_unlock_irqrestore(engine-lock, flags);
 }
 
@@ -220,14 +244,9 @@ static void gpdma_start(struct gpdma_channel *dmac)
return;
}
 
-   paddr = virt_to_phys(desc-hw);
-   WARN_ON(paddr  0xf);
-   if (dmac-engine-chip-flags  LSIDMA_NEXT_FULL) {
-   /* Physical address of descriptor to load */
-   writel((u32)paddr | 0x8, dmac-base + DMA_NXT_DESCR);
-   } else {
-   writel((u32)paddr  0xf, dmac-base + DMA_NXT_DESCR);
-   }
+   /* Physical address of descriptor to load */
+   paddr = desc_to_paddr(dmac, desc);
+   writel((u32)paddr, dmac-base + DMA_NXT_DESCR);
 
if (dmac-engine-chip-flags  LSIDMA_SEG_REGS) {
/* Segment bits [39..32] of descriptor, src and dst addresses */
@@ -417,73 +436,76 @@ gpdma_prep_memcpy(struct dma_chan *chan,
  unsigned long dma_flags)
 {
struct gpdma_channel *dmac = to_gpdma_chan(chan);
-   struct gpdma_desc *desc;
-   u16 rot_len, x_count, src_size, access_size;
-   u16 src_burst = burst;
-   u16 dst_burst = burst;
+   struct gpdma_desc *first = NULL, *prev = NULL, *new;
+   u32 rot_len, x_count, src_size, access;
 
-   

[linux-yocto] [PATCH 08/15] ARM: axxia: dts: Enable sp804 timers by default

2014-04-28 Thread Charlie Paul
From: Anders Berg anders.b...@lsi.com

Let the timers block be enabled by default in the axm55xx.dsti device-tree
since all systems will need it anyway.

Signed-off-by: Anders Berg anders.b...@lsi.com
---
 arch/arm/boot/dts/axm55xx.dtsi |1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/arm/boot/dts/axm55xx.dtsi b/arch/arm/boot/dts/axm55xx.dtsi
index 92347d8..6a43139 100644
--- a/arch/arm/boot/dts/axm55xx.dtsi
+++ b/arch/arm/boot/dts/axm55xx.dtsi
@@ -328,7 +328,6 @@
 0 51 4,
 0 52 4,
 0 53 4;
-   status = disabled;
};
 
gpio0: gpio@2010092000 {
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 07/15] LSI AXM55xx: Fix CPU hotplug

2014-04-28 Thread Charlie Paul
From: David Mercado david.merc...@windriver.com

The platform CPU die routine was not being called. Added hook to
axxia_platform_cpu_die().

Signed-off-by: David Mercado david.merc...@windriver.com
---
 arch/arm/mach-axxia/axxia.h   |1 +
 arch/arm/mach-axxia/hotplug.c |2 +-
 arch/arm/mach-axxia/platsmp.c |5 +
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-axxia/axxia.h b/arch/arm/mach-axxia/axxia.h
index 3393d37..156c6e0 100644
--- a/arch/arm/mach-axxia/axxia.h
+++ b/arch/arm/mach-axxia/axxia.h
@@ -2,6 +2,7 @@
 
 void axxia_init_clocks(int is_sim);
 void axxia_ddr_retention_init(void);
+void axxia_platform_cpu_die(unsigned int cpu);
 
 extern struct smp_operations axxia_smp_ops;
 
diff --git a/arch/arm/mach-axxia/hotplug.c b/arch/arm/mach-axxia/hotplug.c
index d919bff..fb5ec90 100644
--- a/arch/arm/mach-axxia/hotplug.c
+++ b/arch/arm/mach-axxia/hotplug.c
@@ -114,7 +114,7 @@ int platform_cpu_kill(unsigned int cpu)
  *
  * Called with IRQs disabled
  */
-void platform_cpu_die(unsigned int cpu)
+void axxia_platform_cpu_die(unsigned int cpu)
 {
int spurious = 0;
 
diff --git a/arch/arm/mach-axxia/platsmp.c b/arch/arm/mach-axxia/platsmp.c
index 8e863b0..dec7b5b 100644
--- a/arch/arm/mach-axxia/platsmp.c
+++ b/arch/arm/mach-axxia/platsmp.c
@@ -22,6 +22,7 @@
 #include asm/mach/map.h
 #include asm/virt.h
 
+#include axxia.h
 #include mach/axxia-gic.h
 
 extern void axxia_secondary_startup(void);
@@ -246,4 +247,8 @@ struct smp_operations axxia_smp_ops __initdata = {
.smp_prepare_cpus   = axxia_smp_prepare_cpus,
.smp_secondary_init = axxia_secondary_init,
.smp_boot_secondary = axxia_boot_secondary,
+#ifdef CONFIG_HOTPLUG_CPU
+   .cpu_die= axxia_platform_cpu_die,
+#endif
+
 };
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 01/15] i2c-axxia: Avoid timeout when interrupt delayed

2014-04-28 Thread Charlie Paul
From: Anders Berg anders.b...@lsi.com

Changed the order in which the interrupt conditions are checked in the
interrupt handler. Need to check for transfer-complete before timeout-error,
otherwise a delayed interrupt may report a false timeout error (since the
timeout may expire after the transfer was completed).

Signed-off-by: Anders Berg anders.b...@lsi.com
---
 drivers/i2c/busses/i2c-axxia.c |   50 ++--
 1 file changed, 23 insertions(+), 27 deletions(-)

diff --git a/drivers/i2c/busses/i2c-axxia.c b/drivers/i2c/busses/i2c-axxia.c
index 86fc695..cd68166 100644
--- a/drivers/i2c/busses/i2c-axxia.c
+++ b/drivers/i2c/busses/i2c-axxia.c
@@ -332,33 +332,6 @@ axxia_i2c_isr(int irq, void *_dev)
/* Clear interrupt */
writel(0x01, idev-regs-interrupt_status);
 
-   if (unlikely(status  MST_STATUS_ERR)) {
-   idev-msg_err = status  MST_STATUS_ERR;
-   i2c_int_disable(idev, ~0);
-   dev_dbg(idev-dev, error %s, rx=%u/%u tx=%u/%u\n,
-   status_str(idev-msg_err),
-   readl(idev-regs-mst_rx_bytes_xfrd),
-   readl(idev-regs-mst_rx_xfer),
-   readl(idev-regs-mst_tx_bytes_xfrd),
-   readl(idev-regs-mst_tx_xfer));
-   complete(idev-msg_complete);
-   return IRQ_HANDLED;
-   }
-
-   /* Stop completed? */
-   if (status  MST_STATUS_SCC) {
-   i2c_int_disable(idev, ~0);
-   complete(idev-msg_complete);
-   }
-
-   /* Transfer done? */
-   if (status  (MST_STATUS_SNS | MST_STATUS_SS)) {
-   if (i2c_m_rd(idev-msg)  idev-msg_xfrd  idev-msg-len)
-   axxia_i2c_empty_rx_fifo(idev);
-   i2c_int_disable(idev, ~0);
-   complete(idev-msg_complete);
-   }
-
/* RX FIFO needs service? */
if (i2c_m_rd(idev-msg)  (status  MST_STATUS_RFL))
axxia_i2c_empty_rx_fifo(idev);
@@ -371,6 +344,29 @@ axxia_i2c_isr(int irq, void *_dev)
i2c_int_disable(idev, MST_STATUS_TFL);
}
 
+   if (status  MST_STATUS_SCC) {
+   /* Stop completed? */
+   i2c_int_disable(idev, ~0);
+   complete(idev-msg_complete);
+   } else if (status  (MST_STATUS_SNS | MST_STATUS_SS)) {
+   /* Transfer done? */
+   if (i2c_m_rd(idev-msg)  idev-msg_xfrd  idev-msg-len)
+   axxia_i2c_empty_rx_fifo(idev);
+   i2c_int_disable(idev, ~0);
+   complete(idev-msg_complete);
+   } else if (unlikely(status  MST_STATUS_ERR)) {
+   /* Transfer error? */
+   idev-msg_err = status  MST_STATUS_ERR;
+   i2c_int_disable(idev, ~0);
+   dev_dbg(idev-dev, error %s, rx=%u/%u tx=%u/%u\n,
+   status_str(idev-msg_err),
+   readl(idev-regs-mst_rx_bytes_xfrd),
+   readl(idev-regs-mst_rx_xfer),
+   readl(idev-regs-mst_tx_bytes_xfrd),
+   readl(idev-regs-mst_tx_xfer));
+   complete(idev-msg_complete);
+   }
+
return IRQ_HANDLED;
 }
 
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 10/15] axxia: Use the Device Tree for MDIO Clock Offset/Period if Provided

2014-04-28 Thread Charlie Paul
From: John Jacques john.jacq...@lsi.com

Updated the device trees to suppor the MDIO Clock offset

Signed-off-by: John Jacques john.jacq...@lsi.com
---
 arch/arm/boot/dts/axm5504-emu.dts   |2 ++
 arch/arm/boot/dts/axm5507-emu.dts   |2 ++
 arch/arm/boot/dts/axm5516-amarillo.dts  |2 ++
 arch/powerpc/boot/dts/acp25xx.dts   |3 +++
 arch/powerpc/boot/dts/acp342x.dts   |3 +++
 arch/powerpc/boot/dts/acp344x.dts   |3 +++
 arch/powerpc/boot/dts/acp35xx.dts   |3 +++
 drivers/net/ethernet/lsi/lsi_acp_mdio.c |   33 ---
 8 files changed, 40 insertions(+), 11 deletions(-)

diff --git a/arch/arm/boot/dts/axm5504-emu.dts 
b/arch/arm/boot/dts/axm5504-emu.dts
index 0d7ca8f..2b13386 100644
--- a/arch/arm/boot/dts/axm5504-emu.dts
+++ b/arch/arm/boot/dts/axm5504-emu.dts
@@ -29,6 +29,8 @@
 femac {
status = okay;
phy-address = 0x03;
+   mdio-clock-offset = 0x10;
+   mdio-clock-period = 0x2c;
 };
 
 serial0 {
diff --git a/arch/arm/boot/dts/axm5507-emu.dts 
b/arch/arm/boot/dts/axm5507-emu.dts
index 8de0b23..ed0bf10 100644
--- a/arch/arm/boot/dts/axm5507-emu.dts
+++ b/arch/arm/boot/dts/axm5507-emu.dts
@@ -29,6 +29,8 @@
 femac {
status = okay;
phy-address = 0x03;
+   mdio-clock-offset = 0x10;
+   mdio-clock-period = 0x2c;
 };
 
 serial0 {
diff --git a/arch/arm/boot/dts/axm5516-amarillo.dts 
b/arch/arm/boot/dts/axm5516-amarillo.dts
index a802b52..aabc839 100644
--- a/arch/arm/boot/dts/axm5516-amarillo.dts
+++ b/arch/arm/boot/dts/axm5516-amarillo.dts
@@ -28,6 +28,8 @@
 
 femac {
status = okay;
+   mdio-clock-offset = 0x1c;
+   mdio-clock-period = 0xf0;
 };
 
 pcie0 {
diff --git a/arch/powerpc/boot/dts/acp25xx.dts 
b/arch/powerpc/boot/dts/acp25xx.dts
index ad9dfe8..e089692 100644
--- a/arch/powerpc/boot/dts/acp25xx.dts
+++ b/arch/powerpc/boot/dts/acp25xx.dts
@@ -178,6 +178,9 @@
// The following will get filled in by
// the boot loader.
mdio-clock = 0;
+   // Not filled in by U-Boot
+   mdio-clock-offset = 0x10;
+   mdio-clock-period = 0x2c;
phy-address = 0;
ad-value = 0;
mac-address = [00 00 00 00 00 00];
diff --git a/arch/powerpc/boot/dts/acp342x.dts 
b/arch/powerpc/boot/dts/acp342x.dts
index f947d3b..cbc934f 100644
--- a/arch/powerpc/boot/dts/acp342x.dts
+++ b/arch/powerpc/boot/dts/acp342x.dts
@@ -175,6 +175,9 @@
// The following will get filled in by
// the boot loader.
mdio-clock = 0;
+   // Not filled in by U-Boot
+   mdio-clock-offset = 0x10;
+   mdio-clock-period = 0x2c;
phy-address = 0;
ad-value = 0;
mac-address = [00 00 00 00 00 00];
diff --git a/arch/powerpc/boot/dts/acp344x.dts 
b/arch/powerpc/boot/dts/acp344x.dts
index 0efd820..6c07b9d 100644
--- a/arch/powerpc/boot/dts/acp344x.dts
+++ b/arch/powerpc/boot/dts/acp344x.dts
@@ -218,6 +218,9 @@
 // The following will get filled in by
 // the boot loader.
 mdio-clock = 0;
+   // Not filled in by U-Boot
+   mdio-clock-offset = 0x10;
+   mdio-clock-period = 0x2c;
 phy-address = 0;
 ad-value = 0;
 mac-address = [00 00 00 00 00 00];
diff --git a/arch/powerpc/boot/dts/acp35xx.dts 
b/arch/powerpc/boot/dts/acp35xx.dts
index 198b41f..b03680b 100644
--- a/arch/powerpc/boot/dts/acp35xx.dts
+++ b/arch/powerpc/boot/dts/acp35xx.dts
@@ -279,6 +279,9 @@
// The following will get filled in by
// the boot loader.
mdio-clock = 0;
+   // offset and period
+   mdio-clock-offset = 0x10;
+   mdio-clock-period = 0x2c;
phy-address = 0;
ad-value = 0;
mac-address = [00 00 00 00 00 00];
diff --git a/drivers/net/ethernet/lsi/lsi_acp_mdio.c 
b/drivers/net/ethernet/lsi/lsi_acp_mdio.c
index 6427ae0..b11011f 100644
--- a/drivers/net/ethernet/lsi/lsi_acp_mdio.c
+++ b/drivers/net/ethernet/lsi/lsi_acp_mdio.c
@@ -247,17 +247,12 @@ EXPORT_SYMBOL(acp_mdio_write);
 /* acp_mdio_initialize */
 
 static void
-acp_mdio_initialize(void)
+acp_mdio_initialize(int offset, int period)
 {
-#ifdef 

[linux-yocto] [PATCH 14/15] ARM: axxia: Fix release of CPUs with booted via kexec

2014-04-28 Thread Charlie Paul
From: Anders Berg anders.b...@lsi.com

When booting a crash kernel via kexec, the memory specified by the
cpu-release-addr property is not valid physical memory (not part of
the crash kernel reserved memory area). In this case the memory needs an
ioremap to be written.

Signed-off-by: Anders Berg anders.b...@lsi.com
Signed-off-by: Fredrik Markström fredrik.markst...@gmail.com
---
 arch/arm/mach-axxia/platsmp.c |   12 +---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-axxia/platsmp.c b/arch/arm/mach-axxia/platsmp.c
index 7975c44..0ee417e 100644
--- a/arch/arm/mach-axxia/platsmp.c
+++ b/arch/arm/mach-axxia/platsmp.c
@@ -205,8 +205,8 @@ static void __init axxia_smp_prepare_cpus(unsigned int 
max_cpus)
 * from reset in hyp mode.
 */
if (!is_hyp_mode_available()) {
-   u32 phys_cpu = cpu_logical_map(cpu);
-   if (phys_cpu != 0) {
+   if (cpu != 0) {
+   u32 phys_cpu = cpu_logical_map(cpu);
u32 tmp = readl(syscon + 0x1010);
writel(0xab, syscon + 0x1000);
tmp = ~(1  phys_cpu);
@@ -225,10 +225,16 @@ static void __init axxia_smp_prepare_cpus(unsigned int 
max_cpus)
 * holding pen.
 */
if (release_phys != 0) {
-   release_virt = (u32 *)phys_to_virt(release_phys);
+   int is_kmapped = pfn_valid(__phys_to_pfn(release_phys));
+   if (is_kmapped)
+   release_virt = phys_to_virt(release_phys);
+   else
+   release_virt = ioremap(release_phys, PAGE_SIZE);
*release_virt = virt_to_phys(axxia_secondary_startup);
smp_wmb();
__cpuc_flush_dcache_area(release_virt, sizeof(u32));
+   if (!is_kmapped)
+   iounmap(release_virt);
}
}
 
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


Re: [linux-yocto] [PULL REQUEST] Kernel: 3.10 Branch: standard/axxia/base

2014-04-28 Thread Bruce Ashfield

On 2014-04-28, 1:28 PM, Paul, Charlie wrote:

Bruce,

I resubmitted this request, I had given you the wrong starting point,
this should fix the merge problem


Indeed. This merged as a fastforward to the existing BSP branch and
has now been pushed to the repo.

Bruce



Charlie

The following changes since commit 55bf6f0b78353c34d4910bca7bfc9eed0aff5de4:

   Merge branch 'standard/base' into standard/axxia/base (2014-04-01
21:11:34 -0400)

are available in the git repository at:

   g...@github.com:butlerpaul/lsikernel-3.10 sab-next-1

for you to fetch changes up to a72435875d8a4b4e5d61779dd823c59fd4180921:

   gpio: repairs merge comflict (2014-04-22 14:44:24 -0700)



Anders Berg (13):

   i2c-axxia: Fix broken smbus block read

   i2c-axxia: Adjust tLOW,tHIGH to match fast-mode requirements

   arm/axxia: Workaround for cross-cluster sev issue

   Revert LSI AXM55XX: Add GENERIC_LOCKBREAK

   Revert LSI AXM55XX: Disable use of wfe/sev in arch spinlock

   dma: lsi-dma32: DMA driver configuration update

   dma: lsi-dma32: Cleanup DMA driver

   mach-axxia: Split device tree into SoC/board parts

   arm/axxia: Configure changes to 'GPIO driver for SPI chip selects'

   arm/axxia: GPIO driver for SPI chip selects

   spi: Revert to mainline spi-pl022

   hwmon: Support new revision of LTC2974

   i2c-axxia: Use managed functions devm_*

Charlie Paul (3):

   i2c-axxia: code update kernel.org coding spec

   LSI powerpc/boot: added for rapidio

   i2c-axxia: Configure changes to 'Use managed functions devm_*'

David Mercado (3):

   LSI FEMAC Ethernet Driver

   kernel/irq/manage.c: Fix irq_set_affinity to allow use with buslocks

   LSI AXM55xx: Axxia GIC driver improvements (3rd gen)

Gary McGee (2):

   LSI AXXIA: fixes for VP engine quiesce and DDR shutdown

   arm/axxia: improved robustness for DDR retention

John Jacques (10):

   arch/arm/mach-axxia: Updated Device Tree for Emulation

   arch/arm/mach-axxia: Accept the new lsi,axm5516-emu Machine

   arch/arm/mach-axxia: Disable DDR Retention Resets in Sim/Emu

   arch/arm/mach-axxia: Updates to the VMFS File System

   LSI RapidIO: Updated Device Trees for rapidio

   arch/arm/mach-axxia: Name Cleanup

   arch/arm/mach-axxia: Work-Around for Event Problems in v1.0 Silicon

   arch/powerpc: Update the Axxia Device Tree Files

   arch/powerpc: Clean up of Compatible Names in Axxia Device Trees

   LSI drivers/tty: Axxia Serial Driver Update

Jonas Svennebring (2):

   ARM: 7840/1: LPAE: don't reject mapping /dev/mem above 4GB

   LSI AXXIA: Basic perf support for axxia plaform block provided by
LSI.

Michael Bringmann (2):

   LSI AXM55xx: Configuration updates

   LSI AXM55xx: Disable linkdown reset configuration.

Paul Butler (2):

   i2c: comforming to changes introduced by move of_i2c to core

   gpio: repairs merge comflict

SangeethaRao (2):

   arch/powerpc: Checking in correct USB entries to ACP3421 DTS

   LSI powerpc/sysdev: Removing the power of 2 size restriction

arch/arm/Kconfig   |7 +-

arch/arm/boot/dts/Makefile |5 +

arch/arm/boot/dts/axm-sim.dts  |  403 

arch/arm/boot/dts/axm-ve-tc1.dts   |  363 ---

arch/arm/boot/dts/axm-ve-tc2.dts   |  174 --

arch/arm/boot/dts/axm5504-cpus.dtsi|   49 +

arch/arm/boot/dts/axm5504-emu.dts  |   44 +

arch/arm/boot/dts/axm5504-sim.dts  |  127 +

arch/arm/boot/dts/axm5507-cpus.dtsi|   73 +

arch/arm/boot/dts/axm5507-emu.dts  |   44 +

arch/arm/boot/dts/axm5508-cpus.dtsi|   81 +

arch/arm/boot/dts/axm5512-cpus.dtsi|  114 +

arch/arm/boot/dts/axm5516-amarillo.dts |  195 ++

arch/arm/boot/dts/axm5516-cpus.dtsi|  145 ++

arch/arm/boot/dts/axm5516-sim.dts  |  127 +

arch/arm/boot/dts/axm55xx.dts  |  464 

arch/arm/boot/dts/axm55xx.dtsi |  390 +++

.../boot/dts/{axm55xxemu.dts = axm55xxemu7.dts}   |   17 +-

arch/arm/boot/dts/axm55xxsim.dts   |  363 ---

arch/arm/boot/dts/axm55xxsim16.dts |  459 

arch/arm/boot/fmboot/Makefile  |   12 +-

arch/arm/include/asm/spinlock.h|9 +-

arch/arm/mach-axxia/Makefile   |6 +-

arch/arm/mach-axxia/axxia-gic.c| 1138 -

arch/arm/mach-axxia/axxia.c|   66 +-

arch/arm/mach-axxia/clock.c|2 +-

arch/arm/mach-axxia/ddr_retention.c|  255 +-

arch/arm/mach-axxia/ddr_shutdown.c |  332 +++

arch/arm/mach-axxia/ev.c 

Re: [linux-yocto] [PATCH 00/15] LSI AXXIA updates to standard/axxia/base 3.10

2014-04-28 Thread Bruce Ashfield

On 2014-04-28, 8:13 PM, Charlie Paul wrote:

Second set of patches ready to go.


No complaints from me on this one. All the commits have good short
logs and summaries that explain the changes. Nicely done.

I can't say that I did a detailed tech review of each one, so I'll
trust that testing proves they work as intended :)

Cheers,

Bruce



Anders Berg (9):
   i2c-axxia: Avoid timeout when interrupt delayed
   dma: lsi-dma32: Add parameter to setup burst size
   dma: lsi-dma32: Handle DMA transfer sizes  1MB
   ARM: axxia: dts: Enable sp804 timers by default
   ARM: axxia: Cleanup timer init code
   i2c: axxia: Add support for 10-bit addressing
   ARM: axxia: Alloc GIC to be initialized from non-primary core
   ARM: axxia: Fix release of CPUs with booted via kexec
   ARM: axxia: Flush L3 in kexec_reinit

David Mercado (2):
   LSI AXM55xx: Fix PMU handler issue
   LSI AXM55xx: Fix CPU hotplug

John Jacques (4):
   arch/powerpc: Disable the ACP NAND Driver for 3500
   arch/powerpc: Fix Compile Error when the Target is PowerPC
   axxia: Use the Device Tree for MDIO Clock Offset/Period if Provided
   arch/powerpc: Support Older Machine Name for LSI Axxia

  arch/arm/boot/dts/axm5504-emu.dts|2 +
  arch/arm/boot/dts/axm5507-emu.dts|2 +
  arch/arm/boot/dts/axm5516-amarillo.dts   |2 +
  arch/arm/boot/dts/axm55xx.dtsi   |1 -
  arch/arm/mach-axxia/axxia-gic.c  |   47 +--
  arch/arm/mach-axxia/axxia.c  |  102 +++---
  arch/arm/mach-axxia/axxia.h  |1 +
  arch/arm/mach-axxia/hotplug.c|2 +-
  arch/arm/mach-axxia/include/mach/axxia-gic.h |1 -
  arch/arm/mach-axxia/platsmp.c|   27 ++--
  arch/powerpc/boot/dts/acp25xx.dts|3 +
  arch/powerpc/boot/dts/acp342x.dts|3 +
  arch/powerpc/boot/dts/acp344x.dts|3 +
  arch/powerpc/boot/dts/acp35xx.dts|3 +
  arch/powerpc/platforms/44x/acpx1.c   |5 +-
  drivers/dma/lsi-dma32.c  |  185 +++---
  drivers/dma/lsi-dma32.h  |4 +-
  drivers/i2c/busses/i2c-axxia.c   |   84 +++-
  drivers/mtd/nand/lsi_acp_nand.c  |7 +
  drivers/net/ethernet/lsi/lsi_acp_mdio.c  |   33 +++--
  20 files changed, 306 insertions(+), 211 deletions(-)



--
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto